Revert static checking of stack smashing.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
12384b01
PE
12012-12-26 Paul Eggert <eggert@cs.ucla.edu>
2
3 * window.c (select_window_1): Now static, since it's used only here.
4
f1665bdc
EZ
52012-12-25 Eli Zaretskii <eliz@gnu.org>
6
7 * window.c (window_body_cols): Subtract display margins from the
8 window body width on TTYs as well. See
9 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
10 for the original report.
11
9a0d4f34
DA
122012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
13
14 * xdisp.c (redisplay_window): Remove inner local variable
15 because the outer shadowed one has the same meaning.
cd78d9b1
DA
16 * xterm.h (struct x_output): Remove toolbar_detached member since it's
17 set but never used.
18 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
19 (xg_create_tool_bar): Adjust users.
9a0d4f34 20
f9e7c67e
DA
212012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
22
23 * buffer.h (BUF_COMPACT): New macro to follow the common style.
24 * buffer.c (Fget_buffer_create): Use it to set compact field of
25 struct buffer_text to avoid accessing an uninitialized value
26 when compact_buffer is called for the first time.
27 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
2944d406
DA
28 (Fset_buffer_modified_p): Use buffer_window_count to check
29 whether the buffer is displayed in some window.
30 * xdisp.c (message_dolog): Likewise.
f9e7c67e 31
299614f3
EZ
322012-12-23 Eli Zaretskii <eliz@gnu.org>
33
40ff07a5
EZ
34 * w32.c (acl_set_file): If setting the file security descriptor
35 fails, and the new DACL is identical to the existing one, silently
36 return success. This fixes problems for users backing up their
37 own files without having the necessary privileges for setting
38 security descriptors.
39
299614f3
EZ
40 * w32proc.c (reader_thread): Do not index fd_info[] with negative
41 values.
42 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
43 after WaitForSingleObject returns normally. This expedites reader
44 thread shutdown when delete_child triggers it.
45 (reap_subprocess): More accurate commentary for why we call
46 delete_child only when cp->fd is negative.
47
48 * w32.c (sys_close): Do not call delete_child on a subprocess
49 whose handle is not yet closed. Instead, set its file descriptor
50 to a negative value, so that reap_subprocess will call
51 delete_child on that subprocess when its SIGCHLD arrives. This
52 avoids closing handles used for communications between sys_select
53 and reader_thread, which doesn't give sys_select a chance to
54 notice that the process exited and invoke the SIGCHLD handler for
55 it.
56
cf162aee
JD
572012-12-23 Jan Djärv <jan.h.d@swipnet.se>
58
59 * nsfns.m (Fns_do_applescript): Run event loop until script has
60 been executed (Bug#12969).
61 (ns_run_ascript): Chech as_script for nil, set to nil after
62 executing script.
63
94900bfe
MR
642012-12-22 Martin Rudalics <rudalics@gmx.at>
65
66 * window.c (Fselect_window): Reword doc-string (Bug#13248).
67
b2faf49c
EZ
682012-12-22 Eli Zaretskii <eliz@gnu.org>
69
70 * w32term.c (w32fullscreen_hook): New function.
71 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
72
7efa3fb3
EZ
732012-12-21 Eli Zaretskii <eliz@gnu.org>
74
bb085aed
EZ
75 * fileio.c (Finsert_file_contents): Doc fix.
76
7efa3fb3
EZ
77 * w32proc.c (new_child, delete_child, find_child_pid): For a
78 subprocess, consider its slot being in use as long as its process
79 handle (procinfo.hProcess) is not NULL. This avoids reusing the
80 slot when a new process is started immediately after killing
81 another one, without waiting enough time for the first process to
82 be reaped and resources allocated for it be orderly freed.
83 (Bug#13086)
84 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
85
c1f02afa
CY
862012-12-21 Chong Yidong <cyd@gnu.org>
87
88 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
89
5bec25eb
CY
90 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
91
a4b0cca1 922012-12-21 Eli Zaretskii <eliz@gnu.org>
92340ec7
EZ
93
94 * w32.c (get_name_and_id): Always pass NULL as the first argument
95 of lookup_account_sid. Avoids crashes with UNC file names that
96 refer to DFS domains, not to specific machine names. (Bug#12621)
97 Remove now unused argument FNAME; all callers changed.
98 (get_file_owner_and_group): Remove now unused argument FNAME; all
99 callers changed.
100
34b4b7eb
CY
1012012-12-21 Chong Yidong <cyd@gnu.org>
102
103 * editfns.c (Finsert_char): Since read-char-by-name now signals an
104 error for invalid chars, don't check for a nil return value.
105
13002885
DA
1062012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
107
108 Avoid calls to CHAR_TO_BYTE if byte position is known.
109 * editfns.c (make_buffer_string_both): Use move_gap_both.
110 (Fbuffer_string): Use make_buffer_string_both.
111 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
112 Adjust comment.
113 (buf_bytepos_to_charpos): Likewise.
114 (charpos_to_bytepos): Remove.
115 * fileio.c (Finsert_file_contents): Use move_gap_both.
116 * search.c (Freplace_match): Likewise.
9a0d4f34 117 * process.c (process_send_region): Likewise. Use convenient
13002885
DA
118 names for byte positions.
119 * lisp.h (charpos_to_bytepos): Remove prototype.
120 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
121 * insdel.c (move_gap): Likewise.
122
99e9311c
PE
1232012-12-20 Paul Eggert <eggert@cs.ucla.edu>
124
125 * xdisp.c (redisplay_internal): Remove now-unused local.
126
e02230bf
SM
1272012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
128
129 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
130 (redisplay_internal): Don't bother selecting the frame to get the
131 proper value of frame-local variables.
132
1687fb14
DA
1332012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
134
135 * textprop.c (set_text_properties_1): Do not allow NULL interval.
136 Rename 4th argument since it may be buffer or string. Adjust comment.
137 * intervals.c (graft_intervals_info_buffer): Find an interval here.
138
a2f07cd2
DA
1392012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
140
141 * coding.c (Fdetect_coding_region): Do not check start and end with
142 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
143 (code_convert_region): Likewise.
144
474d441e
EZ
1452012-12-18 Eli Zaretskii <eliz@gnu.org>
146
147 * w32.c (acl_get_file, acl_set_file): Run the file name through
148 map_w32_filename, and resolve any symlinks in the file name, like
149 Posix platforms do.
150 (acl_set_file): Call revert_to_self, if any privileges were
151 enabled.
152
8725c076
JB
1532012-12-17 Juanma Barranquero <lekktu@gmail.com>
154
155 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
156 ($(BLD)/w32.$(O)): Update dependencies.
157
1e101a4b
SM
1582012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
159
160 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
161 propagate redisplay's scrolling (if any) to the right window.
162 (redisplay_internal): Use ensure_selected_frame.
163 (display_mode_lines): Complete last fix.
164 * window.c (select_window_1): New func, extracted from select_window.
165 (select_window): Use it.
166 * window.h (select_window_1): Declare.
167
66447e07
EZ
1682012-12-17 Eli Zaretskii <eliz@gnu.org>
169
170 Emulate Posix ACL APIs on MS-Windows.
171 * w32.c: Include sddl.h and sys/acl.h.
172 (SDDL_REVISION_1): Define if not already defined.
173 (g_b_init_get_security_descriptor_dacl)
174 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
175 (g_b_init_is_valid_security_descriptor)
176 (g_b_init_set_file_security): New static flags.
177 (globals_of_w32): Initialize them to zero.
178 (SetFileSecurity_Name): New string constant.
179 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
180 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
181 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
182 (IsValidSecurityDescriptor_Proc): New typedefs.
183 (get_file_security, get_security_descriptor_owner)
184 (get_security_descriptor_group): Set errno to ENOTSUP.
185 (set_file_security, get_security_descriptor_dacl)
186 (is_valid_security_descriptor, convert_sd_to_sddl)
187 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
188 (acl_free, acl_get_file, acl_set_file): New functions.
189
190 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
191
207a7ef0
PE
1922012-12-17 Paul Eggert <eggert@cs.ucla.edu>
193
194 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
195 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
196 for some of that bug's symptoms can now cause Emacs to abort.
197 Remove the workaround.
198 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
199 The bug that caused SIGCHLD to get lost has been fixed, and the
200 workaround for it can now cause Emacs to abort.
201
17fdfc15
PE
2022012-12-16 Paul Eggert <eggert@cs.ucla.edu>
203
204 * sysdep.c (emacs_abort): Bump backtrace size to 40.
205 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
206 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
207
7c3d167f
RF
2082012-12-16 Romain Francoise <romain@orebokech.com>
209
210 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
211 (Fcopy_file): Change last arg to `preserve_extended_attributes'
1e101a4b 212 and copy ACL entries of file in addition to SELinux context if set.
7c3d167f
RF
213 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
214
215 * Makefile.in (LIBACL_LIBS): New macro.
216 (LIBES): Use it.
217
7d80ea23
PE
2182012-12-15 Paul Eggert <eggert@cs.ucla.edu>
219
220 * fileio.c (internal_delete_file): Use bool for boolean.
221
b0728617
EZ
2222012-12-15 Eli Zaretskii <eliz@gnu.org>
223
224 Fix bug #13079 on MS-Windows with temp files not being deleted.
225 * w32.h (_child_process): New members input_file and
226 pending_deletion.
227 (register_child): First argument is now pid_t.
228 (record_infile, record_pending_deletion): New prototypes.
229
230 * w32proc.c (new_child): Initialize input_file and
231 pending_deletion members of the child.
232 (delete_child): Delete the child's temporary input file, if any,
233 that is pending deletion.
234 (register_child): First argument is now pid_t.
235 (record_infile, record_pending_deletion): New functions.
236 (reap_subprocess): Fix a typo in DebPrint string.
237 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
238
239 * fileio.c (internal_delete_file): Return an int again: non-zero
240 if delete-file succeeds, zero otherwise.
241
242 * lisp.h (internal_delete_file): Adjust prototype.
243
244 * callproc.c (Fcall_process): Don't overwrite infile with result
245 of DECODE_FILE.
246 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
247 asynchronous subprocess, record the name of the input file name,
248 if any.
249 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
250 delete the file, record it as pending deletion when the subprocess
251 exits.
252
7e90af26
EZ
2532012-12-14 Eli Zaretskii <eliz@gnu.org>
254
255 * editfns.c [HAVE_PWD_H]: Include grp.h.
256
257 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
258
97976f9f
PE
2592012-12-14 Paul Eggert <eggert@cs.ucla.edu>
260
261 Fix permissions bugs with setgid directories etc. (Bug#13125)
262 * dired.c (Ffile_attributes): Return t as the 9th attribute,
263 to mark it as a placeholder. The old value was often wrong.
264 The only user of this attribute has been changed to use
265 file-ownership-preserved-p instead, with its new group arg.
266 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
267
26ec1f49
SM
2682012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
269
ad966fe7
SM
270 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
271 Keep selected_window and selected_frame in sync.
26ec1f49 272
5c207910
EZ
2732012-12-14 Eli Zaretskii <eliz@gnu.org>
274
275 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
276 try to get accurate owner and group information from NT file
277 security APIs. This is to make most callers of 'stat' and
278 'lstat', which don't need that information, much faster.
279
26ec1f49
SM
280 * dired.c (Ffile_attributes) [WINDOWSNT]:
281 Set w32_stat_get_owner_group to a non-zero value, to request accurate
5c207910
EZ
282 owner and group information from 'lstat'.
283
893f52d8
PE
2842012-12-13 Paul Eggert <eggert@cs.ucla.edu>
285
4c95c9a5
PE
286 * fileio.c (Finsert_file_contents): Don't put tail into head area,
287 as that confuses set-auto-coding, so insist on the head-read
288 returning the full 1024 bytes. Let lseek compute the tail offset;
289 less work for us. Do not ignore I/O errors when reading the tail.
290
893f52d8
PE
291 * xdisp.c: Minor style fixes.
292 (init_iterator): Hoist assignment out of if-expression.
293 (markpos_of_region): Callers now test for sign, not for -1.
294
40d1e434
DA
2952012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
296
297 Minor redisplay optimization when the region length is zero.
298 * xdisp.c (markpos_of_region): New function.
299 (init_iterator): Do not highlight the region of zero length.
300 (redisplay_window): Check whether the region is of non-zero length.
301 (try_cursor_movement): Allow if the region length is zero.
302 (try_window_reusing_current_matrix, try_window_id): Likewise.
303
727f9739 3042012-12-13 Eli Zaretskii <eliz@gnu.org>
e8c6e965
EZ
305
306 * search.c (search_buffer): Check the inverse translations of each
307 character in pattern when the buffer being searched is unibyte.
308 (Bug#13084)
309
727f9739 3102012-12-13 Paul Eggert <eggert@cs.ucla.edu>
184246df
PE
311
312 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
313 files, fixing a regression from 24.2.
645c6a30 314 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
184246df 315
d20704ef
PE
3162012-12-13 Paul Eggert <eggert@cs.ucla.edu>
317
318 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
319 fstat shouldn't fail, and if it does fail copy-file should not proceed.
320 Remove unnecessary S_ISLNK test, as (contra the comments) this
321 function can't copy symlinks. Improve quality of error message
322 when attempting to copy files that are neither regular files nor
323 directories.
324
2dd61a9b
DA
3252012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
326
327 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
328 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
329 * window.c (Frecenter):
330 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
331 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
332
cc98b684
DC
3332012-12-12 Daniel Colascione <dancol@dancol.org>
334
1e101a4b 335 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
cc98b684
DC
336 the dumped Emacs is not a sparse file, greatly improving Cygwin
337 "make bootstrap" performance.
338
38e791fd
MA
3392012-12-11 Michael Albinus <michael.albinus@gmx.de>
340
341 * inotify.c (inotify_callback): Generate an Emacs event for every
342 incoming inotify event.
343
f9d1448f
EZ
3442012-12-11 Eli Zaretskii <eliz@gnu.org>
345
346 * xdisp.c (handle_face_prop): Fix logic of computing
347 it->start_of_box_run_p.
348 (append_space_for_newline): If the glyph row is R2L, reset the
349 iterator's end_of_box_run_p flag before prepending the space glyph.
350 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
351 iterator's start_of_box_run_p flag before prepending the stretch.
352 (append_glyph, produce_image_glyph, append_composite_glyph)
353 (append_stretch_glyph, append_glyphless_glyph): Reverse the
354 left_box_line_p and right_box_line_p flags of the glyph for R2L
355 glyph rows. (Bug#13011)
356
c6afe371
DA
3572012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
358
359 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
360 if changed buffer is not shown in a window.
361 * insdel.c (prepare_to_modify_buffer): Likewise.
362 * window.c (replace_buffer_in_windows_safely): Do nothing
363 if buffer is not shown in a window.
364 (Fforce_window_update): Likewise if string or buffer argument
365 is passed.
366
1b47babd
EZ
3672012-12-11 Eli Zaretskii <eliz@gnu.org>
368
369 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
370 encoded_file_name, which is what it is.
371
4c1acb95
DA
3722012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
373
374 Consistently use marker_position and marker_byte_position.
375 * fringe.c (Ffringe_bitmaps_at_pos):
376 * indent.c (Fvertical_motion):
377 * insdel.c (prepare_to_modify_buffer):
378 * keyboard.c (make_lispy_position):
379 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
380 (window_scroll_pixel_based, displayed_window_lines)
381 (Fset_window_configuration):
382 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
383 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
384 Replace direct access to marker fields with calls
385 to marker_position and/or marker_byte_position.
386
0eeb69fe
JB
3872012-12-11 Juanma Barranquero <lekktu@gmail.com>
388
389 * makefile.w32-in (SIG2STR_H): New macro.
390 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
391 ($(BLD)/w32notify.$(O)): Update dependencies.
392
1cf1bbd5
DC
3932012-12-10 Daniel Colascione <dancol@dancol.org>
394
8db4b52f
DC
395 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
396 Windows file notification functionality unless WINDOWSNT.
397
1cf1bbd5
DC
398 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
399 declarations.
400
401 * w32fns.c (cache_system_info): Initialize the global hinst
402 variable here so various initialization calls DTRT.
403
1e101a4b 404 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
1cf1bbd5
DC
405 (hinst): Remove unneeded extern declaration.
406 (_start): Remove initialization of above variables; remove
407 initialization of hinst, as cache_system_info now does that.
408
409 * emacs.c (main): Call cache_system_info early in startup; we
410 previously weren't calling it in Cygwin builds.
411
26ec1f49
SM
412 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
413 Teach the autoconf build system how to compile a Windows resource file
1cf1bbd5
DC
414 and link it to Emacs.
415
98a07056
DA
4162012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
417
418 Per-buffer window counters.
419 * buffer.h (struct buffer): New member window_count.
420 (buffer_window_count): New function.
421 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
422 Initialize window_count.
423 (Fkill_buffer): Verify window_count for the buffer being killed.
424 (modify_overlay): Do not force redisplay if buffer is not shown
425 in any window.
426 (init_buffer_once): Initialize window_count for buffer_defaults
427 and buffer_local_symbols.
428 * window.h (buffer_shared): Remove declaration.
429 (wset_buffer): Convert from inline ...
430 * window.c (wset_buffer): ... to an ordinary function.
431 (adjust_window_count): New function.
432 (make_parent_window): Use it.
433 * xdisp.c (buffer_shared): Remove.
434 (redisplay_internal, redisplay_window): Adjust users.
435 (buffer_shared_and_changed): Use per-buffer window counter.
436
2b8c9064
EZ
4372012-12-10 Eli Zaretskii <eliz@gnu.org>
438
439 Support for filesystem notifications on MS-Windows.
440 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
441 and this is a TTY frame, signal the caller that keyboard input is
442 available.
443
444 * w32xfns.c (drain_message_queue): Now returns an int: an
445 indication whether any WM_EMACS_FILENOTIFY messages were found in
446 the queue.
447
448 * w32inevt.c (handle_file_notifications): New function.
449 (w32_console_read_socket): Call it to process file notifications.
450
451 * w32console.c (initialize_w32_display): Record the main thread ID
452 in dwMainThreadId.
453
454 * deps.mk (inotify.o): New dependency list.
455
456 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
457
458 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
459 (WM_EMACS_END): Bump value by 1.
460 (notification_buffer_in_use, file_notifications)
461 (notifications_size, notifications_desc): Declare.
462 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
463 Add prototypes.
464
465 * w32term.c (lispy_file_action, queue_notifications): New functions.
466 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
467 <Qrenamed_to>: New symbols.
468 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
469
470 * w32notify.c: New file, implements file event notifications for
471 MS-Windows.
472
473 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
474 by posting it to the w32_read_socket queue.
475
1e101a4b 476 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
2b8c9064
EZ
477
478 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
479 (GLOBAL_SOURCES): Add w32notify.c
480 ($(BLD)/w32notify.$(O)): New set of dependencies.
481
482 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
483
1e101a4b
SM
484 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
485 Handle FILE_NOTIFY_EVENT.
2b8c9064
EZ
486 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
487 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
488 w32notify-handle-event by default.
489
490 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
491 syms_of_w32notify.
492
81606b10
RS
4932012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
494
2b8c9064 495 Support for filesystem notifications on GNU/Linux via inotify.
1e101a4b 496 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
81606b10
RS
497
498 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
499
500 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
501 (syms_of_keyboard): DEFSYM it.
502 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
503 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
504 Qfile_inotify events.
505 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
506 special-event-map to inotify-handle-event.
507
508 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
509
510 * Makefile.in (base_obj): Add inotify.o.
511
512 * inotify.c: New file.
513
265c2fbf 5142012-12-10 Jan Djärv <jan.h.d@swipnet.se>
a06ae17d
JD
515
516 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
517
265c2fbf 5182012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
cb576b5c
FP
519
520 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
521 DWORD_PTR, for compatibility with 64-bit builds.
522
a06ae17d 523 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
cb576b5c
FP
524 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
525 (system_process_attributes): Use SIZE_T rather than DWORD, for
526 compatibility with 64-bit builds.
527
265c2fbf 5282012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
76b92fee
CS
529
530 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
531
265c2fbf 5322012-12-10 Eli Zaretskii <eliz@gnu.org>
81d8cc53
EZ
533
534 * indent.c (Fvertical_motion): If a display string will be
535 displayed on the left or the right margin, don't consider it as a
536 factor in cursor positioning. (Bug#13108)
537
265c2fbf 5382012-12-10 Martin Rudalics <rudalics@gmx.at>
2cec368c
MR
539
540 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
541
5f460827
PE
5422012-12-10 Paul Eggert <eggert@cs.ucla.edu>
543
544 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
545 for string length.
546
a16e75cd
EZ
5472012-12-08 Eli Zaretskii <eliz@gnu.org>
548
549 * w32.c (unsetenv): Return 0 if the input string is too long.
550
5745a7df
PE
5512012-12-08 Paul Eggert <eggert@cs.ucla.edu>
552
553 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
554 * alloc.c (xputenv): New function.
555 * dbusbind.c (Fdbus_init_bus):
556 * emacs.c (main):
557 * xterm.c (x_term_init):
558 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
559 * editfns.c (initial_tz): Move static var decl up.
560 (tzvalbuf_in_environ): New static var.
561 (init_editfns): Initialize these two static vars.
562 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
563 Save old TZ value on stack, if it's small.
564 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
565 instead, use xputenv+unsetenv to set and restore TZ.
566 (environbuf): Remove static var. All uses removed.
567 (Fset_time_zone_rule): Do not save TZ and environ;
568 no longer needed here.
569 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
570 Move to inside set_time_zone_rule; they don't need file scope any more.
571 (set_time_zone_rule): Maintain the TZ=value string separately.
572 (syms_of_editfns): Don't initialize initial_tz;
573 init_editfns now does it.
574 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
575 * lisp.h (xputenv): New decl.
576
c56efa40
FP
5772012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
578
579 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
580
75ceee05
EZ
5812012-12-08 Eli Zaretskii <eliz@gnu.org>
582
583 * w32.c (unsetenv, sys_putenv): New functions.
584
1b6dbfeb
CY
5852012-12-08 Chong Yidong <cyd@gnu.org>
586
587 * editfns.c (Finsert_char): Make the error message more
588 informative (Bug#12992).
589
d983a10b
PE
5902012-12-08 Paul Eggert <eggert@cs.ucla.edu>
591
7be78020
PE
592 Simplify get_lim_data.
593 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
594 Remove USG and vlimit methods; no longer used these days.
595 Add #error catchall just in case.
596
d983a10b
PE
597 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
598 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
599 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
600 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
601 (deleted_pid_list, Fdelete_process, create_process)
602 (record_child_status_change, handle_child_signal, deliver_child_signal)
603 (init_process_emacs, syms_of_process):
604 Assume SIGCHLD is defined.
605 (parse_signal): Remove. All uses removed.
606 (abbr_to_signal): New static function.
607 (Fsignal_process): Use it to convert signal names to ints.
608 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
609 kill (getpgrp (), ...).
610 (emacs_sigaction_init): Assume SIGCHLD is defined.
611 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
612 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
613 * syssignal.h (EMACS_KILLPG): Remove.
614 All uses replaced by 'kill' with a negative pid.
615 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
616 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
617
9cdde1e2
PE
6182012-12-07 Paul Eggert <eggert@cs.ucla.edu>
619
620 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
621 This will cause a production Emacs to dump core instead of
622 infinite-looping.
623
822995f8
DA
6242012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
625
626 * frame.c (make_frame): Do not set window's buffer to t.
627 * window.c (Fsplit_window_internal): Likewise. Previously it was
628 used to indicate that the window is being set up. Now we use
629 set_window_buffer for all new windows, so the condition in ...
630 (Fset_window_buffer): ... is always true and can be removed.
631
ed08365b
DA
6322012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
633
634 Convenient macro to check whether the buffer is hidden.
635 * buffer.h (BUFFER_HIDDEN_P): New macro.
636 * frame.c (make_frame): Use it. Adjust comment.
637 * buffer.c (candidate_buffer): New function.
638 (Fother_buffer, other_buffer_safely): Use it.
639
e86f5134
EZ
6402012-12-06 Eli Zaretskii <eliz@gnu.org>
641
642 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
643 if the child process is still running. Instead, exit the wait
644 loop and return zero. (Bug#13086)
645
1700db3c
DA
6462012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
647
648 * frame.h (x_char_width, x_char_height): Remove prototypes.
649 * w32term.h (x_char_width, x_char_height): Likewise.
650 * xfns.c (x_char_width, x_char_height): Remove.
651 * w32fns.c (x_char_width, x_char_height): Likewise.
652 * nsfns.c (x_char_width, x_char_height): Likewise.
653 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
654 all window frames.
655 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
656 * keyboard.c (command_loop_1): Remove prototype.
657 (command_loop_2, top_level_1): Add static to match prototype.
658
35fb8050
PE
6592012-12-06 Paul Eggert <eggert@cs.ucla.edu>
660
661 Fix a recently-introduced delete-process race condition.
662 * callproc.c, process.h (record_kill_process):
663 New function, containing part of the old call_process_kill.
664 (call_process_kill): Use it.
665 This does not change call_process_kill's behavior.
666 * process.c (Fdelete_process): Use record_kill_process to fix a
667 race condition that could cause Emacs to lose track of a child.
668
565212e5
DA
6692012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
670
671 Avoid code duplication between prev_frame and next_frame.
672 * frame.c (candidate_frame): New function. Add comment.
673 (prev_frame, next_frame): Use it. Adjust comment.
674
d8ad4d3f 6752012-12-06 Eli Zaretskii <eliz@gnu.org>
d3cefd13
EZ
676
677 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
678 fails, signal an error instead of continuing with an empty
679 string. (Bug#13079)
7c2fcf9b
EZ
680 Encode expanded temp file pattern before passing it to mkstemp or
681 mktemp.
d3cefd13 682
2e7cddd3
EZ
683 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
684 Encode the file name before passing it to dostounix_filename, in
685 case it will downcase it (under w32-downcase-file-names).
686 (Bug#12933)
687
644d3f0d
PE
6882012-12-05 Paul Eggert <eggert@cs.ucla.edu>
689
690 Minor call-process cleanups.
691 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
692 at the same time as other platforms, to simplify analysis.
693 No need for fd0_volatile since we have synch_process_fd.
694 Avoid needless emacs_close; arg is always negative.
695
396376f1
AS
6962012-12-04 Andreas Schwab <schwab@linux-m68k.org>
697
698 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
699 processes.
700
350f51ad
DA
7012012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
702
703 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
704 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
705 and mouse_face_hidden members to a bitfields.
706 * frame.h (struct frame): Remove set-but-not-used space_width member.
707 (FRAME_SPACE_WIDTH): Remove.
708 * nsterm.m, w32term.c, xterm.c: Adjust users.
709 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
710 member. Adjust users. Convert term_initted, delete_in_insert_mode,
711 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
712 members to a bitfields.
713
bc9dbce6
PE
7142012-12-03 Paul Eggert <eggert@cs.ucla.edu>
715
bb5f74ee
PE
716 Don't let call-process be a zombie factory (Bug#12980).
717 Fixing this bug required some cleanup of the signal-handling code.
718 As a side effect, this change also fixes a longstanding rare race
719 condition whereby Emacs could mistakenly kill unrelated processes,
720 and it fixes a bug where a second C-g does not kill a recalcitrant
721 synchronous process in GNU/Linux and similar platforms.
722 The patch should also fix the last vestiges of Bug#9488,
723 a bug which has mostly been fixed on the trunk by other changes.
724 * callproc.c, process.h (synch_process_alive, synch_process_death)
725 (synch_process_termsig, sync_process_retcode):
726 Remove. All uses removed, to simplify analysis and so that
727 less consing is done inside critical sections.
728 * callproc.c (call_process_exited): Remove. All uses replaced
729 with !synch_process_pid.
730 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
731 These take the role of what used to be in unwind-protect arg.
732 All uses changed.
733 (block_child_signal, unblock_child_signal):
734 New functions, to avoid races that could kill innocent-victim processes.
735 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
736 (call_process_kill): Record killed processes as deleted, so that
737 zombies do not clutter up the system. Do this inside a critical
738 section, to avoid a race that would allow the clutter.
739 (call_process_cleanup): Fix code so that the second C-g works again
740 on common platforms such as GNU/Linux.
741 (Fcall_process): Create the child process in a critical section,
742 to fix a race condition. If creating an asynchronous process,
743 record it as deleted so that zombies do not clutter up the system.
744 Do unwind-protect for WINDOWSNT too, as that's simpler in the
745 light of these changes. Omit unnecessary call to emacs_close
746 before failure, as the unwind-protect code does that.
747 * callproc.c (call_process_cleanup):
748 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
749 * process.c (record_deleted_pid): New function, containing
750 code refactored out of Fdelete_process.
751 (Fdelete_process): Use it.
752 (process_status_retrieved): Remove. All callers changed to use
753 child_status_change.
754 (record_child_status_change): Remove, folding its contents into ...
755 (handle_child_signal): ... this signal handler. Now, this
756 function is purely a handler for SIGCHLD, and is not called after
757 a synchronous waitpid returns; the synchronous code is moved to
758 wait_for_termination. There is no need to worry about reaping
759 more than one child now.
760 * sysdep.c (get_child_status, child_status_changed): New functions.
761 (wait_for_termination): Now takes int * status and bool
762 interruptible arguments, too. Do not record child status change;
763 that's now the caller's responsibility. All callers changed.
764 Reimplement in terms of get_child_status.
765 (wait_for_termination_1, interruptible_wait_for_termination):
766 Remove. All callers changed to use wait_for_termination.
767 * syswait.h: Include <stdbool.h>, for bool.
768 (record_child_status_change, interruptible_wait_for_termination):
769 Remove decls.
770 (record_deleted_pid, child_status_changed): New decls.
771 (wait_for_termination): Adjust to API changes noted above.
772
bc9dbce6
PE
773 * bytecode.c, lisp.h (Qbytecode): Remove.
774 No longer needed after 2012-11-20 interactive-p changes.
775
3cf3c607
EZ
7762012-12-03 Eli Zaretskii <eliz@gnu.org>
777
778 * xdisp.c (redisplay_window): If the cursor is visible, but inside
779 the scroll margin, move point outside the margin. (Bug#13055)
780
005c8d13
JD
7812012-12-03 Jan Djärv <jan.h.d@swipnet.se>
782
783 * gtkutil.c (my_log_handler): New function.
784 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
785
20edc1c9
DA
7862012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
787
788 * lisp.h (modify_region): Rename to...
789 (modify_region_1): ...new prototype.
790 * textprop.c (modify_region): Now static. Adjust users.
791 * insdel.c (modify_region): Rename to...
792 (modify_region_1): ...new function to work with current buffer.
793 Adjust comment and users. Use true and false for booleans.
794
62c2e5ed
DA
7952012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
796
797 * alloc.c (free_save_value): New function.
798 (safe_alloca_unwind): Use it.
799 * lisp.h (free_save_value): New prototype.
800 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
801 Add comment.
802 (save_excursion_restore): Adjust to match saved data structure.
803 Use free_save_value to offload some work from GC. Drop obsolete
804 #if 0 code.
805
c5bc2d1d 8062012-12-03 Chong Yidong <cyd@gnu.org>
a2458031
CY
807
808 * fileio.c (Vauto_save_list_file_name): Doc fix.
809
c5bc2d1d 8102012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
c7b36b95
FP
811
812 * w32fns.c: Remove prototype of atof.
1e101a4b 813 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
c7b36b95 814 builds.
1e101a4b 815 (file_dialog_callback): Make it UINT_PTR.
c7b36b95
FP
816
817 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
818 with 64-bit builds.
819
820 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
821 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
822 defined.
823
c5bc2d1d 8242012-12-03 Glenn Morris <rgm@gnu.org>
14d27346 825
a9de9f0c 826 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
14d27346 827
21e54a94
PE
8282012-12-02 Paul Eggert <eggert@cs.ucla.edu>
829
2dd2e622
PE
830 Fix xpalloc confusion after memory is exhausted.
831 * alloc.c (xpalloc): Comment fix.
832 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
833 and signals an error, do not clear charset_table_size, as
834 charset_table is still valid.
835 * doprnt.c (evxprintf): Clear *BUF after freeing it.
836
21e54a94
PE
837 Use execve to avoid need to munge environ (Bug#13054).
838 * callproc.c (Fcall_process):
839 * process.c (create_process):
840 Don't save and restore environ; no longer needed.
841 * callproc.c (child_setup):
842 Use execve, not execvp, to preserve environ.
843
3e5490f7
PE
8442012-12-01 Paul Eggert <eggert@cs.ucla.edu>
845
846 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
847
75b4f59c
YM
8482012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
849
850 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
851 display for sliced images (Bug#10500).
852
853 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
854
f8aff4c6
JB
8552012-11-30 Juanma Barranquero <lekktu@gmail.com>
856
857 * doc.c (Fdocumentation): Re-add handling of function-documentation,
858 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
859
3940b924
DA
8602012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
861
862 * xdisp.c (window_outdated): Remove eassert since it hits
863 some suspicious corner cases (see Bug#13007 and Bug#13012).
864 (mode_line_update_needed): New function.
865 (redisplay_internal, redisplay_window): Use it.
866 (ensure_selected_frame): New function.
867 (redisplay_internal, unwind_redisplay): Use it.
868 (redisplay_internal): Move comment about buffer_shared...
869 (buffer_shared_and_changed): ...near to its real use.
870
4a9204fe
PE
8712012-11-29 Paul Eggert <eggert@cs.ucla.edu>
872
873 * callproc.c (Fcall_process): Don't misreport vfork failure.
874
60aeceb8
PE
8752012-11-28 Paul Eggert <eggert@cs.ucla.edu>
876
877 * callproc.c (Fcall_process): Fix vfork portability problems.
878 Do not assume that fd[0], count, filefd, and save_environ survive
879 vfork. Fix bug whereby wrong errno value could be reported for
880 pipe failure. Some minor cleanups, too, as follows. Move buf and
881 bufsize to the context where they're needed. Change new_argv to
882 be of type char **, as this is more convenient and avoids casts.
883 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
884 Now local constants, not macros.
885
00dc3ead
KH
8862012-11-18 Kenichi Handa <handa@gnu.org>
887
888 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
889 for the variable "f".
890
e1bf05c1
KH
8912012-11-13 Kenichi Handa <handa@gnu.org>
892
893 * font.c (font_unparse_xlfd): Exclude special characters from the
894 generating XLFD name.
895
22626a85
PE
8962012-11-27 Paul Eggert <eggert@cs.ucla.edu>
897
350e0088
PE
898 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
899 * dired.c (stat_uname, stat_gname):
900 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
901
22626a85
PE
902 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
903 * dired.c (directory_files_internal, file_name_completion):
904 Assume EAGAIN and EINTR are defined.
350e0088 905
22626a85
PE
906 * fileio.c (Fcopy_file): Assume EISDIR is defined.
907 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
908 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
909 * lread.c (readbyte_from_file): Assume EINTR is defined.
910 * process.c (wait_reading_process_output, send_process) [subprocesses]:
911 Assume EIO and EAGAIN are defined.
912 * unexcoff.c (write_segment): Assume EFAULT is defined.
913
5c9cf0a3 9142012-11-27 Eli Zaretskii <eliz@gnu.org>
3fa1e84d
EZ
915
916 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
917 (Bug#11964)
918
22294a56
EZ
919 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
920 highlighting on the frame was cleared. Prevents assertion
921 violations when repeatedly clicking on the "Top" link of the
922 "bread-crumbs" in Info buffers.
923
5fbab051
PE
9242012-11-25 Paul Eggert <eggert@cs.ucla.edu>
925
926 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
927
bcd77a2b
KB
9282012-11-24 Ken Brown <kbrown@cornell.edu>
929
930 * keyboard.c (HAVE_MOUSE):
931 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
932 were always defined.
933
d125ca15 9342012-11-24 Eli Zaretskii <eliz@gnu.org>
8654a41b 935
24becea4
EZ
936 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
937 between bpos_covered and bpos_max. This fixes cursor display when
938 several display strings follow each other.
939
8654a41b
EZ
940 * .gdbinit (pgx): If the glyph's object is a string, display the
941 pointer to string data, rather than the value of the string object
942 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
943
cb5867b1
EZ
944 * indent.c (Fvertical_motion): If the starting position is covered
945 by a display string, return to one position before that, to avoid
946 overshooting it inside move_it_to. (Bug#12930)
947
f418b22e
DA
9482012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
949
950 * frame.h (struct frame): Remove display_preempted member
951 since all users are dead long ago.
952 * nsterm.h (struct x_output): Use the only dummy member.
953 * w32menu.c (pending_menu_activation): Remove since not
954 really used.
955 (set_frame_menubar): Adjust user.
956 * w32term.h (struct x_output): Drop outdated #if 0 code.
957 (struct w32_output): Use bitfields for explicit_parent,
26ec1f49
SM
958 asked_for_visible and menubar_active members.
959 Drop unused pending_menu_activation member.
f418b22e
DA
960 * xterm.h (struct x_output): Drop outdated #if 0 code.
961 Use bitfields for explicit_parent, asked_for_visible,
962 has_been_visible and net_wm_state_hidden_seen members.
963
a879f0ea
EZ
9642012-11-23 Eli Zaretskii <eliz@gnu.org>
965
966 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
967 of a literal "/". (Bug#12955)
968 (gl-stamp): Invoke fc.exe directly, not through cmd.
969
95ef7787
PE
9702012-11-23 Paul Eggert <eggert@cs.ucla.edu>
971
972 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
973 * dired.c: Assume HAVE_DIRENT_H.
974 (NAMLEN): Remove, replacing with ...
975 (dirent_namelen): New function. All uses changed. Use the GNU macro
976 _D_EXACT_NAMELEN if available, as it's faster than strlen.
977 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
978 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
979 * makefile.w32-in (DIR_H): Remove. All uses replaced with
980 $(NT_INC)/dirent.h.
981 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
982 * ndir.h: Rename to ../nt/inc/dirent.h.
983 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
984 Do not include <dirent.h>; no longer needed.
985 * w32.c: Include <dirent.h> rather than "ndir.h".
986
12645ae6
CY
9872012-11-23 Chong Yidong <cyd@gnu.org>
988
989 * xftfont.c (xftfont_open): Remove duplicate assignment.
990
5c747675
DA
9912012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
992
993 * alloc.c (Fgarbage_collect): Unblock input after clearing
994 gc_in_progress to avoid note_mouse_highlight glitch with GC.
995 * frame.h (FRAME_MOUSE_UPDATE): New macro.
996 * msdos.c (IT_frame_up_to_date): Use it here...
997 * w32term.c (w32_frame_up_to_date): ...here...
998 * xterm.c (XTframe_up_to_date): ...and here...
999 * nsterm.m (ns_frame_up_to_date): ...but not here.
1000 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
1001 Adjust users.
1002 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
1003 Do not check whether GC is in progress.
1004
6ceeb5f1
DA
10052012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
1006
1007 * xdisp.c (window_buffer_changed): New function.
1008 (update_menu_bar, update_tool_bar): Use it to
1009 simplify large 'if' statements.
1010 (redisplay_internal): Generalize commonly used
1011 'tail' and 'frame' local variables.
1012
ec84768f
EZ
10132012-11-22 Eli Zaretskii <eliz@gnu.org>
1014
1015 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
1016 with Windows system header.
1017
9239d970
PE
10182012-11-21 Paul Eggert <eggert@cs.ucla.edu>
1019
1020 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
1021 * alloc.c: Assume unistd.h exists.
1022 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
1023 * sysdep.c (get_current_dir_name): Assume getcwd exists.
1024 (getwd) [USG]: Remove; no longer needed.
1025 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
1026 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
1027 * w32.h (getcwd): Remove decl.
1028
954bba56
SM
10292012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
1030
1031 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
1032 Make it set selected_window as well.
1033 (update_tool_bar): Use it.
1034
6ef2e5ef 10352012-11-21 Ken Brown <kbrown@cornell.edu>
4ffea447
KB
1036
1037 * emacs.c (main): Set the G_SLICE environment variable for all
1038 Cygwin builds, not just GTK builds. See
1039 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
1040
6ef2e5ef 10412012-11-21 Eli Zaretskii <eliz@gnu.org>
88c4a13c
EZ
1042
1043 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
1044 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
1045 Define for the MSVC compiler.
1046
6ef2e5ef 1047 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
273ac8d1
EZ
1048
1049 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
1050 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
1051 dostounix_filename. Prevents crashes down the road, because
26ec1f49
SM
1052 dostounix_filename assumes it gets a unibyte string.
1053 Reported by Michel de Ruiter <michel@sentient.nl>, see
273ac8d1
EZ
1054 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
1055
eadf1faa
SM
10562012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
1057
1058 Conflate Qnil and Qunbound for `symbol-function'.
1059 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
1060 * lread.c (init_obarray): Set `function' fields to Qnil.
1061 * eval.c (Fcommandp): Ignore Qunbound.
1062 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
1063 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
1064 Test NILP rather than Qunbound.
1065 (Ffmakunbound): Set to Qnil.
1066 (Fsymbol_function): Never signal an error.
1067 (Finteractive_form): Ignore Qunbound.
1068
b83fdfa9
PE
10692012-11-20 Paul Eggert <eggert@cs.ucla.edu>
1070
1071 * eval.c (interactive_p): Remove no-longer-used decl.
1072
952580c5
DA
10732012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
1074
1075 * xdisp.c (buffer_shared): Adjust comment.
1076 (buffer_shared_and_changed): New function.
1077 (prepare_menu_bars, redisplay_internal): Use it to
1078 decide whether all windows or frames should be updated.
ea6de9b1
DA
1079 (window_outdated): New function.
1080 (text_outside_line_unchanged_p, redisplay_window): Use it.
1081 (redisplay_internal): Likewise. Fix indentation.
952580c5 1082
23ba2705
SM
10832012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
1084
1085 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
1086 (syms_of_eval): Remove corresponding defsubr.
1087 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
1088
6e9f7997
DC
10892012-11-19 Daniel Colascione <dancol@dancol.org>
1090
1091 * w32fns.c (Fx_file_dialog):
1092 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
1093 cygwin_convert_file_name*.
1094
1095 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
1096 Rename cygwin_convert_path* to cygwin_convert_file_name*.
1097
552a1590
PE
10982012-11-18 Paul Eggert <eggert@cs.ucla.edu>
1099
1100 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
1101
2ac9538d 11022012-11-18 Eli Zaretskii <eliz@gnu.org>
d8715cdf
EZ
1103
1104 * w32select.c: Include w32common.h before w32term.h, so that
1105 windows.h gets included before w32term.h uses some of its
1106 features, see below.
1107
23ba2705
SM
1108 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
1109 New typedefs.
1110 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
1111 New prototypes.
d8715cdf
EZ
1112 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
1113
2ac9538d 11142012-11-18 Jan Djärv <jan.h.d@swipnet.se>
7436fc63
JD
1115
1116 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
1117 (ns_select): Return at once if events are held (Bug#12834).
1118
2ac9538d 11192012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
86dcf21c 1120
1121 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
1122 Needed following 2012-10-20 change. (Bug#12902)
1123
c1f7ba3a
JB
11242012-11-18 Juanma Barranquero <lekktu@gmail.com>
1125
1126 * w32proc.c (waitpid): Remove unused label get_result.
1127
a75ce9d3
JB
11282012-11-17 Juanma Barranquero <lekktu@gmail.com>
1129
1130 * makefile.w32-in (SYSWAIT_H): New macro.
1131 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
1132 ($(BLD)/sysdep.$(O)): Update dependencies.
1133
49cdacda
PE
11342012-11-17 Paul Eggert <eggert@cs.ucla.edu>
1135
1136 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
1137 * callproc.c (relocate_fd): Assume F_DUPFD.
1138 * emacs.c, term.c (O_RDWR): Remove.
1139 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
1140 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
1141 * nsterm.m: Assume <fcntl.h> exists.
1142 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
1143 (create_pty, Fmake_network_process, server_accept_connection)
1144 (wait_reading_process_output, init_process_emacs):
1145 Assume O_NONBLOCK.
1146 (wait_reading_process_output): Put in a special case for WINDOWSNT
1147 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
1148 It's not clear this is needed, but it's a more-conservative change.
1149 (create_process): Assume FD_CLOEXEC.
1150 (create_process, create_pty): Assume O_NOCTTY.
1151 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
1152 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
1153 Omit if not DOS_NT, since F_GETFL is not defined there.
1154 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
1155 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
1156 (O_NOCTTY): Remove.
1157 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
1158 lack it, since gnulib guarantees this.
1159 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
1160
22bae83f
EZ
11612012-11-17 Eli Zaretskii <eliz@gnu.org>
1162
6ad30855
EZ
1163 * w32.c (faccessat): Pretend that directories have the execute bit
1164 set. Emacs expects that, e.g., in files.el:cd-absolute.
1165
22bae83f
EZ
1166 * w32proc.c (create_child): Don't clip the PID of the child
1167 process to fit into an Emacs integer, as this is no longer a
1168 restriction.
1169 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
1170 reaping only the process specified by PID argument, if that is
1171 positive. Use PID instead of dead_child to know which process to
1172 reap. Wait for the child to die only if WNOHANG is not in
1173 OPTIONS.
1174 (sys_select): Don't set dead_child.
1175
1176 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
1177 as it is no longer needed.
1178
1179 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
1180 no longer needed.
1181 (record_child_status_change): Remove the setting of
1182 record_at_most_one_child for the !WNOHANG case.
1183
a631d0e0
PE
11842012-11-17 Paul Eggert <eggert@cs.ucla.edu>
1185
1186 Fix problems in ns port found by static checking.
1187 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
1188 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
1189 not to process group.
1190 (ns_select): Use emacs_write, not write, as that's more robust
1191 in the presence of signals.
1192 (fd_handler:): Check for read errors.
1193
d56f2e49
GM
11942012-11-16 Glenn Morris <rgm@gnu.org>
1195
1196 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
1197
96e05507 11982012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
5c2a7148
SM
1199
1200 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
1201
96e05507 12022012-11-16 Eli Zaretskii <eliz@gnu.org>
730b2d8f
EZ
1203
1204 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
1205 use the same value of thread handle.
1206 (start_timer_thread): If the timer thread exited (due to error),
1207 clean up by closing the two handles it used. Duplicate the caller
1208 thread's handle here, so it gets duplicated only once, when
1209 launching the timer thread. Set priority of the timer thread, not
1210 the caller thread.
1211 (getitimer): Don't duplicate the caller thread's handle here.
1212 (Bug#12832)
1213
96e05507 12142012-11-16 Jan Djärv <jan.h.d@swipnet.se>
f99c65e5
JD
1215
1216 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
1217 called (Bug#12834).
1218
3d082a26
PE
12192012-11-16 Paul Eggert <eggert@cs.ucla.edu>
1220
1221 Remove no-longer-used pty_max_bytes variable.
1222 * process.c (pty_max_bytes): Remove; unused.
1223 (send_process): Do not set it.
1224
b72c161c
JB
12252012-11-15 Juanma Barranquero <lekktu@gmail.com>
1226
1227 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
1228 Update dependencies.
1229
bf20ea80
PE
12302012-11-15 Paul Eggert <eggert@cs.ucla.edu>
1231
1232 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
1233 This follows up on the 2012-09-29 patch that removed indirection
1234 for the 'function' field. Reported by Sergey Vinokurov in
1235 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
1236
14f20728
EZ
12372012-11-14 Eli Zaretskii <eliz@gnu.org>
1238
1239 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
1240 different name, as the MS runtime does not have such a function,
1241 and probably never will.) All callers changed. Ignore DIRFD
1242 value if PATH is an absolute file name, to match Posix spec
1243 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
1244 symlinks.
1245
77731919
DA
12462012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
1247
1248 * xdisp.c (echo_area_display, redisplay_internal):
1249 Omit redundant check whether frame_garbaged is set.
1250
73dcdb9f
PE
12512012-11-14 Paul Eggert <eggert@cs.ucla.edu>
1252
1253 Use faccessat, not access, when checking file permissions (Bug#12632).
1254 This fixes a bug that has been present in Emacs since its creation.
1255 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
1256 which must set some sort of record. (Torek's bug report was against
1257 a predecessor of GNU Emacs, but GNU Emacs happened to have the
1258 same common flaw.) See Torek's Usenet posting
1259 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
1260 Posted: Fri Apr 8 14:18:56 1983.
1261 * Makefile.in (LIB_EACCESS): New macro.
1262 (LIBES): Use it.
1263 * callproc.c (init_callproc):
1264 * charset.c (init_charset):
1265 * fileio.c (check_existing, check_executable, check_writable)
1266 (Ffile_readable_p):
1267 * lread.c (openp, load_path_check):
1268 * process.c (allocate_pty):
1269 * xrdb.c (file_p):
1270 Use effective UID when checking permissions, not real UID.
1271 * callproc.c (init_callproc):
1272 * charset.c (init_charset):
1273 * lread.c (load_path_check, init_lread):
1274 Test whether directories are accessible, not merely whether they exist.
1275 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
1276 * fileio.c (check_existing, check_executable, check_writable)
1277 (Ffile_readable_p):
1278 Use symbolic names instead of integers for the flags, as they're
1279 portable now.
1280 (check_writable): New arg AMODE. All uses changed.
1281 Set errno on failure.
1282 (Ffile_readable_p): Use faccessat, not stat + open + close.
1283 (Ffile_writable_p): No need to call check_existing + check_writable.
1284 Just call check_writable and then look at errno. This saves a syscall.
1285 dir should never be nil; replace an unnecessary runtime check
1286 with an eassert. When checking the parent directory of a nonexistent
1287 file, check that the directory is searchable as well as writable, as
1288 we can't create files in unsearchable directories.
1289 (file_directory_p): New function, which uses 'stat' on most platforms
1290 but faccessat with D_OK (for efficiency) if WINDOWSNT.
1291 (Ffile_directory_p, Fset_file_times): Use it.
1292 (file_accessible_directory_p): New function, which uses a single
1293 syscall for efficiency.
1294 (Ffile_accessible_directory_p): Use it.
1295 * xrdb.c (file_p): Use file_directory_p.
1296 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
1297 * lread.c (openp): When opening a file, use fstat rather than
1298 stat, as that avoids a permissions race. When not opening a file,
1299 use file_directory_p rather than stat.
1300 (dir_warning): First arg is now a usage string, not a format.
1301 Use errno. All uses changed.
1302 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
1303 that merely introduced a race.
1304 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
1305 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
1306 and similarly for the other O_* flags.
1307 * w32.c (sys_faccessat): Rename from sys_access and switch to
1308 faccessat's API. All uses changed.
1309 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
1310 (magic_db): Rename from magic_file_p.
1311 (magic_db, search_magic_path): Return an XrmDatabase rather than a
1312 char *, so that we don't have to test for file existence
1313 separately from opening the file for reading. This removes a race
1314 fixes a permission-checking problem, and simplifies the code.
1315 All uses changed.
1316 (file_p): Remove; no longer needed.
1317
2a14f83b
DA
13182012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
1319
1320 Omit glyphs initialization at startup.
1321 * dispnew.c (glyphs_initialized_initially_p): Remove.
1322 (adjust_frame_glyphs_initially): Likewise. Adjust users.
1323 (Fredraw_frame): Move actual code from here...
c7085245 1324 (redraw_frame): ...to here. Add eassert. Adjust comment.
2a14f83b
DA
1325 (Fredraw_display): Use redraw_frame.
1326 * xdisp.c (clear_garbaged_frames): Likewise.
1327
f78ee6af 13282012-11-13 Eli Zaretskii <eliz@gnu.org>
32520273
EZ
1329
1330 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
1331 passed to pint2str and pint2hrstr to be at most the size of the
1332 frame's decode_mode_spec_buffer. This avoids crashes with very
1333 large values of FIELD_WIDTH argument to decode_mode_spec.
1334 (Bug#12867)
1335
b95a9c0c
PE
13362012-11-13 Paul Eggert <eggert@cs.ucla.edu>
1337
1338 Fix a race with verify-visited-file-modtime (Bug#12863).
1339 Since at least 1991 Emacs has ignored an mtime difference of no
1340 more than one second, but my guess is that this was to work around
1341 file system bugs that were fixed long ago. Since the race is
1342 causing problems now, let's remove that code.
1343 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
1344 whose time stamp is off by no more than a second. Insist that the
1345 file time stamps match exactly.
1346
be49ba74
DA
13472012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
1348
1349 * frame.h (struct frame): Convert external_tool_bar member to
1350 1-bit unsigned bitfield.
1351 * termhooks.h (struct terminal): Remove mouse_moved member since
1352 all users are long dead. Adjust comment on mouse_position_hook.
1353
5b04e9f9
DA
13542012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
1355
1356 Simplify by using FOR_EACH_FRAME here and there.
1357 * frame.c (next_frame, prev_frame, other_visible_frames)
1358 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
1359 * w32term.c (x_window_to_scroll_bar): Likewise.
1360 * window.c (window_list): Likewise.
1361 * xdisp.c (x_consider_frame_title): Likewise.
1362 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
1363 * xfns.c (x_window_to_frame, x_any_window_to_frame)
1364 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
1365 * xmenu.c (menubar_id_to_frame): Likewise.
1366 * xselect.c (frame_for_x_selection): Likewise.
1367 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
1368 (x_window_to_menu_bar): Likewise.
1369 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
1370
76ae24d7
PE
13712012-11-12 Paul Eggert <eggert@cs.ucla.edu>
1372
12cc4337
PE
1373 * data.c (Qdefalias_fset_function): Now static.
1374
76ae24d7
PE
1375 Another tweak to vectorlike_header change.
1376 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
1377 Remove, and replace all uses with ...
1378 (next_in_free_list, set_next_in_free_list):
1379 New functions, which respect C's aliasing rules better.
1380
1479c557
PE
13812012-11-11 Paul Eggert <eggert@cs.ucla.edu>
1382
1383 * window.c (list4i): Rename from 'quad'. All uses changed.
1384 Needed because <sys/types.h> defines 'quad' on Solaris 10.
1385
11235c03
JB
13862012-11-11 Juanma Barranquero <lekktu@gmail.com>
1387
1388 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
1389 warning about mixing declarations and code in ISO C90.
1390
6baf66d5 13912012-11-10 Martin Rudalics <rudalics@gmx.at>
fdaf534a
MR
1392
1393 * window.c (Fsplit_window_internal): Set combination limit of
1394 new parent window to t iff Vwindow_combination_limit is t;
1395 fixing a regression introduced with the change from 2012-09-22.
6baf66d5 1396 (Fset_window_combination_limit): Fix doc-string.
fdaf534a 1397
6baf66d5 13982012-11-10 Eli Zaretskii <eliz@gnu.org>
acf93bcf
EZ
1399
1400 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
1401 amount when the scroll margins are too large. When scrolling
1402 backwards in the buffer, give up if cannot reach point or the
23ba2705
SM
1403 scroll margin within a reasonable number of screen lines.
1404 Fixes point position in window under scroll-up/down-aggressively when
acf93bcf
EZ
1405 point is positioned many lines beyond the window top/bottom.
1406 (Bug#12811)
1407
508f51f5
EZ
1408 * ralloc.c (relinquish): If real_morecore fails to return memory
1409 to the system, don't crash; instead, leave the last heap
1410 unchanged and return. (Bug#12774)
1411
32e5c58c
SM
14122012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
1413
1414 * lisp.h (AUTOLOADP): New macro.
1415 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
1416 * data.c (Ffset): Remove special ad-advice-info handling.
1417 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
1418 (Fsubr_arity): CSE.
1419 (Finteractive_form): Simplify.
1420 (Fquo): Don't insist on having at least 2 arguments.
1421 (Qdefalias_fset_function): New var.
1422
719b0aa5
JD
14232012-11-09 Jan Djärv <jan.h.d@swipnet.se>
1424
4ab15c3e
JD
1425 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
1426
719b0aa5
JD
1427 * nsfont.m (Qcondensed, Qexpanded): New variables.
1428 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
1429 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
1430
535cc8e9
DA
14312012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
1432
1433 Fix recently introduced crash on MS-Windows (Bug#12839).
1434 * w32term.h (struct scroll_bar): Use convenient header.
1435 (SCROLL_BAR_VEC_SIZE): Remove.
1436 * w32term.c (x_scroll_bar_create): Use VECSIZE.
1437
7d377c48
DA
14382012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
1439
1440 Tweak last vectorlike_header change.
1441 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
1442 vectorlike object on the free list. This is introduced to avoid
1443 some (but not all) pointer casting and aliasing problems, see
1444 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
1445 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
1446 objects.
1447 (xvectype, xvecsize): Use them to examine Lisp_Object values.
1448
7ad27466
JD
14492012-11-09 Jan Djärv <jan.h.d@swipnet.se>
1450
32e5c58c 1451 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
7ad27466
JD
1452 been removed, so remove them here also.
1453
57618ecf
SM
14542012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
1455
1456 * doc.c (Fdocumentation): Handle new property
1457 dynamic-docstring-function to replace the old ad-advice-info.
1458
53371430
PE
14592012-11-09 Paul Eggert <eggert@cs.ucla.edu>
1460
1461 * fns.c (Qeql, hashtest_eq): Now static.
1462
61ddb1b9
SM
14632012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
1464
1465 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
1466 * fns.c (hashfn_eq, hashfn_eql, sxhash):
1467 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
1468 * buffer.c (compare_overlays): Use XLI rather than XHASH.
1469
04a2d0d3
PE
14702012-11-08 Paul Eggert <eggert@cs.ucla.edu>
1471
1472 Use same hash function for hashfn_profiler as for hash_string etc.
1473 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
1474 * lisp.h (sxhash_combine): New inline function, with the contents
1475 of the old SXHASH_COMBINE.
1476 * profiler.c (hashfn_profiler): Use it, instead of having a
1477 special hash function containing a comparison that always yields 1.
1478
de5ef41a
SM
14792012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
1480
1481 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
1482 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
1483 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
1484 Remove unused vars.
1485
a23c4171
JD
14862012-11-08 Jan Djärv <jan.h.d@swipnet.se>
1487
1488 * image.c (xpm_make_color_table_h): Fix compiler error because
1489 make_hash_table changed.
1490
074d7bb0
JD
14912012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
1492
1493 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
1494
b7432bb2
SM
14952012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
1496
1497 Use ad-hoc comparison function for the profiler's hash-tables.
1498 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
1499 (make_log): Use them.
1500 (handle_profiler_signal): Don't inhibit quit any longer since we don't
1501 call Fequal any more.
1502 (Ffunction_equal): New function.
1503 (cmpfn_profiler, hashfn_profiler): New functions.
1504 (syms_of_profiler): Initialize them.
1505 * lisp.h (struct hash_table_test): New struct.
1506 (struct Lisp_Hash_Table): Use it.
1507 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
1508 * fns.c (make_hash_table): Take a struct to describe the test.
1509 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
1510 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
1511 (hash_lookup, hash_remove_from_table): Move assertion checking of
1512 hashfn result here. Check hash-equality before calling cmpfn.
1513 (Fmake_hash_table): Adjust call to make_hash_table.
1514 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
1515 (syms_of_fns): Initialize them.
1516 * emacs.c (main): Move syms_of_fns earlier.
1517 * xterm.c (syms_of_xterm):
1518 * category.c (hash_get_category_set): Adjust call to make_hash_table.
1519 * print.c (print_object): Adjust to new hash-table struct.
1520 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
1521
88002743
EZ
15222012-11-08 Eli Zaretskii <eliz@gnu.org>
1523
1524 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
1525 value of w32-scroll-lock-modifier is neither nil nor one of the
1526 known key modifiers. (Bug#12806)
1527
914adc42
DA
15282012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
1529
1530 Shrink struct vectorlike_header to the only size field.
1531 * lisp.h (enum pvec_type): Avoid explicit enum member values.
1532 Adjust comment.
1533 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
1534 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
1535 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
1536 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
1537 information from the vector header. Adjust comment.
1538 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
1539 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
1540 layout.
1541 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
1542 (struct vectorlike_header): Remove next member. Adjust comment.
1543 (struct Lisp_Subr): Add convenient header. Adjust comment.
1544 (allocate_pseudovector): Adjust prototype.
1545 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
1546 (sweep_string, lisp_malloc): Remove useless prototypes.
1547 (enum mem_type): Adjust comment.
1548 (NEXT_IN_FREE_LIST): New macro.
1549 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
1550 (Fmake_bool_vector): Likewise.
1551 (struct large_vector): New type to represent allocation unit for
1552 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
1553 (large_vectors): Change type to struct large_vector.
1554 (allocate_vector_from_block): Simplify.
1555 (PSEUDOVECTOR_NBYTES): Replace with...
1556 (vector_nbytes): ...new function. Adjust users.
1557 (sweep_vectors): Adjust processing of large vectors.
1558 (allocate_vectorlike): Likewise.
1559 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
1560 Add easserts. Adjust XSETPVECTYPESIZE usage.
1561 (allocate_buffer): Use BUFFER_PVEC_INIT.
1562 (live_vector_p): Adjust to match large vector.
1563 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
1564 * buffer.h (struct buffer): Add next member.
1565 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
1566 New macros.
1567 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
1568 * fns.c (internal_equal): Adjust to match enum pvec_type change.
1569 (copy_hash_table): Adjust to match vector header change.
1570 * lread.c (defsubr): Use XSETPVECTYPE.
1571 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
1572 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
1573 (xvecsize): New command.
1574
c66f21ea
DA
15752012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
1576
1577 * keyboard.c (event_to_kboard): Do not dereference
1578 frame_or_window field of SELECTION_REQUEST_EVENT
1579 and SELECTION_CLEAR_EVENT events (Bug#12814).
1580 * xterm.h (struct selection_input_event): Adjust comment.
1581
eb147960
EZ
15822012-11-07 Eli Zaretskii <eliz@gnu.org>
1583
dab72075
EZ
1584 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
1585 such as Scroll Lock, if the respective keys are treated as
1586 function keys, not as modifiers. This avoids destroying non-ASCII
6b064c16 1587 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
eb147960 1588
5890e400
DA
15892012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
1590
1591 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
1592
b6b3b294
PE
15932012-11-06 Paul Eggert <eggert@cs.ucla.edu>
1594
1595 Restore some duplicate definitions (Bug#12814).
1596 This undoes part of the 2012-11-03 changes. Some people build
1597 with plain -g rather than with -g3, and they need the duplicate
1598 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
1599 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
1600 Define as macros, as well as as enums or as constants.
1601
e770aad5
JD
16022012-11-06 Jan Djärv <jan.h.d@swipnet.se>
1603
1604 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
1605 to keypad keys (Bug#12816).
1606
68f8f1c0
PE
16072012-11-06 Paul Eggert <eggert@cs.ucla.edu>
1608
1609 Minor adjustments of recently-changed frame functions.
1610 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
1611 known to be a frame (we're in the FRAMEP branch).
1612 * lisp.h (Qframep): Remove decl. frame.h declares this.
1613 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
1614 since they're meant for Lisp fixnum values.
1615
72f94d4b
DA
16162012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
1617
1618 * window.c (Fwindow_combination_limit): Revert to the only
1619 required argument and adjust docstring as suggested in
1620 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
1621 by Martin Rudalics <rudalics@gmx.at>.
1622
d9f07150
DA
16232012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
1624
1625 Widely used frame validity and checking functions.
1626 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
1627 * frame.c (decode_live_frame, decode_any_frame): New functions.
1628 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
1629 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
1630 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
1631 (Fframe_pointer_visible_p): Use decode_any_frame.
1632 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
1633 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
1634 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
1635 (Fframe_focus): Likewise. Allow zero number of arguments.
1636 Adjust docstring.
1637 (frame_buffer_list, frame_buffer_predicate): Remove.
1638 * lisp.h (frame_buffer_predicate): Remove prototype.
1639 * buffer.c (Fother_buffer): Use decode_any_frame.
1640 * xdisp.c (Ftool_bar_lines_needed): Likewise.
1641 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
1642 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
1643 (Fclose_font, Ffont_info): Use decode_live_frame.
1644 * fontset.c (check_fontset_name): Likewise.
1645 * terminal.c (Fframe_terminal): Likewise.
1646 * w32fns.c (check_x_frame): Likewise.
1647 * window.c (Fminibuffer_window, Fwindow_at)
1648 (Fcurrent_window_configuration): Likewise.
1649 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
1650 Likewise. Allow zero number of arguments. Adjust docstring.
1651 * dispnew.c (Fredraw_frame): Likewise.
1652 * xfaces.c (frame_or_selected_frame): Remove.
1653 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
1654 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
1655 (Fframe_face_alist): Use decode_live_frame.
1656 * xfns.c (check_x_frame): Likewise.
1657
89bc0592
DA
16582012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
1659
1660 * window.c (quad): New function.
1661 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
1662 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
1663 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
1664 (Fwindow_line_height): Use it.
1665 (Fwindow_fringes): Use list3.
1666 (Fwindow_scroll_bars): Use list4.
1667 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
1668 (Fwindow_combination_limit): Allow zero number of arguments.
1669
c8e3a9c3
EZ
16702012-11-05 Eli Zaretskii <eliz@gnu.org>
1671
1672 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
1673
8e2417bf 1674 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
c8e3a9c3 1675 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
ae600a8e 1676 file descriptor 2 for standard error. (Bug#12805)
c8e3a9c3 1677
209c6a58
CY
16782012-11-05 Chong Yidong <cyd@gnu.org>
1679
1680 * process.c (wait_reading_process_output): Revert previous change.
1681
8148369c
PE
16822012-11-05 Paul Eggert <eggert@cs.ucla.edu>
1683
dd0333b6
PE
1684 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
1685 This removes code that has been obsolete since around 1990.
1686 * callproc.c (Fcall_process):
1687 * emacs.c (main):
1688 * process.c (create_process):
1689 * term.c (dissociate_if_controlling_tty):
1690 Assume setsid exists.
1691 * callproc.c (child_setup): Assume setpgid exists and behaves as
1692 per POSIX.1-1988 or later.
1693 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
1694 * emacs.c (shut_down_emacs):
1695 * sysdep.c (sys_suspend, init_foreground_group):
1696 Assume getpgrp behaves as per POSIX.1-1998 or later.
1697 * msdos.c (setpgrp): Remove.
1698 (tcgetpgrp, setpgid, setsid): New functions.
1699 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
1700 * term.c (no_controlling_tty): Remove; unused.
1701 * w32proc.c (setpgrp): Remove.
1702 (setsid, tcgetpgrp): New functions.
1703
8148369c
PE
1704 Simplify by assuming __fpending.
1705 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
1706 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
1707 Do not assume that __fpending's result fits in int.
1708
76abf5e5
PE
17092012-11-04 Paul Eggert <eggert@cs.ucla.edu>
1710
06b63c9b
PE
1711 Remove EMACS_OUTQSIZE+sleep hack.
1712 * dispnew.c (update_frame_1): Remove hack for terminals slower
de5ef41a
SM
1713 than 2400 bps, which throttled Emacs by having it sleep.
1714 This code hasn't worked since at least 2007, when the multi-tty stuff
06b63c9b
PE
1715 was added, and anyway those old terminals are long dead.
1716 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
1717 without the dispnew.c change, as dispnew.c doesn't include systty.h.
1718
76abf5e5
PE
1719 Fix data-loss with --version (Bug#9574).
1720 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
1721 as we can't assume that emacs_strerror is initialized, and strerror
1722 is good enough here.
1723 (main): Invoke atexit earlier, to catch earlier instances of
1724 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
1725
8f31e74b
MM
17262012-11-04 Michael Marchionna <tralfaz@pacbell.net>
1727
1728 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
1729 (keyDown): Remap keypad keys to X11 virtual key codes.
1730
0d879dca
PE
17312012-11-03 Paul Eggert <eggert@cs.ucla.edu>
1732
7ccfb720
PE
1733 Fix data-loss with --batch (Bug#9574).
1734 * emacs.c: Include <close-stream.h>.
1735 (close_output_streams): New function.
1736 (main): Pass it to atexit, so that Emacs closes stdout and stderr
1737 and handles errors appropriately.
1738 (Fkill_emacs): Don't worry about flushing, as close_output_stream
1739 does that now.
1740
0b3d4a47
PE
1741 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
1742 The symptom is a diagnostic "GLib-WARNING **: In call to
1743 g_spawn_sync(), exit status of a child process was requested but
1744 SIGCHLD action was set to SIG_IGN and ECHILD was received by
1745 waitpid(), so exit status can't be returned." The diagnostic
1746 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
1747 The real bug is a race condition between Emacs and glib: Emacs
1748 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
1749 so that glib can't find it. Work around the bug by invoking
1750 waitpid only on subprocesses that Emacs itself creates.
1751 * process.c (create_process, record_child_status_change):
1752 Don't use special value -1 in pid field, as the caller now must
de5ef41a
SM
1753 know the pid rather than having the callee infer it.
1754 The inference was sometimes incorrect anyway, due to another race.
0b3d4a47
PE
1755 (create_process): Set new 'alive' member if child is created.
1756 (process_status_retrieved): New function.
1757 (record_child_status_change): Use it.
1758 Accept negative 1st argument, which means to wait for the
1759 processes that Emacs already knows about. Move special-case code
1760 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
1761 processes that have already been waited for, by testing and
1762 clearing new 'alive' member.
1763 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
1764 now does this internally.
1765 (handle_child_signal): Let record_child_status_change do all
1766 the work, since we do not want to reap all exited child processes,
1767 only the child processes that Emacs itself created.
1768 * process.h (Lisp_Process): New boolean member 'alive'.
1769
0d879dca
PE
1770 Omit duplicate definitions no longer needed with gcc -g3.
1771 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
1772 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
1773 Define only as macros. There's no longer any need to also define
1774 these symbols as enums or as constants, since we now assume
1775 gcc -g3 when debugging.
1776
3478f4b5
EZ
17772012-11-03 Eli Zaretskii <eliz@gnu.org>
1778
1779 * lisp.mk: Adjust comments to the fact that term/internal is now
1780 loaded from loadup.el.
1781
1782 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
1783 (msdos_fatal_signal): New function.
1784 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
1785 its argument list.
1786
1787 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
1788 for GCC versions before 4.
1789 (emacs_raise): Define to call msdos_fatal_signal.
1790
1791 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
1792 iterator when starting in the middle of a display or overlay
1793 string. (Bug#12745)
1794
85fabcb7
CY
17952012-11-03 Chong Yidong <cyd@gnu.org>
1796
1797 * process.c (wait_reading_process_output): Clean up the last
1798 change.
1799
893cc455
CY
18002012-11-03 Jim Paris <jim@jtan.com> (tiny change)
1801
1802 * process.c (wait_reading_process_output): Avoid a race condition
1803 with SIGIO delivery (Bug#11536).
1804
0f7b074f
CY
18052012-11-03 Chong Yidong <cyd@gnu.org>
1806
1807 * buffer.c (cursor_type): Untabify docstring.
1808
3737fee7
DA
18092012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
1810
1811 * frame.h (struct frame): Drop can_have_scroll_bars member
1812 which is meaningless for a long time. Adjust comments.
1813 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
1814 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
1815
b6a9e8b1
DA
18162012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
1817
1818 * window.c (decode_next_window_args): Update window arg after
1819 calling decode_live_window and so fix crash reported at
1820 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
1821 by Juanma Barranquero <lekktu@gmail.com>.
1822 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
1823 * font.c (Ffont_at): Likewise.
1824
600d4768
JD
18252012-11-01 Jan Djärv <jan.h.d@swipnet.se>
1826
1827 * widget.c (resize_cb): New function.
1828 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
1829 (EmacsFrameResize): Check if all is up to date before changing frame
1830 size.
1831
1005b4b9
EZ
18322012-11-02 Eli Zaretskii <eliz@gnu.org>
1833
1834 Implement backtrace output for fatal errors on MS-Windows.
1835 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
1836 (BACKTRACE_LIMIT_MAX): New macro.
1837 (w32_backtrace): New function.
1838 (emacs_abort): Use w32_backtrace when the user chooses not to
1839 attach a debugger. Update the text of the abort dialog.
1840
b9e9df47
DA
18412012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
1842
1843 Window-related stuff cleanup here and there.
1844 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
1845 Use decode_any_window.
1846 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
1847 * xdisp.c (Fformat_mode_line): Likewise.
1848 * font.c (Ffont_at): Use decode_live_window.
1849 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
1850 * window.c (decode_next_window_args): Likewise.
1851 (decode_any_window): Remove static.
1852 * window.h (decode_any_window): Add prototype.
1853 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
1854 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
1855 respectively.
1856
2b371ff7
DA
18572012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
1858
1859 Remove pad from struct input_event.
1860 * termhooks.h (struct input_event): Remove padding field.
1861 Adjust comment.
1862 * keyboard.c (event_to_kboard): Simplify because frame_or_window
1863 member is never cons for a long time. Adjust comment.
1864 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
1865 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
1866 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
1867 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
1868
7e8b50d9
EZ
18692012-11-01 Eli Zaretskii <eliz@gnu.org>
1870
1871 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
1872
322aea6d
PE
18732012-10-31 Paul Eggert <eggert@cs.ucla.edu>
1874
1875 Fix crash when using Emacs as commit editor for git (Bug#12697).
1876 * callproc.c (setpgrp): Remove macro, as we now use setpgid
1877 and it is configured in conf_post.h.
1878 (Fcall_process): Don't invoke both setsid and setpgid; the former
1879 is enough, if it exists.
1880 * callproc.c (Fcall_process, child_setup):
1881 * process.c (create_process): Use setpgid.
1882 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
1883 for the real thing.
1884 * dispnew.c (init_display): Initialize the foreground group
1885 if we are running a tty display.
1886 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
1887 * lisp.h (init_foreground_group): New decl.
1888 * sysdep.c (inherited_pgroup): New static var.
1889 (init_foreground_group, tcsetpgrp_without_stopping)
1890 (narrow_foreground_group, widen_foreground_group): New functions.
1891 (init_sys_modes): Narrow foreground group.
1892 (reset_sys_modes): Widen foreground group.
1893
220cb2bd
MA
18942012-10-31 Michael Albinus <michael.albinus@gmx.de>
1895
1896 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
1897
218e997a
MR
18982012-10-31 Martin Rudalics <rudalics@gmx.at>
1899
1900 * minibuf.c (read_minibuf): Restore current buffer since
1901 choose_minibuf_frame calling Fset_frame_selected_window may
1902 change it (Bug#12766).
1903
02615da0
JD
19042012-10-30 Jan Djärv <jan.h.d@swipnet.se>
1905
1906 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
1907
aee5b18e
KH
19082012-10-30 Kenichi Handa <handa@gnu.org>
1909
1910 * font.c (Ffont_at): If WINDOW is specified and it is not
1911 displaying the current buffer, signal an error.
1912
ba116008
DC
19132012-10-29 Daniel Colascione <dancol@dancol.org>
1914
de5ef41a
SM
1915 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
1916 In preparation for fixing bug#12739, move these functions from
ba116008
DC
1917 here...
1918
1919 * coding.h, coding.c: ... to here, and compile them only when
53372c27
DC
1920 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
1921 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
ba116008 1922
640bf8ad
EZ
19232012-10-28 Eli Zaretskii <eliz@gnu.org>
1924
1925 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
1926 (timer_loop, getitimer, setitimer): Use it instead of
1927 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
1928 'clock'.
1929 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
1930 literal 10000.
1931
64ccff5f
JD
19322012-10-28 Jan Djärv <jan.h.d@swipnet.se>
1933
1934 * nsterm.m (NO_APPDEFINED_DATA): New define.
1935 (last_appdefined_event_data): New variable
1936 (last_appdefined_event): Remove.
1937 (ns_select): Initialize t from last_appdefined_event_data instead
1938 of [last_appdefined_event data1].
1939 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
1940 remove last_appdefined_event (Bug#12698).
1941
e483264c
SM
19422012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
1943
1944 * frame.c (x_set_font): Catch internal error.
1945
6c16c13e
EZ
19462012-10-27 Eli Zaretskii <eliz@gnu.org>
1947
e483264c
SM
1948 Avoid overflow in w32 implementation of interval timers.
1949 When possible, for ITIMER_PROF count only times the main thread
6c16c13e
EZ
1950 actually executes.
1951 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
2e612797
EZ
1952 'volatile ULONGLONG' types. All the other data which was
1953 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
6c16c13e
EZ
1954 (GetThreadTimes_Proc): New typedef.
1955 (w32_get_timer_time): New function, returns a suitable time value
1956 for the timer.
1957 (timer_loop): Enter critical section when accessing ULONGLONG
1958 values of the itimer_data struct, as these accesses are no longer
e483264c
SM
1959 atomic. Call 'w32_get_timer_time' instead of 'clock'.
1960 Remove unused variable.
6c16c13e
EZ
1961 (init_timers): Initialize s_pfn_Get_Thread_Times.
1962 (start_timer_thread): Don't assign itimer->caller_thread here.
1963 (getitimer): Assign itimer->caller_thread here.
1964 (setitimer): Always call getitimer to get the value of ticks_now.
2f246cd3 1965 (sys_spawnve): Avoid compiler warning about format mismatch.
6c16c13e 1966
ccc83f50
EZ
19672012-10-26 Eli Zaretskii <eliz@gnu.org>
1968
1969 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
1970 mouse movement events if the menu bar is active. This avoids
1971 producing a busy "hour-glass" cursor by Windows if the mouse
1972 pointer is positioned over a tooltip shown for some menu item.
1973
69deda53
PE
19742012-10-25 Paul Eggert <eggert@cs.ucla.edu>
1975
1976 Don't assume process IDs fit in int.
1977 * emacs.c (shut_down_emacs) [!DOS_NT]:
1978 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
1979 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
1980 Use pid_t, not int, to store process IDs, as 'int'
1981 is not wide enough on a few platforms (e.g., AIX and IRIX).
1982
7e70a152
KH
19832012-10-23 Kenichi Handa <handa@gnu.org>
1984
1985 The following change is to make face-font-rescale-alist work
1986 correctly for non-ASCII fonts.
1987
1988 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
1989 (font_open_for_lface): Handle Vface_font_rescale_alist.
1990
49238e7f
CY
19912012-10-23 Chong Yidong <cyd@gnu.org>
1992
1993 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
1994
5ec86886
JD
19952012-10-21 Jan Djärv <jan.h.d@swipnet.se>
1996
ef446959
JD
1997 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
1998 for screen font.
1999 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
2000
5ec86886
JD
2001 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
2002 event (Bug#12681).
2003
ee7a418d
GM
20042012-10-21 Glenn Morris <rgm@gnu.org>
2005
2006 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
2007
4973679b
PE
20082012-10-20 Paul Eggert <eggert@cs.ucla.edu>
2009
2010 Port to OpenBSD 5.1.
2011 * frame.c (Fmouse_position, Fmouse_pixel_position):
2012 * xdisp.c (produce_stretch_glyph):
2013 Declare local vars only when they're needed.
2014 This is clearer and avoids a warning on OpenBSD about unused vars.
2015 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
2016 This is safer, and avoids OpenBSD warnings about unused vars.
2017 * keyboard.c (record_menu_key): Remove unnecessary decl.
2018 (poll_timer): Define only if POLL_FOR_INPUT is defined.
2019 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
2020 as our definition clashes with OpenBSD's.
2021 * xfaces.c (load_face_colors, check_lface_attrs)
2022 (get_lface_attributes_no_remap, get_lface_attributes)
2023 (lface_fully_specified_p, x_supports_face_attributes_p)
2024 (tty_supports_face_attributes_p, face_fontset, realize_face)
2025 (realize_x_face, realize_tty_face):
2026 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
2027 merely Lisp_Object *. This is more informative and avoids
2028 a warning on OpenBSD about accessing beyond an object's size.
2029
c664f463
CY
20302012-10-20 Chong Yidong <cyd@gnu.org>
2031
2032 * lread.c (Fload): Doc fix (Bug#12592).
2033
6ec83f92 20342012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
a0d7415f
KH
2035
2036 * font.c (Ffont_at): Fix previous change.
2037
d2824928
EZ
20382012-10-19 Eli Zaretskii <eliz@gnu.org>
2039
e483264c
SM
2040 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
2041 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
c052c554
EZ
2042 for the reasons.
2043
d2824928
EZ
2044 * alloc.c (NSTATICS): Decrease to 0x800.
2045
f60d391f
SM
20462012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
2047
4a0e1924 2048 * fns.c (Fnreverse): Include the problem element when signaling an
f60d391f
SM
2049 error (bug#12677).
2050
1a9327d5
JD
20512012-10-18 Jan Djärv <jan.h.d@swipnet.se>
2052
2053 * nsterm.m (ns_select): Check writefds before call to
2054 FD_ISSET (Bug#12668).
2055
14145a1e
DC
20562012-10-18 Daniel Colascione <dancol@dancol.org>
2057
2058 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
2059 (staticpro): If we run out of staticpro slots, die with an
2060 informative error instead of just calling emacs_abort.
2061
1f76f6f5
MR
20622012-10-18 Martin Rudalics <rudalics@gmx.at>
2063
2064 Fix two flaws reported by Dmitry Antipov.
2065 * window.c (Ftemp_output_buffer_show): Remove.
2066 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
2067 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
2068
fcf14875
EZ
20692012-10-17 Eli Zaretskii <eliz@gnu.org>
2070
1f76f6f5
MR
2071 * makefile.w32-in ($(BLD)/w32.$(O)):
2072 ($(BLD)/vm-limit.$(O)):
2073 ($(BLD)/term.$(O)):
2074 ($(BLD)/unexw32.$(O)):
2075 ($(BLD)/fileio.$(O)):
a68089e4
EZ
2076 ($(BLD)/dispnew.$(O)): Update dependencies.
2077
2078 * w32term.h (w32_initialize_display_info, initialize_w32_display):
2079 Add prototypes.
2080
2081 * w32proc.c: Include ctype.h.
2082
2083 * w32.h (init_environment, check_windows_init_file)
2084 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
2085 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
2086 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
2087 (sys_link): Add prototypes.
2088
2089 * w32.c: Include w32select.h.
2090 (sys_access, e_malloc, sys_select): Add prototypes.
2091 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
2092
2093 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
2094
2095 * unexw32.c: Include lisp.h and w32.h.
2096
2097 * term.c [WINDOWSNT]: Include w32term.h.
2098
2099 * process.c [WINDOWSNT]: Add prototype of sys_select.
2100
2101 * fileio.c [WINDOWSNT]: Include w32.h.
2102
2103 * dispnew.c [WINDOWSNT]: Include w32.h.
2104
fcf14875
EZ
2105 * cygw32.c (Fcygwin_convert_path_to_windows)
2106 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
2107 Lisp_Object values. (Bug#12661)
2108
2109 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
2110 to Lisp_Object. (Bug#12661)
2111
fe0b1ec4
KH
21122012-10-17 Kenichi Handa <handa@gnu.org>
2113
2114 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
2115 invalidate.
2116
d556ebf9
DA
21172012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
2118
2119 * buffer.c (Fkill_buffer): When unchaining the marker,
1f9f395d 2120 reset its buffer pointer to NULL (Bug#12652).
d556ebf9 2121
f0863a54
DA
21222012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
2123
2124 Do not verify indirection counters of killed buffers (Bug#12579).
2125 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
2126 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
2127
12fbe755
DA
21282012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
2129
2130 * alloc.c (Fmake_byte_code): Fix typo in comment.
2131 * print.c (print_interval): Define as static to match prototype.
2132 * indent.c (disptab_matches_widthtab, recompute_width_table):
2133 Convert to eassert.
2134
61655b89
DA
21352012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
2136
2137 * editfns.c (get_system_name): Remove.
2138 * lisp.h (get_system_name): Remove prototype.
2139 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
2140 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
2141
9520f2f2
DC
21422012-10-15 Daniel Colascione <dancol@dancol.org>
2143
2144 * dbusbind.c: Add comment explaining reason for previous change.
2145
dca778d5
MR
21462012-10-15 Martin Rudalics <rudalics@gmx.at>
2147
2148 * window.c (Fwindow_end): Rewrite check whether cached position
2149 can be used (Bug#12600).
2150 (resize_frame_windows, grow_mini_window, shrink_mini_window):
2151 Set windows_or_buffers_changed.
2152
3e0341b0
DC
21532012-10-15 Daniel Colascione <dancol@dancol.org>
2154
2155 * dbusbind.c: Fix cygw32 build break when compiling with dbus
2156 enabled by undefining the symbol "interface", which the platform
2157 headers define to something incompatible.
2158
33d4113c
DC
21592012-10-14 Daniel Colascione <dancol@dancol.org>
2160
2161 * image.c (init_tiff_functions, init_imagemagick_functions)
2162 (init_svg_functions): Fix cygw32 build break by using these
2163 functions only when WINDOWSNT _and_ HAVE_NTGUI.
2164
a36fb15e
JD
21652012-10-14 Jan Djärv <jan.h.d@swipnet.se>
2166
2167 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
2168
537f336d
JD
21692012-10-13 Jan Djärv <jan.h.d@swipnet.se>
2170
2171 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
2172
0ba06a77
KH
21732012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
2174
2175 * coding.c (detect_coding): Set coding->id before calling
2176 this->detector.
2177
ce2fe65a
AS
21782012-10-13 Andreas Schwab <schwab@linux-m68k.org>
2179
2180 * fileio.c: Formatting fixes.
2181
d6453ce4
PE
21822012-10-13 Paul Eggert <eggert@cs.ucla.edu>
2183
2184 Fix some stat-related races.
2185 * fileio.c (Fwrite_region): Avoid race condition if a file is
2186 removed or renamed by some other process immediately after Emacs
2187 writes it but before Emacs stats it. Do not assume that stat (or
2188 fstat) succeeds.
2189 * image.c (slurp_file): Resolve the file name with fopen + fstat
2190 rather than stat + fopen.
2191 (pbm_read_file) [0]: Remove unused code with stat race.
2192 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
2193 Remove ineffective code with stat race.
2194
06485aa8
SM
21952012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
2196
2197 * doc.c (get_doc_string): Don't signal an error if the file is missing.
2198
167e3640
JD
21992012-10-12 Jan Djärv <jan.h.d@swipnet.se>
2200
2201 * nsterm.m (hold_event_q): New static variable.
2202 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
2203 ! q_event_ptr.
2204 (hold_event): New function.
2205 (ns_read_socket): If hold_event_q have events, store them and
2206 return (Bug#12384).
2207 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
2208 is zero (Bug#12384).
2209
c40239df
JB
22102012-10-12 Juanma Barranquero <lekktu@gmail.com>
2211
2212 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
2213
bb385a92
EZ
22142012-10-12 Eli Zaretskii <eliz@gnu.org>
2215
2a9f1099
EZ
2216 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
2217
bb385a92
EZ
2218 * fileio.c (check_existing): New function.
2219 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
2220 instead of calling 'stat', when what's needed is to check whether
2221 a file exists. This avoids expensive system calls on MS-Windows.
2222 (Bug#12587)
2223
8599b23a 2224 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
bb385a92
EZ
2225
2226 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
2227 determine whether a file exists and is not a directory.
2228
2229 * lisp.h (check_existing): Add prototype.
2230
2b9c2e68
JD
22312012-10-12 Jan Djärv <jan.h.d@swipnet.se>
2232
2233 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
2234
81749a23
GM
22352012-10-12 Glenn Morris <rgm@gnu.org>
2236
2237 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
2238
5253a5fd
SM
22392012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
2240
389a94a5
SM
2241 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
2242
5253a5fd
SM
2243 * eval.c (Fautoload): Remember previous autoload status in load-history.
2244
7cded46f
PE
22452012-10-11 Paul Eggert <eggert@cs.ucla.edu>
2246
2247 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
2248 * lread.c (load_each_byte, new_backquote_flag, readchar)
2249 (read_filtered_event, lisp_file_lexically_bound_p)
2250 (safe_to_load_version, Fload, complete_filename_p, openp)
2251 (build_load_history, readevalloop, read_escape, read1)
2252 (string_to_number, read_vector, read_list):
2253 * macros.c (Fstart_kbd_macro):
2254 * marker.c (CONSIDER):
2255 * menu.c (parse_single_submenu, digest_single_submenu)
2256 (find_and_return_menu_selection, Fx_popup_menu):
2257 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
2258 (Ftry_completion):
2259 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
2260 (ns_menu_show):
2261 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
2262 (xmenu_show, xdialog_show):
2263 Use bool for booleans.
2264 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
2265 as it's not a predicate. All uses changed. Omit unnecessary
2266 buffer termination.
2267
549c3414
DA
22682012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
2269
2270 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
2271 (save_excursion_restore): Do not restore mark if it was not saved.
2272
e85aafe7
PE
22732012-10-11 Paul Eggert <eggert@cs.ucla.edu>
2274
fd2f90cf
PE
2275 * marker.c (cached_modiff): EMACS_INT, not int.
2276
c1af190b
PE
2277 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
2278 instead of having a wrong decl.
e85aafe7
PE
2279 * nsmenu.m (waiting_for_input): Remove wrong decl.
2280
e738ca56
PE
22812012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2282
9fa1de30
PE
2283 keyboard.c, keymap.c: Use bool for booleans.
2284 * dispnew.c (sit_for): Distinguish between 3-way display_option
2285 and boolean do_display.
2286 * keyboard.c (single_kboard, this_command_key_count_reset)
2287 (waiting_for_input, echoing, immediate_quit, input_pending)
2288 (interrupt_input, interrupts_deferred, pop_kboard)
2289 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
2290 (command_loop_1, adjust_point_for_property)
2291 (safe_run_hooks_error, input_polling_used, read_char):
2292 (help_char_p, readable_events, kbd_buffer_events_waiting)
2293 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
2294 (lucid_event_type_list_p, get_input_pending):
2295 (gobble_input, menu_separator_name_p, menu_bar_item)
2296 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
2297 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
2298 (keyremap_step, test_undefined, read_key_sequence)
2299 (detect_input_pending, detect_input_pending_ignore_squeezables)
2300 (detect_input_pending_run_timers, requeued_events_pending_p)
2301 (quit_throw_to_read_char, Fset_input_interrupt_mode):
2302 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
2303 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
2304 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
2305 (accessible_keymaps_1, Fkey_description, push_key_description):
2306 (shadow_lookup, struct where_is_internal_data)
2307 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
2308 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
2309 (describe_map, describe_vector):
2310 * menu.c (single_menu_item):
2311 * nsmenu.m (ns_update_menubar):
2312 * process.c (wait_reading_process_output):
2313 * search.c (scan_buffer, scan_newline):
2314 Use bool for boolean.
2315 * keyboard.c (timers_run, swallow_events)
2316 (detect_input_pending_run_timers):
2317 * process.c (wait_reading_process_output):
2318 Use unsigned for counter where wraparound-on-overflow is desired,
2319 since unsigned is guaranteed to have that behavior and signed is not.
2320 (read_char): Use ptrdiff_t for string length.
2321 (get_input_pending): Remove first argument, since it was always
2322 the same pointer-to-int (now pointer-to-boolean) &input_pending,
2323 and behave as if it had that value. Return new value of
2324 input_pending. All callers changed.
2325 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
2326 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
2327 a string length.
2328 * keymap.c (push_key_description): Omit last arg, which was always 1.
2329 All callers changed.
2330
e738ca56
PE
2331 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
2332
29f21cdf
JB
23332012-10-10 Juanma Barranquero <lekktu@gmail.com>
2334
2335 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
2336 ($(BLD)/term.$(O)): Update dependencies.
2337
6aea7528
DA
23382012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
2339
2340 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
2341 * lisp.h (enum pvec_type): Adjust comments and omit explicit
2342 initializer for PVEC_NORMAL_VECTOR.
2343
5f3f57be
PE
23442012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2345
2346 Clean out old termopts cruft.
2347 * termopts.h (flow_control, meta_key): Remove unused decls.
2348 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
2349 Don't include termopts.h.
2350
3e98c68e
DA
23512012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
2352
2353 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
2354
77e344e5
PE
23552012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2356
2357 * commands.h (immediate_quit): Remove duplicate decl.
2358
5683d7cd
JD
23592012-10-09 Jan Djärv <jan.h.d@swipnet.se>
2360
2361 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
2362 caching.
2363 (nsfont_open): Remove setting of Vfonts_in_cache.
1f9f395d 2364 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
5683d7cd 2365
cf5fc6db
EZ
23662012-10-09 Eli Zaretskii <eliz@gnu.org>
2367
b15736e6
EZ
2368 * w32fns.c (w32_last_error): Change the return value to DWORD, to
2369 match what GetLastError returns. Explain why the function is
2370 needed.
2371
cf5fc6db
EZ
2372 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
2373 'is_tooltip_frame', to avoid confusion with its global namesake.
2374
f99714ce
DC
23752012-10-08 Daniel Colascione <dancol@dancol.org>
2376
2377 * xdisp.c (start_hourglass): Call w32_note_current_window when
2b1f11ed
EZ
2378 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
2379 build that caused Emacs to display the hourglass cursor forever.
f99714ce 2380
fd59cb29
GM
2381 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
2382 which is broken under remote desktop, calculate the number of
2383 colors available for a display based on the display's number of
2384 planes and number of bits per pixel per plane. (bug#10397).
2385
62c480c9 23862012-10-08 Jan Djärv <jan.h.d@swipnet.se>
fd59cb29 2387
62c480c9
JD
2388 * nsfont.m (Vfonts_in_cache): New variable.
2389 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
2390 are used. Add cached fonts to Vfonts_in_cache.
2391 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
2392
607446ba
JB
23932012-10-08 Juanma Barranquero <lekktu@gmail.com>
2394
fd5125ad
JB
2395 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
2396 in nt/config.nt.
46979e0b
JB
2397 (FONT_H): Define after FRAME_H.
2398 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
2399 Update dependencies.
fd5125ad 2400
607446ba
JB
2401 * w32term.c: Remove leftover declaration of keyboard_codepage.
2402
b6f4e300
EZ
24032012-10-08 Eli Zaretskii <eliz@gnu.org>
2404
c54ebba4
EZ
2405 * makefile.w32-in (FONT_H): Add $(FRAME_H).
2406 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
2407 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
2408 (GLOBAL_SOURCES): Add cygw32.c.
fd59cb29
GM
2409 ($(BLD)/unexw32.$(O)):
2410 ($(BLD)/w32.$(O)):
2411 ($(BLD)/w32console.$(O)):
2412 ($(BLD)/w32fns.$(O)):
2413 ($(BLD)/w32heap.$(O)):
2414 ($(BLD)/w32menu.$(O)):
15c720a3 2415 ($(BLD)/w32proc.$(O)): Add w32common.h.
c54ebba4 2416
b6f4e300
EZ
2417 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
2418 'const char *'.
2419 (x_to_w32_color): Don't modify the argument, modify a copy instead.
2420
501199a3
DC
24212012-10-08 Daniel Colascione <dancol@dancol.org>
2422
2423 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
2424 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
2425 accidental message numbering hole. Change other messages to
2426 match.
2427
2428 * w32select.h (HAVE_W32SELECT): Remove.
2429
2430 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
1f9f395d 2431 w32common.h instead of w32heap.h.
501199a3
DC
2432
2433 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
2434 (get_allocation_unit, get_processor_type, get_w32_major_version)
2435 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
2436 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
2437 (OS_NT, os_subtype, cache_system_info): Move declarations to
2438 w32common.
2439
2440 * w32heap.c: Include w32common.h.
2441 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
8599b23a
SM
2442 (w32_minor_version, w32_build_number, w32_subtype):
2443 Remove duplicate definitions.
501199a3
DC
2444
2445 * w32fns.c: Include w32common.h; include w32heap.h only in
2446 WINDOWSNT.
2447
2448 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
2449 Use `report_file_error' instead of `error' in order to better
2450 inform users of what went wrong. Increase NTGUI_UNICODE file
2451 dialog box file name length to 32k, the maximum allowed by the NT
2452 kernel.
2453
2454 * w32common.h: New file.
2455 (ROUND_UP, ROUND_DOWN, get_page_size)
2456 (get_allocation_unit, get_processor_type, get_w32_major_version)
2457 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
2458 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
2459 (OS_NT, os_subtype, cache_system_info): Move here.
2460
2461 * unexw32.c, unexcw.c: Include w32common.h.
2462
2463 * emacs.c (main): Use (defined (WINDOWSNT) || defined
2464 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
2465 to call syms_of_w32select.
2466
2467 * cygw32.h: Remove obsolete EXFUN declarations.
2468
2469 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
2470
2471 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
2472 of w32inevt.o from SOME_MACHINE_OBJECTS.
2473
93aa5c81
DC
24742012-10-08 Daniel Colascione <dancol@dancol.org>
2475
2476 * image.c: Permanent fix for JPEG compilation issue --- limit
2477 jpeglib `boolean' redefinition to Cygwin builds.
2478
d424f3d8
EZ
24792012-10-08 Eli Zaretskii <eliz@gnu.org>
2480
8ee4c6ce
EZ
2481 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
2482
d424f3d8
EZ
2483 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
2484 Cygwin.
2485
e08348a0
DC
24862012-10-08 Daniel Colascione <dancol@dancol.org>
2487
2488 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
2489 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
2490 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
2491 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
2492 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
2493 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
2494 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
2495 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
2496 now a supported configuration.
2497
2498 * Makefile.in: consolidate image variables into LIBIMAGE; add
8e2417bf 2499 W32_OBJ and W32_LIBS. Compile new files.
e08348a0
DC
2500
2501 * conf_post.h:
2502 (_DebPrint) declare tracing facility for W32 debugging. We need
2503 to unify tracing later.
2504
2505 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
2506 unconditional use of W32 Unicode functions. Cygwin runs only on
2507 100% Unicode operating systems.
2508
2509 * cygw32.c: New file. Define Cygwin-specific facilities.
2510 (Fcygwin_convert_path_to_windows)
2511 (Fcygwin_convert_path_from_windows): New user functions for
2512 accessing Cygwin path-munging routines.
2513
2514 * cygw32.h: New file.
2515 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
2516 UTF-16LE strings temporarily inside non-Lisp-visible string
2517 objects.
2518
2519 (w32_strerror): Just what it says on the tin.
2520
2521 * emacs.c: Make the NS fork-then-exec code for daemon-launching
2522 also run for Cygwin; both systems have the same problem with using
2523 GUI facilities in a forked child. Also call syms_of_cygw32,
2524 syms_of_w32select in correct places.
2525
2526 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
2527 needs fork-then-exec for daemon launching.
2528
2529 * font.h: Include frame.h.
2530
2531 * image.c: Use the image library cache machinery only when we're
2532 compiling for native WINDOWSNT; Cygwin can use shared libraries
2533 like any other Unixlike system.
2534
2535 * keyboard.c: Clarify a comment regarding the input loop.
2536
2537 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
2538 functions directly instead of trying to detect at runtime that our
2539 host operating system supports them. We make this change for two
2540 reasons: Cygwin lacks support for the multibyte character
2541 conversion functions used by the legacy menu code, and Cygwin
2542 never needs to rely on non-Unicode APIs.
2543
2544 * unexw32.c (hinst): Declare extern.
2545
2546 * w32.c: Change header order;
2547 (w32_strerror): Move to w32fns.c because we need it for
2548 non-WINDOWSNT builds.
2549
2550 * w32.h: Add #error macro to make sure we don't include w32.h for
2551 Cygwin builds. Remove w32select declarations.
2552
2553 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
1f9f395d 2554 w32fns.c. w32console.c is WINDOWSNT-only.
e08348a0
DC
2555
2556 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
2557 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
2558 POSIXy alternative.
2559 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
2560 (w32_major_version, w32_minor_version, w32_build_number)
2561 (os_subtype, sound_type): Define here
2562 (w32_defined_color): Make color parameter const for consistency
2563 with other _defined_color functions.
2564 (w32_createwindow): Unconditionally call w32_init_class instead of
2565 doing so only when hprevinst is non-NULL. Plumbing hprevinst
2566 through the code is complex and unnecessary because class
2567 registration is practically free.
2568 (w32_name_of_message): New EMACSDEBUG-only function.
2569 (Fset_message_beep): Move here
2570 (Fx_open_connection): Require that the display name for Windows be
2571 "w32" for consistency, emacsclient disambiguation, and maybe, one
2572 day, multi-window-system support.
2573 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
2574 Cygwin files for W32 GUI facilities, since these clearly don't
2575 expect Cygwin names.
2576 (_DebPrint): Define.
2577 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
2578 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
2579 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
2580 (w32_last_error): Remove.
2581
2582 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
2583
2584 * w32heap.c (syspage_mask): Declare here.
2585 (cache_system_info): Remove.
2586
2587 * w32inevt.c (faked_key): Define globally, not statically.
2588 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
2589 (w32_console_toggle_lock_key): Move to w32fns.c.
2590
2591 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
2592
2593 * w32proc.c (_DebPrint): Move to w32fns.c.
2594 * w32select.c: Include string.h, stdio.h for Cygwin.
2595 * w32select.h: New File.
2596
2597 * w32term.c: Include io.h for non-CYGWIN builds; needed for
2598 get_osfhandle.
2599 (w32_message_fd): New variable. Under Cygwin, holds the file
2600 descriptor the system used to tell us about pending thread
2601 messages.
2602
2603 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
2604 that prevented compilation under non-WINDOWSNT systems.
2605
2606 (w32_initialize): Open /dev/windows and assign it to
2607 w32_message_fd. Provide w32 feature.
2608
2609 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
2610 (WM_EMACS_INPUT_READY): add.
2611 (prepend_msg, w32_message_fd): Declare globally.
2612
2613 * w32xfns.c:
2614 (keyboard_handle): Use only when WINDOWSNT.
2615 (notify_msg_ready): New function. Posts a message to the main
2616 thread's message queue under CYGWIN, which wakes up the main
2617 thread from select(2) by making the /dev/windows file descriptor
2618 ready. Under WINDOWSNT, it sets an event the same way the old
2619 code did.
2620
2621 (post, prepend_msg): Actually call notify_msg_ready instead of
2622 setting the input event directly.
2623
98daa893
EZ
26242012-10-07 Eli Zaretskii <eliz@gnu.org>
2625
2626 * ralloc.c (relinquish): If a heap is ready to be relinquished,
2627 but it still has blocs in it, don't return it to the system,
2628 instead of aborting. (Bug#12402)
2629
3bc0a2f7
JD
26302012-10-07 Jan Djärv <jan.h.d@swipnet.se>
2631
8ad5b73b 2632 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
493b5b1c 2633
335f5ae4
JD
2634 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
2635 MAC_OS_X_VERSION_10_6.
8ad5b73b
JD
2636 (syms_of_nsterm): Remove comment about Panther and above for
2637 ns-antialias-text.
335f5ae4
JD
2638 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
2639 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
2640 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
2641
2642 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
2643 MAC_OS_X_VERSION_10_4.
2644
8ad5b73b
JD
2645 * nsmenu.m (fillWithWidgetValue:): Remove code for <
2646 MAC_OS_X_VERSION_10_2.
335f5ae4
JD
2647
2648 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
2649
2650 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
2651 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
2652
3bc0a2f7
JD
2653 * nsterm.m (ns_in_resize): Remove (Bug#12479).
2654 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
8599b23a
SM
2655 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
2656 Remove ns_in_resize check.
3bc0a2f7
JD
2657 (ns_clear_frame_area): Remove resize handle code.
2658
2659 * nsfns.m (ns_in_resize): Remove.
e483264c
SM
2660 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
2661 Remove ns_in_resize check.
3bc0a2f7 2662
c622b48f
PE
26632012-10-07 Paul Eggert <eggert@cs.ucla.edu>
2664
2665 Improve sys_siglist detection.
2666 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
2667 defined as a macro, as is done in Solaris.
2668 (sys_siglist_entries): New macro.
2669 (save_strsignal): Use it.
2670 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
2671 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
2672
04fafa46
JD
26732012-10-06 Jan Djärv <jan.h.d@swipnet.se>
2674
2675 * nsfns.m (Fx_create_frame): Call x_default_parameter with
2676 fullscreen/Fullscreen.
2677
2678 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
2679 tobar_height is new.
2680
2681 * nsterm.m (x_make_frame_visible): Check for fullscreen.
2682 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
2683 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
2684 (windowDidResize:): Check for correct window if old style fullscreen.
2685 Capitalize word in comment. Remove incorrect comment.
2686 (initFrameFromEmacs:): tbar_height renamed tibar_height.
2687 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
2688 error in drawing background.
1f9f395d 2689 (toggleFullScreen:): Remove comment. Rearrange calls.
04fafa46
JD
2690 Set toolbar values to zero, save old height in tobar_height.
2691 Restore tool bar height when leaving fullscreen.
2692 (canBecomeMainWindow): New function.
2693
c6e21c03
PE
26942012-10-06 Paul Eggert <eggert@cs.ucla.edu>
2695
2696 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
2697
0d9f584b
EZ
26982012-10-05 Eli Zaretskii <eliz@gnu.org>
2699
a65fbb5f
EZ
2700 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
2701
0d9f584b 2702 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
8599b23a
SM
2703 that time stamps of directories could also be changed.
2704 Don't request the too broad GENERIC_WRITE, only the more restrictive
0d9f584b
EZ
2705 FILE_WRITE_ATTRIBUTES access rights.
2706
2707 * fileio.c (Fset_file_times): Special-case ignoring errors for
2708 directories only on MSDOS, not on MS-Windows.
2709
e8757f09 27102012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
ca347e3d
IK
2711
2712 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
2713
7604f298
EZ
27142012-10-04 Eli Zaretskii <eliz@gnu.org>
2715
2716 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
2717 see whether CreateFile failed.
2718
88d69b7d
PE
27192012-10-04 Paul Eggert <eggert@cs.ucla.edu>
2720
2721 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
2722 to avoid similar races.
2723 * keyboard.c (pending_signals): Now bool, not int.
2724
7509f454
PE
2725 Port timers to OpenBSD, plus check for timer failures.
2726 OpenBSD problem reported by Han Boetes.
2727 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
2728 and/or setitimer.
2729 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
2730 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
2731 like OpenBSD, which has timer_settime but does not declare it.
2732 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
2733 whether to use itimerspec-related primitives. All uses of
2734 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
2735
a3c5c0c5
PE
27362012-10-02 Paul Eggert <eggert@cs.ucla.edu>
2737
2738 * profiler.c (handle_profiler_signal): Fix a malloc race
2739 that caused Emacs to hang on Fedora 17 when profiling Lisp.
2740
914e743b
JD
27412012-10-02 Jan Djärv <jan.h.d@swipnet.se>
2742
2743 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
2744
d8ab37a8
EZ
27452012-10-02 Eli Zaretskii <eliz@gnu.org>
2746
2747 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
2748 consistent with the change in return value of 'safe_strsignal'.
2749
b3ecad33
PE
27502012-10-02 Paul Eggert <eggert@cs.ucla.edu>
2751
0a99eee1
PE
2752 Prefer plain 'static' to 'static inline' (Bug#12541).
2753 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
2754 (bidi_set_sor_type, bidi_push_embedding_level)
2755 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
2756 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
2757 (bidi_cache_search, bidi_cache_ensure_space)
2758 (bidi_cache_iterator_state, bidi_cache_find)
2759 (bidi_peek_at_next_level, bidi_set_paragraph_end)
2760 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
2761 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
2762 Now 'static', not 'static inline'.
2763
b3ecad33
PE
2764 Count overruns when profiling; change units to ns.
2765 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
2766 Give extra weight to samples after overruns, to attempt to count
2767 the time more accurately.
2768 (setup_cpu_timer): Change sampling interval units from ms to ns, since
2769 the underlying primitives nominally do ns.
2770 (Fprofiler_cpu_start): Document the change. Mention that
2771 the sampling intervals are only approximate.
2772
090cf9db
SM
27732012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
2774
2775 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
2776
2777 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
2778 case for the special 0 coding-system.
2779
2780 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
2781 (Fmake_overlay): Remove redundant tests.
64edc777 2782 (fix_start_end_in_overlays): Remove redundant recentering.
090cf9db 2783
81550bf4
JB
27842012-10-02 Juanma Barranquero <lekktu@gmail.com>
2785
2786 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
2787 Update dependencies.
2788
aa1ba90e
PE
27892012-10-01 Paul Eggert <eggert@cs.ucla.edu>
2790
2791 Fix a malloc race condition involving strsignal.
2792 A signal can arrive in the middle of a malloc, and Emacs's signal
2793 handler can invoke strsignal, which can invoke malloc, which is
2794 not portable. This race condition bug makes Emacs hang on GNU/Linux.
2795 Fix it by altering the signal handler so that it does not invoke
2796 strsignal.
2797 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
2798 * process.c (status_message): Use const pointer, in case strsignal
2799 is #defined to safe_strsignal.
2800 * sysdep.c (sys_siglist, init_signals): Always define and
2801 initialize a substitute sys_siglist if the system does not define
2802 one, even if HAVE_STRSIGNAL.
2803 (safe_strsignal): Rename from strsignal. Always define,
2804 using sys_siglist. Return a const pointer.
2805 * syssignal.h (safe_strsignal): New decl.
2806 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
2807
ace917bd
EZ
28082012-10-01 Eli Zaretskii <eliz@gnu.org>
2809
2810 * w32proc.c (timer_loop): Fix code that waits for timer
2811 expiration, to avoid high CPU usage.
2812
9eb71b9c
SM
28132012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
2814
2815 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
2816 (sweep_weak_table): Remove redundant prototypes.
2817
b3317662
FP
28182012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
2819
2820 * emacs.c: Move the inclusion of TERM_HEADER after including
2821 windows.h on WINDOWSNT. This avoids compilation problems with
2822 MSVC.
2823
f0e5f225
EZ
28242012-10-01 Eli Zaretskii <eliz@gnu.org>
2825
2d7d1608
EZ
2826 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
2827 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
2828 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
2829 as the previous version used 'void *'.
2830
2831 * ralloc.c (ROUNDUP): Fix last change.
2832 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
2833 'size_t'.
2834
f0e5f225
EZ
2835 * w32proc.c <disable_itimers>: New static flag.
2836 (init_timers): Initialize it to zero, after creating the critical
2837 sections used by the timer threads.
2838 (term_timers): Set to 1 before deleting the critical sections.
2839 (getitimer, setitimer): If disable_itimers is non-zero, return an
2840 error indication without doing anything. Reported by Fabrice
2841 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4cdfbb89
EZ
2842 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
2843 return results.
2844 [!HAVE_SETITIMER]: Behave as the previous version that didn't
2845 support timers.
f0e5f225
EZ
2846
2847 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
2848 term_ntproc after all the other bookkeeping, to get timers working
2849 as long as possible.
2850
82ef37c1
PE
28512012-10-01 Paul Eggert <eggert@cs.ucla.edu>
2852
b3a4c387
PE
2853 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
2854 Suggested by Juri Linkov in
2855 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
2856
b0ab8123
PE
2857 Prefer plain 'static' to 'static inline' (Bug#12541).
2858 With static functions, modern compilers inline pretty well by
2859 themselves; advice from programmers often hurts as much as it helps.
2860 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
2861 this change shrinks the text size of the Emacs executable by 1.1%
2862 without affecting CPU significantly in my benchmark.
2863 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
2864 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
2865 (mark_maybe_object, mark_maybe_pointer, bounded_number):
2866 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
2867 (bset_auto_fill_function, bset_auto_save_file_format)
2868 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
2869 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
2870 (bset_cache_long_line_scans, bset_case_fold_search)
2871 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
2872 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
2873 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
2874 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
2875 (bset_header_line_format, bset_indicate_buffer_boundaries)
2876 (bset_indicate_empty_lines, bset_invisibility_spec)
2877 (bset_left_fringe_width, bset_major_mode, bset_mark)
2878 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
2879 (bset_name, bset_overwrite_mode, bset_pt_marker)
2880 (bset_right_fringe_width, bset_save_length)
2881 (bset_scroll_bar_width, bset_scroll_down_aggressively)
2882 (bset_scroll_up_aggressively, bset_selective_display)
2883 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
2884 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
2885 (set_buffer_overlays_after):
2886 * category.c (bset_category_table):
2887 * charset.c (read_hex):
2888 * coding.c (produce_composition, produce_charset)
2889 (handle_composition_annotation, handle_charset_annotation)
2890 (char_encodable_p):
2891 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
2892 (assign_row, set_frame_matrix_frame, make_current)
2893 (add_row_entry):
2894 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
2895 * fns.c (maybe_resize_hash_table):
2896 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
2897 * gmalloc.c (register_heapinfo):
2898 * image.c (lookup_image_type):
2899 * intervals.c (set_interval_object, set_interval_left)
2900 (set_interval_right, copy_interval_parent, rotate_right)
2901 (rotate_left, balance_possible_root_interval):
2902 * keyboard.c (kset_echo_string, kset_kbd_queue)
2903 (kset_keyboard_translate_table, kset_last_prefix_arg)
2904 (kset_last_repeatable_command, kset_local_function_key_map)
2905 (kset_overriding_terminal_local_map, kset_real_last_command)
2906 (kset_system_key_syms, clear_event, set_prop):
2907 * lread.c (digit_to_number):
2908 * marker.c (attach_marker, live_buffer, set_marker_internal):
2909 * nsterm.m (ns_compute_glyph_string_overhangs):
2910 * process.c (pset_buffer, pset_command)
2911 (pset_decode_coding_system, pset_decoding_buf)
2912 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
2913 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
2914 (pset_status, pset_tty_name, pset_type, pset_write_queue):
2915 * syntax.c (bset_syntax_table, dec_bytepos):
2916 * terminal.c (tset_param_alist):
2917 * textprop.c (interval_has_some_properties)
2918 (interval_has_some_properties_list):
2919 * window.c (wset_combination_limit, wset_dedicated)
2920 (wset_display_table, wset_hchild, wset_left_fringe_width)
2921 (wset_left_margin_cols, wset_new_normal, wset_new_total)
2922 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
2923 (wset_right_fringe_width, wset_right_margin_cols)
2924 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
2925 (wset_vertical_scroll_bar_type, wset_window_parameters):
2926 * xdisp.c (wset_base_line_number, wset_base_line_pos)
2927 (wset_column_number_displayed, wset_region_showing)
2928 (window_box_edges, run_window_scroll_functions)
2929 (append_glyph_string_lists, prepend_glyph_string_lists)
2930 (append_glyph_string, set_glyph_string_background_width)
2931 (append_glyph, append_composite_glyph)
2932 (take_vertical_position_into_account):
2933 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
2934 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
2935 (lface_hash, lface_same_font_attributes_p, lookup_face):
2936 * xml.c (libxml2_loaded_p):
2937 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
2938 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
2939 Now 'static', not 'static inline'.
2940
05584c31
PE
2941 * bidi.c: Tune.
2942 (bidi_copy_it): Do the whole copy with a single memcpy.
2943 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
2944
86ec63ba
PE
2945 Revert the FOLLOW-SYMLINKS change for file-attributes.
2946 Doing it right would require several changes to Tramp, and there's
2947 not enough time to get that tested before the freeze today.
2948 * dired.c (directory_files_internal, Ffile_attributes):
2949 Undo last change.
2950
82ef37c1
PE
2951 * frame.c (x_report_frame_params): Port better to wider ints.
2952 Do not assume that EMACS_UINT is the same width as uprintmax_t,
2953 or that pointers can be printed in 15 decimal digits.
2954 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
2955
62aba0d4
FP
29562012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
2957
2958 Support x64 build on MS-Windows.
2959 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
2960 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
2961 compatibility with x64.
5e4daaf3 2962 (x_get_focus_frame): Add prototype.
62aba0d4
FP
2963
2964 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
2965 defining an XRectangle structure.
2966
2967 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
2968 arithmetics for compatibility with x64.
2969
2970 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
2971 compatibility with x64.
2972
2973 * w32heap.h: Adjust prototypes and declarations.
2974
2975 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
2976 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
2977 DWORD, long, and unsigned long, for compatibility with x64.
2978 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
2979 (sbrk): Argument is now of type ptrdiff_t.
2980
2981 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
2982 less than 0x0500.
2983 (w32_msg_pump): Use WPARAM type for 'result'.
2984
2985 * w32.c (init_environment, get_emacs_configuration): Support AMD64
2986 architecture.
2987 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
2988 compatibility with x64.
2989
2990 * vm-limit.c (lim_data): Now size_t.
2991 (check_memory_limits): Adjust prototypes of real_morecore and
2992 __morecore to receive argument of type ptrdiff_t. Use size_t for
2993 five_percent and data_size.
2994
2995 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
2996 variables, for compatibility with x64.
2997 (rva_to_section, offset_to_section, relocate_offset)
2998 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
2999 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
3000 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
3001 for compatibility with x64.
3002
3003 * sysdep.c (STDERR_FILENO): Define if not already defined.
3004
3005 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
3006 (__morecore): Argument type is now ptrdiff_t.
3007 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
3008 (relinquish): Use ptrdiff_t type for 'excess'.
3009 (r_alloc_sbrk): Argument type is now ptrdiff_t.
3010
3011 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
3012 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
3013 instead of a literal number.
3014
3015 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
3016 (min): Define only if not already defined.
3017
3018 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
3019 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
3020 hosts.
3021
3022 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
3023 'bitmaps' is a pointer.
3024
3025 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
3026
3027 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
3028
e7a2937b
PE
30292012-09-30 Paul Eggert <eggert@cs.ucla.edu>
3030
3031 file-attributes has a new optional arg FOLLOW-SYMLINKS.
3032 * dired.c (directory_files_internal, Ffile_attributes):
3033 New arg follow_symlinks. All uses changed.
3034
b43d62ae
SM
30352012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
3036
3037 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
3038
c06c382a
EZ
30392012-09-30 Eli Zaretskii <eliz@gnu.org>
3040
3041 Support atimers and CPU profiler via profile.c on MS-Windows.
3042 * w32proc.c (sig_mask, crit_sig): New static variables.
3043 (sys_signal): Support SIGALRM and SIGPROF.
3044 (sigemptyset, sigaddset, sigfillset, sigprocmask)
b43d62ae 3045 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
c06c382a
EZ
3046 sigfillset, and sigprocmask are no longer no-ops.
3047 (sigismember): New function.
3048 (struct itimer_data): New definition.
3049 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
3050 (crit_prof): New static variables.
3051 (MAX_SINGLE_SLEEP): New definition.
3052 (timer_loop, stop_timer_thread, term_timers, init_timers)
3053 (start_timer_thread, getitimer, setitimer): New functions.
3054 (alarm): No longer a no-op, calls setitimer.
3055
3056 * w32.c (term_ntproc): Call term_timers.
3057 (init_ntproc): Make sure all signals are unblocked at startup, to
3058 erase any traces of dumping. Call init_timers.
3059
3060 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
3061 Windows-specific code to display the hourglass mouse pointer is no
3062 longer used.
3063 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
3064 to hourglass timer expiration.
3065 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
3066 Remove, no longer used.
b43d62ae
SM
3067 (w32_note_current_window, show_hourglass, hide_hourglass):
3068 New functions, in support of hourglass cursor display similar to other
c06c382a
EZ
3069 window systems.
3070 (syms_of_w32fns): Don't initialize hourglass_timer.
3071
3072 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
3073 WINDOWSNT as well.
3074 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
3075
3076 * w32.h (init_timers, term_timers): Add prototypes.
3077
95402d5f
KH
30782012-09-30 Kenichi Handa <handa@gnu.org>
3079
3080 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
3081 to the buffer relocation which may be caused by ccl_driver.
3082
dd946752
JD
30832012-09-30 Jan Djärv <jan.h.d@swipnet.se>
3084
d7e642cc
JD
3085 * xfns.c (Fx_file_dialog): Update comment.
3086
3087 * w32fns.c (Fx_file_dialog): Update comment.
3088
3089 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
3090 Initialize panel name field if OSX >= 10.6.
3091
3092 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
3093
dd946752
JD
3094 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
3095
3096 * nsterm.m (NEW_STYLE_FS): New define.
3097 (ns_fullscreen_hook, windowWillEnterFullScreen)
3098 (windowDidEnterFullScreen, windowWillExitFullScreen)
3099 (windowDidExitFullScreen, toggleFullScreen, handleFS)
3100 (setFSValue): New functions.
3101 (EmacsFSWindow): New implementation.
3102 (canBecomeKeyWindow): New function for EmacsFSWindow.
3103 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
3104 (dealloc): Release nonfs_window if in fullscreen.
3105 (updateFrameSize:): Call windowDidMove to update top/left.
3106 (windowWillResize:toSize:): Check if frame is still maximized.
3107 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
3108 next_maximized, maximized_width, maximized_height and nonfs_window.
3109 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
3110 tbar_height.
3111 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
1f9f395d 3112 fullscreen. Set maximized_width/height. Act on next_maximized.
dd946752
JD
3113
3114 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
3115 (EmacsView): Add variables for fullscreen.
3116 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
3117 (EmacsFSWindow): New interface for fullscreen.
3118
427730eb
JB
31192012-09-30 Juanma Barranquero <lekktu@gmail.com>
3120
3121 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
3122
48de8b12
CY
31232012-09-30 Chong Yidong <cyd@gnu.org>
3124
3125 * fns.c (Frandom): Doc fix.
3126
5938d519
MR
31272012-09-30 Martin Rudalics <rudalics@gmx.at>
3128
3129 * window.c (Vwindow_combination_limit): New default value.
3130 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
3131
cb5b0266
PE
31322012-09-30 Paul Eggert <eggert@cs.ucla.edu>
3133
3134 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
3135 Suggested by Eli Zaretskii in
3136 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
3137
84f72efd
EZ
31382012-09-30 Eli Zaretskii <eliz@gnu.org>
3139
3140 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
3141 HAVE_TIMER_SETTIME is defined.
3142
9d4dcdc9
PE
31432012-09-30 Paul Eggert <eggert@cs.ucla.edu>
3144
d89460ed
PE
3145 Profiler improvements: more-accurate timers, overflow checks.
3146 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
3147 signal.h, setjmp.h. Include systime.h instead.
3148 (saturated_add): New function.
3149 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
3150 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
3151 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
3152 New static vars.
84f72efd 3153 (enum profiler_cpu_running): New enum.
d89460ed
PE
3154 (profiler_cpu_running): Now of that enum type, not bool.
3155 All uses changed to store the new value.
3156 (handle_profiler_signal): Rename from sigprof_handler_1,
3157 for consistency with other handlers. Do not check whether
3158 cpu_log is a hash-table if garbage collecting, since it
3159 doesn't matter in that case.
3160 (deliver_profiler_signal): Rename from sigprof_handler,
3161 for consistency with other handlers.
3162 (setup_cpu_timer): New function, with much of what used to be in
3163 Fprofiler_cpu_start. Check for out-of-range argument.
3164 Prefer timer_settime if available, and prefer
3165 thread cputime clocks, then process cputime clocks, then
3166 monotonic clocks, to the old realtime clock. Use make_timeval
3167 to round more-correctly when falling back to setitimer.
3168 (Fprofiler_cpu_start): Use it.
3169 (Fprofiler_cpu_stop): Prefer timer_settime if available.
3170 Don't assume that passing NULL as the 2nd argument of setitimer
3171 is the same as passing a pointer to all-zero storage.
3172 Ignore SIGPROF afterwards.
3173 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
3174 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
3175 non-fatal signal handlers. Ignore SIGPROF on startup.
3176 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
3177 in profiler.c, since sysdep.c now uses it.
3178
9d4dcdc9
PE
3179 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
3180 Suggested by Eli Zaretskii in
3181 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
3182
8e5691a0
JB
31832012-09-29 Juanma Barranquero <lekktu@gmail.com>
3184
3185 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
3186
e7c1b6ef
SM
31872012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
3188
3189 * lisp.h (struct backtrace): Remove indirection for `function' field.
3190 * xdisp.c (redisplay_internal):
3191 * profiler.c (record_backtrace, sigprof_handler_1):
3192 * alloc.c (Fgarbage_collect):
3193 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
3194 (Fbacktrace_frame): Adjust accordingly.
3195
e61d39cd 31962012-09-28 Glenn Morris <rgm@gnu.org>
d393cefb
GM
3197
3198 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
3199 (Frun_hook_with_args_until_failure): Doc fixes.
3200
404043ea
EZ
32012012-09-28 Eli Zaretskii <eliz@gnu.org>
3202
3203 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
3204 Qautomatic_redisplay and change the symbol name. All users changed.
3205
704d3f45
TM
32062012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
3207
3208 * profiler.c (sigprof_handler): Fix race condition.
3209
757140ff
GM
32102012-09-28 Glenn Morris <rgm@gnu.org>
3211
3212 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
3213
a615a3ae
PE
32142012-09-27 Paul Eggert <eggert@cs.ucla.edu>
3215
3216 Check more robustly for timer_settime.
89d17fd0
PE
3217 * Makefile.in (LIB_TIMER_TIME): New macro.
3218 (LIBES): Add it.
a615a3ae
PE
3219 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
3220 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
3221 call timer_settime.
3222
3670daf7
TM
32232012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
3224
3225 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
3226
6a586b7f
JB
32272012-09-26 Juanma Barranquero <lekktu@gmail.com>
3228
3229 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
3230
41c8bfcf
PE
32312012-09-26 Paul Eggert <eggert@cs.ucla.edu>
3232
3233 * character.h (MAYBE_UNIFY_CHAR): Remove.
3234 * charset.c, charset.h (maybe_unify_char): Now static.
3235 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
3236 Since this stuff is now private to charset.c, there's no need for
3237 a public macro and no need to inline by hand.
3238
3a880af4
SM
32392012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
3240 Stefan Monnier <monnier@iro.umontreal.ca>
3241 Juanma Barranquero <lekktu@gmail.com>
611b7507 3242
3a880af4
SM
3243 * profiler.c: New file.
3244 * Makefile.in (base_obj): Add profiler.o.
611b7507
JB
3245 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
3246 ($(BLD)/profiler.$(O)): New target.
3a880af4
SM
3247 * emacs.c (main): Call syms_of_profiler.
3248 * alloc.c (Qautomatic_gc): New constant.
3249 (MALLOC_PROBE): New macro.
3250 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
3251 (total_bytes_of_live_objects): New function.
3252 (Fgarbage_collect): Use it. Record itself in backtrace_list.
3253 Call malloc_probe for the memory profiler.
3254 (syms_of_alloc): Define Qautomatic_gc.
3255 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
3256 race condition.
3257 (struct backtrace): Move definition...
3258 * lisp.h (struct backtrace): ..here.
3259 (Qautomatic_gc, profiler_memory_running): Declare vars.
3260 (malloc_probe, syms_of_profiler): Declare functions.
3261 * xdisp.c (Qautomatic_redisplay): New constant.
3262 (redisplay_internal): Record itself in backtrace_list.
3263 (syms_of_xdisp): Define Qautomatic_redisplay.
611b7507 3264
5938d519 32652012-09-25 Eli Zaretskii <eliz@gnu.org>
b67238c2
JB
32662012-09-25 Juanma Barranquero <lekktu@gmail.com>
3267
3268 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
3269
e26fd2e4
PE
32702012-09-25 Paul Eggert <eggert@cs.ucla.edu>
3271
3272 Prefer POSIX timers if available.
3273 They avoid a race if the timer is too close to the current time.
3274 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
3275 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
9180598c 3276 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
e26fd2e4 3277
eedec3ee
EZ
32782012-09-25 Eli Zaretskii <eliz@gnu.org>
3279
3280 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
3281 CHAR_STRING_ADVANCE.
3282 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
3283 STRING_CHAR_ADVANCE.
3284
aa15c6bb
JB
32852012-09-25 Juanma Barranquero <lekktu@gmail.com>
3286
3287 Move Vlibrary_cache to emacs.c and reset before dumping.
3288
3289 * lisp.h (reset_image_types): Declare.
3290 [WINDOWSNT] (Vlibrary_cache): Declare.
3291
3292 * image.c (reset_image_types): New function.
3293
3294 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
3295 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
3296 (Fdump_emacs): Reset Vlibrary_cache and image_types.
3297
3298 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
3299 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
3300
3301 * w32.h (Vlibrary_cache): Do not declare.
3302
54d629be
EZ
33032012-09-25 Eli Zaretskii <eliz@gnu.org>
3304
16b22fef
EZ
3305 * w32proc.c (sys_signal): Handle all signals defined by the
3306 MS-Windows runtime, not just SIGCHLD. Actually install the signal
3307 handlers for signals supported by Windows. Don't override
3308 term_ntproc as the handler for SIGABRT.
3309 (sigaction): Rewrite to call sys_signal instead of duplicating its
3310 code.
3311 (sys_kill): Improve commentary.
3312
3313 * w32.c (term_ntproc): Accept (and ignore) one argument, for
3314 consistency with a signature of a signal handler. All callers
3315 changed.
3316 (init_ntproc): Accept an argument DUMPING. If dumping, don't
3317 install term_ntproc as a signal handler for SIGABRT, as that
3318 should be done by the dumped Emacs.
3319
3320 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
3321
3322 * w32select.c (term_w32select): Protect against repeated
3323 invocation by setting clipboard_owner to NULL after calling
3324 DestroyWindow.
3325
3326 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
3327 and term_ntproc to their modified signatures.
3328
54d629be
EZ
3329 * character.c (char_string, string_char): Remove calls to
3330 MAYBE_UNIFY_CHAR. See the discussion starting at
3331 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
3332 for the details.
3333
59f7af81
CY
33342012-09-25 Chong Yidong <cyd@gnu.org>
3335
3336 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
3337
22e8cf4a
SM
33382012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
3339
3340 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
3341 when encountering an unknown bytecode.
3342
578098f3
PE
33432012-09-24 Paul Eggert <eggert@cs.ucla.edu>
3344
3345 image.c, indent.c: Use bool for booleans.
3346 * dispextern.h (struct image_type): Members valid_p, load, init
3347 now return bool, not int. All uses changed.
3348 * image.c: Omit unnecessary static decls.
3349 (x_create_bitmap_mask, x_build_heuristic_mask):
3350 Return void, not int, since callers don't care about the return value.
3351 (x_create_bitmap_mask, define_image_type, valid_image_p)
3352 (struct image_keyword, parse_image_spec, image_spec_value)
3353 (check_image_size, image_background)
3354 (image_background_transparent, x_clear_image_1)
3355 (postprocess_image, lookup_image, x_check_image_size)
3356 (x_create_x_image_and_pixmap, xbm_image_p)
3357 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
3358 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
3359 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
3360 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
3361 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
3362 (png_image_p, init_png_functions, png_load_body, png_load)
3363 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
3364 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
3365 (init_gif_functions, gif_load, imagemagick_image_p)
3366 (imagemagick_load_image, imagemagick_load, svg_image_p)
3367 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
3368 (gs_load):
3369 * nsimage.m (ns_load_image):
3370 * nsterm.m (ns_defined_color):
3371 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
3372 * xfns.c (x_defined_color):
3373 * xterm.c (x_alloc_lighter_color_for_widget)
3374 (x_alloc_nearest_color_1, x_alloc_nearest_color)
3375 (x_alloc_lighter_color):
3376 * indent.c (disptab_matches_widthtab, current_column)
3377 (scan_for_column, string_display_width, indented_beyond_p)
3378 (compute_motion, vmotion, Fvertical_motion):
3379 Use bool for booleans.
3380
a5f2b6ec
CY
33812012-09-24 Chong Yidong <cyd@gnu.org>
3382
3383 * chartab.c (Fset_char_table_default): Obsolete function removed.
3384
18e27ea8
PE
33852012-09-23 Paul Eggert <eggert@cs.ucla.edu>
3386
afea8a8a
PE
3387 Move pid_t related decls out of lisp.h.
3388 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
3389 (interruptible_wait_for_termination):
3390 Move these decls from lisp.h to syswait.h, since they use pid_t.
3391 Needed on FreeBSD; see Herbert J. Skuhra in
3392 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
3393 * callproc.c: Include syswait.h.
3394
18e27ea8
PE
3395 gnutls.c, gtkutil.c: Use bool for boolean.
3396 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
3397 (emacs_gnutls_handle_error):
3398 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
3399 (xg_hide_tooltip, xg_create_frame_widgets)
3400 (create_dialog, xg_uses_old_file_dialog)
3401 (xg_get_file_with_chooser, xg_get_file_with_selection)
3402 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
3403 (xg_item_label_same_p, xg_update_menubar)
3404 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
3405 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
3406 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
3407 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
3408 (update_frame_tool_bar, free_frame_tool_bar):
3409 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
3410 * nsmenu.m (ns_update_menubar):
3411 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
3412 * xfns.c (Fx_show_tip) [USE_GTK]:
3413 Use bool for boolean.
3414 * gtkutil.c (xg_update_frame_menubar):
3415 * xmenu.c (update_frame_menubar):
3416 Return void, not int, since caller ignores return value.
3417 * gtkutil.c (xg_change_toolbar_position):
3418 Return void, not 1.
3419
af0e9f75
JB
34202012-09-23 Juanma Barranquero <lekktu@gmail.com>
3421
3422 * makefile.w32-in (BLOCKINPUT_H): Remove.
3423 (SYSSIGNAL_H): New macro.
3424 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
3425 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
3426 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
3427 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
3428 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
3429 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
3430 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
3431 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
3432 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
3433 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
3434 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
3435 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
3436 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
3437 ($(BLD)/w32xfns.$(O)): Update dependencies.
3438
5101529e
EZ
34392012-09-23 Eli Zaretskii <eliz@gnu.org>
3440
3441 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
3442 fatal_error_backtrace.
3443
3444 * w32proc.c (sys_kill): Undo last change: don't do anything when
3445 invoked to deliver SIGABRT to our own process. This is now
3446 handled by emacs_raise.
3447
2c3ee0ad
JB
34482012-09-23 Juanma Barranquero <lekktu@gmail.com>
3449
3450 * w32term.c (w32_read_socket): Remove leftover reference to
3451 interrupt_input_pending.
3452
62a1d661
PE
34532012-09-23 Paul Eggert <eggert@cs.ucla.edu>
3454
3455 Do not use SA_NODEFER.
3456 Problem reported by Dani Moncayo in
3457 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
3458 * alloc.c (die):
3459 * sysdep.c (emacs_abort): Do not reset signal handler.
3460 * emacs.c (terminate_due_to_signal): Reset signal handler here.
3461 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
3462 wanted even on POSIXish hosts, and it doesn't work on Windows.
3463
a0942b9a
JD
34642012-09-23 Jan Djärv <jan.h.d@swipnet.se>
3465
3466 * xterm.c (x_term_init): Call fixup_locale before and after calling
3467 gtk_init (Bug#12392).
3468
d07ff9db
CY
34692012-09-23 Chong Yidong <cyd@gnu.org>
3470
3471 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
3472 Vdynamic_library_alist.
3473
3474 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
3475 (Fgnutls_available_p): Caller changed.
3476
3477 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
3478 (Flibxml_parse_xml_region): Likewise.
3479
3480 * dispextern.h (struct image_type): Remove arg from init function.
3481
3482 * image.c (Finit_image_library, lookup_image_type)
3483 (define_image_type): Remove now-unneeded second arg.
3484 (init_xpm_functions, init_png_functions, init_jpeg_functions)
3485 (init_tiff_functions, init_gif_functions, init_svg_functions):
3486 Arglist and w32_delayed_load calling convention changed.
3487 (gs_type): Remove init_gs_functions; there is no such function.
641cfd14 3488 (valid_image_p, make_image): Fix caller to lookup_image_type.
d07ff9db 3489
4d7e6e51
PE
34902012-09-23 Paul Eggert <eggert@cs.ucla.edu>
3491
3492 Simplify and avoid signal-handling races (Bug#12471).
3493 * alloc.c (die):
3494 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
3495 Avoid recursive loop if there's a fatal error in the function itself.
3496 * atimer.c (pending_atimers):
3497 * blockinput.h: Don't include "atimer.h"; no longer needed.
3498 (interrupt_input_pending): Remove. All uses removed.
3499 pending_signals now counts both atimers and ordinary interrupts.
3500 This is less racy than having three separate pending-signal flags.
3501 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
3502 (input_blocked_p):
3503 Rename from their upper-case counterparts BLOCK_INPUT,
3504 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
3505 INPUT_BLOCKED_P, and turn into functions. All uses changed.
3506 This makes it easier to access volatile variables more accurately.
3507 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
3508 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
3509 that's more reliable if the code is buggy and sets
3510 interrupt_input_blocked to a negative value. All uses changed.
3511 * atimer.c (deliver_alarm_signal):
3512 Remove. No need to deliver this to the parent; any thread can
3513 handle this signal now. All uses replaced by underlying handler.
3514 * atimer.c (turn_on_atimers):
3515 * dispnew.c (handle_window_change_signal):
3516 * emacs.c (handle_danger_signal):
3517 * keyboard.c (kbd_buffer_get_event):
3518 Don't reestablish signal handler; not needed with sigaction.
3519 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
3520 (UNBLOCK_INPUT_TO):
3521 Rework to avoid unnecessary accesses to volatile variables.
3522 (UNBLOCK_INPUT_TO): Now a function.
3523 (totally_unblock_input, unblock_input): New decls.
3524 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
3525 (init_data): Remove. Necessary stuff now done in init_signal.
3526 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
3527 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
3528 (fatal_error_code): Remove; no longer needed.
3529 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
3530 it doesn't always backtrace. All uses changed. No need to reset
3531 signal to default, since sigaction and/or die does that for us now.
3532 Use emacs_raise (FOO), not kill (getpid (), FOO).
3533 (main): Check more-accurately whether we're dumping.
3534 Move fatal-error setup to sysdep.c
3535 * floatfns.c: Do not include "syssignal.h"; no longer needed.
3536 * gtkutil.c (xg_get_file_name, xg_get_font):
3537 Remove no-longer-needed signal-mask manipulation.
3538 * keyboard.c, process.c (POLL_FOR_INPUT):
3539 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
3540 * keyboard.c (read_avail_input): Remove.
3541 All uses replaced by gobble_input.
3542 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
3543 (kbd_buffer_store_event_hold, gobble_input):
3544 (record_asynch_buffer_change) [USABLE_SIGIO]:
3545 (store_user_signal_events):
3546 No need to mess with signal mask.
3547 (gobble_input): If blocking input and there are terminals, simply
3548 set pending_signals to 1 and return. All hooks changed to not
3549 worry about whether input is blocked.
3550 (process_pending_signals): Clear pending_signals before processing
3551 them, in case a signal comes in while we're processing.
3552 By convention callers now test pending_signals before calling us.
3553 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
3554 New functions, to support changes to blockinput.h.
3555 (handle_input_available_signal): Now extern.
3556 (reinvoke_input_signal): Remove. All uses replaced by
3557 handle_async_input.
3558 (quit_count): Now volatile, since a signal handler uses it.
3a880af4
SM
3559 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
3560 All callers changed. Block SIGINT only if not already blocked.
4d7e6e51
PE
3561 Clear sigmask reliably, even if Fsignal returns, which it can.
3562 Omit unnecessary accesses to volatile var.
3563 (quit_throw_to_read_char): No need to restore sigmask.
3564 * keyboard.c (gobble_input, handle_user_signal):
3565 * process.c (wait_reading_process_output):
3566 Call signal-handling code rather than killing ourselves.
3567 * lisp.h: Include <float.h>, for...
3568 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
3569 (pending_signals): Now volatile.
3570 (syms_of_data): Now const if IEEE floating point.
3571 (handle_input_available_signal) [USABLE_SIGIO]:
3572 (terminate_due_to_signal, record_child_status_change): New decls.
3573 * process.c (create_process): Avoid disaster if memory is exhausted
3574 while we're processing a vfork, by tightening the critical section
3575 around the vfork.
3576 (send_process_frame, process_sent_to, handle_pipe_signal)
3577 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
3578 ignores SIGPIPE.
3579 (send_process): No need for setjmp/longjmp any more, since the
3580 SIGPIPE stuff is now gone. Instead, report an error if errno
3581 is EPIPE.
3582 (record_child_status_change): Now extern. PID and W are now args.
3583 Return void, not bool. All callers changed.
3584 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
3585 Remove. All uses removed. This bug should be fixed now in a
3586 different way.
3587 (wait_for_termination_1): Use waitpid rather than sigsuspend,
3588 and record the child status change directly. This avoids the
3589 need to futz with the signal mask.
3590 (process_fatal_action): Move here from emacs.c.
3591 (emacs_sigaction_flags): New function, containing
3592 much of what used to be in emacs_sigaction_init.
3593 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
3594 caught by emacs, to make races less likely.
3595 (deliver_process_signal): Rename from handle_on_main_thread.
3596 All uses changed.
3597 (BACKTRACE_LIMIT_MAX): Now at top level.
3598 (thread_backtrace_buffer, threadback_backtrace_pointers):
3599 New static vars.
3600 (deliver_thread_signal, deliver_fatal_thread_signal):
3601 New functions, for more-accurate delivery of thread-specific signals.
3602 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
3603 (deliver_arith_signal): Handle in this thread, not
3604 in the main thread, since it's triggered by this thread.
3605 (maybe_fatal_sig): New function.
3606 (init_signals): New arg DUMPING so that we can be more accurate
3607 about whether we're dumping. Caller changed.
3608 Treat thread-specific signals differently from process-general signals.
3609 Block all signals while handling fatal error; that's safer.
3610 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
3611 on IEEE hosts.
3612 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
3613 Ignore SIGPIPE unless batch.
3614 (emacs_backtrace): Output backtrace for the appropriate thread,
3615 which is not necessarily the main thread.
3616 * syssignal.h: Include <stdbool.h>.
3617 (emacs_raise): New macro.
3618 * xterm.c (x_connection_signal): Remove; no longer needed
3619 now that we use sigaction.
3620 (x_connection_closed): No need to mess with sigmask now.
3621 (x_initialize): No need to reset SIGPIPE handler here, since
3622 init_signals does this for us now.
3623
8f4635e9
JD
36242012-09-23 Jan Djärv <jan.h.d@swipnet.se>
3625
3626 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
fb39b937 3627 background rect may be larger (Bug#12245).
8f4635e9 3628
3296976d
CY
36292012-09-23 Chong Yidong <cyd@gnu.org>
3630
3631 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
3632
d41e491e
PE
36332012-09-22 Paul Eggert <eggert@cs.ucla.edu>
3634
3635 * .gdbinit: Just stop at fatal_error_backtrace.
3636 See Stefan Monnier's request in
3637 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
3638 Remove no-longer-used query of system type.
3639
c88b867f
CY
36402012-09-22 Chong Yidong <cyd@gnu.org>
3641
3642 * search.c (Freplace_match): Doc fix (Bug#12325).
3643
3644 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
3645
3646 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
3647 (Fline_end_position): Doc fix.
3648
3649 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
3650
bb4d86b4
CY
36512012-09-22 Chong Yidong <cyd@gnu.org>
3652
3653 * dispextern.h (struct image_type): Add new slot, storing a type
3654 initialization function.
3655
3656 * image.c (define_image_type): Call the image initializer function
3657 if it is defined. Arguments and return value changed.
3658 (valid_image_p, make_image): Callers changed.
3659 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3a880af4
SM
3660 (gif_type, imagemagick_type, svg_type, gs_type):
3661 Add initialization functions.
bb4d86b4
CY
3662 (Finit_image_library): Call lookup_image_type.
3663 (CHECK_LIB_AVAILABLE): Macro deleted.
3664 (lookup_image_type): Call define_image_type here, rather than via
3665 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
3666 (syms_of_image): Move define_image_type calls for xbm_type and
3667 pbm_type to lookup_image_type.
3668
df9685f3
EZ
36692012-09-22 Eli Zaretskii <eliz@gnu.org>
3670
3671 * keyboard.c (timer_check_2): Move calculation of 'timers' and
3672 'idle_timers' from here ...
3673 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
3674 lists, to avoid infloops when the timer does something stupid,
3675 like reinvoke itself with the same or smaller time-out.
3676 (Bug#12447)
3677
8e17c9ba
MR
36782012-09-22 Martin Rudalics <rudalics@gmx.at>
3679
3680 * window.c (Fsplit_window_internal): Handle only Qt value of
3681 Vwindow_combination_limit separately.
3682 (Qtemp_buffer_resize): New symbol.
3a880af4
SM
3683 (Vwindow_combination_limit): New default value.
3684 Rewrite doc-string.
8e17c9ba 3685
589bd69b
EZ
36862012-09-22 Eli Zaretskii <eliz@gnu.org>
3687
3688 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
3689 the new overlay string. (Bug#10159)
3690
01108e3f
PE
36912012-09-22 Paul Eggert <eggert@cs.ucla.edu>
3692
3693 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
3694 or that fprintf is async-signal-safe. POSIX doesn't require
3695 either assumption.
3696
82f8cd94
CY
36972012-09-22 Chong Yidong <cyd@gnu.org>
3698
3699 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
3700 (Bug#8207).
3701
3cccbd87
KH
37022012-09-22 Kenichi Handa <handa@gnu.org>
3703
3704 * composite.c (composition_reseat_it): Handle the case that a
3705 grapheme cluster is not covered by a single font (Bug#12352).
3706
09c01941
CY
37072012-09-21 Chong Yidong <cyd@gnu.org>
3708
3709 * image.c (define_image_type): Avoid adding duplicate types to
3710 image_types (Bug#12463). Suggested by Jörg Walter.
3711
acfa068f 37122012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
e25c1a30
YM
3713
3714 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
3715 (print_load_command_name): Add case LC_DATA_IN_CODE.
3716 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
3717
acfa068f 37182012-09-21 Glenn Morris <rgm@gnu.org>
1e9bbf47
GM
3719
3720 * eval.c (Frun_hook_with_args_until_success)
3721 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
3722
acfa068f 37232012-09-21 Andreas Schwab <schwab@linux-m68k.org>
c6ba4138
AS
3724
3725 * fileio.c (Ffile_selinux_context): Only call freecon when
3726 lgetfilecon succeeded.
3727 (Fset_file_selinux_context): Likewise. (Bug#12444)
3728
acfa068f 37292012-09-21 Eli Zaretskii <eliz@gnu.org>
aa36e4d2
EZ
3730
3731 * xdisp.c (try_window_reusing_current_matrix): Under bidi
3732 reordering, locate the cursor by calling set_cursor_from_row; if
3733 that fails, clear the desired glyph matrix before returning a
3734 failure indication to the caller. Fixes leaving garbled display
3735 when fast scrolling with a down-key. (Bug#12403)
f2016bea
EZ
3736 (compute_stop_pos_backwards): Fix a typo that caused crashes while
3737 scrolling through multibyte text.
aa36e4d2 3738
e99f70c8
SM
37392012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
3740
3741 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
3742 calling mark_vectorlike since that's the one that marks the window.
3743 (mark_discard_killed_buffers): Mark the final cdr.
3744 * window.h (struct window): Move prev/next_buffers to the
3745 non-standard fields.
3746 * window.c (make_window): Initialize prev/next_buffers manually.
3747
f75beb47
PE
37482012-09-20 Paul Eggert <eggert@cs.ucla.edu>
3749
3750 Omit unused arg EXPECTED from socket hooks.
3751 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
3752 * nsterm.m (ns_term_init):
3753 * termhooks.h (struct terminal.read_socket_hook):
3754 * w32inevt.c (w32_console_read_socket):
3755 * w32term.c (w32_read_socket):
3756 * xterm.c (XTread_socket):
3757 Omit unused arg EXPECTED. All callers changed.
3758 (store_user_signal_events): Return void, not int, since callers no
3759 longer care about the return value. All uses changed.
3760
b019b76a
JB
37612012-09-20 Juanma Barranquero <lekktu@gmail.com>
3762
3763 * w32gui.h (XParseGeometry): Do not declare.
3764
05642592
PE
37652012-09-19 Paul Eggert <eggert@cs.ucla.edu>
3766
e4bce92a 3767 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1f9f395d 3768 Ignore 'expected'. See Eli Zaretskii in
e4bce92a
PE
3769 <http://bugs.gnu.org/12471#8> (last line).
3770
05642592
PE
3771 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
3772 (XParseGeometry): Now static. Substitute extremal values for
3773 values that are out of range.
3774
e543ae91
JD
37752012-09-19 Jan Djärv <jan.h.d@swipnet.se>
3776
3777 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
3778
3779 * nsfns.m (XParseGeometry): Remove.
3780 (Fx_create_frame): Call x_set_offset to correctly interpret
3781 top_pos in geometry.
3782
3a880af4 3783 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
e543ae91
JD
3784 (Fx_parse_geometry): If there is a space in string, call
3785 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
3786
45ba16c7
EZ
37872012-09-17 Eli Zaretskii <eliz@gnu.org>
3788
c8b9f1bc
EZ
3789 * search.c (scan_buffer): Use character positions in calls to
3790 region_cache_forward and region_cache_backward, not byte
3791 positions. (Bug#12196)
3792
b4c932a2
EZ
3793 * w32term.c (w32_read_socket): Set pending_signals to 1, like
3794 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
3795
45ba16c7
EZ
3796 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
3797 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
3798 emacs_blocked_malloc, now deleted.
3799
eeceac93
PE
38002012-09-17 Paul Eggert <eggert@cs.ucla.edu>
3801
3802 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
3803 The workaround was for improving performance on Solaris 2.4, but
3804 is getting in the way now. Emacs will still work if someone is
3805 still running Solaris 2.4 in a museum somewhere; Sun dropped
3806 support for Solaris 2.4 in 2003.
3807 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
3808 * process.c (create_process) [HAVE_WORKING_VFORK]:
3809 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
3810 since Emacs no longer uses vfork on that platform.
3811
78f83752
GM
38122012-09-17 Glenn Morris <rgm@gnu.org>
3813
3814 * emacs.c: Use COPYRIGHT.
3815
634b8cac
PE
38162012-09-16 Paul Eggert <eggert@cs.ucla.edu>
3817
0caaedb1
PE
3818 Remove configure's --without-sync-input option (Bug#12450).
3819 When auditing signal-handling in preparation for cleaning it up,
3820 I found that SYNC_INPUT has race conditions and would be a real
3821 pain to fix. Since it's an undocumented and deprecated
3822 configure-time option, now seems like a good time to remove it.
3823 Also see <http://bugs.gnu.org/11080#16>.
3824 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
3825 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
3826 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
3827 (malloc_hysteresis):
3828 (check_depth) [XMALLOC_OVERRUN_CHECK]:
3829 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
3830 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
3831 (dont_register_blocks, bytes_used_when_reconsidered)
3832 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
3833 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
3834 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1f9f395d 3835 Remove. All uses removed.
0caaedb1
PE
3836 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
3837 implementation, one that depends on whether the new macro
3838 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
3839 is defined.
3840 * atimer.c (run_timers, handle_alarm_signal):
3841 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
3842 (handle_async_input, process_pending_signals)
3843 (handle_input_available_signal, init_keyboard):
3844 * nsterm.m (ns_read_socket):
3845 * process.c (wait_reading_process_output):
3846 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
3847 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
3848 (emacs_write):
3849 * xterm.c (XTread_socket):
3850 Assume SYNC_INPUT.
3851 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
3852 * eval.c (handling_signal): Remove. All uses removed.
3853 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
3854 All uses replaced with the SYNC_INPUT version.
3855 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
3856 Remove decls.
3857 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
3858 Now static.
3859
634b8cac
PE
3860 * font.c (Ffont_shape_gstring): Remove unused local.
3861
83da1b55
GM
38622012-09-16 Glenn Morris <rgm@gnu.org>
3863
518650a5
GM
3864 * Makefile.in (clean): No longer run nextstep's clean.
3865
83da1b55
GM
3866 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
3867 (ns_frag): Remove.
3868 (ns-app): Move here from ns.mk, and simplify.
3869 (clean): Simplify nextstep entry.
3870 * ns.mk: Remove file.
3871
85a43e2e
KH
38722012-09-17 Kenichi Handa <handa@gnu.org>
3873
3874 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
3875 not covert the last few charactes.
3876
ba13e616 38772012-09-16 Kenichi Handa <handa@gnu.org>
ea964864
KH
3878
3879 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
3880 here, but just check the validity of glyphs in the glyph-string.
3881
a8c729af
MR
38822012-09-16 Martin Rudalics <rudalics@gmx.at>
3883
3a880af4
SM
3884 * window.c (Fwindow_parameter, Fset_window_parameter):
3885 Accept any window as argument (Bug#12452).
a8c729af 3886
c077c059
JD
38872012-09-16 Jan Djärv <jan.h.d@swipnet.se>
3888
3889 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
3890 to ns_term_init to avoid memory leak.
3891
3892 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
3893 explicit retain/release.
3894 (ns_term_init): Only allow one display. Initialize outerpool and
3895 ns_*_types.
3896
39a57ad0
PE
38972012-09-15 Paul Eggert <eggert@cs.ucla.edu>
3898
3899 Port _setjmp fix to POSIXish hosts as well as Microsoft.
3900 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
3901 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
3902 the Microsoft problem in a different way, by altering ../nt/config.nt.
3903
7105c8cb
EZ
39042012-09-15 Eli Zaretskii <eliz@gnu.org>
3905
3906 * w32xfns.c:
3907 * w32uniscribe.c:
3908 * w32term.c:
3909 * w32select.c:
3910 * w32reg.c:
3911 * w32proc.c:
3912 * w32menu.c:
3913 * w32inevt.c:
3914 * w32heap.c:
3915 * w32font.c:
3916 * w32fns.c:
3917 * w32console.c:
3918 * w32.c:
3919 * w16select.c: Remove inclusion of setjmp.h, as it is now included
3920 by lisp.h. This completes removal of setjmp.h inclusion
3921 erroneously announced in the previous commit. (Bug#12446)
3922
3923 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
3924 more accurate.
3925
3926 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
3927 not defined as a macro. The latter happens on MS-Windows.
3928 (Bug#12446)
3929
0328b6de
PE
39302012-09-15 Paul Eggert <eggert@cs.ucla.edu>
3931
3932 Port better to POSIX hosts lacking _setjmp (Bug#12446).
3933 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
7105c8cb 3934 Some instances of '#include <setjmp.h>' removed, if the
0328b6de
PE
3935 only reason for the instance was because "lisp.h" was included.
3936 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
3937 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
3938 and _longjmp with the new symbols. Emacs already uses _setjmp if
3939 available, so this change affects only POSIXish hosts that have
3940 sigsetjmp but not _setjmp, such as some versions of Solaris and
3941 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
3942 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
3943 (png_load_body) [HAVE_PNG]:
3944 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
3945 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
3946 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
3947 since PNG requires jmp_buf. This is the only exception to the
3948 general rule that we now use sys_setjmp and sys_longjmp.
3949 This exception is OK since this code does not change the signal
3950 mask or longjmp out of a signal handler.
3951
2af03429
PE
39522012-09-14 Paul Eggert <eggert@cs.ucla.edu>
3953
3954 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
3955 Include "syssignal.h", for 'main_thread'.
3956
2f294edf
DA
39572012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
3958
3959 Avoid out-of-range marker position (Bug#12426).
3a880af4
SM
3960 * insdel.c (replace_range, replace_range_2):
3961 Adjust markers before overlays, as suggested by comments.
2f294edf
DA
3962 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
3963 Remove redundant check before calling offset_intervals.
3964
6b533e9c
MR
39652012-09-14 Martin Rudalics <rudalics@gmx.at>
3966
3967 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
3968 current buffer (Bug#12387).
3969
2a7931e3
JB
39702012-09-14 Juanma Barranquero <lekktu@gmail.com>
3971
3972 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
3973
c18e885b
PE
39742012-09-13 Paul Eggert <eggert@cs.ucla.edu>
3975
3976 Use a more backwards-compatible timer format (Bug#12430).
3977 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
3978 vector element, not from the 4th, since PSECS is now at the end.
3979 (Fcurrent_idle_time): Doc fix.
3980
d59a1afb
DA
39812012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
3982
3983 Function to mark objects and remove killed buffers at once.
3984 * alloc.c (discard_killed_buffers): Rename to ...
3985 (mark_discard_killed buffers) ... new name. Add marking
3986 of remaining objects. Fix comment. Adjust users.
3987 (mark_object): Do not touch frame buffer lists here.
3988 * frame.c (delete_frame): Reset frame buffer lists here.
3989
5f0cb45a
PE
39902012-09-13 Paul Eggert <eggert@cs.ucla.edu>
3991
8ea47e3a
PE
3992 Better workaround for GNOME bug when --enable-gcc-warnings.
3993 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
3994 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
3995 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
3996
4a4bbad2
PE
3997 Simplify SIGIO usage (Bug#12408).
3998 The code that dealt with SIGIO was crufty and confusing, e.g., it
3999 played tricks like "#undef SIGIO" but these tricks were not used
4000 consistently. Simplify mostly by not #undeffing standard symbols,
4001 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
4002 or not as we please) rather than "defined SIGIO" (standard symbol
4003 that we probably shouldn't #undef).
4004 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
4005 Modules that need it can include it.
4006 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
4007 * dispextern.h (ignore_sigio): New decl.
4008 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
4009 unconditionally, since it's now a no-op if !USABLE_SIGIO.
4010 * emacs.c (shut_down_emacs):
4011 * keyboard.c (kbd_buffer_store_event_hold):
4012 Use ignore_sigio rather than invoking 'signal' directly.
4013 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
4014 for FIONREAD.
4015 (FIONREAD, SIGIO): Do not #undef.
4016 (tty_read_avail_input): Use #error rather than a syntax error.
4017 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
4018 for I_PIPE, used by SETUP_SLAVE_PTY.
4019 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
4020 * sysdep.c (croak): Remove; no longer needed. This bit of
4021 temporary code, with Fred N. Fish's comment that it's temporary,
4022 has been in Emacs since at least 1992!
4023 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
4024 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
4025 * syssignal.h (croak): Remove decl.
4026 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
4027 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
4028 now that we're termios-only.
4029 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
4030 * term.c (dissociate_if_controlling_tty): Use #error rather than
4031 a run-time error.
4032
5f0cb45a
PE
4033 Work around GCC and GNOME bugs when --enable-gcc-warnings.
4034 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
4035 to work around GNOME bug 683906.
4036 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
4037 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
4038 This works around GCC bug 54561.
4039
40bce90b
PE
40402012-09-12 Paul Eggert <eggert@cs.ucla.edu>
4041
4042 More fixes for 'volatile' and setjmp/longjmp.
4043 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
4044 * image.c (struct png_load_context) [HAVE_PNG]: New type.
4045 (png_load_body) [HAVE_PNG]:
4046 (jpeg_load_body) [HAVE_JPEG]:
4047 New function, with most of the old parent function's body.
4048 (png_load) [HAVE_PNG]:
4049 (jpeg_load) [HAVE_JPEG]:
4050 Invoke the new function, to avoid longjmp munging our locals.
4051 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
4052 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
4053 longjmp is passed 2, as the C standard doesn't guarantee this.
4054 Instead, store the failure code into mgr->failure_code.
4055
bfeae2cf
SM
40562012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
4057
4058 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
4059 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
4060 (syms_of_keyboard): Remove support for unread-command-char.
4061
8099e36b
EZ
40622012-09-12 Eli Zaretskii <eliz@gnu.org>
4063
4064 * w32proc.c (sys_kill): If PID is our process ID and the signal is
4065 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
4066 violation. (Bug#12426)
4067
92547ff9
PE
40682012-09-12 Paul Eggert <eggert@cs.ucla.edu>
4069
4070 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
4071
45b82ad0
SM
40722012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
4073
4074 * eval.c: Add `inhibit-debugger'.
4075 (Qinhibit_debugger): New symbol.
4076 (call_debugger): Bind it instead of Qdebug_on_error.
4077 (maybe_call_debugger): Test Vinhibit_debugger.
4078 (syms_of_eval): Define inhibit-debugger.
4079 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
4080 (syms_of_xdisp): Remove inhibit-debug-on-message.
4081
5779a1dc
PE
40822012-09-11 Paul Eggert <eggert@cs.ucla.edu>
4083
50f2e553
PE
4084 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
4085 If a nonvolatile local variable is written before a _longjmp to
4086 the frame containing the variable, and is read after the _longjmp,
4087 the value read is indeterminate. Some local variables of type
4088 'struct handler' and 'struct catchtag' are used in this way, so
4089 mark each of their slots as volatile if the slot can be set before
4090 _longjmp and read afterwards.
4091 * lisp.h (struct handler): var and chosen_clause are now volatile.
4092 (struct catchtag): val, next, and pdlcount are now volatile.
4093
ae1d87e2
PE
4094 * bidi.c (bidi_push_it, bidi_pop_it):
4095 * fns.c (copy_hash_table):
4096 * image.c (define_image_type):
4097 * keyboard.c (kbd_buffer_store_event_hold):
4098 * process.c (Fprocess_send_eof):
4099 * xfaces.c (x_create_gc) [HAVE_NS]:
4100 * xgselect.c (xg_select):
4101 Prefer assignment to memcpy when either will do.
4102
5779a1dc
PE
4103 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
4104 Use pointer-to-a-pointer to simplify and avoid a NILP check each
4105 time an item is removed. No need to mark this function 'inline';
4106 the compiler knows better than we do.
4107
c4c9756b
JD
41082012-09-11 Jan Djärv <jan.h.d@swipnet.se>
4109
4110 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
4111 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
4112 to change_frame_size (Bug#12388).
4113 (windowDidResize:): Pass YES to updateFrameSize.
4114
4115 * nsterm.h: Add delay parameter to updateFrameSize.
4116
d73e321c
DA
41172012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
4118
4119 Discard killed buffers from deleted window and frame objects.
4120 This reduces an amount of references to killed buffers and
4121 helps GC to reclaim them faster.
4122 * alloc.c (discard_killed_buffers): New function.
4123 (mark_object): Use it for deleted windows and frames.
4124 (mark_object): If symbol's value is set up for a killed buffer
1f9f395d 4125 or deleted frame, restore its global binding.
d73e321c
DA
4126 * data.c (swap_in_global_binding): Add GC notice.
4127 (swap_in_symval_forwarding): Use convenient set_blv_where.
4128 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
4129 * window.h: ... to here.
4130
e578f381
DA
41312012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
4132
4133 Convenient macro to check whether the buffer is live.
4134 * buffer.h (BUFFER_LIVE_P): New macro.
4135 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
4136 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
4137
3057e615
YM
41382012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4139
4140 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
4141 composition cases (Bug#12364).
4142
4143 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
4144 overhang of succeeding glyphs overlapping box cursor.
4145
4146 * w32term.c (x_draw_glyph_string): Likewise.
4147
6fda35f2
PE
41482012-09-11 Paul Eggert <eggert@cs.ucla.edu>
4149
c990426a
PE
4150 Simplify, document, and port floating-point (Bug#12381).
4151 The porting part of this patch fixes bugs on non-IEEE platforms
4152 with frexp, ldexp, logb.
4153 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
4154 Now static.
4155 * floatfns.c: Simplify discussion of functions that Emacs doesn't
4156 support, by removing commented-out code and briefly listing the
4157 C89 functions excluded. The commented-out stuff was confusing
4158 maintenance, e.g., we thought we needed cbrt but it was commented out.
4159 (logb): Remove decl; no longer needed.
4160 (isfinite): New macro, if not already supplied.
4161 (isnan): Don't replace any existing macro.
4162 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
4163 are present on all C89 platforms.
4164 (Ffrexp): Do not special-case zero, as frexp does the right thing
4165 for that case.
4166 (Flogb): Do not use logb, as it doesn't have the desired meaning
4167 on hosts that use non-base-2 floating point. Instead, stick with
4168 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
4169 frexp, to avoid getting an unspecified result.
4170
6fda35f2
PE
4171 * xdisp.c (Qinhibit_debug_on_message): Now static.
4172
16130a58
JD
41732012-09-10 Jan Djärv <jan.h.d@swipnet.se>
4174
4175 * nsterm.m (ns_update_begin): Set clip path to whole view by using
4176 NSBezierPath (Bug#12131).
4177
d105a573
CY
41782012-09-10 Chong Yidong <cyd@gnu.org>
4179
4180 * fns.c (Fdelq, Fdelete): Doc fix.
4181
ff55dfe8
PE
41822012-09-10 Paul Eggert <eggert@cs.ucla.edu>
4183
4184 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
4185 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
4186
e7032e7c
SM
41872012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
4188
4189 * lisp.h (make_lisp_ptr): New macro to replace XSET.
4190 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
4191 Use it.
4192
e9957956
EZ
41932012-09-09 Eli Zaretskii <eliz@gnu.org>
4194
aba05ce9
EZ
4195 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
4196 left fringe if the window has a left margin. This avoids leaving
4197 traces of the cursor because its leftmost pixel is not drawn over.
4198
e9957956
EZ
4199 * dispnew.c (update_window_line): When the left margin area of a
4200 screen line is updated, set the redraw_fringe_bitmaps_p flag of
4201 that screen line. (Bug#12277)
4202
f6196b87
PE
42032012-09-09 Paul Eggert <eggert@cs.ucla.edu>
4204
4205 Assume C89 or later for math functions (Bug#12381).
4206 This simplifies the code, and makes it a bit smaller and faster,
4207 and (most important) makes it easier to clean up signal handling
4208 since we can stop worring about floating-point exceptions in
4209 library code. That was a problem before C89, but the problem
4210 went away many years ago on all practical Emacs targets.
4211 * data.c, image.c, lread.c, print.c:
4212 Don't include <math.h>; no longer needed.
4213 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
4214 might be autoconfigured, as that never happens.
4215 * data.c (fmod):
4216 * doprnt.c (DBL_MAX_10_EXP):
4217 * print.c (DBL_DIG):
4218 Remove. C89 or later always defines these.
4219 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
4220 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
4221 (arith_error, domain_error, domain_error2):
4222 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
4223 no longer needed -- we simply return what C returns. All uses removed.
4224 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
4225 the wrapped code.
4226 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
4227 Remove. All uses expanded, as these macros are no longer used
4228 more than once and are now more trouble than they're worth.
4229 (Ftan): Use tan, not sin / cos.
4230 (Flogb): Assume C89 frexp.
4231 (fmod_float): Assume C89 fmod.
4232 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
4233 (init_floatfns): Remove. All uses removed.
4234
9d7f1863
JD
42352012-09-08 Jan Djärv <jan.h.d@swipnet.se>
4236
4237 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
4238 compositeToPoint for OSX < 10.6 (Bug#12390).
4239
eabf0404
PE
42402012-09-08 Paul Eggert <eggert@cs.ucla.edu>
4241
4242 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
4243 This produces more-accurate results.
4244
0b3b1d23
JD
42452012-09-08 Jan Djärv <jan.h.d@swipnet.se>
4246
4247 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
4248 changes (Bug#12088).
4249
6dcef6ec
CY
42502012-09-08 Chong Yidong <cyd@gnu.org>
4251
4252 * syntax.c (Fstring_to_syntax): Doc fix.
4253
aa7d57c5
JD
42542012-09-08 Jan Djärv <jan.h.d@swipnet.se>
4255
4256 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
4257 in the internal border.
4258 (x_set_window_size): Remove static variables and their usage.
4259 (ns_redraw_scroll_bars): Fix NSTRACE arg.
3a880af4
SM
4260 (ns_after_update_window_line, ns_draw_fringe_bitmap):
4261 Remove fringe/internal border adjustment (Bug#11052).
aa7d57c5
JD
4262 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
4263 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
4264 (ns_fix_rect_ibw): Remove.
4265 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
4266 (ns_dumpglyphs_box_or_relief): Ditto.
4267 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
4268 adjustment.
4269 (ns_dumpglyphs_image): Ditto.
fc0c31f8 4270 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
aa7d57c5
JD
4271 border adjustment.
4272 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
4273 their usage. Add fringe_extended_p and its use as in other terms.
4274 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
4275 scroll bar was removed.
4276 (updateFrameSize): New function.
4277 (windowDidResize): Move code to updateFrameSize and call it.
4278
4279 * nsterm.h (EmacsView): Add updateFrameSize.
4280
1a5432bc
CY
42812012-09-07 Chong Yidong <cyd@gnu.org>
4282
b4f5313e
CY
4283 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
4284
1a5432bc
CY
4285 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
4286
1a4f1e9b
PE
42872012-09-07 Paul Eggert <eggert@cs.ucla.edu>
4288
4289 More signal-handler cleanup (Bug#12327).
eddb36a7
PE
4290 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
4291 Problem introduced when merging patches. Noted by Eli Zaretskii in
4292 <http://bugs.gnu.org/12327#67>.
1a4f1e9b
PE
4293 * floatfns.c: Comment fix.
4294 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
4295 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
4296 and anyway the declaration is harmless even if SIGDANGER is not defined.
4297 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
4298 defined BROKEN_FIONREAD). systty.h formerly did this, but other
4299 source files not surprisingly expected syssignal.h to define, or
4300 not define, SIGIO, and it's cleaner to do it that way, for consistency.
4301 Include <sys/ioctl.h>, for FIONREAD.
4302 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
4303 This eliminates a problem whereby other files mysteriously had
4304 to include "syssignal.h" before including "systty.h" if they
4305 wanted to use "#ifdef SIGIO".
4306
bc8000ff
EZ
43072012-09-07 Eli Zaretskii <eliz@gnu.org>
4308
3e6d6928
EZ
4309 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
4310
4311 * w32.c (sigemptyset): Empty the set.
4312 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
4313
bc8000ff
EZ
4314 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
4315
b4fa72f2
DA
43162012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
4317
4318 * alloc.c (mark_buffer): Revert unsafe marking optimization.
4319 (mark_object): Likewise for frame objects.
4320
30730c93
PE
43212012-09-07 Paul Eggert <eggert@cs.ucla.edu>
4322
4323 * syssignal.h (handle_on_main_thread): Always declare,
4324 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
4325 This ports to platforms without HAVE_PTHREAD.
4326
2fe28299
PE
43272012-09-06 Paul Eggert <eggert@cs.ucla.edu>
4328
4329 Signal-handler cleanup (Bug#12327).
4330 Emacs's signal handlers were written in the old 4.2BSD style with
4331 sigblock and sigmask and so forth, and this led to some
4332 inefficiencies and confusion. Rewrite these to use
4333 pthread_sigmask etc. without copying signal sets around. Also,
4334 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
4335 'signal', and instead use functions that do not attempt to take
4336 over the system name space. This patch causes Emacs's text
4337 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
4338 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
4339 Do not include <signal.h> or "syssignal.h", as these
4340 modules do not use signals.
4341 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
4342 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
4343 Do not include <signal.h>, as "syssignal.h" does that for us now.
4344 * atimer.c (sigmask_atimers): New function.
4345 (block_atimers, unblock_atimers): New functions,
4346 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
4347 All uses replaced.
4348 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
4349 no longer needed here.
4350 * emacs.c (main): Inspect existing signal handler with sigaction,
fc0c31f8 4351 so that there's no need to block and unblock SIGHUP.
2fe28299
PE
4352 * sysdep.c (struct save_signal): New member 'action', replacing
4353 old member 'handler'.
4354 (save_signal_handlers, restore_signal_handlers):
4355 Use sigaction instead of 'signal' to save and restore.
4356 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
4357 New function. All users of 'signal' modified to use set_sighandler
4358 if they're writeonly, and to use sys_signal if they're read+write.
4359 (emacs_sigaction_init, forwarded_signal): New functions.
4360 (sys_signal): Remove. All uses replaced by calls to sigaction
4361 and emacs_sigaction_init, or by direct calls to 'signal'.
4362 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
4363 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
4364 all uses replaced by pthread_sigmask etc. calls.
4365 * syssignal.h: Include <signal.h>.
4366 (emacs_sigaction_init, forwarded_signal): New decls.
4367 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
4368 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
4369 (sigmask, sys_sigmask): Remove; no longer needed.
4370 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
4371 (sigblock, sigunblock, sigfree):
4372 (sigsetmask) [!defined sigsetmask]:
4373 Remove. All uses replaced by pthread_sigmask.
4374 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
4375 no longer need to be replaced, and its typical old uses
4376 are now done via emacs_sigaction_init and sigaction.
4377 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
4378 (sys_sigdel): Remove; unused.
4379 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
4380
0216c128
EZ
43812012-09-06 Eli Zaretskii <eliz@gnu.org>
4382
4383 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
4384 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
4385
c752cfa9
DA
43862012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4387
4388 Explicitly mark buffer_defaults and buffer_local_symbols.
4389 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
4390 mark_local_symbols here.
4391 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
4392 since special buffers aren't marked here any more.
4393 (allocate_buffer): Chain new buffer with all_buffers here...
4394 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
4395 not here.
4396 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
4397 (syms_of_buffer): Remove staticpro of the above.
4398 (init_buffer_once): Set names for buffer_defaults and
4399 buffer_local_symbols.
4400
a864ef14
PE
44012012-09-06 Paul Eggert <eggert@cs.ucla.edu>
4402
4403 Use bool for booleans in font-related modules.
4404 * font.c (font_intern_prop, font_style_to_value)
4405 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
4406 (generate_otf_features, font_check_otf_features, font_check_otf)
4407 (font_match_p, font_list_entities, font_at):
4408 * fontset.c (fontset_id_valid_p, reorder_font_vector
4409 (fontset_find_font, Fset_fontset_font)
4410 (face_suitable_for_char_p) [0]:
4411 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
4412 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
4413 (m17n_flt_initialized, ftfont_shape_by_flt):
4414 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
4415 * nsfont.m (nsfont_draw):
4416 * w32font.c (w32font_draw):
4417 * w32term.c (x_draw_glyphless_glyph_string_foreground):
4418 Use bool for booleans.
4419 * font.h: Adjust to above API changes.
4420 (struct font, struct font_driver, struct font_driver_list):
4421 Use bool for booleans.
4422 (struct font): Remove useless member encoding_type.
4423 All users removed.
4424 * fontset.c, xftfont.c: Omit unnecessary static decls.
4425
0699fc18
DA
44262012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4427
4428 * alloc.c (mark_object): Revert window marking code
4429 since it's unsafe for the Fset_window_configuration.
4430
20ef56db
PE
44312012-09-05 Paul Eggert <eggert@cs.ucla.edu>
4432
2fe28299 4433 Fix race conditions with signal handlers and errno (Bug#12327).
20ef56db
PE
4434 Be more systematic about preserving errno whenever a signal
4435 handler returns, even if it's not in the main thread. Do this by
4436 renaming signal handlers to distinguish between signal delivery
4437 and signal handling. All uses changed.
4438 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
4439 * data.c (deliver_arith_signal): Rename from arith_error.
4440 * dispnew.c (deliver_window_change_signal): Rename from
4441 window_change_signal.
4442 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
4443 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
4444 * keyboard.c (deliver_input_available_signal): Rename from
4445 input_available_signal.
4446 (deliver_user_signal): Rename from handle_user_signal.
4447 (deliver_interrupt_signal): Rename from interrupt_signal.
4448 * process.c (deliver_pipe_signal): Rename from send_process_trap.
4449 (deliver_child_signal): Rename from sigchld_handler.
4450 * atimer.c (handle_alarm_signal):
4451 * data.c (handle_arith_signal):
4452 * dispnew.c (handle_window_change_signal):
4453 * emacs.c (handle_fatal_signal, handle_danger_signal):
4454 * keyboard.c (handle_input_available_signal):
4455 * keyboard.c (handle_user_signal, handle_interrupt_signal):
4456 * process.c (handle_pipe_signal, handle_child_signal):
4457 New functions, with the actual signal-handling code taken from the
4458 original respective signal handlers, sans the sporadic attempts to
4459 preserve errno, since that's now done by handle_on_main_thread.
4460 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
4461 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
4462 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
4463 Move to sysdep.c.
4464 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
4465 Move initialization of main_thread to sysdep.c's init_signals.
4466 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
4467 our usage, and simplifies the mainline code.
4468 (record_child_status_change): New static function, as a helper
4469 for handle_child_signal, and with most of the old child handler's
4470 contents.
4471 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
4472 (handle_child_signal): Use the above.
4473 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
4474 Moved here from emacs.c.
4475 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
4476 code moved here from emacs.c's main function.
4477 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
3a880af4
SM
4478 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
4479 This lets callers save and restore errno properly.
20ef56db 4480
e3ccf108
DA
44812012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4482
4483 Remove redundant or unused things here and there.
4484 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
4485 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
4486 * editfns.c (Fcompare_buffer_substrings): Likewise.
4487 * frame.h (struct terminal, struct font_driver_list):
4488 Remove redundant declarations.
4489 * window.h (Qleft, Qright): Likewise.
4490
697e1e39
DA
44912012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4492
4493 Do not mark objects from deleted buffers, windows and frames.
4494 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
4495 (mark_object): Likewise for windows and frames.
4496
c1ca42ca
DA
44972012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4498
4499 * alloc.c (valid_lisp_object_p): Treat killed buffers,
4500 buffer_defaults and buffer_local_symbols as valid objects.
4501 Return special value to denote them.
4502
014d93be
PE
45032012-09-05 Paul Eggert <eggert@cs.ucla.edu>
4504
f75d7a91
PE
4505 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
4506 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
4507 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
4508 (file_name_absolute_p, Fsubstitute_in_file_name):
4509 (check_executable, check_writable, Ffile_accessible_directory_p)
4510 (Fset_file_selinux_context, Fdefault_file_modes)
4511 (Finsert_file_contents, choose_write_coding_system)
4512 (Fwrite_region, build_annotations, a_write, e_write)
4513 (Fdo_auto_save):
4514 * filelock.c (boot_time_initialized, get_boot_time)
4515 (get_boot_time_1, lock_file_1, within_one_second):
4516 * floatfns.c (in_float):
4517 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
4518 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
4519 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
4520 * lisp.h (struct Lisp_Hash_Table.cmpfn):
4521 * window.c (compare_window_configurations):
4522 Use bool for booleans.
4523 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
4524 (Fdefault_file_modes): Now mode_t, not int, for modes.
4525 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
4526 (internal_delete_file): Now returns void, not a (boolean) int,
4527 since nobody was looking at the return value.
4528 * lisp.h, window.h: Adjust to above API changes.
4529
014d93be
PE
4530 * xdisp.c (set_message): Simplify and reindent last change.
4531
776f29e1
JB
45322012-09-05 Juanma Barranquero <lekktu@gmail.com>
4533
4534 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
4535
7f7e0167
LI
45362012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
4537
4538 * eval.c (call_debugger): Make the function non-static so that we
4539 can call it from set_message.
4540
4541 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
4542 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
4543
cf29dd84
PE
45442012-09-04 Paul Eggert <eggert@cs.ucla.edu>
4545
4546 Give more-useful info on a fatal error (Bug#12328).
4547 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
4548 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
4549 of doing the work ourselves.
4550 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
4551 do most of the work.
4552 (fatal_error_backtrace): New function, taken from the guts
4553 of the old fatal_error_signal, but with a new option to output
4554 a backtrace.
4555 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
4556 info about the signal than just its number.
4557 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
4558 * sysdep.c: Include <execinfo.h>
4559 (emacs_backtrace): New function, taken partly from the previous
4560 code of the 'die' function.
4561 (emacs_abort): Call fatal_error_backtrace rather than abort.
4562
972debf2
SM
45632012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
4564
4565 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
4566 eager (load-time) macro-expansion.
4567 * lisp.mk (lisp): Add macroexp.
4568
1088b922
PE
45692012-09-04 Paul Eggert <eggert@cs.ucla.edu>
4570
4571 Simplify redefinition of 'abort' (Bug#12316).
4572 Do not try to redefine the 'abort' function. Instead, redo
4573 the code so that it calls 'emacs_abort' rather than 'abort'.
4574 This removes the need for the NO_ABORT configure-time macro
4575 and makes it easier to change the abort code to do a backtrace.
4576 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
4577 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
4578 Remove; sysdep.c's emacs_abort now takes its place.
4579 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
4580 'abort' changed to use 'emacs_abort'.
4581 * msdos.c (dos_abort) [defined abort]: Remove; not used.
4582 (abort) [!defined abort]: Rename to ...
4583 (emacs_abort): ... new name.
4584 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
4585 the place of the old 'abort' in emacs.c.
4586 * w32.c, w32fns.c (abort): Do not #undef.
4587 * w32.c (emacs_abort): Rename from w32_abort.
4588
30934d33
EZ
45892012-09-04 Eli Zaretskii <eliz@gnu.org>
4590
4591 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
4592 offsets[j].dv, since the y axis of the screen coordinates points
4593 down, while the y axis of the font definition coordinates points
4594 up. This fixes display of Arabic diacritics such as KASRA and
4595 KASRATAN. (Bug#11860)
4596
af26b72c
PE
45972012-09-04 Paul Eggert <eggert@cs.ucla.edu>
4598
4599 Be more systematic about _setjmp vs setjmp.
4600 * alloc.c (test_setjmp, mark_stack):
4601 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
4602 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
4603 (png_load, my_error_exit, jpeg_load):
4604 * process.c (send_process_trap, send_process):
4605 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
4606 The underscored versions are up to 30x faster on some hosts.
4607 Formerly, the code used setjmp+longjmp sometimes and
4608 _setjmp+_longjmp at other times, with no particular reason to
4609 prefer setjmp+longjmp.
4610
26d4541d
PE
46112012-09-03 Paul Eggert <eggert@cs.ucla.edu>
4612
d42f4f0f 4613 Fix minor problem found by static checking.
26d4541d 4614 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 4615
c5e28e39
MR
46162012-09-03 Martin Rudalics <rudalics@gmx.at>
4617
4618 * buffer.c (Fdelete_all_overlays): New function.
4619
3eab3ca9
CY
46202012-09-03 Chong Yidong <cyd@gnu.org>
4621
4622 * gtkutil.c: Add extern decl for Qxft.
4623
c04889f8
PE
46242012-09-02 Paul Eggert <eggert@cs.ucla.edu>
4625
1882aa38
PE
4626 * emacs.c, eval.c: Use bool for boolean.
4627 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
4628 (malloc_using_checking) [DOUG_LEA_MALLOC]:
4629 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
4630 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
4631 (main, decode_env_path, Fdaemon_initialized):
4632 * eval.c (call_debugger, Finteractive_p, interactive_p):
4633 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
4634 (maybe_call_debugger, Fbacktrace):
4635 * process.c (read_process_output, exec_sentinel):
4636 Use bool for booleans.
4637 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
4638 All callers changed.
4639 * eval.c (interactive_p): Omit always-true boolean argument
4640 EXCLUDE_SUBRS_P. All callers changed.
4641 * dispextern.h, lisp.h: Reflect above API changes.
4642 * firstfile.c (dummy): Use the address of 'main', whose signature
4643 won't change, instead of the address of 'initialize', whose
4644 signature just changed from int to bool.
4645 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
4646 * msdos.c (fatal_error_in_progress): ... from here.
4647 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
4648 of incrementing it.
4649 (redisplay_internal, unwind_redisplay): Simply clear
4650 REDISPLAYING_P when unwinding, instead of saving its previous,
4651 always-false value and then restoring it.
4652
a411ac43
PE
4653 Clean up some extern decls.
4654 Mostly, this hoists extern decls out of .c files and into .h files.
4655 That way, we're more likely to catch errors if the interfaces change.
4656 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
4657 declare xg_mark_data.
4658 * dispextern.h (x_frame_parm_handlers):
4659 * font.h (Qxft):
4660 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
4661 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
4662 (Qultra_bold, Qoblique, Qitalic):
4663 Move extern decl here from .c file.
4664 * alloc.c (xg_mark_data) [USE_GTK]:
4665 * doc.c (Qclosure):
4666 * eval.c (Qlexical_binding):
4667 * fns.c (time) [!HAVE_UNISTD_H]:
4668 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
4669 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
4670 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
4671 * lread.c (Qinternal_interpreter_environment):
4672 * minibuf.c (Qbuffer):
4673 * process.c (QCfamily, QCfilter):
4674 * widget.c (free_frame_faces):
4675 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
4676 * xfont.c (x_clear_errors):
4677 * xterm.c (x_frame_parm_handlers):
4678 Remove now-redundant extern decls.
4679 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
4680 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
4681 Now static.
4682 * xfaces.c: Remove unnecessary static decls.
4683 * xterm.c (updating_frame): Remove decl of nonexistent object.
4684
c04889f8
PE
4685 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
4686 when building globals.h, as the objects that are not built on
4687 this host are not needed to compile C files on this host.
4688
8b339673
JD
46892012-09-02 Jan Djärv <jan.h.d@swipnet.se>
4690
4691 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
4692
4693 * frame.h: Add missing prototype for x_wm_set_size_hint.
4694
a08d4ba7
PE
46952012-09-02 Paul Eggert <eggert@cs.ucla.edu>
4696
4697 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
4698 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
4699 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
4700 (Fsubstitute_command_keys):
4701 * editfns.c (region_limit, find_field, Fconstrain_to_field)
4702 (save_excursion_save, save_excursion_restore)
4703 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
4704 (format_time_string, general_insert_function)
4705 (make_buffer_string, make_buffer_string_both)
4706 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
4707 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
4708 (copy_text, insert_1, insert_1_both, insert_from_string)
4709 (insert_from_string_before_markers, insert_from_string_1)
4710 (insert_from_buffer, insert_from_buffer_1, replace_range)
4711 (replace_range_2, del_range_1, del_range_byte, del_range_both)
4712 (del_range_2, modify_region):
4713 * intervals.c (intervals_equal, balance_possible_root_interval)
4714 (adjust_intervals_for_insertion, merge_properties_sticky)
4715 (graft_intervals_into_buffer, lookup_char_property)
4716 (adjust_for_invis_intang, set_point_both)
4717 (get_property_and_range, compare_string_intervals)
4718 (set_intervals_multibyte_1, set_intervals_multibyte):
4719 * keyboard.c (decode_timer):
4720 Use bool for boolean.
4721 * intervals.h, lisp.h, systime.h: Reflect above API changes.
4722 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
4723
48c948de
CY
47242012-09-02 Chong Yidong <cyd@gnu.org>
4725
4726 * keymap.c (push_key_description): Print M-TAB as C-M-i
4727 (Bug#11758).
4728
6c49a40b
JB
47292012-09-02 Juanma Barranquero <lekktu@gmail.com>
4730
4731 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
4732 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
4733 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
4734 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
4735 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
4736 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
4737 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
4738
4dfbd238
EZ
47392012-09-01 Eli Zaretskii <eliz@gnu.org>
4740
7e510e28
EZ
4741 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
4742 more than one grapheme cluster passed to the shaper: compute the
4743 offset adjustment values separately for each cluster. (Bug#11860)
4744
4dfbd238
EZ
4745 * image.c: Restore mistakenly removed inclusion of w32.h. Without
4746 it, GCC doesn't see prototypes of w32_delayed_load, and complains
4747 about implicit conversions from integer to pointer.
4748
86571ae0
DC
47492012-09-01 Daniel Colascione <dancol@dancol.org>
4750
4751 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
4752 system used too early.
4753
0e23ef9d
PE
47542012-09-01 Paul Eggert <eggert@cs.ucla.edu>
4755
4756 Better seed support for (random).
4757 * emacs.c (main): Call init_random.
4758 * fns.c (Frandom): Set the seed from a string argument, if given.
4759 Remove long-obsolete Gentzel cruft.
4760 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
4761 (init_random): New function.
4762
17a2cbbd
DC
47632012-09-01 Daniel Colascione <dancol@dancol.org>
4764
4765 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
4766 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
4767 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
4768 x_wm_set_size_hint, x_query_colors, x_real_positions,
4769 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
4770 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
4771 all of which have been moved to common code.
4772
4773 * xfaces.c: Include TERM_HEADER instead of listing all possible
4774 window-system headers.
4775
4776 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
4777 to match header.
4778
4779 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
4780 directly accessing frame internals.
4781
f18cbb28 4782 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
4783 globals_of_w32font.
4784
4785 * process.c: Include TERM_HEADER instead of listing all possible
4786 window-system headers.
4787
3a880af4
SM
4788 * nsterm.h: Remove declarations now in frame.h.
4789 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
17a2cbbd
DC
4790
4791 * menu.c: Include TERM_HEADER instead of listing all possible
4792 window-system headers.
4793
4794 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
4795 window system.
4796
4797 * keyboard.c: Include TERM_HEADER instead of listing all possible
4798 window-system headers.
4799
4800 * image.c: Include TERM_HEADER instead of listing all possible
4801 window-system headers. Declare Vlibrary_cache when compiling for
4802 Windows.
4803
4804 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
4805 window system declarations.
4806
4807 * frame.h: Move common functions here: set_frame_menubar,
4808 x_set_window_size, x_sync, x_get_focus_frame,
4809 x_set_mouse_position, x_set_mouse_pixel_position,
4810 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
4811 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
4812 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
4813 x_activate_menubar, x_real_positions, x_bitmap_icon,
4814 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
4815 and x_query_colors.
4816
4817 * frame.c: Include TERM_HEADER instead of listing all possible
4818 window-system headers.
4819
4820 * font.c: Include TERM_HEADER instead of listing all possible
4821 window-system headers.
4822
4823 * emacs.c: Include TERM_HEADER.
4824
f18cbb28
EZ
4825 * dispnew.c: Include TERM_HEADER instead of listing all possible
4826 window-system headers.
17a2cbbd 4827
f18cbb28 4828 * ccl.h: Include character.h.
17a2cbbd
DC
4829
4830 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
4831 the current window system; include in list of objects to link into
4832 Emacs.
4833
c650a5de
DA
48342012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
4835
4836 Remove mark_ttys function and fix tty_display_info initialization.
4837 * lisp.h (mark_ttys): Remove prototype.
4838 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
4839 to mark_ttys because all possible values of 'top_frame' slot are
4840 the frames which are reachable from Vframe_list.
4841 * term.c (mark_ttys): Remove.
4842 (init_tty): Safely initialize 'top_frame' slot with Qnil.
4843
4e0f6479
DA
48442012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
4845
4846 Change struct frame bitfields from unsigned char to unsigned.
4847 * frame.h (struct frame): Change type of 'display_preempted',
4848 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
4849 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
4850 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
4851 bitfields from unsigned char to unsigned.
4852
8b96a52c
DA
48532012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
4854
4855 Remove unused member of struct x_output and struct w32_output.
4856 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
4857 * w32term.h (struct w32_output): Likewise.
4858
b4444c8a
JD
48592012-08-30 Jan Djärv <jan.h.d@swipnet.se>
4860
4861 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
4862 does not become zero (Bug#12234).
4863
b98521db
PE
48642012-08-30 Paul Eggert <eggert@cs.ucla.edu>
4865
4866 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
4867 for GCC 4.7.1 x86-64.
4868
31d02438
GM
48692012-08-30 Glenn Morris <rgm@gnu.org>
4870
4871 * lread.c (init_lread): For out-of-tree builds, only add the
4872 source directory's site-lisp dir to the load-path if it exists,
4873 consistent with in-tree builds. (Bug#12302)
4874
7f8941d8
JD
48752012-08-28 Jan Djärv <jan.h.d@swipnet.se>
4876
4877 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
fc0c31f8 4878 button_values to NULL. Call setStykeMask so dialogs get a close button.
7f8941d8
JD
4879 (windowShouldClose:): Set window_closed.
4880 (dealloc): New member, free button_values.
fc0c31f8
JB
4881 (process_dialog:): Make member function. Remove window argument,
4882 replace window with self. Count buttons and allocate and store values
7f8941d8
JD
4883 in button_values.
4884 (addButton:value:row:): value is int with the name tag. Call setTag
fc0c31f8 4885 with tag. Remove return self, declare return value as void.
7f8941d8
JD
4886 (addString:row:): Remove return self, declare return value as void.
4887 (addSplit): Remove return self, declare return value as void.
4888 (clicked:): Remove return self, declare return value as void.
fc0c31f8 4889 Set dialog_return to button_values[seltag]. Code formatting change.
7f8941d8
JD
4890 (initFromContents:isQuestion:): Adjust call to process_dialog.
4891 Code formatting change.
4892 (timeout_handler:): Set timer_fired to YES.
4893 (runDialogAt:): Set timer_fired to NO.
4894 Handle click on close button as quit.
4895
4896 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
4897 Add window_closed and button_values. Add void as return value for
4898 add(Button|String|Split). addButton takes int instead of Lisp_Object.
4899 Add process_dialog as new member.
4900
eada0861 49012012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 4902
eada0861
GM
4903 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
4904 is not one of the heaps we manage. (Bug#12242)
4905
49062012-08-28 Glenn Morris <rgm@gnu.org>
4907
4908 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
4909
457294dd
MR
49102012-08-28 Martin Rudalics <rudalics@gmx.at>
4911
4912 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
4913 auto-buffer-name window parameter. Install revision of reverted
4914 fix.
457294dd 4915
4f2daf31
DA
49162012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4917
4918 Do not allow to set major mode for a dead buffer.
4919 * buffer.c (Fset_buffer_major_mode): Signal an error
4920 if the buffer is dead.
4921 (Fother_buffer, other_buffer_safely): Remove redundant
4922 nested declaration.
4923
66322887
DA
49242012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4925
4926 Always use set_buffer_if_live to restore original buffer at unwind.
4927 * buffer.h (record_unwind_current_buffer): New function.
4928 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
4929 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
4930 * undo.c, window.c: Adjust users.
4931 * buffer.c (set_buffer_if_live): Fix comment.
4932
a3d794a1
DA
49332012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4934
4935 Fix usage of set_buffer_internal.
4936 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
4937 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
4938 * coding.c (decode_coding): Omit redundant test.
4939 * fileio.c (decide_coding_unwind): Likewise.
4940 * fns.c (secure_hash): Likewise.
4941 * insdel.c (modify_region): Likewise.
4942 * keyboard.c (command_loop_1): Likewise.
4943 * print.c (PRINTFINISH): Likewise.
4944 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
4945
59ea14cd
PE
49462012-08-27 Paul Eggert <eggert@cs.ucla.edu>
4947
4948 * dispnew.c: Use bool for boolean.
4949 (frame_garbaged, display_completed, delayed_size_change)
4950 (fonts_changed_p, add_window_display_history)
4951 (add_frame_display_history, verify_row_hash)
4952 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
4953 (row_equal_p, realloc_glyph_pool)
4954 (allocate_matrices_for_frame_redisplay)
4955 (showing_window_margins_p)
4956 (adjust_frame_glyphs_for_frame_redisplay)
4957 (build_frame_matrix_from_leaf_window, make_current)
4958 (mirrored_line_dance, mirror_line_dance, update_frame)
4959 (update_window_tree, update_single_window)
4960 (check_current_matrix_flags, update_window, update_text_area)
4961 (update_window_line, set_window_update_flags, scrolling_window)
4962 (update_frame_1, scrolling, buffer_posn_from_coords)
4963 (do_pending_window_change, change_frame_size)
4964 (change_frame_size_1, sit_for):
4965 Use bool for boolean.
4966 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
4967 and remove last int (actually boolean) argument, which was always 0.
4968 All callers changed.
4969 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
4970 * dispextern.h (struct composition_it): Use bool for boolean.
4971 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
4972 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
4973 * dired.c (file_name_completion):
4974 Use bool for boolean. (This was missed in an earlier change.)
4975
95072a94
MR
49762012-08-27 Martin Rudalics <rudalics@gmx.at>
4977
4978 * window.c (Fset_window_configuration): Revert first part of
4979 last change.
4980
0f19feff
JD
49812012-08-27 Jan Djärv <jan.h.d@swipnet.se>
4982
4983 * nsterm.h (NSPanel): New class variable dialog_return.
4984
3a880af4
SM
4985 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
4986 Initialize dialog_return.
0f19feff
JD
4987 (windowShouldClose:): Use stop instead of stopModalWithCode.
4988 (clicked:): Ditto, and also set dialog_return (Bug#12258).
4989 (timeout_handler:): Use stop instead of abortModal. Send a dummy
4990 event.
4991 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
4992 modal loop returns.
4993
f10fe38f
PE
49942012-08-27 Paul Eggert <eggert@cs.ucla.edu>
4995
de1339b0
PE
4996 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
4997 * composite.c (find_composition, composition_gstring_p)
4998 (composition_reseat_it, find_automatic_composition):
4999 * data.c (let_shadows_buffer_binding_p)
5000 (let_shadows_global_binding_p, set_internal, make_blv)
5001 (Fmake_variable_buffer_local, Fmake_local_variable)
5002 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
5003 (cons_to_signed, arith_driver):
5004 * dbusbind.c (xd_in_read_queued_messages):
5005 * dired.c (directory_files_internal, file_name_completion):
5006 Use bool for booleans.
5007 * dired.c (file_name_completion):
5008 * process.h (fd_callback):
5009 Omit int (actually boolean) argument. It wasn't being used.
5010 All uses changed.
5011 * composite.h, lisp.h: Reflect above API changes.
5012
f10fe38f
PE
5013 * cmds.c, coding.c: Use bool for booleans.
5014 * cmds.c (move_point, Fself_insert_command):
5015 * coding.h (struct composition status, struct coding_system):
5016 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
5017 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
5018 (emacs_mule_char, decode_coding_emacs_mule)
5019 (encode_coding_emacs_mule, detect_coding_iso_2022)
5020 (decode_coding_iso_2022, encode_invocation_designation)
5021 (encode_designation_at_bol, encode_coding_iso_2022)
5022 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
5023 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
5024 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
5025 (encode_coding_raw_text, detect_coding_charset)
5026 (decode_coding_charset, encode_coding_charset, detect_eol)
5027 (detect_coding, get_translation_table, produce_chars)
5028 (consume_chars, reused_workbuf_in_use)
5029 (make_conversion_work_buffer, code_conversion_save)
5030 (decode_coding_object, encode_coding_object)
5031 (detect_coding_system, char_encodable_p)
5032 (Funencodable_char_position, code_convert_region)
5033 (code_convert_string, code_convert_string_norecord)
5034 (Fset_coding_system_priority):
5035 * fileio.c (Finsert_file_contents):
5036 Use bool for booleans.
5037 * coding.h, lisp.h: Reflect above API changes.
5038 * coding.c: Remove unnecessary static function decls.
5039 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
5040 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
5041 not a boolean 'int', since callers never look at the return value.
5042 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
5043 * coding.h (decoding_buffer_size, encoding_buffer_size)
5044 (emacs_mule_string_char): Remove unused extern decls.
5045 (struct iso_2022_spec, struct coding_system):
5046 Use 'unsigned int : 1' for boolean fields, since there's more than one.
5047 (struct emacs_mule_spec): Remove unused field 'full_support'.
5048 All initializations removed.
5049 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
5050
5474c384
DA
50512012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
5052
f10fe38f 5053 Fix spare memory change (Bug#12286).
5474c384
DA
5054 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
5055 (valid_lisp_object_p): Likewise.
5056
c4b6914d
MR
50572012-08-27 Martin Rudalics <rudalics@gmx.at>
5058
5059 * window.c (Fset_window_configuration): Record any window's old
5060 buffer if it's replaced (see Bug#8789). If the new current
5061 buffer doesn't appear in the selected window, go to its old
5062 point (Bug#12208).
5063
35aaa1ea
DA
50642012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
5065
5066 Special MEM_TYPE_SPARE to denote reserved memory.
5067 * alloc.c (enum mem_type): New memory type.
5068 (refill_memory_reserve): Use new type for spare memory.
5069 This prevents live_cons_p and live_string_p from incorrect
5070 detection of uninitialized objects from spare memory as live.
5071
6af64513
PE
50722012-08-26 Paul Eggert <eggert@cs.ucla.edu>
5073
8b2e00a3
PE
5074 Spelling fixes.
5075 * Makefile.in (.PHONY): versioclean -> versionclean.
5076
b52d6985
PE
5077 Remove unused external symbols.
5078 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
5079 * window.c (Qwindow_valid_p, decode_valid_window):
5080 Now static, not extern.
5081 * data.c (Qinterval): Remove; unused.
5082 (syms_of_data): Do not define 'interval'.
5083 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
5084 * window.h (decode_valid_window):
5085 Remove decls.
5086
d5172d4f
PE
5087 * character.c, charset.c, chartab.c: Use bool for booleans.
5088 * character.c (lisp_string_width, string_count_byte8)
5089 (string_escape_byte8):
5090 * charset.c (charset_map_loaded, load_charset_map, read_hex):
5091 (load_charset_map_from_file, map_charset_chars)
5092 (Fdefine_charset_internal, define_charset_internal)
5093 (Fdeclare_equiv_charset, find_charsets_in_text)
5094 (Ffind_charset_region, char_charset, Fiso_charset):
5095 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
5096 (sub_char_table_set, sub_char_table_set_range)
5097 (char_table_set_range, optimize_sub_char_table)
5098 (map_sub_char_table):
5099 Use bool for boolean.
5100 * character.c (str_to_unibyte): Omit last boolean argument; it was
5101 always 0. All callers changed.
5102 * character.h, charset.h: Adjust to match previous changes.
5103 * character.h (char_printable_p): Remove decl of nonexistent function.
5104 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
5105 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
5106 are all boolean, so make them single-bit bitfields.
5107
6af64513
PE
5108 * lisp.h (ASET): Remove attempt to detect side effects.
5109 It was meant to be temporary and it often doesn't work,
5110 because when IDX has side effects the behavior of IDX==IDX
5111 is undefined. See Stefan Monnier in
5112 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
5113
e1f29348
BR
51142012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
5115
5116 * lisp.h (functionp): New function (extracted from Ffunctionp).
5117 (FUNCTIONP): Use it.
5118 * eval.c (Ffunctionp): Use it.
5119
17c05d74
PE
51202012-08-25 Paul Eggert <eggert@cs.ucla.edu>
5121
0f46bc75
PE
5122 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
5123 as that's faster and simpler than static storage. Don't bother
5124 with the g_main_context_query overhead if g_main_context_pending
5125 says no events are pending.
5126 (gfds, gfds_size): Remove these static vars.
5127 (xgselect_initialize): Remove; no longer needed.
5128 All uses and decls removed.
5129
ee4c0f69
PE
5130 * emacs.c (fatal_error_signal_hook): Remove.
5131 All uses removed. This leftover from old code was always 0.
5132
17c05d74
PE
5133 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
5134 * casefiddle.c (casify_object, casify_region):
5135 * casetab.c (set_case_table):
5136 * category.c, category.h (word_boundary_p):
5137 * category.h (CHAR_HAS_CATEGORY):
5138 Use bool for booleans, instead of int.
5139
391ceac5
EZ
51402012-08-25 Eli Zaretskii <eliz@gnu.org>
5141
5142 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
5143
2f221583
PE
51442012-08-25 Paul Eggert <eggert@cs.ucla.edu>
5145
f4a681b0
PE
5146 On assertion failure, print backtrace if available.
5147 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
5148 (die) [ENABLE_CHECKING]: Print a backtrace if available.
5149 * Makefile.in (LIB_EXECINFO): New macro.
5150 (LIBES): Use it.
5151
2f221583
PE
5152 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
5153 * bytecode.c (exec_byte_code):
5154 * callint.c (check_mark, Fcall_interactively):
5155 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
5156 (getenv_internal, sync_process_alive, call_process_exited):
5157 * lisp.h (USE_SAFE_ALLOCA):
5158 Use bool for booleans, instead of int.
5159 * lisp.h, process.h: Adjust prototypes to match above changes.
5160 * callint.c (Fcall_interactively): Don't assume the mark's
5161 offset fits in 'int'.
5162
37ef52bb
PE
51632012-08-24 Paul Eggert <eggert@cs.ucla.edu>
5164
5165 * buffer.c, buffer.h: Use bool for boolean.
5166 * buffer.c (reset_buffer_local_variables)
5167 (buffer_lisp_local_variables, Fset_buffer_modified_p)
5168 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
5169 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
5170 (overlay_touches_p, overlay_strings, Foverlay_put)
5171 (report_overlay_modification, call_overlay_mod_hooks):
5172 (mmap_enlarge, mmap_set_vars):
5173 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
5174 Use bool for booleans, instead of int.
5175 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
5176 since the 1-or-0 return value is always ignored anyway.
5177 (mmap_initialized_p):
5178 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
5179 * buffer.h, lisp.h: Adjust prototypes to match above changes.
5180
2cc21167
PE
51812012-08-23 Paul Eggert <eggert@cs.ucla.edu>
5182
5183 * bidi.c: Use bool for boolean.
5184 This is a bit more readable, and makes the text segment of bidi.o
5185 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
5186 Presumably it's faster too.
5187 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
5188 Now bool.
5189 (bidi_cache_find_level_change, bidi_cache_iterator_state)
5190 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
5191 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
5192 (bidi_explicit_dir_char, bidi_level_of_next_char)
5193 (bidi_find_other_level_edge, bidi_move_to_visually_next):
5194 Use bool for booleans, instead of int.
5195 * dispextern.h (bidi_init_it, bidi_paragraph_init)
5196 (bidi_unshelve_cache): Adjust decls to match code.
5197
7db4ddf4
MR
51982012-08-23 Martin Rudalics <rudalics@gmx.at>
5199
5200 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
5201 argument.
5202
b1bb8011
PE
52032012-08-23 Paul Eggert <eggert@cs.ucla.edu>
5204
5205 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
5206 * atimer.h: Include <stdbool.h>.
5207
ff687885
DN
52082012-08-22 Dan Nicolaescu <dann@gnu.org>
5209
5210 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
5211 compile time tests instead of run time tests on systems that do
5212 not use them.
5213 (FRAME_MAC_P): Remove leftover from deleted code.
5214 * frame.c (syms_of_frame): Remove leftover from deleted code.
5215
4ce7a138
JD
52162012-08-22 Jan Djärv <jan.h.d@swipnet.se>
5217
5218 * nsterm.m (insertText:): Don't clear modifiers if code is space.
5219
d733ec6d
PE
52202012-08-22 Paul Eggert <eggert@cs.ucla.edu>
5221
5222 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
5223 Otherwise, the compiler complains about (A?B:C) where B is void
fc0c31f8 5224 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
d733ec6d
PE
5225 (fontset_add): Return void, for FONTSET_ADD.
5226
d0d2d26f
PE
52272012-08-21 Paul Eggert <eggert@cs.ucla.edu>
5228
fce31d69
PE
5229 * alloc.c: Use bool for booleans.
5230 (gc_in_progress, abort_on_gc)
5231 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
5232 (dont_register_blocks) [GC_MALLOC_CHECK]:
5233 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
5234 (check_string_bytes, make_specified_string, memory_full)
5235 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
5236 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
5237 (mark_stack, valid_pointer_p, make_pure_string)
5238 (Fgarbage_collect, survives_gc_p, gc_sweep):
5239 Use bool for booleans, instead of int.
5240 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
5241 Remove unused local.
5242 * alloc.c (PURE_POINTER_P):
5243 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
5244 * editfns.c (Fformat):
5245 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
5246 (Fdo_auto_save):
5247 * fns.c (sweep_weak_table):
5248 * lisp.h (suppress_checking, push_message, survives_gc_p)
5249 (make_pure_string, gc_in_progress, abort_on_gc):
5250 * lread.c (readchar, read1):
5251 * print.c (Fprin1_to_string):
5252 * xdisp.c (push_message):
5253 Use bool for booleans affected directly or indirectly by
5254 alloc.c's changes.
5255
d0d2d26f
PE
5256 Make recently-introduced setters macros.
5257 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
5258 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
5259 (set_fontset_default, set_fontset_fallback): Rename from their
5260 upper-case counterparts, and make them functions rather than macros.
5261 This is more consistent with the other recently-introduced setters.
5262 These don't need to be inline, since they're local.
5263
d18e2bb6
JD
52642012-08-21 Jan Djärv <jan.h.d@swipnet.se>
5265
5266 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
5267 the loop (Bug#12247).
5268
1b9d9d16
PE
52692012-08-21 Paul Eggert <eggert@cs.ucla.edu>
5270
5271 * lisp.h (vcopy): Use memcpy rather than our own loop.
5272 This fixes a performance regression introduced by the recent
5273 addition of vcopy. This means 'vcopy' will need to be modified
5274 for a copying collector, but that's OK. Also, tighten the
5275 checking in the assertion.
5276
b2f09701
EZ
52772012-08-21 Eli Zaretskii <eliz@gnu.org>
5278
5279 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
5280 components for RTL text (Bug#11860). Adjust X-OFFSET of each
5281 non-base glyph for the width of the base character, according to
e1f29348
BR
5282 what x_draw_composite_glyph_string_foreground expects.
5283 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
5284 expectations, to produce correct width of the composed character.
5285 Reverse the sign of the DU offset produced by ScriptPlace.
5286
9b994fed
PE
52872012-08-21 Paul Eggert <eggert@cs.ucla.edu>
5288
5289 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
5290
086ca913
DA
52912012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
5292
5293 Avoid direct writes to contents member of struct Lisp_Vector.
5294 * lisp.h (vcopy): New function to copy data into vector.
5295 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
5296 * fns.c (Ffillarray): Use ASET.
5297 * keyboard.c (timer_check_2): Use AREF and ASET.
5298 (append_tool_bar_item, Frecent_keys): Use vcopy.
5299 * lread.c (read_vector): Use ASET.
5300 * msdos.c (Frecent_doskeys): Use vcopy.
5301 * xface.c (Finternal_copy_lisp_face): Use vcopy.
5302 (Finternal_merge_in_global_face): Use ASET and vcopy.
5303 * xfont.c (xfont_list_pattern): Likewise.
5304
5481664a
MR
53052012-08-21 Martin Rudalics <rudalics@gmx.at>
5306
5307 * window.c (Fwindow_point): For the selected window always return
5308 the position of its buffer's point.
5309 (Fset_window_point): For the selected window always go in its
5310 buffer to the specified position.
5311
6d470bdd
DA
53122012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
5313
5314 Setter macros for fontsets.
5315 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
5316 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
5317 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
5318 Adjust users.
5319
24564fe1
GM
53202012-08-20 Glenn Morris <rgm@gnu.org>
5321
5322 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
5323 Don't assume that `ln -f' works.
5324
0a05a035
EZ
53252012-08-20 Eli Zaretskii <eliz@gnu.org>
5326
5327 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
5328 and later about non-assignments with no effect. See discussion at
5329 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
5330 details.
5331
e46f2325
DA
53322012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5333
5334 Inline setter functions for Lisp_Objects slots of struct specbinding.
5335 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
5336 Adjust users.
5337
734fbd86
MR
53382012-08-20 Martin Rudalics <rudalics@gmx.at>
5339
5340 * window.c (select_window): Always make selected window's buffer
5341 current.
5342
f1a95992
DA
53432012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5344
5345 Use AREF and ASET for docstrings of category tables.
5346 * category.h (CATEGORY_DOCSTRING): Use AREF.
5347 (SET_CATEGORY_DOCSTRING): Use ASET.
5348 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
5349
e83064be
DA
53502012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5351
5352 Inline setter functions for hash table members.
5353 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
5354 (set_hash_hash, set_hash_index): Rename with _slot suffix.
5355 (set_hash_key_and_value, set_hash_index, set_hash_next)
5356 (set_hash_hash): New functions.
5357 * charset.c, fns.c: Adjust users.
5358
4ce60d2e
DA
53592012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5360
5361 Inline getter and setter functions for per-buffer values.
5362 * buffer.h (per_buffer_default, set_per_buffer_default)
5363 (per_buffer_value, set_per_buffer_value): New functions.
5364 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
5365 * buffer.c, data.c: Adjust users.
5366
c06c9690
JB
53672012-08-20 Juanma Barranquero <lekktu@gmail.com>
5368
5369 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
5370
32bd4250
PE
53712012-08-19 Paul Eggert <eggert@cs.ucla.edu>
5372
bad03192 5373 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
5374 as gnulib does this if the system doesn't.
5375 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
5376 Remove declaration. MS-Windows declares it on stdlib.h which is
5377 included by conf_post.h.
b69a6d22
PE
5378 * emacs.c (environ) [DOUG_LEA_MALLOC]:
5379 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
5380 * vm-limit.c: Include <unistd.h>, for 'environ'.
5381
22d7feb2
PE
5382 * unexaix.c, unexcoff.c: Include "mem-limits.h".
5383 (start_of_data): Remove decl; mem-limits.h provides it.
5384
32bd4250
PE
5385 * xdisp.c (handle_invisible_prop): Make it a bit faster
5386 and avoid a gcc -Wmaybe-uninitialized diagnostic.
5387
450809af
CY
53882012-08-19 Chong Yidong <cyd@gnu.org>
5389
5390 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
5391 ends (Bug#3874).
5392
9e677988
AS
53932012-08-19 Andreas Schwab <schwab@linux-m68k.org>
5394
6b1319ce
AS
5395 * .gdbinit: Use call instead of set when calling a function in the
5396 inferior.
5397
9e677988
AS
5398 * data.c (set_internal): Don't use set_blv_found.
5399 (Fkill_local_variable): Likewise.
5400
d7191076
AA
54012012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
5402
5403 * nsfont.m (ns_ascii_average_width): Ensure the string
5404 ascii_printable is initialized with a null-terminated character
5405 array. Otherwise, it can contain undesired extra characters.
5406
e757f1c6
PE
54072012-08-18 Paul Eggert <eggert@cs.ucla.edu>
5408
5409 port new setting code to Sun C 5.8 2005/10/13
5410 * chartab.c, lisp.h (char_table_set, char_table_set_range):
5411 Return void, not Lisp_Object. Otherwise, the compiler
5412 complains about (A?B:C) where B is void and C is Lisp_Object
5413 when compiling CHAR_TABLE_SET, due to the recent change to
5414 the API of sub_char_table_set_contents.
5415
a999ce26
CY
54162012-08-18 Chong Yidong <cyd@gnu.org>
5417
5418 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
5419 for the string case (Bug#3874).
5420
3f22b86f
PE
54212012-08-18 Paul Eggert <eggert@cs.ucla.edu>
5422
39eb03f1
PE
5423 * buffer.h (BSET): Remove (Bug#12215).
5424 Replace all uses with calls to new setter functions.
5425 (bset_bidi_paragraph_direction, bset_case_canon_table)
5426 (bset_case_eqv_table, bset_directory, bset_display_count)
5427 (bset_display_time, bset_downcase_table)
5428 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
5429 (bset_last_selected_window, bset_local_var_alist)
5430 (bset_mark_active, bset_point_before_scroll, bset_read_only)
5431 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
5432 (bset_width_table):
5433 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
5434 (bset_auto_fill_function, bset_auto_save_file_format)
5435 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
5436 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
5437 (bset_cache_long_line_scans, bset_case_fold_search)
5438 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
5439 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
5440 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
5441 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
5442 (bset_header_line_format, bset_indicate_buffer_boundaries)
5443 (bset_indicate_empty_lines, bset_invisibility_spec)
5444 (bset_left_fringe_width, bset_major_mode, bset_mark)
5445 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
5446 (bset_name, bset_overwrite_mode, bset_pt_marker)
5447 (bset_right_fringe_width, bset_save_length)
5448 (bset_scroll_bar_width, bset_scroll_down_aggressively)
5449 (bset_scroll_up_aggressively, bset_selective_display)
5450 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
5451 (bset_word_wrap, bset_zv_marker):
5452 * category.c (bset_category_table):
5453 * syntax.c (bset_syntax_table):
5454 New setter functions.
5455
6a09a33b
PE
5456 * process.h (PSET): Remove (Bug#12215).
5457 Replace all uses with calls to new setter functions.
5458 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5459 (PROCESS_INLINE): New macro.
5460 (pset_childp): New setter function.
5461 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
5462 * process.c (PROCESS_INLINE):
5463 Define to EXTERN_INLINE, so that the corresponding functions
5464 are compiled into code.
5465 (pset_buffer, pset_command, pset_decode_coding_system)
5466 (pset_decoding_buf, pset_encode_coding_system)
5467 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
5468 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
5469 (pset_type, pset_write_queue): New setter functions.
5470
e8c17b81
PE
5471 * window.h (WSET): Remove (Bug#12215).
5472 Replace all uses with calls to new setter functions.
5473 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5474 (WINDOW_INLINE): New macro.
5475 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
5476 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
5477 (wset_total_lines, wset_vertical_scroll_bar)
5478 (wset_window_end_pos, wset_window_end_valid)
5479 (wset_window_end_vpos): New setter functions.
5480 * window.c (WINDOW_INLINE):
5481 Define to EXTERN_INLINE, so that the corresponding functions
5482 are compiled into code.
5483 (wset_combination_limit, wset_dedicated, wset_display_table)
5484 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
5485 (wset_new_normal, wset_new_total, wset_next_buffers)
5486 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
5487 (wset_prev_buffers, wset_right_fringe_width)
5488 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
5489 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
5490 (wset_window_parameters):
5491 * xdisp.c (wset_base_line_number, wset_base_line_pos)
5492 (wset_column_number_displayed, wset_region_showing):
5493 New setter functions.
5494
3f22b86f
PE
5495 * termhooks.h (TSET): Remove (Bug#12215).
5496 Replace all uses with calls to new setter functions.
5497 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5498 (TERMHOOKS_INLINE): New macro.
5499 (tset_charset_list, tset_selection_alist): New setter functions.
5500 * terminal.c (TERMHOOKS_INLINE):
5501 Define to EXTERN_INLINE, so that the corresponding functions
5502 are compiled into code.
5503 (tset_param_alist): New setter function.
5504
742af32f
PE
55052012-08-17 Paul Eggert <eggert@cs.ucla.edu>
5506
15dbb4d6
PE
5507 * keyboard.h (KSET): Remove (Bug#12215).
5508 Replace all uses with calls to new setter functions.
5509 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5510 (KEYBOARD_INLINE): New macro.
5511 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
5512 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
5513 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
5514 New setter functions.
5515 * keyboard.c (KEYBOARD_INLINE):
5516 Define to EXTERN_INLINE, so that the corresponding functions
5517 are compiled into code.
5518 (kset_echo_string, kset_kbd_queue)
5519 (kset_keyboard_translate_table, kset_last_prefix_arg)
5520 (kset_last_repeatable_command, kset_local_function_key_map)
5521 (kset_overriding_terminal_local_map, kset_real_last_command)
5522 (kset_system_key_syms): New setter functions.
5523
f00af5b1
PE
5524 * frame.h (FSET): Remove (Bug#12215).
5525 Replace all uses with calls to new setter functions.
5526 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5527 (FRAME_INLINE): New macro.
5528 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
5529 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
5530 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
5531 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
5532 (fset_param_alist, fset_root_window, fset_scroll_bars)
5533 (fset_selected_window, fset_title, fset_tool_bar_items)
5534 (fset_tool_bar_position, fset_tool_bar_window): New functions.
5535 * frame.c (FRAME_INLINE):
5536 Define to EXTERN_INLINE, so that the corresponding functions
5537 are compiled into code.
5538 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
5539
0c94c8d6
PE
5540 A few more naming-convention fixes for getters and setters.
5541 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
5542 and rename from buffer_overlays_set_before.
5543 (set_buffer_overlays_after): Move here from buffer.h, and rename
5544 from buffer_overlays_set_after.
5545 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
5546 All uses changed.
5547 (set_buffer_intervals): Rename from buffer_set_intervals.
5548 * intervals.c (set_interval_object): Move here from intervals.h,
5549 and rename from interval_set_object.
5550 (set_interval_left): Move here from intervals.h, and rename from
5551 interval_set_left.
5552 (set_interval_right): Move here from intervals.h, and rename from
5553 interval_set_right.
5554 (copy_interval_parent): Move here from intervals.h, and rename from
5555 interval_copy_parent.
5556 * intervals.h (set_interval_parent): Rename from interval_set_parent.
5557 (set_interval_plist): Rename from interval_set_plist.
5558 Return void, not Lisp_Object, since no caller uses the result.
5559 * lisp.h (string_intervals): Rename from string_get_intervals.
5560 (set_string_intervals): Rename from string_set_intervals.
5561
34dabdb7
PE
5562 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
5563 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 5564 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
5565 All uses changed. See the end of
5566 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
5567
742af32f
PE
5568 * lisp.h (CSET): Remove (Bug#12215).
5569 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
5570 (set_char_table_purpose): New functions,
5571 replacing CSET. All uses changed. For example, replace
5572 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 5573 "set_char_table_parent (char_table, parent);".
742af32f
PE
5574 The old version was confusing because it used the same name
5575 'parent' for two different things.
5576
a04e2c62
DA
55772012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
5578
5579 Functions to get and set Lisp_Object fields of buffer-local variables.
5580 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
5581 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
5582 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
5583 * data.c, eval.c, frame.c: Adjust users.
5584
383dcbf9
CY
55852012-08-17 Chong Yidong <cyd@gnu.org>
5586
5587 * xfaces.c (merge_face_vectors): If the target font specfies a
5588 font spec, make the font's attributes take precedence over
5589 directly-specified attributes.
5590 (merge_face_ref): Recognize :font.
5591
44386687
DA
55922012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
5593
5594 Do not use memcpy for copying intervals.
5595 * intervals.c (reproduce_interval): New function.
5596 (reproduce_tree, reproduce_tree_obj): Use it.
5597 (reproduce_tree_obj): Remove prototype.
5598
927c7216
PE
55992012-08-17 Paul Eggert <eggert@cs.ucla.edu>
5600
5601 * lisp.h (duration_to_sec_usec): Remove unused decl.
5602
93044f7b
AA
56032012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
5604
5605 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
5606 to an allocated instance of NSString, not to the class itself.
5607
9851e4a5
JB
56082012-08-17 Juanma Barranquero <lekktu@gmail.com>
5609
5610 * makefile.w32-in (C_CTYPE_H): New macro.
5611 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
5612 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
5613 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
5614
620f13b0
PE
56152012-08-16 Paul Eggert <eggert@cs.ucla.edu>
5616
5617 Use ASCII tests for character types.
5618 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
5619 * xfns.c, xterm.c:
5620 Don't include <ctype.h>; was not needed.
5621 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
5622 * sysdep.c, xfaces.c:
5623 Include <c-ctype.h> instead of <ctype.h>.
5624 * nsterm.m: Include <c-ctype.h>.
5625 * charset.c (read_hex):
5626 * doc.c (Fsnarf_documentation):
5627 * fileio.c (IS_DRIVE) [WINDOWSNT]:
5628 (DRIVE_LETTER) [DOS_NT]:
5629 (Ffile_name_directory, Fexpand_file_name)
5630 (Fsubstitute_in_file_name):
5631 * font.c (font_parse_xlfd, font_parse_fcname):
5632 * frame.c (x_set_font_backend):
5633 * gtkutil.c (xg_get_font):
5634 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
5635 * nsimage.m (hexchar):
5636 * nsterm.m (ns_xlfd_to_fontname):
5637 * sysdep.c (system_process_attributes):
5638 * xfaces.c (hash_string_case_insensitive):
5639 Use C-locale tests instead of locale-specific tests for character
5640 types, since we want the ASCII interpretation here, not the
5641 interpretation suitable for whatever happens to be the current locale.
5642
52162052
MR
56432012-08-16 Martin Rudalics <rudalics@gmx.at>
5644
5645 Consistently check windows for validity/liveness
5646 (Bug#11984, Bug#12025, Bug#12026).
5647 * lisp.h (CHECK_VALID_WINDOW): New macro.
5648 * window.c (decode_window): Rename to decode_live_window.
5649 (decode_valid_window, Fwindow_valid_p): New functions.
5650 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
5651 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
5652 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
5653 (Fwindow_prev_sibling, Fwindow_combination_limit)
5654 (Fset_window_combination_limit, Fwindow_use_time)
5655 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
5656 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
5657 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
5658 (Fwindow_hscroll, Fset_window_hscroll)
5659 (Fwindow_redisplay_end_trigger)
5660 (Fset_window_redisplay_end_trigger, Fwindow_edges)
5661 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
5662 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
5663 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
5664 (Fwindow_end, Fset_window_point, Fset_window_start)
5665 (Fpos_visible_in_window_p, Fwindow_line_height)
5666 (Fwindow_dedicated_p, Fset_window_dedicated_p)
5667 (Fwindow_prev_buffers, Fset_window_prev_buffers)
5668 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
5669 (Fset_window_parameter, Fwindow_display_table)
5670 (Fset_window_display_table, Fdelete_other_windows_internal)
5671 (Fset_window_buffer, Fset_window_new_total)
5672 (Fset_window_new_normal, Fdelete_window_internal)
5673 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
5674 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
5675 (Fwindow_scroll_bars): Check whether argument window is a valid or
5676 live window. Update doc-strings.
5677 (syms_of_window): New symbol Qwindow_valid_p.
5678 * keyboard.c (Fposn_at_x_y): Check whether argument
5679 frame_or_window denotes a valid window.
5680
2751c80f
DA
56812012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
5682
5683 Fix previous char table change.
5684 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
5685 * chartab.c (optimize_sub_char_table): Likewise.
5686
032a42c8
CY
56872012-08-16 Chong Yidong <cyd@gnu.org>
5688
a2d19368
CY
5689 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
5690
032a42c8
CY
5691 * xfont.c (xfont_open):
5692 * xftfont.c (xftfont_open): Set the font's max_width field.
5693
5694 * nsfont.m (nsfont_open): Similar to the Xft backend, set
5695 min_width to space_width and average_width to the average over
5696 printable ASCII characters.
5697 (ns_char_width): Code cleanup.
5698 (ns_ascii_average_width): New utility function.
5699
5700 * font.h (struct font): Update comments.
5701
a098c930
DA
57022012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
5703
032a42c8 5704 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
5705 * lisp.h (CSET): New macro.
5706 (char_table_set_extras, char_table_set_contents)
5707 (sub_char_table_set_contents): New function.
5708 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
5709 * syntax.c: Adjust users.
5710
8be3a09c
SM
57112012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
5712
5713 * eval.c (eval_sub): Bind lexical-binding.
5714 * lread.c (Qlexical_binding): Make non-static.
5715
ac4845a6
JD
57162012-08-15 Jan Djärv <jan.h.d@swipnet.se>
5717
ddee6515
JD
5718 * nsmenu.m (popupSession): Remove.
5719 (pop_down_menu): Remove endModalSession.
5720 (timeout_handler:): New method.
5721 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
5722 Call runModalForWindow. Check timer_fired when it returns.
5723 If not set, cancel timer and break out of loop.
5724 Otherwise loop again, with a new timeout.
5725
5726 * nsterm.m: Include fcntl.h if present.
5727 (fd_entry, t_readfds, inNsSelect): Remove.
5728 (select_writefds, select_valid, select_timeout, selfds)
5729 (select_mutex, apploopnr): Add.
5730 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
5731 Otherwise call kbd_buffer_store_event.
5732 (ns_send_appdefined): Remove release of fd_entry.
5733 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
5734 Increment and decrement apploopnr.
5735 (ns_select): If no file descriptors, just do a NSTimer.
5736 Otherwise copy read/write masks and start select thread (fd_handler).
5737 Start main loop and wait for application defined event.
5738 Inform select thread to stop selecting after main loop is exited.
5739 (ns_term_init): Create selfds pipe and set non-blocking.
fc0c31f8 5740 Initialize select_mutex. Start the select thread (fd_handler).
ddee6515
JD
5741 (fd_handler:): Loop forever, wait for info from the main thread
5742 to either start or stop selecting. When select returns, send
5743 and appdefined event.
5744 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
5745 If not call kbd_buffer_store_event.
5746
5747 * nsterm.h (EmacsApp): fd_handler takes id argument.
5748 (EmacsDialogPanel): Add timer_fired and timeout_handler.
5749
ac4845a6
JD
5750 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
5751
eb424fe3
EZ
57522012-08-15 Eli Zaretskii <eliz@gnu.org>
5753
5754 * region-cache.c (move_cache_gap): Update gap_len using the actual
5755 growth of the boundaries array. Do not change cache_len.
5756 (Bug#12196)
5757
4e6a86c6
DA
57582012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5759
5760 Generalize and cleanup font subsystem checks.
5761 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
5762 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
5763 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 5764
5bf192ca
DA
57652012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5766
5767 * gtkutil.c (xg_get_font): Use pango_units_to_double.
5768
f2045622
CY
57692012-08-15 Chong Yidong <cyd@gnu.org>
5770
8be3a09c
SM
5771 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
5772 When using the new font chooser, use gtk_font_chooser_get_font_desc to
5773 extract the font descriptor instead of just the font name.
5774 In that case, return a font spec instead of a string.
f2045622
CY
5775 (x_last_font_name): Move to this file from xfns.c.
5776
5777 * xfns.c (Fx_select_font): The return value can also be a font
5778 spec. Move x_last_font_name management to gtkutil.c.
5779
5780 * xfaces.c: Make font weight and style symbols non-static.
5781
7f6feb56
SM
57822012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
5783
5784 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
5785 (bug#12117).
5786
fecbd8ff
SM
57872012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
5788
5789 * alloc.c (Fgarbage_collect): Use plural form consistently.
5790
9b8d5165
EZ
57912012-08-14 Eli Zaretskii <eliz@gnu.org>
5792
5793 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
5794 iteration through the command loop. Fixes a problem whereby mouse
5795 movements are ignored until the first mouse click.
5796
f5d9e83a
PE
57972012-08-14 Paul Eggert <eggert@cs.ucla.edu>
5798
5799 Use bool, not int, for Lisp booleans.
5800 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
5801 makes Emacs a bit smaller and presumably a bit faster.
5802 * lisp.h: Include <stdbool.h>.
5803 (struct Lisp_Boolfwd, defvar_bool):
5804 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
5805 * regex.c [!emacs]: Include <stdbool.h>.
5806 (false, true): Remove; <stdbool.h> does this for us now.
5807
55802e4a
CY
58082012-08-14 Chong Yidong <cyd@gnu.org>
5809
4abcdac8
CY
5810 * character.c (Fcharacterp): Doc fix (Bug#12076).
5811
5812 * data.c (Findirect_variable): Doc fix (Bug#11040).
5813
55802e4a
CY
5814 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
5815
5816 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 5817 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 5818
8e99d072
BR
58192012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
5820
5821 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
5822 (bug#12022).
5823
08908aca
MR
58242012-08-14 Martin Rudalics <rudalics@gmx.at>
5825
5826 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
5827 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
5828 * minibuf.c (choose_minibuf_frame, read_minibuf):
5829 * w32fns.c (x_create_tip_frame):
5830 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
5831 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
5832
56120d6f
PE
58332012-08-14 Paul Eggert <eggert@cs.ucla.edu>
5834
5835 * intervals.c (offset_intervals): Remove obsolete comment.
5836
67b77c0b
AS
58372012-08-14 Andreas Schwab <schwab@linux-m68k.org>
5838
5839 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
5840
f48b82fd
GR
58412012-08-14 Gergely Risko <gergely@risko.hu>
5842
5843 * coding.c (decode_coding): Record buffer modification before
5844 disabling undo_list (Bug#11773).
5845
fd318b54
DA
58462012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
5847
5848 Revert and cleanup some recent overlay changes.
5849 * buffer.h (enum overlay_type): Remove.
5850 (buffer_get_overlays, buffer_set_overlays): Likewise.
5851 (buffer_set_overlays_before, buffer_set_overlays_after):
5852 New function. Adjust users.
5853 (unchain_both): Add eassert.
5854
41a62dd9
DA
58552012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
5856
5857 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
5858
5884c324
PE
58592012-08-14 Paul Eggert <eggert@cs.ucla.edu>
5860
5861 * gtkutil.c (xg_mark_data): Don't assume C99.
5862
ca06f160
JD
58632012-08-13 Jan Djärv <jan.h.d@swipnet.se>
5864
5865 * gtkutil.c (xg_frame_tb_info): New struct.
5866 (TB_INFO_KEY): New define.
5867 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
5868 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
5869 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
5870 if not present.
5871 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
fc0c31f8 5872 is up to date. Otherwise store new data.
ca06f160
JD
5873 (free_frame_tool_bar): Free xg_frame_tb_info if present.
5874
7864a3f7
DA
58752012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
5876
5877 Use KSET for write access to Lisp_Object members of struct kboard.
5878 * keyboard.h (KSET): New macro.
5879 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
5880 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
5881 * xterm.c: Adjust users.
5882
4c31be61
DA
58832012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
5884
5885 Use BSET for write access to Lisp_Object members of struct buffer.
5886 * buffer.h (BSET): New macro.
5887 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
5888 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
5889 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
5890 * window.c, xdisp.c, xfns.c: Adjust users.
5891
14ae4239
BT
58922012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
5893
5894 * lread.c (syms_of_lread): Initialize Vlexical_binding.
5895
32bcadb4
JD
58962012-08-11 Jan Djärv <jan.h.d@swipnet.se>
5897
3d29b2ce 5898 * nsterm.m (not_in_argv): New function.
fc0c31f8 5899 (application:openFile, application:openTempFile:):
3d29b2ce
JD
5900 (application:openFileWithoutUI:, application:openFiles:): Open file
5901 if not_in_argv returns non-zero (bug#12171).
5902
32bcadb4 5903 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
5904 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
5905 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
5906 (xg_get_font_name): Use those functions/macros here.
5907 Reported by Frans Oilinki <moilinki@gmail.com>.
5908
9ff9402d 59092012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
5910
5911 * unexmacosx.c (copy_data_segment): Copy initialized data in
5912 statically linked libraries from input file rather than memory.
5913
db74a5fc
YM
5914 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
5915 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
5916 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
5917
25e65510
GM
59182012-08-10 Glenn Morris <rgm@gnu.org>
5919
5920 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
5921 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
5922
7961135c
DA
59232012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5924
5925 Fix last change to allow compilation with low optimization levels.
5926 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
5927 Reported by Jan Djärv <jan.h.d@swipnet.se>.
5928
42b3a444
DA
59292012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5930
5931 Use common inline syntax in intervals.h.
5932 * intervals.h (INTERVALS_INLINE): New macro.
5933 Change all users from LISP_INLINE.
5934
9fb0c957
DA
59352012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5936
5937 Define Qnone once for all platforms.
5938 * frame.c (Qnone): Define here.
5939 (syms_of_frame): DEFSYM it.
5940 * lisp.h (Qnone): New declaration.
5941 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
5942 * xfns.c: Remove duplication. Adjust users.
5943
65e8ee52
DA
59442012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5945
5946 Remove unused macros from intervals.h.
5947 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
5948 * intervals.c: Adjust comment.
5949
9b855fd6
EZ
59502012-08-10 Eli Zaretskii <eliz@gnu.org>
5951
5952 * w32fns.c <w32_unicode_gui>: New static variable.
5953 (globals_of_w32fns): Initialize it according to os_subtype.
5954 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
5955 testing os_subtype.
5956
39cb9e56 59572012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
5958 Eli Zaretskii <eliz@gnu.org>
5959
5960 Fix bug #10299 with Unicode characters sent by customized
5961 keyboards created by MSKLC.
5962 * w32fns.c (INIT_WINDOW_CLASS): New macro.
5963 (w32_init_class): Use it to initialize the Emacs class with either
5964 ANSI or Unicode API calls.
5965 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
5966 later.
5967 (w32_wnd_proc): If the character code sent by WM_CHAR or
5968 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
5969 original message. Call DefWindowProcW on NT and later.
5970
9374581a
GM
59712012-08-10 Glenn Morris <rgm@gnu.org>
5972
4b94e8cf
GM
5973 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
5974
9374581a
GM
5975 * lisp.h (DIRECTORY_SEP): Let configure set it.
5976
a2752828
DA
59772012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
5978
5979 Use TSET for write access to Lisp_Object slots of struct terminal.
5980 * termhooks.h (TSET): New macro.
5981 * coding.c, terminal.c, xselect.c: Adjust users.
5982
cc92c454
SM
59832012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
5984
5985 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
5986 the failing expression, include them in the error message.
5987 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
5988 * lisp.h (internal_condition_case_n): Update declaration.
5989
4cb3e6b3
DA
59902012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5991
5992 Inline functions to examine and change buffer overlays.
5993 * buffer.c (unchain_both): New function.
5994 * buffer.h (buffer_get_overlays, buffer_set_overlays):
5995 (buffer_has_overlays): New function.
5996 (enum overlay_type): New enum.
5997 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
5998 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
5999
8707c1e5
DA
60002012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
6001
6002 Inline functions to examine and change buffer intervals.
6003 * alloc.c (mark_interval_tree): Remove.
6004 (MARK_INTERVAL_TREE): Simplify.
6005 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
6006 * intervals.c (buffer_balance_intervals): New function.
6007 (graft_intervals_into_buffer): Adjust indentation.
6008 (set_intervals_multibyte): Simplify.
6009 * buffer.h (BUF_INTERVALS): Remove.
6010 (buffer_get_intervals, buffer_set_intervals): New function.
6011 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
6012 * intervals.c, textprop.c: Adjust users.
6013
ad8c997f
DA
60142012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
6015
6016 Inline functions to examine and change string intervals.
6017 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
6018 (string_get_intervals, string_set_intervals): New function.
6019 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
6020 * lread.c, print.c, textprop.c: Adjust users.
6021
32ac3a6b
GM
60222012-08-08 Glenn Morris <rgm@gnu.org>
6023
6024 * lisp.mk (lisp): Remove language/persian.elc.
6025
77c7bcb1
DA
60262012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
6027
6028 Cleanup intervals.
6029 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
6030 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
6031 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
6032 Adjust comment. Move under #if 0.
77c7bcb1
DA
6033 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
6034 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
6035
9c08a8d4
DA
60362012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
6037
6038 Check total length of intervals with eassert.
6039 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
6040 * intervals.c: Change all users to eassert.
6041
26d16b35
EZ
60422012-08-07 Eli Zaretskii <eliz@gnu.org>
6043
14ae4239
BT
6044 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
6045 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
6046 INTERNAL_FIELD in Lisp_Cons.
6047
c644523b
DA
60482012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6049
6050 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
6051 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
6052 name since all xname users are fixed long time ago. Do not
6053 use INTERNAL_FIELD.
6054 (set_symbol_name, set_symbol_function, set_symbol_plist):
6055 (set_symbol_next, set_overlay_plist): New function.
6056 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
6057 (struct Lisp_Overlay): Likewise.
6058 (CVAR, MVAR, SVAR): Remove.
6059 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
6060 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
6061 * xterm.c: Adjust users.
6062 * .gdbinit: Change to use name field of struct Lisp_Symbol
6063 where appropriate.
6064
6a3d20cc
DA
60652012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6066
6067 Basic functions to set Lisp_Object and pointer slots of intervals.
6068 * intervals.h (interval_set_parent, interval_set_object):
6069 (interval_set_left, interval_set_right, interval_set_plist):
6070 (interval_copy_parent): New function.
6071 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
6072 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
6073 Adjust indentation.
6a3d20cc
DA
6074 (INTERVAL_SIZE): Remove. Adjust users.
6075 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
6076
4d2b044c
DA
60772012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6078
6079 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
6080 * process.h (PGET): Remove.
6081 (struct Lisp_Process): Do not use INTERNAL_FIELD.
6082 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
6083
d3d50620
DA
60842012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6085
6086 Drop WGET and revert read access to Lisp_Objects slots of struct window.
6087 * window.h (WGET): Remove.
6088 (struct window): Do not use INTERNAL_FIELD.
6089 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
6090 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
6091 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
6092 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
6093 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6094 Adjust users.
6095
d10a51dc
CY
60962012-08-07 Chong Yidong <cyd@gnu.org>
6097
6098 * window.c (Fwindow_edges, Fwindow_pixel_edges)
6099 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
6100 (Fdelete_window_internal): Signal an error if the window is not on
6101 a live frame (Bug#12025).
6102
e69b0960
DA
61032012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6104
6105 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
6106 * frame.h (FGET): Remove.
6107 (struct frame): Do not use INTERNAL_FIELD.
6108 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
6109 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
6110 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
6111 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
6112
25a20a3a
JB
61132012-08-06 Juanma Barranquero <lekktu@gmail.com>
6114
6115 * w32.c: Silence compiler warnings.
6116 (map_w32_filename): Remove unused variable `is_fat'.
6117 (chase_symlinks): Add parentheses around expression.
6118
1c6f11f4
GM
61192012-08-06 Glenn Morris <rgm@gnu.org>
6120
1db4583a
GM
6121 * sysdep.c: Respect BROKEN_GETWD.
6122
1c6f11f4
GM
6123 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
6124 Let configure handle it.
6125 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
6126
2b90362b
DA
61272012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6128
6129 Use GCALIGNMENT where appropriate.
6130 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
6131 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
6132 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
6133
5f50daf2
EZ
61342012-08-06 Eli Zaretskii <eliz@gnu.org>
6135
14ae4239
BT
6136 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
6137 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 6138
cbcc7007
SM
61392012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
6140
6141 * buffer.h (struct buffer): Revert `indirections' to a simple int;
6142 that should be sufficient for everyone.
6143
4d365fa4
JD
61442012-08-06 Jan Djärv <jan.h.d@swipnet.se>
6145
6146 * keyboard.c (timer_check_2): Add break so timer_check returns next
6147 timeout.
6148
dd86bd82
DA
61492012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6150
6151 Fix Windows build errors introduced after converting to WGET and WSET.
6152 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
6153 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
6154
054e1668
JD
61552012-08-06 Jan Djärv <jan.h.d@swipnet.se>
6156
6157 * nsterm.m (ns_frame_rehighlight): Use FSET.
6158
6159 * nsmenu.m (ns_update_menubar): Use FSET.
6160
21238f11
DA
61612012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6162
6163 Separate read and write access to Lisp_Object slots of Lisp_Process.
6164 * process.h (PGET, PSET): New macros similar to AREF and ASET.
6165 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
6166
077288cf
DA
61672012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6168
6169 Separate read and write access to Lisp_Object slots of struct window.
6170 * window.h (WGET, WSET): New macros similar to AREF and ASET.
6171 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
6172 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
6173 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
6174 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
6175 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6176 Adjust users.
6177
71688bd7
DA
61782012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6179
6180 Fix Windows build errors introduced after converting to FGET and FSET.
6181 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
6182 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
6183 (w32_judge_scroll_bars): Change to use FSET.
6184 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
6185
f99bac93
DA
61862012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6187
6188 Fix replacement typo.
6189 * window.c (replace_window): Set root_window instead of
6190 selected_window. This fixes a total window subsystem
6191 malfunction reported by Bastien Guerry <bzg@gnu.org>.
6192
8c2a0f2d
GM
61932012-08-06 Glenn Morris <rgm@gnu.org>
6194
6195 * lisp.mk (lisp): Add language/persian.elc.
6196
edd74c35
DA
61972012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6198
6199 Separate read and write access to Lisp_Object slots of struct frame.
6200 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
6201 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
6202 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
6203 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
6204 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
6205
8671676c
AS
62062012-08-05 Andreas Schwab <schwab@linux-m68k.org>
6207
6208 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
6209
663e2b3f
DA
62102012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
6211
6212 Generalize common compile-time constants.
6213 * lisp.h (header_size, bool_header_size, word_size): Now here.
6214 (struct Lisp_Vector): Add comment.
6215 (struct Lisp_Bool_Vector): Move up to define handy constants.
6216 (VECSIZE, PSEUDOVECSIZE): Simplify.
6217 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
6218 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
6219 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
6220 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
6221 * xfont.c, xmenu.c: Use word_size where appropriate.
6222
d32e47af
LM
62232012-08-05 Lawrence Mitchell <wence@gmx.li>
6224
6225 * search.c (Freplace_match): Treat \? in the replacement text
6226 literally (Bug#8161).
6227
e5d9c0d1
CY
62282012-08-05 Chong Yidong <cyd@gnu.org>
6229
6230 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
6231 * frame.c (Vdelete_frame_functions):
6232 * emacs.c (Vkill_emacs_hook): Doc fix.
6233
8da0576b
EZ
62342012-08-04 Eli Zaretskii <eliz@gnu.org>
6235
6236 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
6237 --with-x-toolkit=no builds.
6238 Reported by Carsten Mattner <carstenmattner@gmail.com>.
6239
02676e5d
CY
62402012-08-04 Chong Yidong <cyd@gnu.org>
6241
6242 * syntax.c (Fmodify_syntax_entry): Doc fix.
6243
97147da9
EZ
62442012-08-04 Eli Zaretskii <eliz@gnu.org>
6245
76151e2c
EZ
6246 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
6247 * w32.c (init_environment): Change the default values of many
6248 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
6249 them into environment when they were not already defined.
6250 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 6251 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
6252 (check_windows_init_file): Now external, not static.
6253 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
6254 called when Vload_path is already set up.
6255
6256 * w32.h (check_windows_init_file): Add prototype.
6257
6258 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
6259 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
6260 compatibility with Posix platforms.
6261 (main): Move the call to check_windows_init_file to here from
6262 w32.c.
6263 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
6264 any, in the DEFALT argument into the root of the Emacs build or
6265 installation tree, as appropriate.
6266
6267 * callproc.c (init_callproc_1): Call decode_env_path instead of
6268 doing its equivalent by hand.
6269 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
6270 the code that sets Vexec_path run on MS-Windows.
6271
6272 * lread.c (init_lread): Add comments to #ifdef's.
6273
97147da9
EZ
6274 * msdos.c (dos_set_window_size, IT_update_begin)
6275 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
6276 instead of direct references.
6277
185ee146
PE
62782012-08-04 Paul Eggert <eggert@cs.ucla.edu>
6279
6280 Export DEFAULT_REHASH_* to GDB.
6281 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
6282 Now constants, not macros.
6283
8834c57a
PE
62842012-08-03 Paul Eggert <eggert@cs.ucla.edu>
6285
98c6f1e3
PE
6286 Remove unnecessary casts involving pointers.
6287 These casts are no longer needed now that we assume C89 or later,
6288 since they involve casting to or from void *.
6289 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
6290 (make_pure_float, make_pure_vector):
6291 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
6292 * macros.c (Fstart_kbd_macro):
6293 * menu.c (find_and_return_menu_selection):
6294 * minibuf.c (read_minibuf_noninteractive):
6295 * sysdep.c (closedir):
6296 * xdisp.c (x_produce_glyphs):
6297 * xfaces.c (compare_fonts_by_sort_order):
6298 * xfns.c (x_real_positions, select_visual):
6299 * xselect.c (x_stop_queuing_selection_requests)
6300 (x_get_window_property, x_get_window_property_as_lisp_data):
6301 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
6302 Remove unnecessary pointer casts.
6303 * alloc.c (record_xmalloc): New function.
6304 * lisp.h (record_xmalloc): New decl.
6305 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
6306 more like a function. This is because the pointer cast is not
6307 needed. All uses changed.
6308 * print.c (print_string, print_error_message): Avoid length recalc.
6309
8834c57a
PE
6310 Improve fix for macroexp crash with debugging (Bug#12118).
6311 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
6312 ARRAY_MARK_FLAG when checking subscripts, because ASET is
6313 not supposed to be invoked from the garbage collector.
6314 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
6315 (gc_aset): New function, which is like ASET but can be
6316 used in the garbage collector.
6317 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
6318 (set_hash_index): Use it instead of ASET.
6319
6dad7178
EZ
63202012-08-03 Eli Zaretskii <eliz@gnu.org>
6321
6322 Support symlinks on latest versions of MS-Windows.
6323 * w32.c: Include winioctl.h and aclapi.h.
6324 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
6325 (revert_to_self): Forward declarations of static functions.
6326 <static BOOL g_b_init_get_security_info>:
6327 <g_b_init_create_symbolic_link>: New static flags.
6328 (globals_of_w32): Initialize them to zero.
6329 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
6330 (map_w32_filename): Improve commentary. Simplify switch.
6331 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
6332 headers (most versions of MinGW w32api don't).
6333 (get_security_info, create_symbolic_link)
6334 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
6335 New functions.
6336 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
6337 in the argument file name.
6338 (sys_access): Call unc_volume_file_attributes only if
6339 GetFileAttributes fails with network-related error codes.
6340 (sys_rename): Diagnose renaming of a symlink when the user doesn't
6341 have the required privileges.
14ae4239 6342 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
6343 get_file_security_desc.
6344 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
6345 with addition of handling of symlinks and support for 'lstat'.
6346 If possible, get file's attributes and security information by
6dad7178
EZ
6347 handle, not by name. Produce S_IFLNK bit for symlinks, when
6348 called from 'lstat'.
6349 (stat, lstat): New functions, call 'stat_worker'.
6350 (symlink, readlink, careadlinkat): Rewritten to create and resolve
6351 symlinks when the underlying filesystem supports them.
6352
f162bcc3
PE
63532012-08-02 Paul Eggert <eggert@cs.ucla.edu>
6354
79ea6c20
PE
6355 Fix macroexp crash on Windows with debugging (Bug#12118).
6356 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
6357 checking subscripts; problem introduced with the recent
6358 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
6359 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
6360 since it's used in non-static inline functions now.
6361
c0ce93fd
PE
6362 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
6363 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 6364
f162bcc3
PE
6365 Use C99-style 'extern inline' if available.
6366 * buffer.h (BUFFER_INLINE):
6367 * category.h (CATEGORY_INLINE):
6368 * character.h (CHARACTER_INLINE):
6369 * charset.h (CHARSET_INLINE):
6370 * composite.h (COMPOSITE_INLINE):
6371 * dispextern.h (DISPEXTERN_INLINE):
6372 * lisp.h (LISP_INLINE):
6373 * systime.h (SYSTIME_INLINE):
6374 New macro, replacing 'static inline' in this header.
6375 * buffer.h, category.h, character.h, charset.h, composite.h:
6376 * dispextern.h, lisp.h, systime.h:
6377 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6378 * alloc.c (LISP_INLINE):
6379 * buffer.c (BUFFER_INLINE):
6380 * category.c (CATEGORY_INLINE):
6381 * character.c (CHARACTER_INLINE):
6382 * charset.c (CHARSET_INLINE):
6383 * composite.c (COMPOSITE_INLINE):
6384 * dispnew.c (DISPEXTERN_INLINE):
6385 * sysdep.c (SYSTIME_INLINE):
6386 Define to EXTERN_INLINE, so that the corresponding functions
6387 are compiled into code.
6388 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
6389 (INLINE_HEADER_END): New macros.
6390 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
6391 since it's used in non-static inline functions now.
a8333d03 6392 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 6393
837b365b
GM
63942012-08-02 Glenn Morris <rgm@gnu.org>
6395
d66b744d
GM
6396 * s/: Remove empty directory.
6397
837b365b
GM
6398 * s/ms-w32.h: Move to ../nt/inc.
6399 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
6400 Update for new ms-w32.h location.
6401
13294f95
PE
64022012-08-02 Paul Eggert <eggert@cs.ucla.edu>
6403
6404 Port to Solaris 8.
6405 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
6406
90df0db3
GM
64072012-08-02 Glenn Morris <rgm@gnu.org>
6408
6409 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
6410 hard-coding the path separator.
6411
4939150c
PE
64122012-08-01 Paul Eggert <eggert@cs.ucla.edu>
6413
6414 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
6415 This how ASET and AREF are supposed to work, and makes
6416 it easier to think about future improvements. See
6417 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
6418 * charset.h (set_charset_attr): New function.
6419 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
6420 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
6421 (aref_addr): New function. All uses of &AREF(...) changed.
6422 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
6423 (set_hash_index): New functions. All lvalue-style uses of
6424 HASH_KEY etc. changed.
6425 * keyboard.c (set_prop): New function. All lvalue-style uses
6426 of PROP changed.
6427
947b2afd
AA
64282012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
6429
6430 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
6431 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1f9f395d 6432 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
947b2afd
AA
6433 * nsfns.m (ns_set_name_as_filename): Likewise.
6434 * nsmenu.m (ns_update_menubar): Likewise.
6435 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
6436
4f5d0325
EZ
64372012-08-01 Eli Zaretskii <eliz@gnu.org>
6438
2008beae
EZ
6439 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
6440 Adapt to latest changes in field names of the corresponding Lisp
288479f6 6441 objects.
2008beae 6442
4f5d0325
EZ
6443 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
6444
fe3cc771
GM
64452012-08-01 Glenn Morris <rgm@gnu.org>
6446
6447 * s/msdos.h: Remove file.
6448 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
6449 * Makefile.in (S_FILE): Remove.
6450 (config_h): Remove S_FILE.
6451
c90acc54
JB
64522012-08-01 Juanma Barranquero <lekktu@gmail.com>
6453
6454 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
6455 Remove; moved to nt/config.nt.
6456
d8a05828
DA
64572012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6458
6459 Use INTERNAL_FIELD for conses and overlays.
6460 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
6461 Remove obsolete comment.
6462 (MVAR): New macro.
6463 (struct Lisp_Overlay): Use INTERNAL_FIELD.
6464 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
6465
8271d590
DA
64662012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6467
6468 Use INTERNAL_FIELD for symbols.
6469 * lisp.h (SVAR): New macro. Adjust users.
6470 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
6471 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
6472
3193acd2
DA
64732012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6474
6475 Use INTERNAL_FIELD for processes.
6476 * process.h (PVAR): New macro. Adjust style.
6477 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
6478 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
6479
3a45383a
DA
64802012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6481
6482 Use INTERNAL_FIELD for windows.
6483 * window.h (WVAR): New macro.
6484 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
6485 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
6486 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
6487 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
6488 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
6489 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
6490
c1dbc63c
PE
64912012-08-01 Paul Eggert <eggert@cs.ucla.edu>
6492
6493 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
6494
5c0c0e8a
GM
64952012-08-01 Glenn Morris <rgm@gnu.org>
6496
6497 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
6498 Move to configure.ac.
6499
552a99b4
JB
65002012-08-01 Juanma Barranquero <lekktu@gmail.com>
6501
6502 * makefile.w32-in (CONFIG_H): Update dependencies.
6503 (CONF_POST_H): New macro.
6504
6505 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
6506
8d8e2dfe
GM
65072012-07-31 Glenn Morris <rgm@gnu.org>
6508
bc96620a
GM
6509 * Makefile.in (S_FILE): No longer set by configure.
6510
476b1b2d
GM
6511 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
6512 is available.
6513 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
6514
b2c7a106
GM
6515 * process.h (NULL_DEVICE):
6516 * emacs.c (SEPCHAR):
6517 * editfns.c (USER_FULL_NAME): Let configure set them.
6518
d53d062a
GM
6519 * s/README, s/template.h: Remove files.
6520
4515017f
GM
6521 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
6522
8d8e2dfe
GM
6523 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
6524 Move to configure.ac.
6525
5b20b3cc
EZ
65262012-07-31 Eli Zaretskii <eliz@gnu.org>
6527
1e0afd9a
EZ
6528 * .gdbinit (xframe): Adapt to introduction of FVAR and the
6529 resulting renaming of 'struct frame' members.
6530
5b20b3cc
EZ
6531 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
6532
6533 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
6534 after introduction of FVAR.
6535
f1310128
JD
65362012-07-31 Jan Djärv <jan.h.d@swipnet.se>
6537
79e721e0
JD
6538 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
6539
6540 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
6541 instead of compositeToPoint.
6542 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
6543
8d7c7eed 6544 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 6545
e34f7f79
DA
65462012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6547
6548 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
6549 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 6550 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
6551 (BVAR): Change to use INTERNAL_FIELD.
6552 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
6553 (KVAR): Change to use INTERNAL_FIELD.
6554 * frame.h (FVAR): New macro.
6555 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
6556 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
6557 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
6558 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
6559 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
6560
c09bfb2f
DA
65612012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6562
6563 Miscellaneous fixes for non-default X toolkits.
6564 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
6565 * xterm.c (x_frame_of_widget): Remove redundant prototype.
6566 Move under #ifdef USE_LUCID.
6567 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
6568 definition and usage to avoid warnings.
6569
14c114ae
JD
65702012-07-31 Jan Djärv <jan.h.d@swipnet.se>
6571
6572 * nsterm.m (openFiles): Fix previous checkin.
6573
3bd21e82
PE
65742012-07-31 Paul Eggert <eggert@cs.ucla.edu>
6575
6576 * indent.c (compute_motion): Remove unused local.
6577
c1529ded
GM
65782012-07-31 Glenn Morris <rgm@gnu.org>
6579
400d5621
GM
6580 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
6581
268e2432
GM
6582 * conf_post.h [USG5_4]:
6583 Move remaining contents of s/usg5-4-common.h here.
6584 * s/usg5-4-common.h: Remove file.
6585
7552f3ee
GM
6586 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
6587 * s/irix6-5.h: Remove file.
6588
6a381852
GM
6589 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
6590 * s/darwin.h: Remove file.
6591
c1529ded
GM
6592 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
6593 * s/hpux10-20.h: Remove file, which is now empty.
6594
b429a4ee
GM
65952012-07-30 Glenn Morris <rgm@gnu.org>
6596
6597 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
6598 * Makefile.in (config_h): Add conf_post.h.
6599 * makefile.w32-in (CONFIG_H): Add conf_post.h.
6600
adff3182
JD
66012012-07-30 Jan Djärv <jan.h.d@swipnet.se>
6602
6603 * nsterm.m (ns_do_open_file): New variable.
b9031d69 6604 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
6605 (openFile, openTempFile, openFileWithoutUI, openFiles):
6606 Open files only if ns_do_open_file.
adff3182 6607
c32af1e4
PE
66082012-07-30 Paul Eggert <eggert@cs.ucla.edu>
6609
7393bcbb
PE
6610 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
6611 This no-op macro hasn't been needed for many years.
6612 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
6613
c32af1e4
PE
6614 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
6615 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
6616 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
6617 gdb_make_enums_visible.
6618 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
6619 (DIRECTORY_SEP): Now a constant, not a macro.
6620
302fc036
EZ
66212012-07-30 Eli Zaretskii <eliz@gnu.org>
6622
6623 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
6624 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
6625
6626 * w32term.c <w32_keyboard_codepage>: Renamed from
6627 keyboard_codepage and now external. All users changed.
6628
6629 * w32term.h: Add declaration of w32_keyboard_codepage.
6630
6631 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
6632 the codepage to translate keys to Unicode. If this argument is
6633 -1, use the value returned by GetConsoleCP. All callers changed.
6634
88fb40b4
PE
66352012-07-30 Paul Eggert <eggert@cs.ucla.edu>
6636
0aee6912
PE
6637 Update .PHONY listings in makefiles.
6638 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
6639 bootstrap-clean, distclean, maintainer-clean, versioclean,
6640 extraclean, frc.
6641
88fb40b4
PE
6642 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
6643 This is a bit clearer. Fix some commentary typos.
6644
0a763bd1
GM
66452012-07-30 Glenn Morris <rgm@gnu.org>
6646
32bac6d6
GM
6647 * s/netbsd.h: Let configure include signal.h if needed.
6648 Remove file, which is now empty.
6649
b65e7c46
GM
6650 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
6651 Let configure set them.
6652 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
6653 No more need to undefine.
0a763bd1 6654
169304bd
AS
66552012-07-30 Andreas Schwab <schwab@linux-m68k.org>
6656
6657 * keymap.c (Fkey_description): Don't remove 0x80 bit from
6658 non-single-byte char when adding meta modifier. (Bug#12090)
6659
6cd7a139
DA
66602012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
6661
6662 Convert safe_call to use variable number of arguments.
6663 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
6664 (safe_call2): Fix comment.
6665 * lisp.h (safe_call): Adjust prototype.
6666 * coding.c (encode_coding_object): Change to use safe_call2.
6667 * xfaces.c (merge_face_heights): Change to use safe_call1.
6668
d34d6ffc
GM
66692012-07-30 Glenn Morris <rgm@gnu.org>
6670
7b8a48e4 6671 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 6672 does that unconditionally. Remove file, which is now empty.
7b8a48e4 6673
d34d6ffc
GM
6674 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
6675 Remove empty files.
6676
03a660a6
PE
66772012-07-30 Paul Eggert <eggert@cs.ucla.edu>
6678
6679 Export to GDB most of lisp.h's remaining object-like macros.
6680 * lisp.h (min, max): Move earlier, because they're used earlier now.
6681 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
6682 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
6683 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
6684 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
6685 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
6686 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
6687 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
6688 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
6689 Now constants, for GDB. They need not be macros.
6690 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
6691 Now constants, for GDB, as well as macros, for static initializers.
6692 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
6693 Move to after the definition of struct Lisp_Char_Table,
6694 since the former now needs that type defined.
6695 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
6696 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
6697 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
6698 New enums, for gdb_make_enums_visible.
6699 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 6700 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
6701 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
6702 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
6703 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
6704 enum maxargs, enum MAX_ALLOCA.
6705 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
6706 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
6707 no longer needed, now that they are done in lisp.h.
6708
e499d0ee
DA
67092012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
6710
6711 Cleanup string bytes checking.
6712 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
6713 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
6714 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
6715 (check_sblock, compact_small_strings): Simplify.
6716
d5040d2d
PE
67172012-07-29 Paul Eggert <eggert@cs.ucla.edu>
6718
6719 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
6720 These macros are confusing and no longer need to be defined, as
6721 the enum values now suffice. All uses replaced with definiens.
6722 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
6723
7f259ae6
JB
67242012-07-29 Juanma Barranquero <lekktu@gmail.com>
6725
6726 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
6727 ($(BLD)/w32console.$(O)): Update dependencies.
6728
7e63e0c3
DA
67292012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
6730
6731 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
6732 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
6733 time. Adjust users.
6734 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
6735
ffd817eb
JD
67362012-07-29 Jan Djärv <jan.h.d@swipnet.se>
6737
6738 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
6739 setting sitelisp (Bug#12010).
6740
417a7a0e
EZ
67412012-07-29 Eli Zaretskii <eliz@gnu.org>
6742
14ae4239 6743 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
6744
6745 * w32heap.c (cache_system_info):
6746 * w32.c (sys_rename):
6747 * w32proc.c (find_child_console, sys_kill): All users changed.
6748
387d4d92
PE
67492012-07-29 Paul Eggert <eggert@cs.ucla.edu>
6750
6751 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
6752
55a6cca6
EZ
67532012-07-29 Eli Zaretskii <eliz@gnu.org>
6754
6755 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
6756
dbcf001c
DA
67572012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
6758
6759 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
6760 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
6761 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 6762
e2688e4a
DA
67632012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
6764
6765 Generalize marker debugging code under MARKER_DEBUG and use eassert.
6766 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
6767 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
6768 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
6769 (replace_range, replace_range_2, del_range_2): Change to eassert.
6770 * marker.c (byte_char_debug_check): Adjust style.
6771
b46a6a83
PE
67722012-07-29 Paul Eggert <eggert@cs.ucla.edu>
6773
6774 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
6775 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
6776 long-ago-commented-out code that talks about "WIN32".
6777 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
6778 All uses changed.
6779
e32a5799
PE
67802012-07-28 Paul Eggert <eggert@cs.ucla.edu>
6781
6782 Use Gnulib stdalign module (Bug#9772, Bug#9960).
6783 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
6784 Simplify by using alignof.
6785 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
6786 * lisp.h: Include <stdalign.h>.
6787 (GCALIGNMENT): New macro and constant.
6788 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
6789 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
6790 (stdalign): New macro, if not already defined.
6791
df81cd29
EZ
67922012-07-28 Eli Zaretskii <eliz@gnu.org>
6793
01bd1b0d
EZ
6794 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
6795 * w32inevt.c: Include w32inevt.h.
6796 (w32_read_console_input): New inline function, calls either
6797 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
6798 w32_console_unicode_input.
6799 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
6800 (w32_kbd_patch_key, key_event): Use the codepage returned by
6801 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
6802 (key_event): use uChar.UnicodeChar only if
6803 w32_console_unicode_input is non-zero.
6804
6805 * w32console.c: Include w32heap.h.
6806 <w32_console_unicode_input>: New global variable.
6807 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
6808 family of Windows, zero otherwise.
6809
6810 * w32inevt.h: Declare w32_console_unicode_input.
6811
df81cd29
EZ
6812 * xdisp.c (init_iterator): Don't reference tip_frame in a build
6813 --without-x. (Bug#11742)
6814
c20fdd9e
PE
68152012-07-27 Paul Eggert <eggert@cs.ucla.edu>
6816
6817 Adjust GDB to reflect pvec_type changes (Bug#12036).
6818 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
6819 2012-07-04 changes to pseudovector representation.
6820 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 6821
32770973 68222012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
6823
6824 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
6825 bus address.
6826 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
6827
3438fe21
EZ
68282012-07-27 Eli Zaretskii <eliz@gnu.org>
6829
bcfbc9de
EZ
6830 * alloc.c (listn): Fix the order the arguments are consed onto the
6831 list.
6832
3438fe21
EZ
6833 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
6834 enumeration constants, as PURE and HEAP are too general, and clash
6835 with other headers and sources, such as gmalloc.c and the
6836 MS-Windows system headers. All users changed.
6837
eeaea515
DA
68382012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6839
6840 Revert last save_excursion_save and save_excursion_restore changes.
6841 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
6842 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
6843
073c88c2
DA
68442012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6845
6846 Fix recently-introduced typos in Windows port.
6847 Reported by Martin Rudalics <rudalics@gmx.at>.
6848 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 6849 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 6850
4706125e
PE
68512012-07-27 Paul Eggert <eggert@cs.ucla.edu>
6852
6853 Improve GDB symbol export (Bug#12036).
6854 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
6855 arms of an 'if', not using conditional expressions; otherwise GDB
6856 complains about the types in the unevaluated arm when the argument
6857 is an integer literal.
6858 (xgetint): Simplify expression.
6859 * alloc.c (gdb_make_enums_visible): New constant. This ports to
6860 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
6861 Zaretskii in <http://bugs.gnu.org/12036#13>.
6862 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
6863 needed now that we have gdb_make_enums_visible.
6864 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
6865 (enum enum_USE_LSB_TAG):
6866 New enum types, packaging up enums that need to be exported to GDB.
6867
694b6c97
DA
68682012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6869
6870 Utility function to make a list from specified amount of objects.
6871 * lisp.h (enum constype): New datatype.
6872 (listn): New prototype.
6873 * alloc.c (listn): New function.
6874 (Fmemory_use_count, syms_of_alloc): Use it.
6875 * buffer.c (syms_of_buffer): Likewise.
6876 * callint.c (syms_of_callint): Likewise.
6877 * charset.c (define_charset_internal): Likewise.
6878 * coding.c (syms_of_coding): Likewise.
6879 * keymap.c (syms_of_keymap): Likewise.
6880 * search.c (syms_of_search): Likewise.
6881 * syntax.c (syms_of_syntax): Likewise.
6882 * w32.c (init_environment): Likewise.
6883 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
6884 * xdisp.c (syms_of_xdisp): Likewise.
6885 * xfns.c (syms_of_xfns): Likewise.
6886
6195f384
DA
68872012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6888
6889 Fast save_excursion_save and save_excursion_restore.
6890 * lisp.h (struct Lisp_Excursion): New data type.
6891 (PVEC_EXCURSION): New pseudovector type.
6892 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
6893 to deal with it. Adjust comments.
6894 (init_marker, attach_marker): New prototype.
6895 (unchain_marker): Adjust prototype.
6896 * marker.c (attach_marker): Change to global.
6897 (init_marker): New function.
6898 * alloc.c (Fmake_marker, build_marker): Use it.
6899 (build_marker): More easserts.
6900 (mark_object): Handle struct Lisp_Excursion.
6901 * editfns.c (save_excursion_save, save_excursion_restore):
6902 Reimplement to use struct Lisp_Excursion. Add comments.
6903
5eceb8fb
PE
69042012-07-26 Paul Eggert <eggert@cs.ucla.edu>
6905
6906 Fix export of symbols to GDB (Bug#12036).
6907 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
6908 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
6909 emacs.c, as this is a more-suitable home. Had this been done earlier
6910 the fix for 12036 would have avoided some of the problems noted in
6911 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
6912 would have been more obvious.
562157c8
PE
6913 * emacs.c: Do not include <verify.h>; no longer needed.
6914 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
6915 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
6916 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
6917 Remove; now done in lisp.h.
6918 * lisp.h (PUBLISH_TO_GDB): New macro.
6919 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
6920 (DATA_SEG_BITS): Use it.
6921 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
6922 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
6923 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
6924 not be usable in #if. This simplifies things.
6925
d6749401
JB
69262012-07-26 Juanma Barranquero <lekktu@gmail.com>
6927
6928 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
6929
1781b9e9
PE
69302012-07-26 Paul Eggert <eggert@cs.ucla.edu>
6931
d89518db 6932 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
6933 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
6934 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
6935 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
6936 Adjust to changes in lisp.h and emacs.c, by using
6937 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
6938 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
6939 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
6940 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
6941 instead of gdb_valbits.
6942 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
6943 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
6944 instead of gdb_array_mark_flag.
6945 (xboolvector): Get size from $->size, not $->header.size.
6946 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
6947 (xreload, hook-run, hookpost-run): Remove.
6948 * emacs.c: Include <verify.h>.
6949 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
6950 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
6951 Remove.
6952 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
6953 (gdb_USE_LSB_TAG): New enum constants.
6954 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
6955 Also define these as enum constants, so they're visible to GDB.
6956 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
6957 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
6958 as constants, so they're visible to GDB.
6959 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
6960 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
6961 Now enum constants, not macros, so they're visible to GDB.
6962 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
6963 more convenient now. All uses changed.
6964 (VALMASK) [USE_LSB_TAG]: Also define in this case.
6965 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
6966
3628596a
DA
69672012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
6968
6969 Explicitly free restriction data that are not needed anymore.
6970 * editfns.c (save_restriction_restore): Free restriction data.
6971
7abaf5cc
SM
69722012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
6973
6974 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
6975 add argument, tune behavior, and adjust all callers.
6976
71f88e00
PE
69772012-07-25 Paul Eggert <eggert@cs.ucla.edu>
6978
6979 Use typedef for EMACS_INT, EMACS_UINT.
6980 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
6981 than macros. This simplifies debugging in the usual case, since
6982 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
6983 and it allows expressions involving EMACS_INT casts.
6984 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
6985
57ec3034
JD
69862012-07-25 Jan Djärv <jan.h.d@swipnet.se>
6987
6988 * nsterm.m (ns_read_socket): Return early if there is a modal
6989 window (Bug#12043).
6990
8137e7b3
MR
69912012-07-25 Martin Rudalics <rudalics@gmx.at>
6992
6993 * frame.c (Fredirect_frame_focus): In doc-string don't mention
6994 that FOCUS-FRAME can be omitted.
6995
04e9897c
DA
69962012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
6997
6998 Adjust buffer text indirection counters at the end of Fkill_buffer.
6999 * buffer.c (Fkill_buffer): Adjust indirection counters when the
7000 buffer is definitely dead. This should really fix an issue reported
7001 by Christoph Scholtes again. (Bug#12007).
7002 (init_buffer_once): Initialize indirection counters of
7003 buffer_defaults and buffer_local_symbols (for sanity and safety).
7004
8a0484e1
EZ
70052012-07-24 Eli Zaretskii <eliz@gnu.org>
7006
7007 * xdisp.c (init_iterator): Don't compute dimensions of truncation
7008 and continuation glyphs on tooltip frames, leave them at zero.
7009 Avoids continued lines in tooltips. (Bug#11832)
7010
fa691a83
DA
70112012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
7012
7013 Simplify copy_overlay.
04e9897c 7014 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
7015 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
7016
436bc8e0
EZ
70172012-07-23 Eli Zaretskii <eliz@gnu.org>
7018
7019 * print.c (print_object): Don't crash when a frame's name is nil
7020 or invalid. (Bug#12025)
7021
7022 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
7023 it signals an error when a tooltip frame is being created.
7024
d7a7fda3
DA
70252012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
7026
7027 Cleanup miscellaneous objects allocation and initialization.
7028 * alloc.c (allocate_misc): Change to static. Add argument to
7029 specify the subtype. Adjust comment and users.
7030 (build_overlay): New function.
7031 * buffer.c (copy_overlays, Fmake_overlay): Use it.
7032 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
7033 (allocate_misc): Remove prototype.
7034 (build_overlay): Add prototype.
7035
70362012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
7037
7038 Swap buffer text indirection counters in Fbuffer_swap_text.
7039 * buffer.c (Fbuffer_swap_text): Swap indirections too.
7040 This avoids crash reported by Christoph Scholtes at
7041 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
7042
9d7fa573
JD
70432012-07-22 Jan Djärv <jan.h.d@swipnet.se>
7044
7045 * nsmenu.m (Popdown_data): New struct.
7046 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
7047 free Popdown_data.
7048 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
7049 (initWithContentRect): Make imgView and contentView non-static
7050 and autorelease them. Also autorelease img and matrix (Bug#12005).
7051 (dealloc): Remove (Bug#12005).
7052
0dd6d66d
DA
70532012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
7054
7055 Adjust consing_since_gc when objects are explicitly freed.
7056 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
7057 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
7058 (free_cons, free_misc): Subtract object size from consing_since_gc.
7059
d36d71df
DA
70602012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
7061
7062 Simplify and cleanup markers positioning code.
7063 * marker.c (attach_marker): More useful eassert.
7064 (live_buffer, set_marker_internal): New function.
7065 (Fset_marker, set_marker_restricted): Use set_marker_internal.
7066 (set_marker_both, set_marker_restricted_both): Use live_buffer.
7067
fb9ea40f
PE
70682012-07-22 Paul Eggert <eggert@cs.ucla.edu>
7069
7070 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
7071 as it's limited by the amount of memory, not by INT_MAX.
7072
2d5c5f7d
EZ
70732012-07-21 Eli Zaretskii <eliz@gnu.org>
7074
07fb592e
EZ
7075 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
7076 in special-event-map. See the discussion at
7077 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
7078 for the reasons.
7079
37a9eac8 7080 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
7081 info.dwItemData. Fixes crashes on 64-bit Windows.
7082 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 7083
c4328746
JD
70842012-07-21 Jan Djärv <jan.h.d@swipnet.se>
7085
fc0c31f8 7086 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 7087 (conversationIdentifier): Return value is NSInteger.
784051c4 7088 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 7089
6e5d1c12
CY
70902012-07-21 Chong Yidong <cyd@gnu.org>
7091
7092 * window.c (decode_any_window): Signal an error if the window is
7093 on a dead frame (Bug#11984).
7094
9928463d
DA
70952012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
7096
7097 Add indirection counting to speed up Fkill_buffer.
7098 * buffer.h (struct buffer): New member.
7099 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
7100 (Fmake_indirect_buffer): Set indirection counter to -1, increment
7101 base buffer indirection counter.
7102 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
7103 (Fkill_buffer): Adjust indirection counters as needed, don't walk
7104 through buffer list if indirection counter is 0.
7105
f8643a6b
DA
71062012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
7107
7108 Extend the value returned by Fgarbage_collect with heap statistics.
7109 * alloc.c (Qheap): New symbol.
7110 (syms_of_alloc): DEFSYM it.
7111 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
7112 (Fmemory_free): Remove.
7113 (syms_of_alloc): Don't defsubr it.
7114 * buffer.c (Fcompact_buffer): Remove.
7115 (syms_of_buffer): Don't defsubr it.
7116
dac616ff
DA
71172012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
7118
7119 Make maybe_gc inline.
7120 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
7121 * lisp.h (consing_since_gc, gc_relative_threshold)
7122 (memory_full_cons_threshold): Revert declaration.
7123 (maybe_gc): Remove prototype, define as inline.
7124 * alloc.c: Remove old commented-out code.
7125 (consing_since_gc, gc_relative_threshold)
7126 (memory_full_cons_threshold): Revert to global.
7127 (maybe_gc): Remove.
7128
d7ea76b4
DA
71292012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
7130
7131 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
7132 * lisp.h (build_unibyte_string): New function.
7133 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
7134 * sysdep.c, w32fns.c, xfns.c: Use it.
7135 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
7136 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
7137 Adjust users accordingly.
7138 * font.h (font_open_by_name): Adjust prototype.
7139
765e61e3
DA
71402012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
7141
7142 Cleanup calls to Fgarbage_collect.
7143 * lisp.h (maybe_gc): New prototype.
7144 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
7145 Remove declarations.
7146 * alloc.c (maybe_gc): New function.
7147 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
7148 Make them static.
7149 * bytecode.c (MAYBE_GC): Use maybe_gc.
7150 * eval.c (eval_sub, Ffuncall): Likewise.
7151 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
7152 to avoid dependency from auto-save feature.
7153
52b852c7
PE
71542012-07-19 Paul Eggert <eggert@cs.ucla.edu>
7155
7156 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
7157 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
7158 'for_each_per_buffer_object_at'.
7159 All uses changed. It's better to use upper-case for macros that
7160 cannot be implemented as functions, to give the reader a clue
7161 that they're special.
7162
5db81e33
SM
71632012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
7164
7165 * alloc.c (Fgarbage_collect): Tweak docstring.
7166
5b835e1d
DA
71672012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
7168
7169 Tweak the value returned from Fgarbage_collect again.
7170 * alloc.c (Fgarbage_collect): New return value, as confirmed in
7171 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
7172 Adjust documentation.
7173 (total_vector_bytes): Rename to total_vector_slots, adjust
7174 accounting.
7175 (total_free_vector_bytes): Rename to total_free_vector_slots,
7176 adjust accounting.
7177 (Qstring_bytes, Qvector_slots): New symbols.
7178 (syms_of_alloc): DEFSYM them.
7179
9cd47b72
DA
71802012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
7181
7182 Buffer compaction primitive which may be used from Lisp.
7183 * buffer.c (compact_buffer, Fcompact_buffer): New function.
7184 (syms_of_buffer): Register Fcompact_buffer.
7185 * alloc.c (Fgarbage_collect): Use compact_buffer.
7186 * buffer.h (compact_buffer): New prototype.
7187 (struct buffer_text): New member.
7188
d17337e5
DA
71892012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
7190
7191 New macro to iterate over all buffers, miscellaneous cleanups.
7192 * lisp.h (all_buffers): Remove declaration.
7193 * buffer.h (all_buffers): Add declaration, with comment.
7194 (for_each_buffer): New macro.
7195 * alloc.c (Fgarbage_collect, mark_object): Use it.
7196 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
7197 (init_buffer): Likewise.
7198 * data.c (Fset_default): Likewise.
7199 * coding.c (code_conversion_restore): Remove redundant check
7200 for dead buffer.
7201 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
7202
60cfd278
AS
72032012-07-18 Andreas Schwab <schwab@linux-m68k.org>
7204
7205 Fix bug that created negative-length intervals.
7206 * intervals.c (merge_interval_right, merge_interval_left):
7207 Do not zero out this interval if it is absorbed by its children,
7208 as this interval's total length doesn't change in that case. See
7209 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
7210
d06714cb
PE
72112012-07-18 Paul Eggert <eggert@cs.ucla.edu>
7212
83713154
PE
7213 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
7214 when invoking (make-bool-vector N t) and N is a positive
7215 multiple of 8 -- the last 8 bits were mistakenly cleared.
7216
d06714cb
PE
7217 Remove some struct layout assumptions in bool vectors.
7218 * alloc.c (bool_header_size): New constant.
7219 (header_size, word_size): Move earlier, as they're now used earlier.
7220 Use 'word_size' in a few more places, where it's appropriate.
7221 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
7222 padding before the data member of a bool vector.
7223 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
7224 than doing the check by hand with an abort ().
7225
464d5a5e
SM
72262012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
7227
5fbc0409
SM
7228 * eval.c (Fdefvar): Don't check constants since we only set the var if
7229 it's not yet defined anyway (bug#11904).
7230
464d5a5e
SM
7231 * lisp.h (last_undo_boundary): Declare new var.
7232 * keyboard.c (command_loop_1): Set it.
7233 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
7234 were auto-added by the command loop (bug#11774).
7235
8dc2e44a
AS
72362012-07-18 Andreas Schwab <schwab@linux-m68k.org>
7237
7238 * w32font.c (Qsymbol): Remove local definition.
7239 (syms_of_w32font): Don't DEFSYM it.
7240
169925ec
DA
72412012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
7242
7243 Fix sweep_vectors to handle large bool vectors correctly.
7244 * alloc.c (sweep_vectors): Account total_vector_bytes for
7245 bool vectors larger than VBLOCK_BYTES_MAX.
7246
5fbfb018
CY
72472012-07-18 Chong Yidong <cyd@gnu.org>
7248
7249 * frame.c (x_set_frame_parameters): Revert bogus change introduced
7250 in 2012-05-25 commit by Paul Eggert (Bug#11738).
7251
3ab6e069
DA
72522012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
7253
7254 Return more descriptive data from Fgarbage_collect.
7255 Suggested by Stefan Monnier in
7256 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
7257 * alloc.c (bounded_number): New function.
7258 (total_buffers, total_vectors): New variable.
7259 (total_string_size): Rename to total_string_bytes, adjust users.
7260 (total_vector_size): Rename to total_vector_bytes, adjust users.
7261 (sweep_vectors): Account total_vectors and total_vector_bytes.
7262 (Fgarbage_collect): New return value. Adjust documentation.
7263 (gc_sweep): Account total_buffers.
7264 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
7265 (VECTOR_SIZE): Remove.
7266 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
7267 (Qinterval, Qmisc): New symbols.
7268 (syms_of_data): Initialize them.
7269 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
7270 (Qcons, Qbuffer): New declarations.
7271
6d02fe5b
PE
72722012-07-17 Paul Eggert <eggert@cs.ucla.edu>
7273
7274 * alloc.c (Fmemory_free): Account for memory-free's own storage.
7275 Round up, not down. Improve doc.
7276
b7ffe040
DA
72772012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7278
7279 Restore old code in allocate_string_data to avoid Faset breakage.
7280 Reported by Julien Danjou <julien@danjou.info> in
7281 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
7282 * alloc.c (allocate_string_data): Restore old code with minor
7283 adjustments, fix comment to explain this subtle issue.
7284
4dc7c8d5
SM
72852012-07-17 Eli Zaretskii <eliz@gnu.org>
7286
7287 Remove FILE_SYSTEM_CASE.
7288 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
7289
7290 * fileio.c (FILE_SYSTEM_CASE): Don't define.
7291 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
7292 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
7293 call-process-region passes it through expand-file-name.
7294
7295 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
7296
72972012-07-17 Andreas Schwab <schwab@linux-m68k.org>
7298
7299 Fix crash when creating indirect buffer (Bug#11917)
7300 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
7301 Don't handle unbound variables specially if non-zero.
7302 (Fbuffer_local_variables): Pass zero.
7303 (clone_per_buffer_values): Pass non-zero.
7304
73052012-07-17 Andreas Schwab <schwab@linux-m68k.org>
7306
7307 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
7308 to make the loop interruptible.
7309
73102012-07-17 Andreas Schwab <schwab@linux-m68k.org>
7311
7312 * gnutls.c (emacs_gnutls_handshake): Only retry if
7313 GNUTLS_E_INTERRUPTED.
7314
cce7fefc
DA
73152012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7316
7317 Cleanup and convert miscellaneous checks to eassert.
7318 * alloc.c (mark_interval): Fix comment, partially rephrase
7319 old comment from intervals.h (see below).
7320 * intervals.c (find_interval, adjust_intervals_for_insertion)
7321 (delete_interval, adjust_intervals_for_deletion)
7322 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
7323 Convert to eassert.
7324 (adjust_intervals_for_insertion, make_new_interval):
7325 Remove obsolete and unused code.
7326 * intervals.h (struct interval): Remove obsolete comment.
7327 * textprotp.c (erase_properties): Remove unused code.
7328 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
7329 (Fremove_list_of_text_properties): Convert to eassert.
7330
9ea10cc3
CY
73312012-07-17 Chong Yidong <cyd@gnu.org>
7332
7333 * editfns.c (Finsert_char): Doc fix.
7334
3900d5de
DA
73352012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7336
7337 Fix previous change to make Fmemory_free always accurate.
7338 * alloc.c (make_interval): Update total_free_intervals.
7339 (make_float): Likewise for total_free_floats.
7340 (free_cons, Fcons): Likewise for total_free_conses.
7341 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
7342 Likewise for total_free_vector_bytes.
7343 (Fmake_symbol): Likewise for total_free_symbols.
7344 (bytes_free): Remove.
7345
7098646f
DA
73462012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7347
7348 Simple free memory accounting feature.
7349 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
7350 (sweep_vectors): Accumulate size of free vectors.
7351 (Fgarbage_collect): Setup bytes_free.
7352 (Fmemory_free): New function.
7353 (syms_of_alloc): Register it.
7354
22657b40
DA
73552012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7356
7357 Cleanup overlays checking.
7358 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
7359 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
7360 eassert and OVERLAYP.
7361 (sort_overlays): Change to use OVERLAYP.
7362
ddfc8813
RK
73632012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
7364
7365 * editfns.c (Finsert_char): Make it interactive, and make the
7366 second arg optional. Copy interactive spec and docstring from
7367 ucs-insert.
7368
7c26cf3c
PE
73692012-07-17 Paul Eggert <eggert@cs.ucla.edu>
7370
7371 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
7372 Unlike the other wrapped functions, fabs has an unspecified
7373 effect on errno.
7374
5d127af9
JD
73752012-07-16 Jan Djärv <jan.h.d@swipnet.se>
7376
7377 * nsterm.m (keyDown): Interpret flags without left/right bits
7378 as the left key (Bug#11670).
7379
6a0dd1d7
DA
73802012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
7381
7382 Remove empty and useless init functions.
7383 * lisp.h (init_character_once, init_fns, init_image)
7384 (init_filelock, init_sound): Remove prototype.
7385 * character.c (init_character_once): Remove.
7386 * filelock.c (init_filelock): Likewise.
7387 * fns.c (init_fns): Likewise.
7388 * image.c (init_image): Likewise.
7389 * sound.c (init_sound): Likewise.
7390 * emacs.c (main): Adjust accordingly.
7391
7a6136fd
DA
73922012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
7393
7394 * gtkutil.h: Tiny cleanups.
7395 (use_old_gtk_file_dialog): Remove useless declaration.
7396 (xg_uses_old_file_dialog): Add suggested const attribute.
7397
ce811ad9
EZ
73982012-07-15 Eli Zaretskii <eliz@gnu.org>
7399
7400 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
7401 (bidi_paragraph_init): Use it to limit search forward for a strong
7402 directional character in abnormally large paragraphs full of
7403 neutral or weak characters. (Bug#11943)
7404
c9adfeaa
SF
74052012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
7406
7407 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
7408 the toolbar (Bug#9451).
7409 (xg_make_tool_item): Give the widget event box a transparent
7410 background.
7411
fff62aa9
DA
74122012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
7413
7414 Cleanup basic allocation variables and functions.
7415 * alloc.c (ignore_warnings, init_intervals, init_float)
7416 (init_cons, init_symbol, init_marker): Remove.
7417 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
7418 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
7419 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
7420 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
7421 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
7422 (staticidx, init_alloc_once, init_strings, free_ablock):
7423 Remove redundant initialization.
7424 * fns.c (init_weak_hash_tables): Remove.
7425 * lisp.h (init_weak_hash_tables): Remove prototype.
7426
9730daca
DA
74272012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
7428
7429 Use zero_vector where appropriate.
7430 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
7431 accordingly.
7432 * lisp.h (zero_vector): New declaration.
7433 * font.c (null_vector): Remove.
7434 (syms_of_font): Remove initialization and staticpro.
7435 (font_list_entities, font_find_for_lface): Change to use zero_vector.
7436 * keymap.c (Faccessible_keymaps): Likewise.
7437
2e2d2a13
LL
74382012-07-15 Leo Liu <sdl.web@gmail.com>
7439
7440 * fringe.c: Fix typo in comments.
7441
cd276f6e
LL
74422012-07-14 Leo Liu <sdl.web@gmail.com>
7443
7444 * fringe.c: Add a new bitmap exclamation-mark.
7445
5a1131d9
EZ
74462012-07-14 Eli Zaretskii <eliz@gnu.org>
7447
7448 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
7449
7450 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
7451 (HAVE_MENUS): Don't define, defined by editing config.in with
7452 msdos/sed2v2.inp.
7453 (GMALLOC_INHIBIT_VALLOC): Don't define.
7454 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
7455
22e983b7
JB
74562012-07-14 Juanma Barranquero <lekktu@gmail.com>
7457
7458 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
7459
5b3f250f
GM
74602012-07-14 Glenn Morris <rgm@gnu.org>
7461
7462 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
7463 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
7464 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
7465
33d63ff4
GM
74662012-07-13 Glenn Morris <rgm@gnu.org>
7467
5b633342
GM
7468 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
7469
33d63ff4
GM
7470 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
7471 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
7472
b55b9f85
JD
74732012-07-13 Jan Djärv <jan.h.d@swipnet.se>
7474
0dc8cf50
JD
7475 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
7476 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
7477 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
7478 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
7479 where appropriate.
7480 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
7481 as boolean expression.
7482 (x_set_window_size): Remove unused variable toolbar.
7483 (ns_get_color_default, ns_mod_to_lisp): Remove.
7484 (ns_mouse_position): Remove unused variables xchar and ychar.
7485 (ns_compute_glyph_string_overhangs): Remove unused variable face.
7486 (ns_set_vertical_scroll_bar): Remove unused variable count.
7487 (ns_delete_terminal): Remove unused variable i.
7488 (ns_term_init): Remove unused variables r, g and b.
7489 (mouseDown): Remove unused variable window.
7490 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
7491 (initFrameFromEmacs): Remove unused variable vbextra.
7492 (mouseEntered): Remove unused variables p and dpyinfo.
7493 (mouseExited): Remove unused variables p and r.
7494 (ns_define_frame_cursor, ns_clear_frame_area)
7495 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
7496 (menuDown): Assign [sender tag] to variable and cast the variable.
7497
7498 * nsterm.h (menuDown): Add id as type to argument sender.
7499 (ns_display_info_for_name): Add Lisp_Object argument.
7500 (ns_term_init): Add Lisp_Object argument.
7501 (ns_map_event_to_object): Add void argument.
7502 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
7503 prototype with arguments and only declare if __OBJC__.
7504 (nxatoms_of_nsselect): Add void argument.
7505 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
7506 (ns_alloc_autorelease_pool): Add void argument.
7507 (ns_release_autorelease_pool): Add void* argument.
7508 (ns_get_defaults_value): Add const char* argument.
7509
7510 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
7511 (initFromContents): Use SSDATA where appropriate.
7512 (ns_update_menubar): Add braces to ambigous if-else.
7513 (initWithTitle): Put () around assignment in if statement.
7514 (ns_menu_show): Remove unused variables window and keymap.
7515 (update_frame_tool_bar): Remove unused variable selected_p.
7516 (initWithContentRect): Remove unused variable this_cmd_name.
7517
7518 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
7519 appropriate.
7520 (setXBMColor): Remove unused variable len.
7521 (setPixmapData): Put () around assignment in loop statement.
7522
7523 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
7524 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
7525 where appropriate.
7526 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
7527 around assignment in loop statement.
7528 (nsfont_open): Remove unused variable i.
7529 (nsfont_open): Remove unused variable len.
7530 (nsfont_draw): Remove unused variable cs.
7531
7532 * nsfns.m (x_set_icon_name, ns_set_name_internal)
7533 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
7534 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
7535 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
7536 (Fns_font_name, Fns_perform_service)
7537 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
7538 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
7539 (ns_set_name): Remove unused variable view.
7540 (x_set_menu_bar_lines): Remove unused variable olines.
7541 (x_set_tool_bar_lines): Remove unused variable root_window.
7542 (Fns_list_colors): Put () around assignment in while statement.
7543 (Fns_perform_service): Remove unused variable len.
7544 (Fns_display_usable_bounds): Remove unused variable top.
7545 (syms_of_nsfns): Remove unused variable i.
7546
b55b9f85
JD
7547 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
7548 memcpy (Bug#11907).
7549
ed9265fc 75502012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
7551
7552 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
7553 and free it with DestroyExceptionInfo (Bug#11558).
7554
ef099b57
JB
75552012-07-13 Juanma Barranquero <lekktu@gmail.com>
7556
7557 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
7558 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
7559 Set here, not in nt/config.nt.
7560
ea814a5d
EZ
75612012-07-13 Eli Zaretskii <eliz@gnu.org>
7562
7563 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
7564 cursor overflow into the last glyph on display line when the right
7565 fringe is off. (Bug#11832)
7566
1a952767
PE
75672012-07-13 Paul Eggert <eggert@cs.ucla.edu>
7568
7569 * xdisp.c (produce_special_glyphs): Now static.
7570 * dispextern.h (produce_special_glyphs): Remove decl.
7571
983188fd
GM
75722012-07-13 Glenn Morris <rgm@gnu.org>
7573
8d7c7eed 7574 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
7575 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
7576
983188fd
GM
7577 * s/usg5-4-common.h (USG, USG5):
7578 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
7579 * s/sol2-6.h (SOLARIS2):
7580 * s/irix6-5.h (IRIX6_5):
7581 * s/hpux10-20.h (USG, USG5, HPUX):
7582 * s/gnu-linux.h (USG, GNU_LINUX):
7583 * s/freebsd.h (BSD_SYSTEM):
7584 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
7585 * s/cygwin.h (CYGWIN):
7586 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
7587 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
7588
d1e68667 75892012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
7590
7591 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 7592
6de0e799
GM
75932012-07-13 Glenn Morris <rgm@gnu.org>
7594
739ae010
GM
7595 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
7596
dbee5793
GM
7597 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
7598
6de0e799
GM
7599 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
7600 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
7601
b82da769
GM
76022012-07-12 Glenn Morris <rgm@gnu.org>
7603
4fae5a7a 7604 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
7605
7606 * process.c (init_process_emacs): Rename from init_process.
7607 The old name is also the name of a Mach system call.
7608 * lisp.h, emacs.c: Update for this name change.
7609 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
7610 longer needed.
7611
5a979817
EZ
76122012-07-12 Eli Zaretskii <eliz@gnu.org>
7613
7614 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
7615 memmove call that removes glyphs covered by the left truncation
7616 glyph. Improve commentary.
7617 (display_line): Fix display of continuation glyphs on GUI frames
7618 when the right fringe is turned off and variable-size fonts are
7619 used in the window. Move the code that appends a stretch glyph to
7620 produce_special_glyphs, so that it could be used for truncation
7621 and continuation glyphs alike.
7622 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
7623 glyph of a suitably computed width, to align the special glyphs at
7624 the window margin. Code moved from display_line. (Bug#11832)
7625
3e91a053
GM
76262012-07-12 Glenn Morris <rgm@gnu.org>
7627
ba9e4b84
GM
7628 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
7629
7630 * s/gnu-linux.h, s/hpux10-20.h:
7631 Do not unconditionally define HAVE_XRMSETDATABASE.
7632
3e91a053
GM
7633 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
7634
b300b1f4
PE
76352012-07-12 Paul Eggert <eggert@cs.ucla.edu>
7636
7637 Fix typos that broke OS X build.
7638 Reported by Randal L. Schwartz in
7639 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
7640 * nsterm.m (ns_timeout): Add missing local decl.
7641 (ns_get_color): snprintf -> sprintf, to fix typo.
7642
6e777848
GM
76432012-07-12 Glenn Morris <rgm@gnu.org>
7644
3f922c37
GM
7645 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
7646 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
7647 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
7648 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
7649
0ab7b23a
GM
7650 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
7651 Move PTY_OPEN to configure.
7652
6e777848
GM
7653 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
7654 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
7655 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
7656
4a7edc24
DA
76572012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
7658
7659 Use empty_unibyte_string where applicable.
7660 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
7661 * lread.c (read1): Likewise.
7662 * xsettings.c (syms_of_xsettings): Likewise.
7663
308aab79
GM
76642012-07-12 Glenn Morris <rgm@gnu.org>
7665
42bd1719
GM
7666 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
7667 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
7668 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
7669 * s/hpux10-20.h (RUN_TIME_REMAP):
7670 * s/bsd-common.h (TABDLY): Move to configure.
7671
7672 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
7673
7674 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
7675
ea0bbd17 7676 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 7677 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
7678
7679 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 7680
308aab79
GM
7681 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
7682 * s/template.h: Move NARROWPROTO to configure.
7683
ee1cf5cf
GM
76842012-07-11 Glenn Morris <rgm@gnu.org>
7685
30fe9bf4
GM
7686 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
7687 unused since 2011-01-17 change to systty.h.
7688
ee1cf5cf
GM
7689 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
7690 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
7691 Move HAVE_PTYS and HAVE_SOCKETS to configure.
7692
63e47e07
PE
76932012-07-11 Paul Eggert <eggert@cs.ucla.edu>
7694
7695 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
7696
c43fb4c3
GM
76972012-07-11 Glenn Morris <rgm@gnu.org>
7698
7699 * s/darwin.h, s/gnu-linux.h, s/template.h:
7700 Move INTERRUPT_INPUT to configure.
7701
e8df9267
DA
77022012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
7703
7704 Minor adjustments to interning code.
7705 * lisp.h (intern, intern_c_string): Redefine as static inline
7706 wrappers for intern_1 and intern_c_string_1, respectively.
7707 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
7708 * lread.c (intern_1, intern_c_string_1, oblookup):
7709 Simplify Vobarray checking.
e8df9267
DA
7710 * font.c (font_intern_prop): Likewise. Adjust comment.
7711 * w32font.c (intern_font_name): Likewise.
7712
34348bd4
AS
77132012-07-11 Andreas Schwab <schwab@linux-m68k.org>
7714
d96a1e0c
AS
7715 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
7716
34348bd4
AS
7717 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
7718 of Fcar/Fcdr if possible.
7719 * font.c (check_otf_features): Likewise.
7720 * fontset.c (Fnew_fontset): Likewise.
7721 * gnutls.c (Fgnutls_boot): Likewise.
7722 * minibuf.c (read_minibuf): Likewise.
7723 * msdos.c (IT_set_frame_parameters): Likewise.
7724 * xmenu.c (Fx_popup_dialog): Likewise.
7725 * w32menu.c (Fx_popup_dialog): Likewise.
7726
c8add24e
GM
77272012-07-11 Glenn Morris <rgm@gnu.org>
7728
4b575b3c
GM
7729 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
7730 since nothing has defined it on these platforms.
7731
09f4e3b0
GM
7732 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
7733 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
7734
172bedef
GM
7735 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
7736 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
7737 Move CLASH_DETECTION to configure.
7738
249685df
GM
7739 * s/gnu.h: Remove file, which is now empty.
7740
c8add24e
GM
7741 * s/gnu.h, s/gnu-linux.h:
7742 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
7743
b41253a3
JW
77442012-07-11 John Wiegley <johnw@newartisans.com>
7745
7746 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
7747 function attribute, so we only use it if it exists in the
7748 compiler.
7749
d923b542
DA
77502012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
7751
7752 Avoid call to strlen in fast_c_string_match_ignore_case.
7753 * search.c (fast_c_string_match_ignore_case): Change to use
7754 length argument. Adjust users accordingly.
7755 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
7756
5ebbef1d
PE
77572012-07-11 Paul Eggert <eggert@cs.ucla.edu>
7758
bb352260
PE
7759 Assume mkdir, rmdir.
7760 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
7761 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
7762
57054ddd
PE
7763 Assume rename.
7764 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
7765
b747d3f7
PE
7766 Assume perror.
7767 * s/hpux10-20.h (HAVE_PERROR): Remove.
7768 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
7769 Remove dummy definition, as this problem was obsolete long ago.
7770
5ebbef1d
PE
7771 Assume strerror.
7772 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
7773
984e7f30
DA
77742012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
7775
7776 Avoid calls to strlen in font processing functions.
7777 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
7778 (font_open_by_name): Change to use length argument.
7779 Adjust users accordingly.
d923b542
DA
7780 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
7781 Adjust prototypes.
7782 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
7783 Change to return ptrdiff_t.
984e7f30
DA
7784 (xfont_list_pattern, xfont_match): Use length returned by
7785 xfont_decode_coding_xlfd.
7786 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
7787
20e94fdd
GM
77882012-07-11 Glenn Morris <rgm@gnu.org>
7789
9d596af3
GM
7790 * s/darwin.h, s/freebsd.h, s/netbsd.h:
7791 Move DONT_REOPEN_PTY to configure.
7792
20e94fdd
GM
7793 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
7794 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
7795
e99a530f
PE
77962012-07-10 Paul Eggert <eggert@cs.ucla.edu>
7797
22ffb973
PE
7798 Remove "#define unix" that is no longer needed (Bug#11905).
7799 * s/aix4-2.h (unix): Remove; no longer needed.
7800
e9a9ae03
PE
7801 EMACS_TIME simplification (Bug#11875).
7802 This replaces macros (which typically do not work in GDB)
7803 with functions, typedefs and enums, making the code easier to debug.
7804 The functional style also makes code easier to read and maintain.
7805 * systime.h: Include <sys/time.h> on all hosts, not just if
7806 WINDOWSNT, since 'struct timeval' is needed in general.
7807 (EMACS_TIME): Now a typedef, not a macro.
7808 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
7809 not macros.
7810 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
7811 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
7812 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
7813 (EMACS_TIME_LE): Now functions, not macros.
7814 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
7815 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
7816 which are not functions. All uses rewritten to use:
7817 (make_emacs_time): New function.
7818 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
7819 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
7820 not functions. All uses rewritten to use the following, respectively:
7821 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
7822 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 7823 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
7824 * fileio.c (Fcopy_file):
7825 * xterm.c (XTflash): Get the current time closer to when it's used.
7826 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
7827
ffacb126
PE
7828 * bytecode.c (targets): Suppress -Woverride-init warnings.
7829
e99a530f
PE
7830 Simplify by avoiding confusing use of strncpy etc.
7831 * doc.c (Fsnarf_documentation):
7832 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
7833 * frame.c (Fmake_terminal_frame):
7834 * gtkutil.c (get_utf8_string):
7835 * lread.c (openp):
7836 * nsmenu.m (ns_update_menubar):
7837 * regex.c (regerror):
7838 Prefer memcpy to strncpy and strncat when either will do.
7839 * fileio.c (Fsubstitute_in_file_name):
7840 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
7841 (menu_separator_name_p):
7842 * nsmenu.m (ns_update_menubar):
7843 Prefer memcmp to strncmp when either will do.
7844 * nsterm.m: Include <ftoastr.h>.
7845 (ns_get_color):
7846 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
7847 Prefer snprintf to strncpy.
7848 * nsterm.m (ns_term_init):
7849 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
7850 * nsterm.m (ns_term_init):
7851 Avoid the need for strncpy, by using build_string or
7852 make_unibyte_string directly. Use dtoastr, not snprintf.
7853 * process.c (Fmake_network_process): Diagnose service names that
7854 are too long, rather than silently truncating them or creating
7855 non-null-terminated names.
7856 (Fnetwork_interface_info): Likewise, for interface names.
7857 * sysdep.c (system_process_attributes) [GNU_LINUX]:
7858 Prefer sprintf to strncat.
7859 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
7860 Prefer vsnprintf to vsprintf + strncpy.
7861
c59592b3
GM
78622012-07-10 Glenn Morris <rgm@gnu.org>
7863
7864 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
7865 Clarify fallback case.
7866
7d7bbefd
DA
78672012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7868
7869 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
7870 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
7871 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 7872 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
7873 where argument type is known to be a Lisp_Cons.
7874
3a4c8000
TT
78752012-07-10 Tom Tromey <tromey@redhat.com>
7876
7877 * bytecode.c (BYTE_CODE_THREADED): New macro.
7878 (BYTE_CODES): New macro. Replaces all old byte-code defines.
7879 (enum byte_code_op): New type.
7880 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
7881 (exec_byte_code): Use them. Use token threading when applicable.
7882
2a0213a6
DA
78832012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7884
7885 Optimize pure C strings initialization.
7886 * lisp.h (make_pure_string): Fix prototype.
7887 (build_pure_c_string): New function, defined as static inline. This
7888 provides a better opportunity to optimize away calls to strlen when
7889 the function is called with compile-time constant argument.
7890 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
7891 argument, adjust users accordingly. Use build_pure_c_string where
7892 appropriate.
7893 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
7894 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
7895 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
7896
cb1caeaf
DA
78972012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7898
7899 Avoid calls to strlen in miscellaneous functions.
7900 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
7901 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
7902 * lread.c (openp): Likewise.
7903
c293e30c
DA
79042012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7905
7906 Avoid calls to strlen in path processing functions.
7907 * fileio.c (file_name_as_directory): Add comment. Change to add
7908 srclen argument and return the length of result. Adjust users
7909 accordingly.
7910 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
7911 swap 1st and 2nd arguments to obey the common convention.
7912 Adjust users accordingly.
c293e30c
DA
7913 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
7914
9e059e3f
GM
79152012-07-10 Glenn Morris <rgm@gnu.org>
7916
d02eb359
GM
7917 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
7918 Move PENDING_OUTPUT_COUNT definition to configure.
7919
882cf227
GM
7920 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
7921 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
7922 * s/gnu.h (DATA_START): Move definitions to configure.
7923
af6e839f
GM
7924 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
7925 We include usg5-4-common.h, which defines them both.
7926
40289a12
GM
7927 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
7928 O_RDONLY already includes it).
7929
9e059e3f
GM
7930 Stop ns builds setting the EMACSLOADPATH environment variable.
7931 * nsterm.m (ns_load_path): Rename from ns_init_paths.
7932 Now it does not set EMACSLOADPATH, just returns the load-path string.
7933 * nsterm.h: Update accordingly.
7934 * lread.c [HAVE_NS]: Include nsterm.h.
7935 (init_lread) [HAVE_NS]: Use ns_load_path.
7936 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
7937
7c4e8ec0
GM
79382012-07-09 Glenn Morris <rgm@gnu.org>
7939
d4f600ff
GM
7940 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
7941 since the included bsd-common.h does so.
7942
cbb31951
GM
7943 Stop ns builds setting the EMACSPATH environment variable.
7944 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
7945 (ns_init_paths): Do not set EMACSPATH.
7946 * nsterm.h (ns_exec_path): Add it.
7947 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
7948 Use ns_exec_path.
7949
7c4e8ec0
GM
7950 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
7951
26bccfae
PE
79522012-07-09 Paul Eggert <eggert@cs.ucla.edu>
7953
a0bee46f
PE
7954 * process.c (wait_reading_process_output): 'waitchannels' was unset
7955 when read_kbd || !NILP (wait_for_cell); fix this.
7956
5994c183
PE
7957 Add GCC-style 'const' attribute to functions that can use it.
7958 * character.h (char_resolve_modifier_mask):
7959 * keyboard.h (make_ctrl_char):
7960 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
7961 (init_character_once, next_almost_prime, init_fns, init_image)
7962 (flush_pending_output, init_sound):
7963 * mem-limits.h (start_of_data):
7964 * menu.h (finish_menu_items):
7965 Add ATTRIBUTE_CONST.
7966 * emacs.c (DEFINE_DUMMY_FUNCTION):
7967 Declare the dummy function with ATTRIBUTE_CONST.
7968 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
7969 Add decls with ATTRIBUTE_CONST.
7970
26bccfae
PE
7971 Minor improvements to make_formatted_string.
7972 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
7973 where int is good enough, as vsprintf returns an int.
7974 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
7975
a8290ec3
DA
79762012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
7977
7978 Use make_formatted_string to avoid double length calculation.
7979 * lisp.h (make_formatted_string): New prototype.
7980 * alloc.c (make_formatted_string): New function.
7981 * buffer.c (Fgenerate_new_buffer_name): Use it.
220cb2bd 7982 * dbusbind.c (syms_of_dbusbind): Likewise.
a8290ec3
DA
7983 * editfns.c (Fcurrent_time_zone): Likewise.
7984 * filelock.c (get_boot_time): Likewise.
7985 * frame.c (make_terminal_frame, set_term_frame_name)
7986 (x_report_frame_params): Likewise.
7987 * image.c (gs_load): Likewise.
7988 * minibuf.c (get_minibuffer): Likewise.
7989 * msdos.c (dos_set_window_size): Likewise.
7990 * process.c (make_process): Likewise.
7991 * xdisp.c (ensure_echo_area_buffers): Likewise.
7992 * xsettings.c (apply_xft_settings): Likewise.
7993
d01ba2f1
GM
79942012-07-09 Glenn Morris <rgm@gnu.org>
7995
7996 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
7997 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
7998 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
7999 * nsterm.h (ns_etc_directory): Add it.
8000 * callproc.c [HAVE_NS]: Include nsterm.h.
8001 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
8002
f1f924b6
DA
80032012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
8004
8005 Move marker debugging code under MARKER_DEBUG.
8006 * marker.c (MARKER_DEBUG): Move marker debugging code under
8007 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
8008 for bootstrap with --enable-checking (~3x slowdown reported
8009 by Juanma Barranquero <lekktu@gmail.com>).
8010 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
8011
ab531b66
PE
80122012-07-08 Paul Eggert <eggert@cs.ucla.edu>
8013
8014 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
8015 See <http://bugs.gnu.org/11825#29>.
8016
c4b3bc8a
EZ
80172012-07-08 Eli Zaretskii <eliz@gnu.org>
8018
8019 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
8020 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
8021 (display_line): Add commentary about displaying truncation glyphs
8022 on GUI frames.
8023 (produce_special_glyphs): Move here from term.c.
8024
8025 * term.c (produce_special_glyphs): Move to xdisp.c.
8026
8027 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
8028 section.
c4b3bc8a 8029
b676b881
AS
80302012-07-07 Andreas Schwab <schwab@linux-m68k.org>
8031
f17c5273
AS
8032 * xdisp.c (display_line): Avoid warning about implicit declaration
8033 of FRAME_FONT.
8034
298819b9
AS
8035 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
8036
b676b881
AS
8037 * lisp.h: Remove empty conditional.
8038
6045c4fd
PE
80392012-07-07 Paul Eggert <eggert@cs.ucla.edu>
8040
b3350bf9
PE
8041 * lread.c (load_path_check): Now static.
8042
6045c4fd
PE
8043 Fix some minor --with-ns problems found by static checking.
8044 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
8045 (x_set_font) [!HAVE_X_WINDOWS]:
8046 * image.c (xpm_load_image) [HAVE_NS]:
8047 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
8048 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
8049 Remove unused local.
8050 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
8051 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
8052 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
8053 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
8054 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
8055 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
8056 Fix pointer signedness problem.
8057 * xfaces.c (FRAME_X_FONT_TABLE):
8058 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
8059
929e7845
GM
80602012-07-07 Glenn Morris <rgm@gnu.org>
8061
8062 * lread.c (load_path_check): New function, split from init_lread.
8063 (init_lread): Reorganize. Motivation:
8064 If EMACSLOADPATH is set, check/warn about that rather than the
8065 defaults, which we are not going to use. Hence we can remove
8066 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
8067 Don't warn if site-lisp directories are missing.
8068 If not installed, start from a blank load-path, since
8069 PATH_LOADSEARCH refers to the eventual installation directories.
8070
58dd0aa4
EZ
80712012-07-07 Eli Zaretskii <eliz@gnu.org>
8072
8073 Support truncation and continuation glyphs on GUI frames, when
8074 fringes are disabled. (Bug#11832)
8075 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
8076 continuation glyphs even if on GUI frames.
8077 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
8078 or both, are absent.
8079 (start_display, move_it_in_display_line_to): Handle the case of a
8080 GUI frame without a fringe to display continuation or truncation
8081 glyphs.
8082 (insert_left_trunc_glyphs): Support GUI frames: make sure
8083 truncation glyphs overwrite enough glyphs from the current line to
8084 have sufficient space in pixels.
8085 (display_line): Support truncation and continuation glyphs on GUI
8086 frames. If some spare pixels are left on the line after inserting
8087 the truncation glyphs, fill that space with a stretch glyph of a
8088 suitably computed width.
8089
8090 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
8091 produce_glyphs, to support GUI sessions.
8092
31571fd7
PE
80932012-07-07 Paul Eggert <eggert@cs.ucla.edu>
8094
5a16b9bc
PE
8095 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
8096
f3047c75
PE
8097 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
8098
31571fd7
PE
8099 Do not require float-time's arg to fit in time_t (Bug#11825).
8100 This works better on hosts where time_t is unsigned, and where
8101 float-time is applied to the (negative) difference between two times.
8102 * editfns.c (decode_time_components): Last arg is now double *,
8103 not int *, and means to store all the result as a double, without
8104 worrying about whether the seconds part fits in time_t.
8105 All callers changed.
8106 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
8107 All callers changed.
8108 (Ffloat_time): Do not fail merely because the specified time falls
8109 outside of time_t range.
8110
4516fbef
GM
81112012-07-07 Glenn Morris <rgm@gnu.org>
8112
8113 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
8114 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
8115 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
8116
07adc2c6
JB
81172012-07-07 Juanma Barranquero <lekktu@gmail.com>
8118
8119 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
8120 Update dependencies.
8121
8122 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
8123
fd573f31
PE
81242012-07-06 Paul Eggert <eggert@cs.ucla.edu>
8125
fee5959d
PE
8126 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
8127 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
8128 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
8129 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
8130 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
8131 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
8132
fd573f31
PE
8133 * xfont.c (compare_font_names): Redo to omit the need for casts.
8134
ddadbc0e
AS
81352012-07-06 Andreas Schwab <schwab@linux-m68k.org>
8136
fca8d6b6
AS
8137 * xfns.c (Fx_change_window_property): Doc fix.
8138 * w32fns.c (Fx_change_window_property): Doc fix.
8139
ddadbc0e
AS
8140 * w32fns.c (Fx_window_property): Accept the same arguments as the
8141 X Windows version. Doc fix.
8142 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
8143
ed9265fc 81442012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
8145 Eli Zaretskii <eliz@gnu.org>
8146
8147 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
8148 Windows-specific code from nt/config.nt moved here.
8149 Obsolete settings removed.
8150
216ee680
PE
81512012-07-06 Paul Eggert <eggert@cs.ucla.edu>
8152
8153 * process.c: Avoid unnecessary calls to gettime.
8154 (wait_reading_process_output): Don't get the time of day
8155 when gobbling data immediately and not waiting, as there's no need
8156 for it in that case. This removes a FIXME.
8157
bdd091e4
JD
81582012-07-06 Jan Djärv <jan.h.d@swipnet.se>
8159
8160 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
8161 is defined (Bug#11768).
8162
9d44f8ce
DA
81632012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8164
8165 Fix marker debugging code.
8166 * marker.c (byte_char_debug_check): Do not perform the check
8167 if buffer is not multibyte.
090bd7cb
JB
8168 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
8169 Call byte_char_debug_check with correct arguments.
9d44f8ce 8170
90fc4786
DA
81712012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8172
8173 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
8174 * marker.c (byte_char_debug_check, count_markers):
8175 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
8176 (byte_debug_flag): Remove.
8177 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
8178 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
8179
7b7ae965
DA
81802012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8181
4e57b342
DA
8182 Avoid code repetition in marker-related functions.
8183 * marker.c (attach_marker): New function.
8184 (Fset_marker, set_marker_restricted, set_marker_both)
8185 (set_marker_restricted_both): Use it.
8186 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
8187 Consistently rename charno to charpos.
8188 (marker_position): Add eassert.
8189 (marker_byte_position): Convert to eassert.
8190
81912012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8192
8193 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 8194 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 8195 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 8196
657924ff
DA
81972012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8198
8199 Introduce fast path for the widely used marker operation.
8200 * alloc.c (build_marker): New function.
8201 * lisp.h (build_marker): New prototype.
8202 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
8203 * composite.c (autocmp_chars): Likewise.
8204 * editfns.c (buildmark): Remove.
8205 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
8206 (save_restriction_save): Use build_marker.
8207 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
8208 * window.c (save_window_save): Likewise.
8209
041a49a6
DA
82102012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8211
8212 Do not use Fdelete_overlay in delete_all_overlays
8213 to avoid redundant calls to unchain_overlay.
8214 * buffer.c (drop_overlay): New function.
8215 (delete_all_overlays, Fdelete_overlay): Use it.
8216 * minibuf.c (get_minibuffer): Fix comment.
8217
7dca65a4
PE
82182012-07-06 Paul Eggert <eggert@cs.ucla.edu>
8219
8220 Port to OpenBSD 5.1 amd64.
8221 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
8222 This is needed for OpenBSD, and should be harmless on all BSD systems.
8223 Also, include <sys/sysctl.h>, as it should be available on all
8224 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
8225 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
8226 use p_pid member, not kp_proc.pid.
8227
8eb876e2
GM
82282012-07-06 Glenn Morris <rgm@gnu.org>
8229
8230 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
8231
38182d90
PE
82322012-07-05 Paul Eggert <eggert@cs.ucla.edu>
8233
8234 More xmalloc and related cleanup.
8235 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
8236 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
8237 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
8238 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
8239 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
8240 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
8241 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
8242 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
8243 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
8244 * xterm.c:
8245 Omit needless casts involving void * pointers and allocation.
8246 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
8247 as the former is more robust if P's type is changed.
8248 Prefer xzalloc to xmalloc + memset 0.
8249 Simplify malloc-or-realloc to realloc.
8250 Don't worry about xmalloc returning a null pointer.
8251 Prefer xstrdup to xmalloc + strcpy.
8252 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
8253 growing it.
8254 * keyboard.c (apply_modifiers_uncached): Prefer local array to
8255 alloca of a constant.
8256
6dd5a677
EZ
82572012-07-05 Eli Zaretskii <eliz@gnu.org>
8258
8259 * xdisp.c (display_line): Fix horizontal pixel coordinates when
8260 hscroll is larger than the line width. Fixes long and futile
8261 looping inside extend_face_to_end_of_line (on a TTY) producing
8262 glyphs that are not needed and thrown away.
8263
6b312f0f
DA
82642012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
8265
8266 * marker.c (set_marker_restricted_both): Simplify by using
8267 clip_to_bounds.
8268
f520ef9b
PE
82692012-07-05 Paul Eggert <eggert@cs.ucla.edu>
8270
8271 * editfns.c (region_limit): Simplify by using clip_to_bounds.
8272
383b7c95
JD
82732012-07-05 Jan Djärv <jan.h.d@swipnet.se>
8274
8275 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
8276 not defined (Bug#11768).
8277 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
8278 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
8279 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
8280 followed by gtk_box_set_homogeneous (Bug#11768).
8281 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
8282 (update_theme_scrollbar_width, xg_create_scroll_bar):
8283 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
8284 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
8285 (is_box_type): New function (Bug#11768).
8286 (xg_tool_item_stale_p): Call is_box_type.
5293d758 8287 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
8288 with default display (Bug#11768).
8289
d6e7bf45
EZ
82902012-07-05 Eli Zaretskii <eliz@gnu.org>
8291
8292 * xdisp.c (window_hscroll_limited): New function.
8293 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
8294 coordinates when window's hscroll is set to insanely large
8295 values. (Bug#11857)
8296
431391ec
JB
82972012-07-05 Juanma Barranquero <lekktu@gmail.com>
8298
8299 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
8300 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
8301
23f86fce
DA
83022012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
8303
8304 Cleanup xmalloc.
8305 * lisp.h (xzalloc): New prototype. Omit needless casts.
8306 * alloc.c (xzalloc): New function. Omit needless casts.
8307 * charset.c: Omit needless casts. Convert all calls to
8308 xmalloc with following memset to xzalloc.
8309 * dispnew.c: Likewise.
8310 * fringe.c: Likewise.
8311 * image.c: Likewise.
8312 * sound.c: Likewise.
8313 * term.c: Likewise.
8314 * w32fns.c: Likewise.
8315 * w32font.c: Likewise.
8316 * w32term.c: Likewise.
8317 * xfaces.c: Likewise.
8318 * xfns.c: Likewise.
8319 * xterm.c: Likewise.
8320 * atimer.c: Omit needless casts.
8321 * buffer.c: Likewise.
8322 * callproc.c: Likewise.
8323 * ccl.c: Likewise.
8324 * coding.c: Likewise.
8325 * composite.c: Likewise.
8326 * doc.c: Likewise.
8327 * doprnt.c: Likewise.
8328 * editfns.c: Likewise.
8329 * emacs.c: Likewise.
8330 * eval.c: Likewise.
8331 * filelock.c: Likewise.
8332 * fns.c: Likewise.
8333 * gtkutil.c: Likewise.
8334 * keyboard.c: Likewise.
8335 * lisp.h: Likewise.
8336 * lread.c: Likewise.
8337 * minibuf.c: Likewise.
8338 * msdos.c: Likewise.
8339 * print.c: Likewise.
8340 * process.c: Likewise.
8341 * region-cache.c: Likewise.
8342 * search.c: Likewise.
8343 * sysdep.c: Likewise.
8344 * termcap.c: Likewise.
8345 * terminal.c: Likewise.
8346 * tparam.c: Likewise.
8347 * w16select.c: Likewise.
8348 * w32.c: Likewise.
8349 * w32reg.c: Likewise.
8350 * w32select.c: Likewise.
8351 * w32uniscribe.c: Likewise.
8352 * widget.c: Likewise.
8353 * xdisp.c: Likewise.
8354 * xmenu.c: Likewise.
8355 * xrdb.c: Likewise.
8356 * xselect.c: Likewise.
8357
0497dc44
PE
83582012-07-05 Paul Eggert <eggert@cs.ucla.edu>
8359
8360 * fileio.c (time_error_value): Check the right error number.
8361 Problem reported by Troels Nielsen in
8362 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
8363
356e7178
PE
83642012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8365
4e71fd89
PE
8366 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
8367 This should be fixed in a better way; see Eli Zaretskii in
8368 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
8369 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
8370
f0941253
PE
8371 * fileio.c (time_error_value): Rename from special_mtime.
8372 The old name's problems were noted by Eli Zaretskii in
8373 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
8374
065c9eb4
PE
8375 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
8376 This variable's comment says Emacs needs at least one GDB-visible
8377 symbol of type enum pvec_type, to work around GDB problems.
8378 The symbol's value doesn't matter.
8379
356e7178
PE
8380 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
8381 that causes compilation to fail on pre-C99 compilers.
8382
ed9265fc 83832012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
8384
8385 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
8386 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
8387
3884d954
DA
83882012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
8389
d209e2fb 8390 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
8391 headers for buffer_defaults and buffer_local_symbols.
8392 Reported by Juanma Barranquero <lekktu@gmail.com>.
8393
ee28be33
SM
83942012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
8395
8396 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
8397 * lisp.h (enum pvec_type): Use fewer bits.
8398 (PSEUDOVECTOR_SIZE_BITS): New constant.
8399 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
8400 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
8401 change in pvec_type.
8402 (PSEUDOVECTOR_TYPEP): New macro.
8403 (TYPED_PSEUDOVECTORP): Use it.
8404 * fns.c (internal_equal): Adapt code to extract pvectype.
8405 * emacs.c (gdb_pvec_type): Update type.
8406 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
8407 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
8408 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
8409 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
8410 (sweep_vectors): Use it. Use local var `total_bytes' instead of
8411 abusing vector->header.next.nbytes.
8412 (live_vector_p): Use PVEC_TYPE.
8413 (mark_object): Adapt code to extract pvectype. Use switch.
8414
c7f2cd7f
PE
84152012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8416
8417 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
8418 Tighten new eassert a bit.
8419
8ce70ed2
DA
84202012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
8421
8422 Fix compilation with --enable-gcc-warnings and -O1
8423 optimization level.
8424 * doprnt.c (doprnt): Change type of tem to int, initialize
8425 to avoid compiler warning. Add eassert.
8426 * search.c (simple_search): Initialize match_byte to avoid
8427 compiler warning. Add eassert.
8428
dea7f1e5
PE
84292012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8430
24a212eb
PE
8431 Avoid weird behavior with large horizontal scrolls.
8432 Without this change, for example, large hscroll values would
8433 mess up Emacs's display on Fedora 15 x86, presumably due to
8434 overflows in int calculations in the display code.
8435 Also, if buffers had long lines, Emacs would freeze.
8436 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
8437 (set_window_hscroll): New function, containing the old guts of
8438 Fset_window_hscroll. Return the clipped value.
8439 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
8440 This avoids the need to check against PTRDIFF_MAX.
8441
dea7f1e5
PE
8442 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
8443
76046526
DA
84442012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
8445
8446 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
8447
39adff0d
PE
84482012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8449
63807d47
PE
8450 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
8451 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
8452 since GCC 4.4.6 issues a bogus warning for them.
8453
39adff0d
PE
8454 Fix bugs in file timestamp newness comparisons.
8455 * fileio.c (Ffile_newer_than_file_p):
8456 * lread.c (Fload): Use full timestamp resolution of files,
8457 not just the 1-second resolution, so that files that are only
8458 slightly newer still count as newer.
8459 * fileio.c (Ffile_newer_than_file_p): Don't assume file
8460 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
8461
dbeed9a6
PE
84622012-07-03 Paul Eggert <eggert@cs.ucla.edu>
8463
8464 * fileio.c: Improve handling of file time marker. (Bug#11852)
8465 (special_mtime): New function.
8466 (Finsert_file_contents, Fverify_visited_file_modtime):
8467 Use it to set special mtime values consistently.
8468
636334d6
AS
84692012-07-03 Andreas Schwab <schwab@linux-m68k.org>
8470
8471 * fileio.c (Finsert_file_contents): Properly handle st_mtime
8472 marker for non-existing file. (Bug#11852)
8473
e2017fe2
GM
84742012-07-03 Glenn Morris <rgm@gnu.org>
8475
8476 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
8477 and did not make it into globals.h).
8478
404dbd37
TT
84792012-07-03 Tom Tromey <tromey@redhat.com>
8480
8481 * window.c (Fset_window_margins, Fset_window_fringes)
8482 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
8483 * textprop.c (Fprevious_property_change): No longer static.
8484 * syntax.c (Fsyntax_table_p): No longer static.
8485 * process.c (Fget_process, Fprocess_datagram_address): No longer
8486 static.
8487 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
8488 * keyboard.c (Fcommand_execute): No longer static.
8489 Remove EXFUN.
8490 * insdel.c (Fcombine_after_change_execute): No longer static.
8491 * image.c (Finit_image_library): No longer static.
8492 * fileio.c (Fmake_symbolic_link): No longer static.
8493 * eval.c (Ffetch_bytecode): No longer static.
8494 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
8495 * doc.c (Fdocumentation_property, Fsnarf_documentation):
8496 No longer static.
404dbd37
TT
8497 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
8498 static.
8499 * dired.c (Ffile_attributes): No longer static.
8500 * composite.c (Fcomposition_get_gstring): No longer static.
8501 * callproc.c (Fgetenv_internal): No longer static.
8502
8503 * ccl.h: Remove EXFUNs.
8504 * buffer.h: Remove EXFUNs.
8505 * dispextern.h: Remove EXFUNs.
8506 * intervals.h: Remove EXFUNs.
8507 * fontset.h: Remove EXFUN.
8508 * font.h: Remove EXFUNs.
8509 * dosfns.c (system_process_attributes): Remove EXFUN.
8510 * keymap.h: Remove EXFUNs.
8511 * lisp.h: Remove EXFUNs.
8512 * w32term.h: Remove EXFUNs.
8513 * window.h: Remove EXFUNs.
8514 * xsettings.h: Remove EXFUN.
8515 * xterm.h: Remove EXFUN.
8516
8e4fd1e1
GM
85172012-07-03 Glenn Morris <rgm@gnu.org>
8518
8519 * lisp.h (Frandom): Make it visible to C.
8520 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
8521 buffer for invisible buffers. (Bug#1229)
8522
ca95b3eb
DA
85232012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8524
8525 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
8526 values which aren't power of 2.
14ae4239 8527 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
1f9f395d 8528 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
8529 accordingly.
8530
7555c33f
SM
85312012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
8532
8533 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
8534
8535 * alloc.c (mark_object): Revert part of last patch to use `switch'.
8536
d12e8f5a
DA
85372012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8538
8539 * alloc.c (allocate_vector_block): Remove redundant
8540 calls to mallopt if DOUG_LEA_MALLOC is defined.
8541 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
8542 avoid calls to mallopt if zero_vector is returned.
8543
296094c3
DA
85442012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8545
8546 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
8547 is enabled, avoid dereferencing NULL current_sblock if
8548 running undumped.
8549
36429c89
DA
85502012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8551
8552 Cleanup basic buffer management.
8553 * buffer.h (struct buffer): Change layout to use generic vector
8554 marking code. Fix some comments. Change type of 'clip_changed'
8555 to bitfield. Remove unused #ifndef old.
8556 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
8557 (GET_OVERLAYS_AT): Fix indentation.
8558 (for_each_per_buffer_object_at): New macro.
8559 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
8560 (Fbuffer_local_variables): Use it.
8561 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
8562 * alloc.c (allocate_buffer): Adjust to match new layout of
8563 struct buffer. Fix comment.
8564 (mark_overlay): New function.
8565 (mark_buffer): Use it. Use mark_vectorlike to mark normal
8566 Lisp area of struct buffer.
8567 (mark_object): Use it. Adjust marking of misc objects
8568 and related comments.
8569
3b3e4cac
PE
85702012-07-02 Paul Eggert <eggert@cs.ucla.edu>
8571
8572 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
8573 wrapper that is not needed because the wrapped code is a no-op (zero
8574 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
8575 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
8576
cf5c0175
DA
85772012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
8578
8579 * alloc.c (mark_buffer): Simplify. Remove prototype.
8580 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 8581 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
8582 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
8583 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 8584
ca26824c
GM
85852012-06-30 Glenn Morris <rgm@gnu.org>
8586
2e4c5312
GM
8587 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
8588
ca26824c
GM
8589 * epaths.in (PATH_SITELOADSEARCH): New.
8590 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
8591 This is rather than relying on --enable-locallisppath elements
8592 having "site-lisp" in their names. (Bug#10208#25, 11658)
8593
0d23c240
EZ
85942012-06-30 Eli Zaretskii <eliz@gnu.org>
8595
c9240d7a
EZ
8596 * w32proc.c (sys_select): Accept and ignore one more argument.
8597
8598 * w32.c (emacs_gnutls_pull): Call select with one more argument.
8599
0d23c240 8600 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 8601 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
8602
8603 * sysdep.c: Don't include dos.h and dosfns.h.
8604
8605 * process.c (sys_select):
8606 * msdos.c (sys_select): Accept one more argument and ignore it.
8607
8608 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
8609 adapt data types and code to that.
8610
8611 * dosfns.c:
8612 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
8613 which clashes with the gnulib function of the same name.
8614
af5a5a98
AS
86152012-06-30 Andreas Schwab <schwab@linux-m68k.org>
8616
c5e4379c
AS
8617 * font.c (font_style_to_value, font_style_symbolic)
8618 (font_prop_validate_style): Add type checks for values in
8619 font_style_table.
8620
af5a5a98
AS
8621 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
8622 argument.
8623 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
8624 uses.
8625
8d38f461
EZ
86262012-06-29 Eli Zaretskii <eliz@gnu.org>
8627
2e5a6631
EZ
8628 * xdisp.c (try_window_id): Undo last change.
8629
8d38f461
EZ
8630 * w32.c (getwd): Adjust commentary about startup_dir.
8631 (init_environment): Always call sys_access, even in non-MSVC
8632 builds. Don't chdir to the directory of the Emacs executable.
8633 This undoes code from 1997 which was justified by the need to
8634 "avoid conflicts when removing and renaming directories". But its
8635 downside was that every relative file name was being interpreted
8636 relative to the directory of the Emacs executable, which can never
8637 be TRT. In particular, it broke sys_access when called with
8638 relative file names.
8639 (sys_access): Map GetLastError to errno.
8640
2af3565e
DA
86412012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
8642
8643 * window.h (struct window): Change type of 'fringes_outside_margins'
8644 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 8645 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
8646 Adjust comment.
8647 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
8648 to ptrdiff_t.
8649
c8d3a25c 86502012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 8651
c8d3a25c
GM
8652 * gnutls.c (emacs_gnutls_handshake):
8653 Add QUIT to make the loop interruptible.
57570cd3 8654
c8d3a25c 86552012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 8656
c8d3a25c
GM
8657 * charset.c (init_charset): Make lack of etc/charsets fatal.
8658
3e984ee8
DA
86592012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
8660
8661 * editfns.c (region_limit): Fix type mismatch.
8662
ef884f23
DA
86632012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
8664
8665 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
8666 undefined. Convert from xassert to eassert.
8667 * nsmenu.m: Convert from xassert to eassert.
8668 * nsterm.m: Likewise.
8669
7d7e0027
SM
86702012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
8671
8672 * editfns.c (region_limit): Clip to narrowing (bug#11770).
8673
aa754e6a
PE
86742012-06-28 Paul Eggert <eggert@cs.ucla.edu>
8675
8676 Avoid integer overflow on scroll-left and scroll-right.
8677 * window.c (HSCROLL_MAX): New macro.
8678 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
8679 overflow when requested scroll falls outside ptrdiff_t range.
8680
80b00b08
DA
86812012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8682
8683 * window.h (struct window): Change type of 'hscroll',
8684 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
8685 'last_modified' and 'last_overlay_modified' to EMACS_INT.
8686 Adjust users accordingly.
8687 * xdisp.c (try_cursor_movement): Replace type check with eassert.
8688 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
8689 from EMACS_INT to ptrdiff_t.
8690 (make_window): Omit redundant initialization.
8691
62b2bcf6
JB
86922012-06-28 Juanma Barranquero <lekktu@gmail.com>
8693
8694 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
8695
45942c7d
DA
86962012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8697
8698 * window.h (struct window): Change type of 'use_time' and
8699 'sequence_number' from Lisp_Object to int.
8700 * frame.c (make_frame): Adjust users accordingly.
8701 * print.c (print_object): Likewise.
8702 * window.c (select_window, Fwindow_use_time, make_parent_window)
8703 (make_window): Likewise.
8704
e509cfa6
DA
87052012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8706
8707 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
8708 enabled with --enable-checking=[all,glyphs] configure option.
8709 Fix GLYPH_DEBUG usage assuming that it may be undefined,
8710 adjust comments accordingly.
8711 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
8712 undefined, adjust comments accordingly.
8713 * image.c: Likewise.
8714 * scroll.c: Likewise.
8715 * w32fns.c: Likewise.
8716 * w32term.c: Likewise.
8717 * xdisp.c: Likewise.
8718 * xfaces.c: Likewise.
8719 * xfns.c: Likewise.
8720 * xterm.c: Likewise.
8721
a54e2c05
DA
87222012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8723
8724 Generalize run-time debugging checks.
8725 * dispextern.h (XASSERTS): Remove.
8726 * fontset.c (xassert): Remove.
8727 Convert from xassert to eassert.
8728 * alloc.c: Convert from xassert to eassert.
8729 * bidi.c: Likewise.
8730 * dispnew.c: Likewise.
8731 * fns.c: Likewise.
8732 * fringe.c: Likewise.
8733 * ftfont.c: Likewise.
8734 * gtkutil.c: Likewise.
8735 * image.c: Likewise.
8736 * keyboard.c: Likewise.
8737 * menu.c: Likewise.
8738 * process.c: Likewise.
8739 * scroll.c: Likewise.
8740 * sound.c: Likewise.
8741 * term.c: Likewise.
8742 * w32console.c: Likewise.
8743 * w32fns.c: Likewise.
8744 * w32term.c: Likewise.
8745 * window.c: Likewise.
8746 * xdisp.c: Likewise.
8747 * xfaces.c: Likewise.
8748 * xfns.c: Likewise.
8749 * xselect.c: Likewise.
8750 * xterm.c: Likewise.
8751
1ec4b7b2
SM
87522012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
8753
8754 * fns.c (maybe_resize_hash_table): Output message when growing the
8755 purify-hashtable.
8756
2014308a
DA
87572012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8758
8759 * alloc.c (allocate_string_data): Remove dead code.
8760 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
8761 avoid GCC warning about unused macro.
8762
246155eb
DA
87632012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8764
8765 * alloc.c (allocate_string): Omit intervals initialization.
8766 * alloc.c (make_uninit_multibyte_string): Initialize intervals
8767 as in make_pure_string and make_pure_c_string.
8768
43184b7b
DA
87692012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8770
d209e2fb 8771 * alloc.c (allocate_string): Fix last change.
43184b7b 8772
3fe6dd74
DA
87732012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8774
d209e2fb 8775 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
8776 to memset, add explicit initialization where appropriate.
8777
1ba6038a
GM
87782012-06-27 Glenn Morris <rgm@gnu.org>
8779
8780 * lisp.mk (lisp): Remove paths.elc.
8781
c89926a5
CY
87822012-06-27 Chong Yidong <cyd@gnu.org>
8783
8784 * doc.c (Fsubstitute_command_keys): Fix punctuation.
8785
ed6b3510
JW
87862012-06-26 John Wiegley <johnw@newartisans.com>
8787
1ec4b7b2 8788 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
8789 on Mac OS X Lion: __mod_init_func and __mod_term_func.
8790
ed6b3510
JW
8791 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
8792 when building with Clang.
8793
8edd4a2b
SM
87942012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
8795
8796 * eval.c (Fapply): Allow calling it with a single argument.
8797
f6f62d1b
EZ
87982012-06-26 Eli Zaretskii <eliz@gnu.org>
8799
8800 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
8801 _stricmp and _strnicmp.
8802 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
8803
62efea5e
DA
88042012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
8805
8806 * alloc.c (allocate_window): Zero out non-Lisp part of newly
8807 allocated window.
8808 (allocate_process): Likewise for new process.
8edd4a2b 8809 (allocate_terminal): Change to use offsetof.
62efea5e
DA
8810 (allocate_frame): Likewise.
8811 * frame.c (make_frame): Omit redundant initialization.
8812 * window.c (make_parent_window): Use memset.
8813 (make_window): Omit redundant initialization.
8814 * process.c (make_process): Omit redundant initialization.
8815 * terminal.c (create_terminal): Likewise.
8816
42997f4d
DA
88172012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
8818
8819 * term.c (delete_tty): Remove redundant call to memset.
8820
1130ecfc
DA
88212012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
8822
8823 * alloc.c: Remove build_string.
8824 * lisp.h: Define build_string as static inline. This provides
8825 a better opportunity to optimize away calls to strlen when the
8826 function is called with compile-time constant argument.
8827 * image.c (imagemagick_error): Convert to build_string.
8828 * w32proc.c (sys_spawnve): Likewise.
8829 * xterm.c (x_term_init): Likewise.
8830
cf38a720
PE
88312012-06-26 Paul Eggert <eggert@cs.ucla.edu>
8832
99027bdd
PE
8833 Use sprintf return value instead of invoking strlen on result.
8834 In the old days this wasn't portable, since some sprintf
8835 implementations returned char *. But they died out years ago and
8836 Emacs already assumes sprintf returns int.
8837 Similarly for float_to_string.
8838 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
8839 * ccl.c (ccl_driver):
8840 * character.c (string_escape_byte8):
8841 * data.c (Fnumber_to_string):
8842 * doprnt.c (doprnt):
8843 * print.c (print_object):
8844 * xdisp.c (message_dolog):
8845 * xfns.c (syms_of_xfns):
8846 Use sprintf or float_to_string result to avoid need to call strlen.
8847 * data.c (Fnumber_to_string):
8848 Use make_unibyte_string, since the string must be ASCII.
8849 * lisp.h, print.c (float_to_string): Now returns int length.
8850 * term.c (produce_glyphless_glyph):
8851 Use sprintf result rather than recomputing it.
8852
cf38a720
PE
8853 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
8854 * Makefile.in (ALL_CFLAGS):
8855 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
8856 * gmalloc.c, regex.c: Include <config.h> unconditionally.
8857
3511c784
DA
88582012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
8859
0a08eb21 8860 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
8861 strcasecmp if available.
8862 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
8863
fb7da12e
AS
88642012-06-25 Andreas Schwab <schwab@linux-m68k.org>
8865
8866 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
8867 Avoid comma operator.
8868 * menu.c (push_submenu_start, push_submenu_end)
8869 (push_left_right_boundary, push_menu_pane): Likewise.
8870 * msdos.c (dos_rawgetc): Likewise.
8871
afa2ffd8
DA
88722012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
8873
8874 * xfns.c (xic_create_fontsetname): Remove redundant calls
8875 to memset.
8876
b3b4476b
PE
88772012-06-25 Paul Eggert <eggert@cs.ucla.edu>
8878
4495ff38
PE
8879 * gtkutil.c (get_utf8_string): Remove redundant assignment.
8880 sprintf already null-terminates its output.
8881
b3b4476b
PE
8882 * xfns.c (x_window): Remove redundant cast.
8883
b00876c9
DA
88842012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
8885
8886 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
8887 `const char *' to `char *' to avoid compiler warning.
8888
d188e26b
PE
88892012-06-24 Paul Eggert <eggert@cs.ucla.edu>
8890
885d1d74
PE
8891 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
8892 instead of truncating it to 63 (admittedly a generous limit).
8893
d188e26b
PE
8894 * process.c: Fix spelling and caps in comments.
8895
e2f560b1
DN
88962012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
8897
e86db54b 8898 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
8899 * sysdep.c (setpgrp): Remove definition, not used in this file.
8900
7583a3a1
JB
89012012-06-24 Juanma Barranquero <lekktu@gmail.com>
8902
8903 * makefile.w32-in: Update dependencies.
8904
696056c2
EZ
89052012-06-24 Eli Zaretskii <eliz@gnu.org>
8906
8907 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
8908 (SYSTIME_H): Add nt/inc/sys/time.h.
8909
8910 * systime.h [WINDOWSNT]: Include sys/time.h.
8911
8912 * s/ms-w32.h (struct timespec): Definition moved from
8913 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
8914
845ca893
PE
89152012-06-24 Paul Eggert <eggert@cs.ucla.edu>
8916
8917 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
8918 * buffer.h (buffer_slot_type_mismatch):
8919 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
8920 * eval.c (unwind_to_catch):
8921 * image.c (my_png_error, my_error_exit):
8922 * keyboard.c (quit_throw_to_read_char, user_error)
8923 (Fexit_recursive_edit, Fabort_recursive_edit):
8924 * lisp.h (die, args_out_of_range, args_out_of_range_3)
8925 (wrong_type_argument, buffer_overflow, __executable_start)
8926 (memory_full, buffer_memory_full, string_overflow, Fthrow)
8927 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
8928 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
8929 (fatal):
8930 (child_setup) [!DOS_NT]:
8931 * lread.c (end_of_file_error, invalid_syntax):
8932 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
8933 * puresize.h (pure_write_error):
8934 * search.c (matcher_overflow):
8935 * sound.c (sound_perror, alsa_sound_perror):
8936 * sysdep.c, syssignal.h (croak):
8937 * term.c (maybe_fatal, vfatal):
8938 * textprop.c (text_read_only):
8939 * undo.c (user_error):
8940 * unexmacosx.c (unexec_error):
8941 * xterm.c (x_ins_del_lines, x_delete_glyphs):
8942 Use _Noreturn rather than NO_RETURN.
8943 No need for separate decl merely because of _Noreturn.
8944 * sound.c (sound_warning, parse_sound):
8945 Remove unnecessary forward decls.
8946
f1dd8073
PE
89472012-06-24 Paul Eggert <eggert@cs.ucla.edu>
8948
8949 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
8950 * lisp.h (WAIT_READING_MAX): New macro.
8951 * dispnew.c (Fsleep_for, sit_for):
8952 * keyboard.c (kbd_buffer_get_event):
8953 * process.c (Faccept_process_output):
8954 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
8955 This improves on the previous patch, which introduced a bug
8956 when time_t is unsigned and as wide as intmax_t.
8957 See <http://bugs.gnu.org/9000#51>.
8958
b82c1755
EZ
89592012-06-23 Eli Zaretskii <eliz@gnu.org>
8960
8961 * dispnew.c (sit_for, Fsleep_for):
8962 * keyboard.c (kbd_buffer_get_event):
8963 * process.c (Faccept_process_output): Avoid compiler warnings when
8964 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
8965
ca300656
JB
89662012-06-23 Juanma Barranquero <lekktu@gmail.com>
8967
049ec95b
JB
8968 * makefile.w32-in: Update dependencies.
8969
ca300656
JB
8970 * w32.c (ltime): Add return type and declare static.
8971 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
8972
db7b8d06
PE
89732012-06-23 Paul Eggert <eggert@cs.ucla.edu>
8974
8975 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
8976 Privately reported by Herbert J. Skuhra.
8977 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
8978 All uses changed.
8979 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
8980 not make_lisp_timeval, when the argument is of type EMACS_TIME.
8981
0bd8297f
EZ
89822012-06-23 Eli Zaretskii <eliz@gnu.org>
8983
96512555
EZ
8984 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
8985 last argument of make_unibyte_string.
8986
0bd8297f
EZ
8987 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
8988 language ID in the event parameters.
8989
8990 * w32term.c (w32_read_socket): Put the new keyboard codepage into
8991 event.code, not the obscure "character set ID".
8992
63def6b6
CY
89932012-06-23 Chong Yidong <cyd@gnu.org>
8994
8995 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
8996
e8a02204
EZ
89972012-06-23 Eli Zaretskii <eliz@gnu.org>
8998
388cdec0
EZ
8999 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
9000 * w32.c (fdutimens): New function.
9001
9002 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
9003
9004 * s/ms-w32.h (pselect): Redirect to sys_select.
9005
9006 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
9007
e8a02204
EZ
9008 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
9009 in the logic of incrementing and decrementing the value of
9010 use_relocatable_buffers.
9011
d054f3fb
PE
90122012-06-23 Paul Eggert <eggert@cs.ucla.edu>
9013
9014 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
9015 Privately reported by Herbert J. Skuhra.
9016 [__FreeBSD__]: Remove "*/" typo after "#include".
9017 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
9018 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
9019 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
9020 Don't assume EMACS_TIME and struct timeval are the same type.
9021
d35af63c
PE
90222012-06-22 Paul Eggert <eggert@cs.ucla.edu>
9023
9024 Support higher-resolution time stamps (Bug#9000).
9025 The time stamps are only nanosecond-resolution at the C level,
9026 since that's the best that any real-world system supports now.
9027 But they are picosecond-resolution at the Lisp level, as that's
9028 easy, and leaves room for future OS improvements.
9029
9030 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
9031 (LIBES): Use it.
9032
9033 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
9034 Don't get current time unless it's needed.
9035
9036 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
9037 now provides it if it's absent.
9038 (start_atimer): Port to higher-res time stamps.
9039 Check for time stamp overflow. Don't get current time more
9040 often than is needed.
9041
9042 * buffer.h (struct buffer): Buffer modtime now has high resolution.
9043 Include systime.h, not time.h.
9044 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
9045
9046 * dired.c: Include stat-time.h.
9047 (Ffile-attributes): File times now have higher resolution.
9048
9049 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
9050 (struct image): Timestamp now has higher resolution.
9051
9052 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
9053 has at least microseconds now. All uses removed.
9054 (update_frame, update_single_window, update_window, update_frame_1)
9055 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 9056 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
9057
9058 * editfns.c (time_overflow): Now extern.
9059 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
9060 (float-time, Fformat_time_string, Fcurrent_time_string)
9061 (Fcurrent_time_zone): Accept and generate higher-resolution
9062 time stamps.
9063 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
9064 (decode_time_components, lisp_seconds_argument): New functions.
9065 (make_time): Now static.
9066 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
9067 Report an error if the time is invalid, rather than having the caller
9068 do that.
9069
9070 * fileio.c: Include <stat-time.h>
9071 (Fcopy_file): Copy higher-resolution time stamps.
9072 Prefer to set the time stamp via a file descriptor if that works.
9073 (Fset_file_times, Finsert_file_contents, Fwrite_region)
9074 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
9075 (Fvisited_file_modtime, Fset_visited_file_modtime):
9076 Support higher-resolution time stamps.
9077
9078 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
9079
9080 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
9081
9082 * image.c (prepare_image_for_display, clear_image_cache)
9083 (lookup_image): Port to higer-resolution time stamps.
9084
9085 * keyboard.c (start_polling, bind_polling_period):
9086 Check for time stamp overflow.
9087 (read_char, kbd_buffer_get_event, timer_start_idle)
9088 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
9089 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
9090 Port to higher-resolution time stamps. Do not assume time_t is signed.
9091 (decode_timer): New function. Timers are now vectors of length 9,
9092 not 8, to accommodate the picosecond component.
9093 (timer_check_2): Use it.
9094
9095 * nsterm.m (select_timeout, timeval_subtract): Remove.
9096 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
9097 as they're a bit more accurate and handle overflow better.
9098 (ns_select): Change prototype to be compatible with pselect.
9099 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
9100 * nsterm.h (ns_select): Adjust prototype.
9101
9102 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
9103 us-resolution time stamps.
9104 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
9105
9106 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
9107
9108 * lisp.h (time_overflow): New decl.
9109 (wait_reading_process_output): First arg is now intmax_t, not int,
9110 to accommodate larger waits.
9111
9112 * process.h (struct Lisp_Process.read_output_delay):
9113 Now counts nanoseconds, not microseconds.
9114 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
9115 EMACS_HAS_USECS.
9116 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
9117 (wait_reading_process_output):
9118 Port to ns-resolution time stamps.
9119 (Faccept_process_output, wait_reading_process_output):
9120 Check for time stamp overflow. Do not assume time_t is signed.
9121 (select_wrapper): Remove; we now use pselect.
9122 (Fprocess_attributes): Now generates ns-resolution time stamps.
9123
9124 * sysdep.c: Include utimens.h. Don't include utime.h
9125 or worry about struct utimbuf; gnulib does that for us now.
9126 (gettimeofday): Remove; gnulib provides a substitute.
9127 (make_timeval): New function.
9128 (set_file_times): Now sets ns-resolution time stamps.
9129 New arg FD; all uses changed.
9130 (time_from_jiffies, ltime_from_jiffies, get_up_time)
9131 (system_process_attributes):
9132 Now returns ns-resolution time stamp. All uses changed.
9133 Check for time stamp overflow.
9134
9135 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
9136 provides a substitute now.
9137
9138 * systime.h: Include timespec.h rather than sys/time.h and time.h,
9139 since it guarantees struct timespec.
9140 (EMACS_TIME): Now struct timespec, so that we can support
9141 ns-resolution time stamps.
9142 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
9143 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
9144 (EMACS_USECS): Remove.
9145 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
9146 so multiply the arg by 1000 before storing it.
9147 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
9148 New macros.
9149 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
9150 Port to ns-resolution time stamps.
9151 (EMACS_TIME_NEG_P): Remove; replaced by....
9152 (EMACS_TIME_SIGN): New macro.
9153 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
9154 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
9155 (set_file_times, make_time, lisp_time_argument): Adjust signature.
9156 (make_timeval, make_lisp_time, decode_time_components): New decls.
9157 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
9158 that it mishandled time_t overflow. You can't compare by subtracting!
9159 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
9160 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
9161
9162 * term.c: Include <sys/time.h>.
9163 (timeval_to_Time): New function, for proper overflow wraparound.
9164 (term_mouse_position, term_mouse_click): Use it.
9165
9166 * undo.c (record_first_change): Support higher-resolution time stamps
9167 in the undo buffer.
9168 (Fprimitive_undo): Use them when restoring time stamps.
9169
9170 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
9171 (w32_get_internal_run_time):
9172 Port to higher-resolution Emacs time stamps.
9173 (ltime): Now accepts single 64-bit integer, as that's more convenient
9174 for callers.
9175
9176 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
9177
9178 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
9179 for compatibility with pselect. Support ns-resolution time stamps.
9180
9181 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
9182
9183 * xselect.c (wait_for_property_change, x_get_foreign_selection):
9184 Check for time stamp overflow, and support ns-resolution time stamps.
9185
9186 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
9187 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
9188 (timeval_subtract): Remove; no longer needed.
9189 (XTflash, XTring_bell, x_wait_for_event):
9190 Port to ns-resolution time stamps. Don't assume time_t is signed.
9191
b6a92dfe
CY
91922012-06-22 Chong Yidong <cyd@gnu.org>
9193
9194 * xdisp.c (x_consider_frame_title): Revert last change.
9195
d251c37c
EZ
91962012-06-22 Eli Zaretskii <eliz@gnu.org>
9197
9198 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
9199 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
9200 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
9201 staticidx goes up to 1597 out of 1600 = 0x640.)
9202
f10deafb
PE
92032012-06-20 Paul Eggert <eggert@cs.ucla.edu>
9204
9205 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
9206 Otherwise, the umask might be mistakenly 0 while handling input signals.
9207
ec6de1e2
SM
92082012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
9209
9210 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
9211
28be1ada
DA
92122012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
9213
9214 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
9215 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
9216 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
9217 access to `contents' member of Lisp_Vector objects with AREF and ASET
9218 where appropriate.
9219
c6bf3022
CY
92202012-06-19 Chong Yidong <cyd@gnu.org>
9221
9222 * frame.c (delete_frame): When selecting a frame on a different
9223 text terminal, do not alter the terminal's top-frame.
9224
9225 * xdisp.c (format_mode_line_unwind_data): Record the target
9226 frame's selected window and its terminal's top-frame.
9227 (unwind_format_mode_line): Restore them.
9228 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
9229 Callers changed.
9230 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
9231 since tty frames can be explicitly named.
9232 (prepare_menu_bars): Likewise.
9233
9234 * term.c (Ftty_top_frame): New function.
9235
defd4196
PE
92362012-06-18 Paul Eggert <eggert@cs.ucla.edu>
9237
9238 Port byte-code-meter to modern targets.
9239 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
9240 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 9241 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
9242 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
9243 (METER_1, METER_2): Simplify.
9244
1053a871
SM
92452012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
9246
9247 * data.c (Fdefalias): Return `symbol' (bug#11686).
9248
b7e8d081
MR
92492012-06-18 Martin Rudalics <rudalics@gmx.at>
9250
9251 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
9252 gets killed during executing of this function (Bug#11665).
9253 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
9254 (Vkill_buffer_query_functions): In doc-string say that functions
9255 run by this hook should not change the current buffer.
9256
7ea2b339
PE
92572012-06-18 Paul Eggert <eggert@cs.ucla.edu>
9258
9259 Fix recently-introduced process.c problems found by static checking.
9260 * process.c (write_queue_push, write_queue_pop, send_process):
9261 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
9262 (write_queue_pop): Fix pointer signedness problem.
9263 (send_process): Remove unused local.
9264
96a313a1
CY
92652012-06-17 Chong Yidong <cyd@gnu.org>
9266
9267 * xdisp.c (redisplay_internal): No need to redisplay terminal
9268 frames that are not on top.
9269
20ca2e94
TN
92702012-06-17 Troels Nielsen <bn.troels@gmail.com>
9271
9272 * process.c (make_process): Initialize write_queue.
9273 (write_queue_push, write_queue_pop): New functions.
9274 (send_process): Use them to maintain correct ordering of process
9275 writes (Bug#10815).
9276
9a900ca9
PE
92772012-06-17 Paul Eggert <eggert@cs.ucla.edu>
9278
310fbfa8
PE
9279 * lisp.h (eassert): Assume C89 or later.
9280 This removes the need for CHECK.
9281 (CHECK): Remove. Its comments about always evaluating its
9282 argument were confusing, as 'eassert' typically does not evaluate
9283 its argument.
9284
27bb1ca4
PE
9285 * coding.c (produce_chars): Use ptrdiff_t, not int.
9286
9a900ca9
PE
9287 * xterm.c (x_draw_underwave): Check for integer overflow.
9288 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
9289
41b7f8bc 92902012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
9291
9292 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
9293 referenced (Bug#11583).
9294
9b0e3eba
AA
92952012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
9296
9297 Implement wave-style variant of underlining.
9298 * dispextern.h (face_underline_type): New enum.
9299 (face): Add field for underline type.
9300 * nsterm.m (ns_draw_underwave): New function.
9301 (ns_draw_text_decoration): Use it.
9302 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
9303 New functions.
9304 (x_draw_glyph_string): Use them.
9305 * xfaces.c (Qline, Qwave): New Lisp objects.
9306 (check_lface_attrs, merge_face_ref)
1053a871
SM
9307 (Finternal_set_lisp_face_attribute, realize_x_face):
9308 Handle wave-style underline face attributes.
9b0e3eba
AA
9309 * xterm.c (x_draw_underwave): New function.
9310 (x_draw_glyph_string): Use it.
9311
0fb52f11
JB
93122012-06-16 Juanma Barranquero <lekktu@gmail.com>
9313
9314 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
9315 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
9316 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
9317 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
9318 ($(BLD)/w32select.$(O)): Update dependencies.
9319
e5560ff7
AS
93202012-06-16 Andreas Schwab <schwab@linux-m68k.org>
9321
9322 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
9323 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
9324 * character.c (_fetch_multibyte_char_p): Remove.
9325 * alloc.c: Include "character.h" before "buffer.h".
9326 * bidi.c: Likewise.
9327 * buffer.c: Likewise.
9328 * bytecode.c: Likewise.
9329 * callint.c: Likewise.
9330 * callproc.c: Likewise.
9331 * casefiddle.c: Likewise.
9332 * casetab.c: Likewise.
9333 * category.c: Likewise.
9334 * cmds.c: Likewise.
9335 * coding.c: Likewise.
9336 * composite.c: Likewise.
9337 * dired.c: Likewise.
9338 * dispnew.c: Likewise.
9339 * doc.c: Likewise.
9340 * dosfns.c: Likewise.
9341 * editfns.c: Likewise.
9342 * emacs.c: Likewise.
9343 * fileio.c: Likewise.
9344 * filelock.c: Likewise.
9345 * font.c: Likewise.
9346 * fontset.c: Likewise.
9347 * fringe.c: Likewise.
9348 * indent.c: Likewise.
9349 * insdel.c: Likewise.
9350 * intervals.c: Likewise.
9351 * keyboard.c: Likewise.
9352 * keymap.c: Likewise.
9353 * lread.c: Likewise.
9354 * macros.c: Likewise.
9355 * marker.c: Likewise.
9356 * minibuf.c: Likewise.
9357 * nsfns.m: Likewise.
9358 * nsmenu.m: Likewise.
9359 * print.c: Likewise.
9360 * process.c: Likewise.
9361 * regex.c: Likewise.
9362 * region-cache.c: Likewise.
9363 * search.c: Likewise.
9364 * syntax.c: Likewise.
9365 * term.c: Likewise.
9366 * textprop.c: Likewise.
9367 * undo.c: Likewise.
9368 * unexsol.c: Likewise.
9369 * w16select.c: Likewise.
9370 * w32fns.c: Likewise.
9371 * w32menu.c: Likewise.
9372 * window.c: Likewise.
9373 * xdisp.c: Likewise.
9374 * xfns.c: Likewise.
9375 * xmenu.c: Likewise.
9376 * xml.c: Likewise.
9377 * xselect.c: Likewise.
9378
2f07e6af
EZ
93792012-06-16 Eli Zaretskii <eliz@gnu.org>
9380
1053a871
SM
9381 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
9382 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 9383 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
9384 row.
9385 (handle_face_prop): Use chunk-relative overlay string index when
9386 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
9387 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
9388 the rightmost. (Bug#11720)
2f07e6af 9389
29b83cec
AS
93902012-06-16 Andreas Schwab <schwab@linux-m68k.org>
9391
9392 * category.h (CHAR_HAS_CATEGORY): Define as inline.
9393 (CATEGORY_MEMBER): Enforce 1/0 value.
9394 * category.c (_temp_category_set): Remove.
9395
4c5501e9
EZ
93962012-06-16 Eli Zaretskii <eliz@gnu.org>
9397
9398 * window.c (Fdelete_other_windows_internal)
9399 (Fdelete_window_internal): Don't access frame's mouse highlight
9400 info of the initial frame. (Bug#11677)
9401
2b570124
PE
94022012-06-14 Paul Eggert <eggert@cs.ucla.edu>
9403
e93864f9
PE
9404 * .gdbinit (xgetint): Fix recently-introduced paren typo.
9405 Assume USE_2_TAGS_FOR_INTS.
9406 (xreload): Adjust $tagmask width to match recent lisp.h change.
9407
2b570124
PE
9408 Simplify lisp.h in minor ways that should not affect code.
9409 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
9410 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
9411 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
9412 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
9413 (INTTYPEBITS): New macro, for clarity.
9414 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
9415 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
9416 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
9417 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
9418 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
9419
81755f69
JB
94202012-06-13 Juanma Barranquero <lekktu@gmail.com>
9421
9422 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
9423
16192a57
GM
94242012-06-13 Glenn Morris <rgm@gnu.org>
9425
9426 * s/bsd-common.h (BSD4_3):
9427 * s/usg5-4-common.h (USG5_4): No longer define; unused.
9428
646b5f55
AS
94292012-06-13 Andreas Schwab <schwab@linux-m68k.org>
9430
9431 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
9432 instead of union.
9433 (XLI, XIL): Define.
1053a871
SM
9434 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
9435 Use them.
9436 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 9437 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 9438 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
9439 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
9440 * frame.c (delete_frame): Remove outdated comment.
9441 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
9442 USE_LISP_UNION_TYPE.
9443 (Fw32_unregister_hot_key): Likewise.
9444 (Fw32_toggle_lock_key): Likewise.
9445 * w32menu.c (add_menu_item): Likewise.
9446 (w32_menu_display_help): Use XIL instead of checking
9447 USE_LISP_UNION_TYPE.
9448 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
9449 (init_heap): Likewise.
9450 * w32term.c (w32_read_socket): Update comment.
9451
1d3823c9
GM
94522012-06-13 Glenn Morris <rgm@gnu.org>
9453
c62ff706
GM
9454 * s/usg5-4-common.h, src/s/unixware.h:
9455 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
9456
1d3823c9
GM
9457 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
9458
bfe3e0a2
PE
94592012-06-13 Paul Eggert <eggert@cs.ucla.edu>
9460
9461 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
9462 * alloc.c (make_number) [!defined make_number]:
9463 Remove, as lisp.h always defines this now.
9464 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
9465 (roundup_size): Verify that it is a power of 2.
9466 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
9467 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
9468 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
9469 -DUSE_LSB_TAG=0, to override the automatically-selected default.
9470 USE_LSB_TAG now is always defined to be either 0 or 1.
9471 All uses changed.
9472 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
9473 code works fine either way, and efficiency is not a concern here,
9474 as the union type is for debugging, not for production.
9475 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
9476 Use an inline function on all platforms when using the union type,
9477 since this is simpler and 'static inline' can be used portably
9478 within Emacs now.
9479 (LISP_INITIALLY_ZERO): New macro.
9480 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
9481 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
9482
45fa9c0f
GM
94832012-06-12 Glenn Morris <rgm@gnu.org>
9484
b4492cba
GM
9485 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
9486
9487 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 9488
45fa9c0f
GM
9489 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
9490 Move BROKEN_SIGIO to configure.
9491
9492 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
9493 Move NO_TERMIO to configure.
9494
0e25d334
CY
94952012-06-12 Chong Yidong <cyd@gnu.org>
9496
9497 * image.c (imagemagick_load_image): Use MagickFlattenImage if
9498 MagickMergeImageLayers is undefined. Use pixel pusher loop if
9499 MagickExportImagePixels is undefined.
9500
43682bb6
PE
95012012-06-12 Paul Eggert <eggert@cs.ucla.edu>
9502
9503 * image.c (imagemagick_load_image): Remove unused label.
9504
a9be7d2b
GM
95052012-06-11 Glenn Morris <rgm@gnu.org>
9506
9507 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
9508 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
9509 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
9510 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
9511
3017f87f
SM
95122012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
9513
9514 * alloc.c (make_byte_code): New function.
9515 (Fmake_byte_code): Use it. Don't purify here.
9516 * lread.c (read1): Use it as well to avoid extra allocation.
9517
1b9b4cf4
CY
95182012-06-11 Chong Yidong <cyd@gnu.org>
9519
9520 * image.c (imagemagick_load_image): Implement transparency.
9521
95988fcf
AS
95222012-06-10 Andreas Schwab <schwab@linux-m68k.org>
9523
9524 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
9525 account for preceding backslashes. (Bug#11663)
9526
cd4eb164
CY
95272012-06-09 Chong Yidong <cyd@gnu.org>
9528
9529 * term.c: Support italics in capable terminals (Bug#9652).
9530 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
9531 (turn_on_face): Output using TS_enter_italic_mode if available.
9532 Don't handle unused blinking and alt-charset cases.
9533 (turn_off_face): Handle italic case; discard unused tty_blinking_p
9534 and tty_alt_charset_p cases.
9535 (tty_capable_p, init_tty): Support italics.
9536
9537 * termchar.h (struct tty_display_info): Add field for italics.
9538 Remove unused blink field.
9539
9540 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
9541 Handle slant.
9542
9543 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
9544 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
9545 tty_alt_charset_p. Add tty_italic_p.
9546
ff88beb8
MA
95472012-06-09 Michael Albinus <michael.albinus@gmx.de>
9548
9549 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
9550 dbus_type_is_basic if available.
9551 (xd_extract_signed, xd_extract_unsigned): Rename from
9552 extract_signed and extract_unsigned, respectively. Adapt callers.
9553
44286096
CY
95542012-06-09 Chong Yidong <cyd@gnu.org>
9555
1682701f
CY
9556 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
9557
44286096
CY
9558 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
9559 case (Bug#9752).
9560
d86feb17
PE
95612012-06-08 Paul Eggert <eggert@cs.ucla.edu>
9562
9563 * xdisp.c (vmessage): Treat frame message as multibyte.
9564 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
9565 would generate the diagnostic "Making \302\247 buffer-local while
9566 let-bound!".
9567
d5c20fe8
EZ
95682012-06-08 Eli Zaretskii <eliz@gnu.org>
9569
9570 * dispnew.c (showing_window_margins_p): Undo last change, which
9571 was done due to an inadvertent commit.
9572 (adjust_frame_glyphs_for_frame_redisplay): Do call
9573 showing_window_margins_p.
9574
513749ee
SM
95752012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
9576
9577 * eval.c (Fmake_var_non_special): New primitive.
9578 (syms_of_eval): Defsubr it.
9579 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
9580
d4a8f5c1
JB
95812012-06-08 Juanma Barranquero <lekktu@gmail.com>
9582
9583 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
9584 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
9585
8bbbc977
EZ
95862012-06-08 Eli Zaretskii <eliz@gnu.org>
9587
9588 * alloc.c (allocate_vectorlike): Fix last change.
9589
f3372c87
DA
95902012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
9591
9592 Block-based vector allocation of small vectors.
9593 * lisp.h (struct vectorlike_header): New field `nbytes',
9594 adjust comment accordingly.
9595 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
fc0c31f8 9596 to denote vector blocks. Adjust users (live_vector_p,
f3372c87
DA
9597 mark_maybe_pointer, valid_lisp_object_p) accordingly.
9598 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
9599 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
9600 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
9601 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
9602 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
9603 (roundup_size): New constant.
9604 (struct vector_block): New data type.
9605 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 9606 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
9607 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
9608 (sweep_vectors): New functions.
9609 (allocate_vectorlike): Return `zero_vector' as the only vector of
fc0c31f8 9610 0 items. Allocate new vector from block if vector size is less than
f3372c87
DA
9611 or equal to VBLOCK_BYTES_MAX.
9612 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
9613 (init_alloc_once): Add call to init_vectors.
9614
4f18a4ed
SM
96152012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
9616
9617 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
9618
86f158bc
PE
96192012-06-07 Paul Eggert <eggert@cs.ucla.edu>
9620
9621 * doprnt.c (doprnt): Truncate multibyte char correctly.
9622 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
9623 would mishandle a string argument "Xc" if X was a multibyte
9624 character of length 2: it would truncate after X's first byte
9625 rather than including all of X.
9626
c5cfcbe0
CY
96272012-06-06 Chong Yidong <cyd@gnu.org>
9628
9629 * buffer.c (word_wrap): Doc fix.
9630
c05cf390
PE
96312012-06-04 Paul Eggert <eggert@cs.ucla.edu>
9632
9633 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
9634
0c3461de
GM
96352012-06-03 Glenn Morris <rgm@gnu.org>
9636
9637 * xdisp.c (tool-bar-style): Doc fix.
9638
c71232db
UM
96392012-06-03 Ulrich Müller <ulm@gentoo.org>
9640
9641 * Makefile.in (PAXCTL): Define.
9642 (temacs$(EXEEXT)): Disable memory randomization for the temacs
9643 binary via PaX flags if the paxctl utility is available.
9644 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
9645 Restore PaX flags to their default. (Bug#11398)
9646
383f7350
CY
96472012-06-03 Chong Yidong <cyd@gnu.org>
9648
9649 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
9650 buffer (Bug#11226).
9651
5f2c76c6
CY
96522012-06-03 Chong Yidong <cyd@gnu.org>
9653
9654 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
9655 (note_mode_line_or_margin_highlight): If there is no help echo,
9656 use mode-line-default-help-echo. Handle the case where the mouse
9657 position is past the end of the mode line string.
9658
9659 * buffer.c (buffer_local_value_1): New function, split from
9660 Fbuffer_local_value; can return Qunbound.
9661 (Fbuffer_local_value): Use it.
9662 (Vmode_line_format): Docstring tweaks.
9663
773d47f6
PE
96642012-06-02 Paul Eggert <eggert@cs.ucla.edu>
9665
9666 * sysdep.c (system_process_attributes): Improve comment.
9667
f2d6a3df
SM
96682012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
9669
9670 * keyboard.c: Export real-this-command to Elisp.
9671 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
9672 and DEFVAR it. Update all users.
9673
63810350
PE
96742012-06-02 Paul Eggert <eggert@cs.ucla.edu>
9675
7bd5c1f4
PE
9676 * minibuf.c (Fassoc_string): Remove duplicate declaration.
9677
63810350
PE
9678 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
9679 Convert pctcpu and pctmem to Lisp float properly.
9680 Let the compiler fold better, as 100.0/0x8000 is exact.
9681
a2821611
AS
96822012-06-02 Andreas Schwab <schwab@linux-m68k.org>
9683
9684 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
9685 cons_block.
9686
5fceba1d
PE
96872012-06-01 Paul Eggert <eggert@cs.ucla.edu>
9688
9689 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
9690
c98ff5dd
DA
96912012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
9692
9693 For a 'struct window', replace some Lisp_Object fields to
9694 bitfields where appropriate, remove unused fields.
9695 * window.h (struct window): Remove unused 'last_mark_x' and
9696 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1f9f395d 9697 change its type from Lisp_Object to bitfield.
c98ff5dd
DA
9698 Change type of 'force_start', 'optional_new_start',
9699 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fc0c31f8 9700 fields from Lisp_Object to bitfield. Adjust users accordingly.
c98ff5dd 9701
ca34e0be
PE
97022012-05-31 Paul Eggert <eggert@cs.ucla.edu>
9703
9704 Pacify gcc -Wdouble-precision when using Xaw.
9705 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
9706 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
9707 Use 'float' consistently, rather than 'float' in most places
9708 and 'double' in a couple of places.
9709
efc00ab1 97102012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
9711
9712 * xdisp.c (handle_stop): Detect whether we have overlay strings
9713 loaded by testing it->current.overlay_string_index to be
9714 non-negative, instead of checking whether n_overlay_strings is
9715 positive. (Bug#11587)
9716
efc00ab1 97172012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
9718
9719 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
9720
9721 * doc.c (Fsubstitute_command_keys): Doc fix.
9722
efc00ab1 97232012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
9724
9725 * search.c (search_buffer): Remove calls to
9726 r_alloc_inhibit_buffer_relocation, as it is now called by
9727 maybe_unify_char, which was the cause of relocation of buffer text
9728 in bug#11519.
9729
efc00ab1 97302012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
9731
9732 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
9733 for the duration of call to load_charset, to avoid problems with
9734 callers of maybe_unify_char that access buffer text through C
9735 pointers.
9736
9737 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
9738 decrement the inhibition flag, instead of just setting or
9739 resetting it.
9740
ba93a187
PE
97412012-05-31 Paul Eggert <eggert@cs.ucla.edu>
9742
9743 Remove obsolete '#define static' cruft.
9744 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
9745 This #undef was "temporary" in 2000; it is no longer needed
9746 now that '#define static' has gone away.
9747 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
9748 (gray_bitmap_bits): Remove; no longer needed.
9749 All uses replaced with definiens.
9750 * xterm.c: Include "bitmaps/gray.xbm".
9751
9e4bf381
PE
97522012-05-30 Paul Eggert <eggert@cs.ucla.edu>
9753
9754 Clean up __executable_start, monstartup when --enable-profiling.
9755 The following changes affect the code only when profiling.
9756 * dispnew.c (__executable_start): Rename from safe_bcopy.
9757 Define only on platforms that need it.
9758 * emacs.c: Include <sys/gmon.h> when profiling.
9759 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
9760 (__executable_start): Remove decl, since lisp.h does it now.
9761 (safe_bcopy): Remove decl; no longer has that name.
9762 (main): Coalesce #if into single bit of code, for simplicity.
9763 Cast pointers to uintptr_t, since standard libraries want integers
9764 and not pointers.
9765 * lisp.h (__executable_start): New decl.
9766
32d72c2f
GM
97672012-05-31 Glenn Morris <rgm@gnu.org>
9768
9769 * image.c (Fimagemagick_types): Doc fix.
9770
baac5bc7
JM
97712012-05-30 Jim Meyering <meyering@redhat.com>
9772
9773 * callproc.c (Fcall_process_region): Include directory component
9774 in mkstemp error message (Bug#11586).
9775
72cb32cf
PE
97762012-05-30 Paul Eggert <eggert@cs.ucla.edu>
9777
9778 * alloc.c, lisp.h (make_pure_vector): Now static.
9779
61b108cc
SM
97802012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
9781
9782 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
9783 Move to byte-run.el.
9784 (Fautoload): Do the hash-doc more carefully.
9785 * data.c (Fdefalias): Purify definition, except for keymaps.
9786 (Qdefun): Move from eval.c.
9787 * lisp.h (Qdefun): Remove.
9788 * lread.c (read1): Tiny simplification.
9789
471fe23d
TN
97902012-05-29 Troels Nielsen <bn.troels@gmail.com>
9791
934f3f58 9792 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
9793 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
9794 Bug#9642, but explicitly check that the buffer the overlay would
9795 be moved to is live and rearrange lines to make sure that errors
9796 will not put the overlay in an inconsistent state.
9797 (Fdelete_overlay): Cosmetics.
9798
85d0efd1
EZ
97992012-05-28 Eli Zaretskii <eliz@gnu.org>
9800
9801 * w32term.c (my_bring_window_to_top): New function.
9802 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
9803 could be different from the original one.
9804 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
9805 (Bug#11513)
9806
9807 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
9808 by calling BringWindowToTop.
9809
9810 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
9811 (WM_EMACS_END): Increase by one.
9812
da92a98c
PE
98132012-05-28 Paul Eggert <eggert@cs.ucla.edu>
9814
9815 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
9816 This avoids undefined behavior that might cause the eassert
9817 to not catch an out-of-range value.
9818
74d1f848
JB
98192012-05-28 Juanma Barranquero <lekktu@gmail.com>
9820
9821 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
9822 Update dependencies.
9823
9e1a06fc
EZ
98242012-05-27 Eli Zaretskii <eliz@gnu.org>
9825
9826 * bidi.c (bidi_mirror_char): Fix last change.
9827
f3dd7312
AS
98282012-05-27 Andreas Schwab <schwab@linux-m68k.org>
9829
9830 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
9831 when referring to sectname field in printf format.
9832
81899c91
PE
98332012-05-27 Paul Eggert <eggert@cs.ucla.edu>
9834
57b81a9f
PE
9835 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
9836 Only r_alloc_inhibit_buffer_relocation needed to be added;
9837 the others were already declared.
9838
81899c91
PE
9839 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
9840 before checking whether it's out of range. Put the check inside
9841 eassert. See
9842 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
9843
33017faf 98442012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
9845
9846 * callproc.c (Fcall_process): Restore a line that was accidentally
9847 commented out in the 2011-02-13 change (bug#11547).
9848
33017faf 98492012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
9850
9851 * lisp.h [REL_ALLOC]: Add prototypes for external functions
9852 defined on ralloc.c.
9853
9854 * buffer.c [REL_ALLOC]: Remove prototypes of
9855 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
9856 they are now on lisp.h.
9857
9858 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
9859
9860 * search.c (search_buffer): Use it to inhibit relocation of buffer
9861 text while re_search_2 is doing its job, because re_search_2 is
9862 passed C pointers to buffer text. (Bug#11519)
9863
23415acf
EZ
9864 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
9865 Update value to 24.
9866
44e27368
EZ
9867 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
9868 state after an additional call to move_it_in_display_line_to, keep
9869 the values of it->max_ascent and it->max_descent found for the
9870 entire line.
9871 (pos_visible_p): Revert the comparison against bottom_y to what it
9872 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
9873 (Bug#11464)
9874
c1892f11
PE
98752012-05-26 Paul Eggert <eggert@cs.ucla.edu>
9876
9877 Fix coding-related core dumps with gcc -ftrapv.
9878 The code was computing A - B, where A and B are pointers, and B is
9879 random garbage. This can lead to core dumps on platforms that
9880 have special pointer registers, and it also leads to core dumps on
9881 x86-64 when compiled with gcc -ftrapv. The fix is to compute
9882 A - B only when B is initialized properly.
9883 * coding.c (coding_set_source, coding_set_destination): Return void.
9884 (coding_change_source, coding_change_destinations): New functions,
9885 with the old behaviors of coding_set_source and coding_set_destination.
9886 All callers that need an offset changed to use these new functions.
9887
eb7afdad
GM
98882012-05-26 Glenn Morris <rgm@gnu.org>
9889
9890 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
9891
f12fdf02
EZ
98922012-05-26 Eli Zaretskii <eliz@gnu.org>
9893
53a63be6 9894 Extend mouse support on W32 text-mode console.
61b108cc
SM
9895 * xdisp.c (draw_row_with_mouse_face):
9896 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 9897
eb3f6f01 9898 * w32console.c: Include window.h.
61b108cc
SM
9899 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
9900 New functions.
eb3f6f01
EZ
9901 (initialize_w32_display): Initialize mouse-highlight data.
9902
53a63be6
EZ
9903 * w32inevt.c: Include termchar.h and window.h.
9904 (do_mouse_event): Support mouse-autoselect-window. When the mouse
9905 moves, call note_mouse_highlight. If help_echo changed, call
9906 gen_help_event to produce help-echo message in the echo area.
9907 Call clear_mouse_face if mouse_face_hidden is set in the mouse
9908 highlight info.
9909
4cfd81f6
PE
99102012-05-26 Paul Eggert <eggert@cs.ucla.edu>
9911
9912 * lread.c (read1): Simplify slightly to avoid an overflow warning
9913 with GCC 4.7.0 on x86-64.
9914
4446092a
EZ
99152012-05-26 Eli Zaretskii <eliz@gnu.org>
9916
9917 * bidi.c (bidi_mirror_char): Revert last change: an int is
9918 definitely wide enough here.
9919
42b2a986 99202012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 9921
42b2a986 9922 Fix integer width and related bugs (Bug#9874).
eb106a49 9923 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
9924 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
9925 (string_bytes, check_sblock, allocate_string_data):
9926 (compact_small_strings, Fmake_bool_vector, make_string)
9927 (make_unibyte_string, make_multibyte_string)
9928 (make_string_from_bytes, make_specified_string)
9929 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
9930 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
9931 (mark_vectorlike):
9932 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9933 (allocate_pseudovector):
9934 Use int, not EMACS_INT, where int is wide enough.
9935 (inhibit_garbage_collection, Fgarbage_collect):
9936 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9937 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
9938 int might not be wide enough.
9939 (bidi_cache_search, bidi_cache_find, bidi_init_it)
9940 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
9941 (bidi_at_paragraph_end, bidi_find_paragraph_start)
9942 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
9943 (bidi_level_of_next_char, bidi_move_to_visually_next):
9944 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9945 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
9946 (Fkill_buffer, Fset_buffer_major_mode)
9947 (advance_to_char_boundary, Fbuffer_swap_text)
9948 (Fset_buffer_multibyte, overlays_at, overlays_in)
9949 (overlay_touches_p, struct sortvec, record_overlay_string)
9950 (overlay_strings, recenter_overlay_lists)
9951 (adjust_overlays_for_insert, adjust_overlays_for_delete)
9952 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
9953 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
9954 (Foverlay_recenter, last_overlay_modification_hooks_used)
9955 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
9956 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
9957 (validate_region): Omit unnecessary test for b <= e,
9958 since that's guaranteed by the previous test.
d311d28c
PE
9959 (adjust_overlays_for_delete): Avoid pos + length overflow.
9960 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
9961 (report_overlay_modification):
9962 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9963 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
9964 Omit pointer cast, which isn't needed anyway, and doesn't work
9965 after the EMACS_INT -> ptrdiff_t change.
02481186 9966 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
9967 * buffer.h: Adjust decls to match defn changes elsewhere.
9968 (struct buffer_text, struct buffer):
9969 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9970 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
9971 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
9972 not int, to avoid needless 32-bit limit on 64-bit hosts.
9973 (exec_byte_code): Use tighter memory-full test, one that checks
9974 for alloca overflow. Don't compute the address of the object just
9975 before an array, as that's not portable. Use EMACS_INT, not
9976 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
9977 * callint.c (Fcall_interactively):
9978 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9979 * callproc.c (call_process_kill, Fcall_process):
9980 Don't assume pid_t fits into an Emacs fixnum.
9981 (call_process_cleanup, Fcall_process, child_setup):
9982 Don't assume pid_t fits into int.
9983 (call_process_cleanup, Fcall_process, delete_temp_file)
9984 (Fcall_process_region):
9985 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9986 (Fcall_process): Simplify handling of volatile integers.
9987 Use int, not EMACS_INT, where int will do.
9988 * casefiddle.c (casify_object, casify_region, operate_on_word)
9989 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
9990 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9991 (casify_object): Avoid integer overflow when overallocating buffer.
9992 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 9993 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
9994 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
9995 * category.h (CATEGORYP): Don't assume arg is nonnegative.
9996 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
9997 integers are now checked earlier. All uses replaced with XINT.
9998 (ccl_driver):
9999 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10000 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
10001 (ccl_driver, Fregister_code_conversion_map):
10002 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
10003 (resolve_symbol_ccl_program): Check that vector header is in range.
10004 Always copy the vector, so that we can check its contents reliably
10005 now rather than having to recheck each instruction as it's being
10006 executed. Check that vector words fit in 'int'.
10007 (ccl_get_compiled_code, Fregister_ccl_program)
10008 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
10009 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
10010 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
10011 contents are in range.
10012 (Fccl_execute_on_string): Check that status is in range.
10013 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
10014 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
10015 Accept and return EMACS_INT, not int, because callers can pass values
10016 out of 'int' range.
10017 (c_string_width, strwidth, lisp_string_width, chars_in_text)
10018 (multibyte_chars_in_text, parse_str_as_multibyte)
10019 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
10020 (str_as_unibyte, str_to_unibyte, string_count_byte8)
10021 (string_escape_byte8, Fget_byte):
10022 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 10023 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
10024 avoid mishandling large integers.
10025 * character.h: Adjust decls to match defn changes elsewhere.
10026 * charset.c (load_charset_map_from_file, find_charsets_in_text)
10027 (Ffind_charset_region):
10028 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10029 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
10030 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 10031 Don't assume fixnum fits in int.
d311d28c
PE
10032 (load_charset_map_from_vector, Fmap_charset_chars):
10033 Remove now-unnecessary CHECK_NATNUMs.
10034 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
10035 Don't rely on undefined behavior with signed left shift overflow.
10036 Don't assume unsigned int fits into fixnum, or that fixnum fits
10037 into unsigned int. Don't require max_code to be a valid fixnum;
10038 that's not true for gb10830 4-byte on a 32-bit host. Allow
10039 invalid_code to be a cons, for the same reason. Require code_offset
10040 to be a character. Avoid int overflow if max_char is close
10041 to INT_MAX.
10042 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
10043 this is intended anyway and avoids some undefined behavior.
10044 (load_charset_map): Pass unsigned, not int, as 2nd arg of
10045 INDEX_TO_CODE_POINT, as that's what it expects.
10046 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
10047 * charset.h (DECODE_CHAR): Return int, not unsigned;
10048 this is what was intended anyway, and it avoids undefined behavior.
10049 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
10050 integer-overflow issues.
10051 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
10052 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
10053 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
10054 * chartab.c (Fmake_char_table, Fset_char_table_range)
10055 (uniprop_get_decoder, uniprop_get_encoder):
10056 Don't assume fixnum fits in int.
10057 * cmds.c (move_point): New function, that does the gist of
10058 Fforward_char and Fbackward_char, but does so while checking
10059 for integer overflow more accurately.
c96e5d6a 10060 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
10061 (Fforward_line, Fend_of_line, internal_self_insert)
10062 (internal_self_insert):
10063 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10064 Fix a FIXME, by checking for integer overflow when calculating
10065 target_clm and actual_clm.
10066 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 10067 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
10068 (ASSURE_DESTINATION, coding_alloc_by_realloc)
10069 (coding_alloc_by_making_gap, alloc_destination)
10070 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
10071 (encode_coding_utf_16, detect_coding_emacs_mule)
10072 (decode_coding_emacs_mule, encode_coding_emacs_mule)
10073 (detect_coding_iso_2022, decode_coding_iso_2022)
10074 (encode_invocation_designation, encode_designation_at_bol)
10075 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
10076 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
10077 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
10078 (encode_coding_ccl, encode_coding_raw_text)
10079 (detect_coding_charset, decode_coding_charset)
10080 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
10081 (produce_composition, produce_charset, produce_annotation)
10082 (decode_coding, handle_composition_annotation)
10083 (handle_charset_annotation, consume_chars, decode_coding_gap)
10084 (decode_coding_object, encode_coding_object, detect_coding_system)
10085 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
10086 (code_convert_region, code_convert_string)
8f50130c
PE
10087 (Fdefine_coding_system_internal)
10088 (coding_set_source, coding_set_destination):
d311d28c
PE
10089 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10090 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
10091 (Fdefine_coding_system_internal):
10092 Don't assume fixnums fit in int.
10093 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 10094 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
10095 (Funencodable_char_position, Fcheck_coding_systems_region)
10096 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 10097 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 10098 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 10099 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 10100 Don't access memory outside of the args array.
d311d28c 10101 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
10102 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
10103 result of ENCODE_CHAR.
d311d28c
PE
10104 * coding.h: Adjust decls to match defn changes elsewhere.
10105 (struct coding_system):
10106 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10107 * composite.c (get_composition_id, find_composition)
10108 (run_composition_function, update_compositions)
10109 (compose_text, composition_gstring_put_cache)
10110 (composition_gstring_p, composition_gstring_width)
10111 (fill_gstring_header, fill_gstring_body, autocmp_chars)
10112 (composition_compute_stop_pos, composition_reseat_it)
10113 (composition_update_it, struct position_record)
10114 (find_automatic_composition, composition_adjust_point)
10115 (Fcomposition_get_gstring, Ffind_composition_internal):
10116 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10117 (update_compositions):
10118 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10119 * composite.h: Adjust decls to match defn changes elsewhere.
10120 (struct composition):
10121 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10122 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
10123 Do not attempt to compute the address of the object just before a
10124 buffer; this is not portable.
10125 (Faref, Faset):
10126 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10127 (Faset): Use int, not EMACS_INT, where int is wide enough.
10128 (Fstring_to_number): Don't assume fixnums fit in int.
10129 (Frem): Don't assume arg is nonnegative.
10130 * dbusbind.c (xd_append_arg): Check for integers out of range.
10131 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 10132 (extract_signed, extract_unsigned): New functions.
243e0530
PE
10133 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
10134 (xd_get_connection_references): Return ptrdiff_t, not int.
10135 All uses changed.
10136 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
10137 (xd_read_message_1):
10138 Use int, not unsigned, where the dbus API uses int.
10139 (Fdbus_message_internal): Don't overflow mtype.
10140 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
10141 * dired.c (directory_files_internal, file_name_completion, scmp)
10142 (file_name_completion_stat):
10143 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10144 (file_name_completion): Don't overflow matchcount.
10145 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
10146 * dispextern.h: Adjust decls to match defn changes elsewhere.
10147 (struct text_pos, struct glyph, struct bidi_saved_info)
10148 (struct bidi_string_data, struct bidi_it, struct composition_it)
10149 (struct it):
10150 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10151 (struct display_pos, struct composition_it, struct it):
10152 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10153 * dispnew.c (increment_matrix_positions)
10154 (increment_row_positions, mode_line_string)
10155 (marginal_area_string):
10156 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 10157 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
10158 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10159 (duration_to_sec_usec): New function, to check for overflow better.
10160 (Fsleep_for, sit_for): Use it.
10161 * doc.c (get_doc_string, store_function_docstring):
10162 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10163 (get_doc_string, Fsnarf_documentation):
10164 Use int, not EMACS_INT, where int is wide enough.
10165 (get_doc_string):
10166 Use SAFE_ALLOCA, not alloca.
10167 Check for overflow when converting EMACS_INT to off_t.
10168 * doprnt.c (doprnt):
10169 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10170 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
10171 Don't assume uid_t fits into fixnum.
10172 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
10173 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
10174 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
10175 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
10176 (general_insert_function)
10177 (Finsert_char, make_buffer_string, make_buffer_string_both)
10178 (update_buffer_properties, Fbuffer_substring)
10179 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
10180 (Fsubst_char_in_region, check_translation)
10181 (Ftranslate_region_internal, save_restriction_restore, Fformat)
10182 (transpose_markers, Ftranspose_regions):
10183 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10184 (clip_to_bounds): Move to lisp.h as an inline function).
10185 (Fconstrain_to_field): Don't assume integers are nonnegative.
10186 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
10187 (Fsubst_char_in_region, Fsave_restriction):
10188 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10189 (Femacs_pid): Don't assume pid_t fits into fixnum.
10190 (lo_time): Use int, not EMACS_INT, when int suffices.
10191 (lisp_time_argument): Check for usec out of range.
10192 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
10193 (Fuser_login_name, Fuser_full_name): Signal an error
10194 if a uid argument is out of range, rather than relying on
10195 undefined behavior.
c8d5c857
PE
10196 (Fformat_time_string): Remove now-unnecessary check.
10197 lisp_time_argument checks for out-of-range usec now.
243e0530 10198 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
10199 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
10200 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
10201 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
10202 (init_cmdargs, Fdump_emacs):
10203 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10204 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
10205 the bottom (typically) 32 bits of the fixnum.
10206 * eval.c (specpdl_size, call_debugger):
10207 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10208 (when_entered_debugger, Fbacktrace_debug):
10209 Don't assume fixnum can fit in int.
10210 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
10211 the object just before a buffer; this is not portable.
10212 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
10213 (grow_specpdl, unbind_to):
10214 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10215 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
10216 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 10217 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
10218 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
10219 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
10220 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10221 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
10222 (a_write, e_write):
10223 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10224 (Fcopy_file, non_regular_nbytes, read_non_regular)
10225 (Finsert_file_contents):
10226 Use int, not EMACS_INT, where int is wide enough.
10227 (READ_BUF_SIZE): Verify that it fits in int.
10228 (Finsert_file_contents): Check that counts are in proper range,
10229 rather than assuming fixnums fit into ptrdiff_t etc.
10230 Don't assume fixnums fit into int.
125b3835 10231 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
10232 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
10233 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
10234 (string_char_to_byte, string_byte_to_char)
10235 (string_make_multibyte, string_to_multibyte)
10236 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
10237 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
10238 (substring_both, Fdelete, internal_equal, Ffillarray)
10239 (Fclear_string, mapcar1)
10240 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
10241 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
10242 (larger_vector, make_hash_table, maybe_resize_hash_table)
10243 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
10244 (Fmaphash, secure_hash):
10245 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10246 (concat): Check for string index and length overflow.
10247 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
10248 (Frequire):
10249 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10250 (larger_vector): New API (vec, incr_min, size_max) replaces old
10251 one (vec, new_size, init). This catches size overflow.
10252 INIT was removed because it was always Qnil.
10253 All callers changed.
10254 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
10255 the upper bound on a hash table index size.
10256 (make_hash_table, maybe_resize_hash_table): Use it.
10257 (secure_hash): Computer start_byte and end_byte only after
10258 they're known to be in ptrdiff_t range.
10259 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
10260 (Ffont_get_glyphs, Ffont_at):
10261 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10262 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
10263 (Flist_fonts, Fopen_font):
10264 Don't assume fixnum can fit in int.
10265 (check_gstring): Don't assume index can fit in int.
10266 (font_match_p): Check that fixnum is a character, not a nonnegative
10267 fixnum, since the later code needs to stuff it into an int.
10268 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
10269 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
10270 conversion overflow issues.
10271 (Fopen_font): Check for integer out of range.
10272 (Ffont_get_glyphs): Don't assume index can fit in int.
10273 * font.h: Adjust decls to match defn changes elsewhere.
10274 * fontset.c (reorder_font_vector): Redo score calculation to avoid
10275 integer overflow.
10276 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
10277 printmax_t, where ptrdiff_t is wide enough.
10278 (Finternal_char_font):
10279 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10280 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
10281 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
10282 (Fset_frame_position, x_set_frame_parameters)
10283 (x_set_line_spacing, x_set_border_width)
10284 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
10285 Check that fixnums are in proper range for system types.
10286 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
10287 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10288 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
10289 Use SAFE_ALLOCA_LISP, not alloca.
10290 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
10291 intptr_t is wide enough.
10292 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
10293 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
10294 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
10295 Check for fixnum out of range.
10296 * ftfont.c (ftfont_list): Don't assume index fits in int.
10297 Check that fixnums are in proper range for system types.
10298 (ftfont_shape_by_flt):
10299 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
10300 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
10301 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10302 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
10303 Check that fixnums are in proper range for system types.
10304 * gnutls.h: Adjust decls to match defn changes elsewhere.
10305 * gtkutil.c (xg_dialog_run):
10306 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10307 (update_frame_tool_bar):
10308 Check that fixnums are in proper range for system types.
10309 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 10310 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
10311 * indent.c (last_known_column, last_known_column_point):
10312 (current_column_bol_cache):
10313 (skip_invisible, current_column, check_display_width):
10314 (check_display_width, scan_for_column, current_column_1)
10315 (Findent_to, Fcurrent_indentation, position_indentation)
10316 (indented_beyond_p, Fmove_to_column, compute_motion):
10317 (Fcompute_motion, Fvertical_motion):
10318 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10319 (last_known_column_modified): Use EMACS_INT, not int.
10320 (check_display_width):
10321 (Fcompute_motion):
10322 Check that fixnums and floats are in proper range for system types.
10323 (compute_motion): Don't assume index or fixnum fits in int.
10324 (compute_motion, Fcompute_motion):
10325 Use int, not EMACS_INT, when it is wide enough.
10326 (vmotion): Omit local var start_hpos that is always 0; that way
10327 we don't need to worry about overflow in expressions involving it.
10328 * indent.h: Adjust decls to match defn changes elsewhere.
10329 (struct position):
10330 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10331 Use int, not EMACS_INT, where int is wide enough.
10332 Remove unused members ovstring_chars_done and tab_offset;
10333 all uses removed.
10334 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
10335 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
10336 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
10337 (make_gap, copy_text, insert, insert_and_inherit)
10338 (insert_before_markers, insert_before_markers_and_inherit)
10339 (insert_1, count_combining_before, count_combining_after)
10340 (insert_1_both, insert_from_string)
10341 (insert_from_string_before_markers, insert_from_string_1)
10342 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
10343 (adjust_after_replace, adjust_after_insert, replace_range)
10344 (replace_range_2, del_range, del_range_1, del_range_byte)
10345 (del_range_both, del_range_2, modify_region)
10346 (prepare_to_modify_buffer, signal_before_change)
10347 (signal_after_change, Fcombine_after_change_execute):
10348 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10349 * intervals.c (traverse_intervals, rotate_right, rotate_left)
10350 (balance_an_interval, split_interval_right, split_interval_left)
10351 (find_interval, next_interval, update_interval)
10352 (adjust_intervals_for_insertion, delete_node, delete_interval)
10353 (interval_deletion_adjustment, adjust_intervals_for_deletion)
10354 (static_offset_intervals, offset_intervals)
10355 (merge_interval_right, merge_interval_left, make_new_interval)
10356 (graft_intervals_into_buffer, temp_set_point_both)
10357 (temp_set_point, set_point, adjust_for_invis_intang)
10358 (set_point_both, move_if_not_intangible, get_property_and_range)
10359 (get_local_map, copy_intervals, copy_intervals_to_string)
10360 (compare_string_intervals, set_intervals_multibyte_1):
10361 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10362 * intervals.h: Adjust decls to match defn changes elsewhere.
10363 (struct interval):
10364 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10365 * keyboard.c (this_command_key_count, this_single_command_key_start)
10366 (before_command_key_count, before_command_echo_length, echo_now)
10367 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
10368 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
10369 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
10370 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
10371 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10372 (last_non_minibuf_size, last_point_position, echo_truncate)
10373 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
10374 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
10375 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
10376 (stuff_buffered_input):
10377 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10378 (last_auto_save, command_loop_1, read_char):
10379 Use EMACS_INT, not int, to avoid integer overflow.
10380 (record_char): Avoid overflow in total_keys computation.
10381 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
10382 * keyboard.h: Adjust decls to match defn changes elsewhere.
10383 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
10384 (Fkey_description, Fdescribe_vector, Flookup_key):
10385 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10386 (click_position): New function, to check that positions are in range.
10387 (Fcurrent_active_maps):
10388 (describe_command):
10389 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10390 (Faccessible_keymaps, Fkey_description):
10391 (preferred_sequence_p):
10392 Don't assume fixnum can fit into int.
10393 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
10394 Check for integer overflow in size calculations.
10395 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
10396 avoid mishandling large integers.
10397 * lisp.h: Adjust decls to match defn changes elsewhere.
10398 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
10399 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
10400 (struct Lisp_Marker):
10401 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10402 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
10403 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
10404 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
10405 All callers changed.
10406 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
10407 Assume the arg has valid form, since it always does.
10408 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
10409 unsigned integer system type.
10410 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
10411 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
10412 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10413 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
10414 (duration_to_sec_usec): New decl.
10415 * lread.c (read_from_string_index, read_from_string_index_byte)
10416 (read_from_string_limit, readchar, unreadchar, openp)
10417 (read_internal_start, read1, oblookup):
10418 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10419 (Fload, readevalloop, Feval_buffer, Feval_region):
10420 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10421 (openp): Check for out-of-range argument to 'access'.
10422 (read1): Use int, not EMACS_INT, where int is wide enough.
10423 Don't assume fixnum fits into int.
6efdadfd 10424 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
10425 (read_filtered_event): Use duration_to_sec_usec
10426 to do proper overflow checking on durations.
d311d28c
PE
10427 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
10428 in size calculation.
10429 (Fexecute_kbd_macro):
10430 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10431 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
10432 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
10433 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
10434 (set_marker_both, set_marker_restricted_both, marker_position)
10435 (marker_byte_position, Fbuffer_has_markers_at):
10436 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10437 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 10438 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
10439 It now merely ensures that the menu is large enough, without
10440 necessarily growing it, as this avoids some integer overflow issues.
10441 All callers changed.
10442 (keymap_panes, parse_single_submenu, Fx_popup_menu):
10443 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10444 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
10445 Use SAFE_ALLOCA_LISP, not alloca.
10446 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
10447 to EMACS_INT. Check that fixnums are in proper range for system types.
10448 * minibuf.c (minibuf_prompt_width, string_to_object)
10449 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
10450 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
10451 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10452 (get_minibuffer, read_minibuf_unwind):
10453 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10454 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
10455 this simplifies overflow checking. All callers changed.
10456 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
10457 (Ftest_completion):
10458 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10459 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
10460 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
10461 Check that fixnums are in proper range for system types.
10462 (Fx_create_frame, Fx_show_tip):
10463 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10464 * nsfont.m (ns_findfonts, nsfont_list_family):
10465 Don't assume fixnum fits in long.
10466 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
10467 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10468 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
10469 wide enough.
17fdb222 10470 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
10471 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10472 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
10473 (PRINTDECLARE, PRINTPREPARE):
10474 (strout, print_string):
10475 (print, print_preprocess, print_check_string_charset_prop)
10476 (print_object):
10477 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10478 (PRINTDECLARE):
10479 (temp_output_buffer_setup, Fprin1_to_string, print_object):
10480 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10481 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 10482 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 10483 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
10484 (print_error_message): Use SAFE_ALLOCA, not alloca.
10485 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
10486 (print_depth, new_backquote_output, print_number_index):
10487 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
10488 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
10489 (Fset_process_window_size, Fformat_network_address)
10490 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 10491 (sigchld_handler):
d311d28c 10492 Check that fixnums are in proper range for system types.
d44287d4 10493 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
10494 Check for process-ids out of pid_t range rather than relying on
10495 undefined behavior.
e4d81efc 10496 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
10497 (Fformat_network_address, read_process_output, send_process)
10498 (Fprocess_send_region, status_notify):
10499 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10500 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
10501 (wait_reading_process_output, read_process_output, exec_sentinel):
10502 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10503 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
10504 (Faccept_process_output): Use duration_to_sec_usec to do proper
10505 overflow checking on durations.
dde14581
PE
10506 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
10507 Don't assume pid_t fits in int.
02481186
PE
10508 * process.h (struct Lisp_Process): Members tick and update_tick
10509 are now of type EMACS_INT, not int.
b62b53e8
PE
10510 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
10511 configured --with-wide-int.
d311d28c
PE
10512 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
10513 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
10514 * search.c (looking_at_1, string_match_1):
10515 (fast_string_match, fast_c_string_match_ignore_case)
10516 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
10517 (scan_newline, find_before_next_newline, search_command)
10518 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
10519 (set_search_regs, wordify):
10520 (Freplace_match):
10521 (Fmatch_data):
10522 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10523 (string_match_1, search_buffer, set_search_regs):
10524 (Fmatch_data):
10525 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10526 (wordify): Check for overflow in size calculation.
10527 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
10528 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
10529 Check that fixnums are in proper range for system types.
10530 * sound.c (struct sound_device)
10531 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
10532 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10533 (Fplay_sound_internal):
10534 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 10535 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
10536 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
10537 (Fparse_partial_sexp):
10538 Don't assume fixnums can fit in int.
10539 (struct lisp_parse_state, find_start_pos, find_start_value)
10540 (find_start_value_byte, find_start_begv)
10541 (update_syntax_table, char_quoted, dec_bytepos)
10542 (find_defun_start, prev_char_comend_first, back_comment):
10543 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
10544 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
10545 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10546 (Finternal_describe_syntax_value): Check that match_lisp is a
10547 character, not an integer, since the code stuffs it into int.
10548 (scan_words, scan_sexps_forward):
10549 Check that fixnums are in proper range for system types.
10550 (Fforward_word):
10551 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10552 (scan_sexps_forward):
10553 Use CHARACTERP, not INTEGERP, since the value must fit into int.
10554 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
10555 * syntax.h: Adjust decls to match defn changes elsewhere.
10556 (struct gl_state_s):
10557 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
10558 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
10559 MOST_POSITIVE_FIXNUM.
d311d28c
PE
10560 * sysdep.c (wait_for_termination_1, wait_for_termination)
10561 (interruptible_wait_for_termination, mkdir):
10562 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
10563 (emacs_read, emacs_write):
10564 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
10565 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
10566 and double all fit in int.
d311d28c
PE
10567 * term.c (set_tty_color_mode):
10568 Check that fixnums are in proper range for system types.
10569 * termhooks.h (struct input_event):
10570 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10571 * textprop.c (validate_interval_range, interval_of)
10572 (Fadd_text_properties, set_text_properties_1)
10573 (Fremove_text_properties, Fremove_list_of_text_properties)
10574 (Ftext_property_any, Ftext_property_not_all)
10575 (copy_text_properties, text_property_list, extend_property_ranges)
10576 (verify_interval_modification):
10577 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10578 (Fnext_single_char_property_change)
10579 (Fprevious_single_char_property_change):
10580 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
10581 (copy_text_properties):
10582 Check for integer overflow in index calculation.
d311d28c
PE
10583 * undo.c (last_boundary_position, record_point, record_insert)
10584 (record_delete, record_marker_adjustment, record_change)
10585 (record_property_change):
10586 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10587 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
10588 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10589 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
10590 (Fx_hide_tip, Fx_file_dialog):
10591 * w32menu.c (set_frame_menubar):
10592 Use ptrdiff_t, not int, for consistency with rest of code.
10593 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
10594 (select_window, Fdelete_other_windows_internal)
10595 (window_scroll_pixel_based, window_scroll_line_based)
10596 (Frecenter, Fset_window_configuration):
10597 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10598 (Fset_window_hscroll, run_window_configuration_change_hook)
10599 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 10600 (Fscroll_other_window, Frecenter):
d311d28c
PE
10601 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10602 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
10603 Don't assume fixnum fits in int.
10604 (Fset_window_scroll_bars):
10605 Check that fixnums are in proper range for system types.
10606 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
10607 (string_pos, c_string_pos, number_of_chars, init_iterator)
10608 (in_ellipses_for_invisible_text_p, init_from_display_pos)
10609 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
10610 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
10611 (face_before_or_after_it_pos, handle_invisible_prop)
10612 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
10613 (display_prop_intangible_p, string_buffer_position_lim)
10614 (string_buffer_position, handle_composition_prop, load_overlay_strings)
10615 (get_overlay_strings_1, get_overlay_strings)
10616 (iterate_out_of_display_property, forward_to_next_line_start)
10617 (back_to_previous_visible_line_start, reseat, reseat_to_string)
10618 (get_next_display_element, set_iterator_to_next)
10619 (get_visually_first_element, compute_stop_pos_backwards)
10620 (handle_stop_backwards, next_element_from_buffer)
10621 (move_it_in_display_line_to, move_it_in_display_line)
10622 (move_it_to, move_it_vertically_backward, move_it_by_lines)
10623 (add_to_log, message_dolog, message_log_check_duplicate)
10624 (message2, message2_nolog, message3, message3_nolog
10625 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
10626 (current_message_1, truncate_echo_area, truncate_message_1)
10627 (set_message, set_message_1, store_mode_line_noprop)
10628 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
10629 (text_outside_line_unchanged_p, check_point_in_composition)
10630 (reconsider_clip_changes)
10631 (redisplay_internal, set_cursor_from_row, try_scrolling)
10632 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
10633 (redisplay_window, find_last_unchanged_at_beg_row)
10634 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
10635 (trailing_whitespace_p, find_row_edges, display_line)
10636 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
10637 (display_mode_element, store_mode_line_string)
10638 (pint2str, pint2hrstr, decode_mode_spec)
10639 (display_count_lines, display_string, draw_glyphs)
10640 (x_produce_glyphs, x_insert_glyphs)
10641 (rows_from_pos_range, mouse_face_from_buffer_pos)
10642 (fast_find_string_pos, mouse_face_from_string_pos)
10643 (note_mode_line_or_margin_highlight, note_mouse_highlight):
10644 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10645 (safe_call, init_from_display_pos, handle_fontified_prop)
10646 (handle_single_display_spec, load_overlay_strings)
10647 (with_echo_area_buffer, setup_echo_area_for_printing)
10648 (display_echo_area, echo_area_display)
10649 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
10650 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
10651 (redisplay_window, dump_glyph_row, display_mode_line)
10652 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 10653 (handle_display_spec, display_prop_string_p):
d311d28c
PE
10654 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10655 (handle_single_display_spec, build_desired_tool_bar_string)
10656 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
10657 (get_specified_cursor_type):
10658 Check that fixnums are in proper range for system types.
10659 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
10660 (Flookup_image_map):
10661 Don't assume fixnums fit in int.
10662 (compare_overlay_entries):
10663 Avoid mishandling comparisons due to subtraction overflow.
10664 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
10665 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
10666 (handle_tool_bar_click):
10667 Use int, not unsigned, since we prefer signed and the signedness
10668 doesn't matter here.
10669 (get_next_display_element, next_element_from_display_vector):
10670 Use int, not EMACS_INT, when int is wide enough.
10671 (start_hourglass): Use duration_to_sec_usec to do proper
10672 overflow checking on durations.
10673 * xfaces.c (Fbitmap_spec_p):
10674 Check that fixnums are in proper range for system types.
10675 (compare_fonts_by_sort_order):
10676 Avoid mishandling comparisons due to subtraction overflow.
10677 (Fx_family_fonts, realize_basic_faces):
10678 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10679 (Fx_family_fonts):
10680 Don't assume fixnum fits in int.
10681 Use SAFE_ALLOCA_LISP, not alloca.
10682 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
10683 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
10684 (face_at_buffer_position, face_for_overlay_string)
10685 (face_at_string_position):
10686 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10687 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
10688 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
10689 (Fx_show_tip):
10690 Check that fixnums are in proper range for system types.
10691 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
10692 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
10693 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10694 (Fx_change_window_property): Don't assume fixnums fit in int.
10695 * xfont.c (xfont_chars_supported):
10696 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10697 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
10698 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
10699 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10700 * xml.c (parse_region):
10701 * xrdb.c (magic_file_p):
10702 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10703 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
10704 (x_get_local_selection, x_reply_selection_request)
10705 (x_handle_selection_request, wait_for_property_change):
10706 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10707 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
10708 short is wide enough.
10709 (x_send_client_event): Don't assume fixnum fits in int.
10710 * xterm.c (x_x_to_emacs_modifiers):
10711 Don't assume EMACS_INT overflows nicely into int.
10712 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
10713 may come from Lisp.
10714 (handle_one_xevent): NATNUMP can eval its arg twice.
10715 (x_connection_closed):
10716 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10717 * xterm.h: Adjust decls to match defn changes elsewhere.
10718 (struct scroll_bar): Use struct vectorlike_header
10719 rather than rolling our own approximation.
10720 (SCROLL_BAR_VEC_SIZE): Remove; not used.
10721
c6574eb5
GM
107222012-05-25 Glenn Morris <rgm@gnu.org>
10723
10724 * lisp.mk (lisp): Update for more files being compiled now.
10725
e8d32c7e
SM
107262012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
10727
48def666
SM
10728 * lread.c: Remove `read_pure' which makes no difference.
10729 (read_pure): Remove var.
10730 (unreadpure): Remove function.
10731 (readevalloop): Don't call read_list with -1 flag.
10732 (read1, read_vector): Don't test read_pure any more.
10733 (read_list): Simplify.
10734
e8d32c7e
SM
10735 * fileio.c, character.h: Minor style tweaks.
10736
4b2addb7
DA
107372012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
10738
10739 * window.h (clip_changed): Remove useless declaration.
10740
584461b2
JB
107412012-05-22 Juanma Barranquero <lekktu@gmail.com>
10742
10743 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
10744 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
10745
34374650
PE
107462012-05-22 Paul Eggert <eggert@cs.ucla.edu>
10747
10748 Remove src/m/*.
10749 This directory predates autoconf and is no longer needed nowadays.
10750 Move its few remaining bits of functionality to where they're needed.
10751 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
10752 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
10753 * m/template.h: Remove.
10754 * Makefile.in (M_FILE): Remove. All uses removed.
10755 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
10756 * lisp.h (USE_LSB_TAG):
10757 * mem-limits.h (EXCEEDS_LISP_PTR):
10758 Use VAL_MAX, not VALBITS, in #if.
10759 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
10760 (EMACS_UINT): Define unconditionally now.
10761 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
10762 (BITS_PER_EMACS_INT): New constants, replacing
10763 what used to be in config.h, but not useful in #if.
10764 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
10765 define them any more.
10766 (VAL_MAX): New macro.
10767 (VALMASK): Use it.
10768 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
10769 BITS_PER_EMACS_INT, in #if.
10770 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
10771 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
10772 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
10773 * s/ms-w32.h (DATA_START):
10774 Move here from removed file m/intel386.h.
10775 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
10776 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
10777
261cb4bb
PE
107782012-05-21 Paul Eggert <eggert@cs.ucla.edu>
10779
10780 Assume C89 or later.
10781 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
10782 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
10783 (xrealloc):
10784 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
10785 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
10786 * textprop.c, tparam.c (NULL): Remove.
10787 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
10788 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
10789 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
10790 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
10791 * xterm.c (input_signal_count): Assume volatile works.
10792
ff23cd9f
KB
107932012-05-21 Ken Brown <kbrown@cornell.edu>
10794
10795 * xgselect.c (xg_select): Fix first argument in call to 'select'
10796 (bug#11508).
10797
1b170bc6
KB
107982012-05-20 Ken Brown <kbrown@cornell.edu>
10799
10800 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 10801 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 10802
b2f4d39f
KB
108032012-05-19 Ken Brown <kbrown@cornell.edu>
10804
10805 * xfns.c (x_in_use): Remove `static' qualifier.
10806 * xterm.h (x_in_use): Declare.
10807 * xgselect.c: Include xterm.h.
10808 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
10809 and `display_arg' (bug#9754).
10810
003fdae2
PE
108112012-05-19 Paul Eggert <eggert@cs.ucla.edu>
10812
9232a6d9
PE
10813 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
10814
003fdae2
PE
10815 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
10816 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
10817
784b56e2
EZ
108182012-05-18 Eli Zaretskii <eliz@gnu.org>
10819
10820 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
10821
10822 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 10823 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
10824
10825 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
10826 reference to image_cache->refcount.
10827 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
10828
a0a79cde
JL
108292012-05-17 Juri Linkov <juri@jurta.org>
10830
10831 * search.c (Fword_search_regexp, Fword_search_backward)
10832 (Fword_search_forward, Fword_search_backward_lax)
10833 (Fword_search_forward_lax): Move functions to isearch.el
10834 (bug#10145, bug#11381).
10835
b0572523
PE
108362012-05-16 Paul Eggert <eggert@cs.ucla.edu>
10837
10838 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
10839
9660f5fc
SM
108402012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
10841
10842 * lread.c (init_obarray): Declare Qt and Qnil as special.
10843
4374de83
GM
108442012-05-14 Glenn Morris <rgm@gnu.org>
10845
10846 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 10847 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 10848
dc44c39a
PE
108492012-05-14 Paul Eggert <eggert@cs.ucla.edu>
10850
078c97cb
PE
10851 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
10852
dc44c39a
PE
10853 * unexaix.c: Port to more-recent AIX compilers.
10854 (report_error, report_error_1, make_hdr, copy_sym)
10855 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
10856 Make arguments const char *, not char *, to avoid violations of C
10857 standard and to fix some AIX warnings reported by Gilles Pion.
10858
e18afed7 108592012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
10860
10861 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
10862 already have overlays loaded.
10863 (handle_single_display_spec): Before returning without displaying
10864 fringe bitmap, synchronize the bidi iterator with the main display
10865 iterator, by calling iterate_out_of_display_property.
10866 (iterate_out_of_display_property): Detect buffer iteration by
10867 testing that it->string is a Lisp string.
10868 (get_next_display_element): When the current object is exhausted,
10869 and there's something on it->stack, call set_iterator_to_next to
10870 proceed with what's on the stack, instead of returning zero.
10871 (set_iterator_to_next): If called at the end of a Lisp string,
10872 proceed to consider_string_end without incrementing string
10873 position. Don't increment display vector index past the end of
10874 the display vector. (Bug#11417)
c8fb9dc6
EZ
10875 (pos_visible_p): Don't report a position visible when move_it_to
10876 stopped at the last line of window, which happens to be scanned
10877 backwards by the bidi iteration. (Bug#11464)
ac268e67 10878
e18afed7 108792012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
10880
10881 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
10882 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
10883 are on a TTY, and thus unable to display on the fringes.
10884 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
10885 so we need to signal to the caller that this is a "replacing"
10886 display spec. This fixes display when the spec is invalid or we
10887 are on a TTY.
10888
e18afed7 108892012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
10890
10891 * unexaix.c (make_hdr): Fix typo in prototype.
10892 This bug broke the build on AIX. Problem reported by Gilles Pion.
10893
9d0a235a
MA
108942012-05-14 Michael Albinus <michael.albinus@gmx.de>
10895
10896 * keyboard.c (kbd_buffer_get_event): Read special events also in
10897 batch mode. (Bug#11415)
10898
9e6b06ed
GM
108992012-05-12 Glenn Morris <rgm@gnu.org>
10900
10901 * ns.mk: Update for ns_appbindir no longer having trailing "/".
10902
c1a1d7a3
EZ
109032012-05-12 Eli Zaretskii <eliz@gnu.org>
10904
10905 * lisp.mk (lisp): Add newcomment.elc.
10906
3fe7cdc8
GM
109072012-05-12 Glenn Morris <rgm@gnu.org>
10908
10909 * Makefile.in (MKDIR_P): New, set by configure.
10910 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
10911
53f7d2c0
PE
109122012-05-11 Paul Eggert <eggert@cs.ucla.edu>
10913
10914 Remove unused function hourglass_started.
10915 * dispextern.h (hourglass_started):
10916 * w32fns.c (hourglass_started):
10917 * xdisp.c (hourglass_started): Remove.
10918
75aafb17
JB
109192012-05-10 Juanma Barranquero <lekktu@gmail.com>
10920
10921 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
10922 Update dependencies.
10923
12959e8e
PE
109242012-05-10 Paul Eggert <eggert@cs.ucla.edu>
10925
97107e2e
PE
10926 * xgselect.c (xg_select): Put maxfds+1 into a var.
10927 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
10928
12959e8e
PE
10929 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
10930
836d29b3
DA
109312012-05-10 Dave Abrahams <dave@boostpro.com>
10932
10933 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
10934 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
10935
5cb67954
MA
109362012-05-09 Michael Albinus <michael.albinus@gmx.de>
10937
10938 * dbusbind.c (xd_registered_buses): New internal Lisp object.
cccaebd2 10939 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
5cb67954
MA
10940 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
10941 Initialize xd_registered_buses.
10942
3478ec45
PE
109432012-05-09 Paul Eggert <eggert@cs.ucla.edu>
10944
b263a6b0
PE
10945 Untag more efficiently if USE_LSB_TAG.
10946 This is based on a proposal by YAMAMOTO Mitsuharu in
10947 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
10948 For an admittedly artificial (nth 8000 longlist) benchmark on
10949 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
10950 Emacs's overall text size by 1%.
10951 * lisp.h (XUNTAG): New macro.
10952 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
10953 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
10954 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
10955 * eval.c (Fautoload):
10956 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
10957 * frame.h (XFRAME): Use XUNTAG.
10958
3478ec45
PE
10959 Port recent dbusbind.c changes to 32-bit --with-wide-int.
10960 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
10961 Remove unportable assumptions about print widths of types like
10962 dbus_uint32_t.
10963 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
10964 intptr_t when converting between pointer and integer, to avoid GCC
10965 warnings about wrong width.
10966
666b903b 109672012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
10968
10969 * w32proc.c (new_child): Force Windows to reserve only 64KB of
10970 stack for each reader_thread, instead of defaulting to 8MB
10971 determined by the linker. This avoids failures in creating
10972 subprocesses on Windows 7, see the discussion in this thread:
10973 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
10974
b120cc17
JC
109752012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
10976
10977 Fix up display of the *Minibuf-0* buffer in the mini window.
10978 * keyboard.c (read_char): Don't clear the echo area if there's no
10979 message to clear.
10980 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 10981 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 10982
9a4b36f8
MA
109832012-05-07 Michael Albinus <michael.albinus@gmx.de>
10984
10985 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
10986 batch mode.
10987
e5f9458f
CY
109882012-05-06 Chong Yidong <cyd@gnu.org>
10989
10990 * lisp.mk (lisp): Update.
10991
eceeb5fc 109922012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
10993
10994 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
10995
71873e2b
SM
109962012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
10997
10998 * data.c (PUT_ERROR): New macro.
10999 (syms_of_data): Use it. Add new error type `user-error'.
11000 * undo.c (user_error): New function.
11001 (Fprimitive_undo): Use it.
11002 * print.c (print_error_message): Adjust print style for `user-error'.
11003 * keyboard.c (user_error): New function.
11004 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
11005
ab0fa4e4
PE
110062012-05-03 Paul Eggert <eggert@cs.ucla.edu>
11007
11008 Do not limit current-time-string to years 1000..9999.
11009 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
11010 (Fcurrent_time_string): Support any year that is supported by the
11011 underlying localtime representation. Don't use asctime, as it
11012 has undefined behavior for years outside the range -999..9999.
11013
7ed806a7
PE
110142012-05-02 Paul Eggert <eggert@cs.ucla.edu>
11015
11016 Fix race conditions involving setenv, gmtime, localtime, asctime.
11017 Without this fix, interrupts could mess up code that uses these
11018 nonreentrant functions, since setting TZ invalidates existing
11019 tm_zone or tzname values, and since most of these functions return
11020 pointers to static storage.
11021 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
11022 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
11023 Grow the critical sections to include not just invoking
11024 localtime/gmtime, but also accessing these functions' results
11025 including their tm_zone values if any, and any related TZ setting.
11026 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
11027 so that the struct tm is saved in the critical section.
11028 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
11029 motivated by the fact that memory allocation needs to be outside
11030 the critical section.
11031
0c16dfed
DA
110322012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
11033
11034 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
11035 with RESET_INTERVAL.
11036
11037 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
11038 Remove duplicated buffer name initialization.
11039
3f83ace8
JM
110402012-05-02 Jim Meyering <jim@meyering.net>
11041
11042 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
11043
c7b8541e
JM
11044 * xfns.c (x_window): Use xstrdup (Bug#11375).
11045
90207a15 110462012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
11047
11048 * xdisp.c (pos_visible_p): If already at a newline from the
11049 display string before the 'while' loop, don't walk back the glyphs
11050 from it3.glyph_row. Solves assertion violation when the display
11051 string begins with a newline (egg.el). (Bug#11367)
11052
b593d6a9
AH
110532012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
11054
11055 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
11056 Move to simple.el.
11057
4737362e
GM
110582012-05-01 Glenn Morris <rgm@gnu.org>
11059
99cf43f9
GM
11060 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
11061 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
11062 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
11063 All were removed before 23.1.
11064
9311dcff
GM
11065 * dispnew.c: Remove HAVE_LIBNCURSES test;
11066 it is always true on relevant platforms.
11067
4d5c6349
GM
11068 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
11069 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
11070
4737362e
GM
11071 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
11072
74dd3a6b
AS
110732012-04-30 Andreas Schwab <schwab@linux-m68k.org>
11074
11075 * .gdbinit (xpr): Remove checks for no longer existing misc types.
11076 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
11077 Remove.
11078
13c379ee
PE
110792012-04-28 Paul Eggert <eggert@cs.ucla.edu>
11080
11081 Do not avoid creating empty evaporating overlays (Bug#9642).
11082 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
11083 That is, do not delete an evaporating overlay if it becomes
11084 empty after its bounds are adjusted to fit within its buffer.
11085 This fix caused other problems, and I'm reverting it until we get
11086 to the bottom of them.
11087
a8e7d6d7 110882012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
11089
11090 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
11091
a8e7d6d7 110922012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
11093
11094 * xdisp.c (pos_visible_p): If the window start position is beyond
11095 ZV, start the display from buffer beginning. Prevents assertion
11096 violation in init_iterator when the minibuffer window is scrolled
11097 via the scroll bar.
11098
11099 * window.c (window_scroll_pixel_based): Likewise.
11100
a8e7d6d7 111012012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
11102
11103 * keymap.c (where_is_internal): Doc fix (Bug#10872).
11104
a8e7d6d7 111052012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
11106
11107 * fileio.c (Fcopy_file, Fset_file_selinux_context):
11108 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
11109
a8e7d6d7 111102012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 11111
b593d6a9
AH
11112 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
11113 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 11114
1c6900d9
EZ
111152012-04-26 Eli Zaretskii <eliz@gnu.org>
11116
4c3fa1d9
EZ
11117 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
11118 display element, check also the underlying string or buffer
11119 character. (Bug#11341)
11120
1c6900d9
EZ
11121 * w32menu.c: Include w32heap.h.
11122 (add_menu_item): If the call to AppendMenuW (via
11123 unicode_append_menu) fails, disable Unicode menus only if we are
11124 running on Windows 9X/Me.
11125
42bf8205
AS
111262012-04-24 Andreas Schwab <schwab@linux-m68k.org>
11127
11128 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
11129 (xgetint): Add missing shift for LSB tags.
11130
b1bac16e
MR
111312012-04-24 Martin Rudalics <rudalics@gmx.at>
11132
11133 * keyboard.c (read_char): Don't wipe echo area for select window
11134 events: These might get delayed via `mouse-autoselect-window'
11135 (Bug#11304).
11136
d69621cc
JB
111372012-04-24 Juanma Barranquero <lekktu@gmail.com>
11138
11139 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
11140 manipulation of :loaded-from data.
11141
02fd101b
JB
111422012-04-23 Juanma Barranquero <lekktu@gmail.com>
11143
11144 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
11145 now a cons (bug#11311).
11146
888bec30
PE
111472012-04-23 Paul Eggert <eggert@cs.ucla.edu>
11148
89a438bd
PE
11149 Do not create empty overlays with the evaporate property (Bug#9642).
11150 * buffer.c (Fmove_overlay): Delete an evaporating overlay
11151 if it becomes empty after its bounds are adjusted to fit within
11152 its buffer. Without this fix, in a nonempty buffer (let ((o
11153 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
11154 yields an empty overlay that has the evaporate property, which is
11155 not supposed to happen.
11156
1068fe4d
PE
11157 Fix minor GTK3 problems found by static checking.
11158 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
11159 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
11160 (struct _EmacsFixedClass, emacs_fixed_get_type):
11161 Move decls here from emacsgtkfixed.h, since they needn't be public.
11162 (emacs_fixed_get_type): Now static.
11163 (emacs_fixed_class_init): Omit unused local.
11164 (emacs_fixed_child_type): Remove; unused.
11165 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
11166 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
11167 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
11168 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
11169 (EMACS_FIXED_GET_CLASS): Remove; unused.
11170 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
11171
888bec30
PE
11172 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
11173 Problem reported by Juanma Barranquero for Windows -Wunused-function.
11174
de85e130
PE
111752012-04-22 Paul Eggert <eggert@cs.ucla.edu>
11176
d0baac98 11177 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 11178 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
11179 (__malloc_size_t, __malloc_ptrdiff_t):
11180 Remove. All uses removed, replaced by the definiens if needed,
11181 since we can assume C89 or better now.
11182 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
11183 (protect_malloc_state, align, get_contiguous_space)
11184 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
11185 (malloc_atfork_handler_child, malloc_enable_thread)
11186 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
11187 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
11188 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
11189 (special_realloc, _realloc_internal_nolock, _realloc_internal)
11190 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
11191 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
11192 Define using prototypes, not old style.
11193 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
11194 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
11195 (align): Don't assume that signed integer overflow wraps around.
11196 Omit unused local var.
11197 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
11198 (_free_internal_nolock, memalign, mallochook, reallochook):
11199 Omit no-longer-needed casts.
11200 (valloc): Use getpagesize, not __getpagesize.
11201 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
11202 (struct hdr): The 'magic' member is now size_t, not unsigned long.
11203
de85e130
PE
11204 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
11205
dcbf5805
MA
112062012-04-22 Michael Albinus <michael.albinus@gmx.de>
11207
11208 Move functions from C to Lisp. Make non-blocking method calls
11209 the default. Implement further D-Bus standard interfaces.
11210
11211 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
11212 (QCdbus_request_name_allow_replacement)
11213 (QCdbus_request_name_replace_existing)
11214 (QCdbus_request_name_do_not_queue)
11215 (QCdbus_request_name_reply_primary_owner)
11216 (QCdbus_request_name_reply_in_queue)
11217 (QCdbus_request_name_reply_exists)
11218 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
11219 (QCdbus_registered_serial, QCdbus_registered_method)
11220 (QCdbus_registered_signal): New Lisp objects.
11221 (XD_DEBUG_MESSAGE): Use sizeof.
11222 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
11223 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
11224 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
11225 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
11226 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
11227 (xd_signature, xd_append_arg): Allow float for integer types.
11228 (xd_get_connection_references): New function.
b593d6a9
AH
11229 (xd_get_connection_address): Rename from xd_initialize.
11230 Return cached address.
dcbf5805
MA
11231 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
11232 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
11233 level.
11234 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 11235 Return number of refcounts.
dcbf5805
MA
11236 (Fdbus_get_unique_name): Make stronger parameter check.
11237 (Fdbus_message_internal): New defun.
11238 (Fdbus_call_method, Fdbus_call_method_asynchronously)
11239 (Fdbus_method_return_internal, Fdbus_method_error_internal)
11240 (Fdbus_send_signal, Fdbus_register_service)
11241 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
11242 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
11243 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
11244 (Vdbus_compiled_version, Vdbus_runtime_version)
11245 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
11246 (Vdbus_message_type_method_return, Vdbus_message_type_error)
11247 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
11248 (Vdbus_registered_buses, Vdbus_registered_objects_table):
11249 Adapt docstring.
dcbf5805 11250
52828e02
PE
112512012-04-22 Paul Eggert <eggert@cs.ucla.edu>
11252
da05bc4c
PE
11253 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
11254 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
11255 Do not assume ptrdiff_t is the same width as 'int'.
11256
52828e02
PE
11257 * alloc.c: Handle unusual debugging option combinations.
11258 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
11259 since the two debugging options are incompatible.
11260 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
11261 is defined.
11262 (mem_init, mem_insert, mem_insert_fixup):
11263 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
11264 (NEED_MEM_INSERT): Remove; no longer needed.
11265
f01769f9
LL
112662012-04-22 Leo Liu <sdl.web@gmail.com>
11267
11268 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
11269
5790543d
PE
112702012-04-22 Paul Eggert <eggert@cs.ucla.edu>
11271
11272 * sysdep.c [__FreeBSD__]: Minor cleanups.
11273 (list_system_processes, system_process_attributes) [__FreeBSD__]:
11274 Use Emacs indenting style more consistently. Avoid some casts.
11275 Use 'double' consistently rather than mixing 'float' and 'double'.
11276
b91b7e4d
EW
112772012-04-21 Eduard Wiebe <usenet@pusto.de>
11278
b593d6a9
AH
11279 * sysdep.c (list_system_processes, system_process_attributes):
11280 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 11281
6114eb15
AS
112822012-04-21 Andreas Schwab <schwab@linux-m68k.org>
11283
11284 * lisp.mk (lisp): Update.
11285
2f38dff7
PE
112862012-04-20 Paul Eggert <eggert@cs.ucla.edu>
11287
11288 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
11289 It is never used otherwise.
11290
4ae29f89
SM
112912012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
11292
11293 * print.c (print_preprocess): Only check print_depth if print-circle
11294 is nil.
11295 (print_object): Check for cycles even when print-circle is nil and
11296 print-gensym is t, but only check print_depth if print-circle is nil.
11297
f30d612a
CY
112982012-04-20 Chong Yidong <cyd@gnu.org>
11299
11300 * process.c (wait_reading_process_output): If EIO occurs on a pty,
11301 set the status to "failed" and ensure that sentinel is run.
11302
c07a4c0b 113032012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
11304
11305 * process.c (Fset_process_inherit_coding_system_flag)
11306 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 11307 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 11308
c07a4c0b 113092012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
11310
11311 * xdisp.c (string_buffer_position_lim): Limit starting position to
11312 BEGV.
11313 (set_cursor_from_row): If called for a mode-line or header-line
11314 row, return zero immediately.
11315 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
11316 farther than the first row after the header line, if any.
11317 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
11318 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
11319
c07a4c0b 113202012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 11321
4ae29f89
SM
11322 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
11323 (bug#11238).
ad3a2b41 11324
c07a4c0b 113252012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 113262012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
11327
11328 configure: new option --enable-gcc-warnings (Bug#11207)
11329 * Makefile.in (C_WARNINGS_SWITCH): Remove.
11330 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
11331 (ALL_CFLAGS): Use new macros rather than old.
11332 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
11333 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
11334 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
11335 -Wunused-result, -Wunused-variable. This should go away once
11336 the Emacs and Gnulib regex code is merged.
11337 (xmalloc, xrealloc): Now static.
11338
aba027e8
PE
113392012-04-17 Paul Eggert <eggert@cs.ucla.edu>
11340
11341 * dired.c (Fsystem_groups): Remove unused local.
11342
e5a36063
GM
113432012-04-17 Glenn Morris <rgm@gnu.org>
11344
11345 * dired.c (Fsystem_users): Doc fix.
11346
316411f0
DA
113472012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
11348
11349 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
11350 (syms_of_dired): Add them.
11351
9426aba4
PE
113522012-04-16 Paul Eggert <eggert@cs.ucla.edu>
11353
b62a57be
PE
11354 Fix minor alloc.c problems found by static checking.
11355 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
11356 New extern decls, to avoid calling undeclared functions.
11357 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
11358 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
11359 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
11360 (NEED_MEM_INSERT): New macro.
11361 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 11362 Remove one incorrect comment and fix another.
b62a57be 11363
3539f31f
PE
11364 Fix minor ralloc.c problems found by static checking.
11365 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
11366 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
11367 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
11368 (r_alloc_sbrk): Now static.
11369
a041960a
PE
11370 Improve ralloc.c interface checking.
11371 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
11372 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
11373 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
11374 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
11375 [REL_ALLOC]: ... to here, to check interface.
11376 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
11377 Remove decls. This fixes an "It stinks!".
11378
9426aba4
PE
11379 * alloc.c (which_symbols): Fix alignment issue / type clash.
11380
d55c12ed
AS
113812012-04-15 Andreas Schwab <schwab@linux-m68k.org>
11382
11383 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
11384 (struct Lisp_Misc_Any): Likewise.
11385 (struct Lisp_Free): Likewise.
11386 * alloc.c (union aligned_Lisp_Symbol): Define.
11387 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
11388 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
11389 (union aligned_Lisp_Misc): Define.
11390 (MARKER_BLOCK_SIZE, struct marker_block): Use union
11391 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 11392 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 11393
b948ce8b
PE
113942012-04-14 Paul Eggert <eggert@cs.ucla.edu>
11395
11396 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
11397 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
11398 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
11399 * s/netbsd.h, s/sol2-6.h:
11400 Remove definition of GC_MARK_STACK, since the default now works.
11401 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
11402 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
11403 no longer the default.
11404 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
11405
35dc09a1 114062012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 11407
35dc09a1
GM
11408 * lread.c (lisp_file_lexically_bound_p):
11409 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 11410
35dc09a1
GM
114112012-04-14 Eli Zaretskii <eliz@gnu.org>
11412
11413 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
11414 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
11415
114162012-04-14 Jan Djärv <jan.h.d@swipnet.se>
11417
11418 * nsterm.m (constrainFrameRect): Always constrain when there is only
11419 one screen (Bug#10962).
11420
bcd86815
KB
114212012-04-13 Ken Brown <kbrown@cornell.edu>
11422
11423 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
11424
c25df26e
RT
114252012-04-13 Reuben Thomas <rrt@sc3d.org>
11426
11427 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
11428
0fc59f1e
DC
114292012-04-11 Daniel Colascione <dancol@dancol.org>
11430
11431 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
11432 against is gone. It's better to use vfork now so that when Cygwin
11433 gains a new, working vfork, we use it automatically (bug#10398).
11434
de8c03dc
SM
114352012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
11436
11437 * window.c (save_window_save): Obey window-point-insertion-type.
11438
2f097256
GM
114392012-04-11 Glenn Morris <rgm@gnu.org>
11440
11441 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
11442
453b951e
SM
114432012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
11444
11445 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
11446
75f1671a 114472012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
11448
11449 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
11450 (force_quit_count): New var.
11451 (handle_interrupt): Use it.
11452
2a8ce227
JB
114532012-04-10 Juanma Barranquero <lekktu@gmail.com>
11454
11455 * w32.c (w32_delayed_load): Record the full path of the library
11456 being loaded (bug#10424).
11457
935396c0
GM
114582012-04-09 Glenn Morris <rgm@gnu.org>
11459
05920a43
GM
11460 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
11461 not just in the obarray, before snarfing them. (Bug#11036)
11462
935396c0
GM
11463 * Makefile.in ($(leimdir)/leim-list.el):
11464 Pass EMACS rather than BUILT_EMACS.
11465
a18ecafa
TZ
114662012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
11467
11468 * process.c (make_process):
11469 * process.h: Add integer `gnutls_handshakes_tried' member to
11470 process struct.
11471
6bbef4e5
JC
11472 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
11473 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
11474
11475 * gnutls.c (gnutls_log_function2i): Convenience log function.
11476 (emacs_gnutls_read): Use new log functions,
11477 `gnutls_handshakes_tried' process member, and
11478 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
11479 attempts per process (connection).
11480
b4d3bc10
CY
114812012-04-09 Chong Yidong <cyd@gnu.org>
11482
11483 * eval.c (Fuser_variable_p, user_variable_p_eh)
11484 (lisp_indirect_variable): Functions deleted.
11485 (Fdefvar): Caller changed.
11486
11487 * callint.c (Finteractive, Fcall_interactively):
11488 * minibuf.c (Fread_variable): Callers changed.
11489
70f4d973
EZ
114902012-04-09 Eli Zaretskii <eliz@gnu.org>
11491
11492 * xdisp.c (set_cursor_from_row): If the display string appears in
11493 the buffer at position that is closer to point than the position
11494 after the display string, display the cursor on the first glyph of
11495 the display string. Fixes cursor display when a 'display' text
11496 property immediately follows invisible text. (Bug#11094)
11497
cb3c2e3e
PE
114982012-04-09 Paul Eggert <eggert@cs.ucla.edu>
11499
11500 composite.c: use 'double' consistently
11501 * composite.c (get_composition_id): Use 'double' consistently
11502 instead of converting 'float' to 'double' and vice versa; this is
11503 easier to understand and avoids a GCC warning.
11504
fd06db5d
GM
115052012-04-09 Glenn Morris <rgm@gnu.org>
11506
50fe702a
GM
11507 * Makefile.in: Generate leim-list with bootstrap-emacs, in
11508 preparation for dumping it with emacs. (Bug#4789)
11509 (leimdir): New variable.
11510 ($(leimdir)/leim-list.el): New rule.
11511 (emacs$(EXEEXT)): Depend on leim-list.el.
11512
fd06db5d
GM
11513 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
11514 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
11515 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
11516
55c131ee
AS
115172012-04-08 Andreas Schwab <schwab@linux-m68k.org>
11518
11519 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
11520 proper alignment.
11521
9209588f
JB
115222012-04-07 Juanma Barranquero <lekktu@gmail.com>
11523
11524 * xml.c (init_libxml2_functions) [WINDOWSNT]:
11525 Remove unused local variable.
11526
e3fb2efb
PE
115272012-04-07 Paul Eggert <eggert@cs.ucla.edu>
11528
11529 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
11530 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
11531 (mark_memory): Mark Lisp_Objects only if pointers might hide in
11532 objects, as mark_maybe_pointer will catch them otherwise.
11533 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
11534 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
11535
b5385551
PE
115362012-04-07 Paul Eggert <eggert@cs.ucla.edu>
11537
11538 Fix typo that broke non-Windows builds.
11539 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
11540
9078ead6
EZ
115412012-04-07 Eli Zaretskii <eliz@gnu.org>
11542
11543 Support building on MS-Windows with libxml2.
11544
11545 * makefile.w32-in (OBJ2): Add xml.$(O).
11546 (GLOBAL_SOURCES): Add xml.c.
11547 ($(BLD)/xml.$(O)): New dependency list.
11548
11549 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
11550 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
11551 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
11552 [!WINDOWSNT]: New macros.
11553 (init_libxml2_functions, libxml2_loaded_p): New functions.
11554 (parse_region): Call fn_xmlCheckVersion instead of using the macro
11555 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
11556 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
11557 Calls xmlCleanupParser only if libxml2 was loaded (or statically
11558 linked in).
6bbef4e5
JC
11559 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
11560 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
11561 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
11562
11563 * emacs.c: Don't include libxml/parser.h.
11564 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
11565 xmlCleanupParser directly.
11566
11567 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
11568
3811fdf3
EZ
115692012-04-07 Eli Zaretskii <eliz@gnu.org>
11570
11571 * indent.c (Fvertical_motion): If there is a display string at
11572 point, use it.vpos to compute how many lines to backtrack after
11573 move_it_to point. (Bug#11133)
11574
2f8e16b2
EZ
115752012-04-06 Eli Zaretskii <eliz@gnu.org>
11576
11577 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
11578 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
11579 about subtle differences between FETCH_CHAR* and STRING_CHAR*
11580 macros related to unification of CJK characters. For the details,
11581 see the discussion following the message here:
11582 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
11583
3d439cd1
CY
115842012-04-04 Chong Yidong <cyd@gnu.org>
11585
11586 * keyboard.c (Vdelayed_warnings_list): Doc fix.
11587
8bc53d00
EZ
115882012-04-01 Eli Zaretskii <eliz@gnu.org>
11589
11590 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
11591 instead of alloca. (Bug#11138)
11592
3b0512a3
AS
115932012-04-01 Andreas Schwab <schwab@linux-m68k.org>
11594
11595 * w32menu.c (is_simple_dialog): Properly check lisp types.
11596 (Bug#11141)
11597
8427ddd2
EZ
115982012-03-31 Eli Zaretskii <eliz@gnu.org>
11599
979022ef
EZ
11600 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
11601 position we get to after a call to move_it_to fails the
11602 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
11603 only if we wind up in a string from display property. (Bug#11063)
11604
a6b1c7cc
EZ
11605 * window.c (Fdelete_other_windows_internal): Invalidate the row
11606 and column information about mouse highlight, so that redisplay
11607 restores it after reallocating the glyph matrices. (Bug#7464)
11608
8427ddd2
EZ
11609 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
11610 string comes from a `display' text property, use the buffer
11611 position of that property as if we actually saw that position in
11612 the row's glyphs.
697ba24b
EZ
11613 (move_it_by_lines): Remove the assertion that
11614 "it->current_x == 0 && it->hpos == 0" which can be legitimately
11615 violated when there's a before-string at the beginning of a line.
11616 (Bug#11063)
8427ddd2 11617
65a0a738
EZ
116182012-03-30 Eli Zaretskii <eliz@gnu.org>
11619
11620 * xdisp.c (append_space_for_newline): If the default face was
11621 remapped, use the remapped face for the appended newline.
11622 (extend_face_to_end_of_line): Use the remapped default face for
11623 extending the face to the end of the line.
11624 (display_line): Call extend_face_to_end_of_line when the default
11625 face was remapped. (Bug#11068)
11626
581355cc
EZ
116272012-03-29 Eli Zaretskii <eliz@gnu.org>
11628
11629 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
11630
e8fc049f
SM
116312012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11632
11633 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
11634
4fb9a543
GM
116352012-03-27 Glenn Morris <rgm@gnu.org>
11636
11637 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
11638 Doc fixes.
11639
679910f1
KH
116402012-03-26 Kenichi Handa <handa@m17n.org>
11641
11642 * dispextern.h (struct glyph): Fix previous change. Change the
11643 bit length of glyphless.ch to 25 (Bug#11082).
11644
90d49b7f
CY
116452012-03-26 Chong Yidong <cyd@gnu.org>
11646
11647 * keyboard.c (Vselection_inhibit_update_commands): New variable.
11648 (command_loop_1): Use it; inhibit selection update for
11649 handle-select-window too (Bug#8996).
11650
f514f6f0
FP
116512012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
11652
e8fc049f 11653 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 11654
bf43fa51
KH
116552012-03-25 Kenichi Handa <handa@m17n.org>
11656
11657 * dispextern.h (struct glyph): Change the bit length of
11658 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
11659
8a0c01dd
EZ
116602012-03-24 Eli Zaretskii <eliz@gnu.org>
11661
11662 * s/ms-w32.h (tzname): Include time.h before redirecting to
11663 _tzname. Fixes the MSVC build. (Bug#9960)
11664
7d1c3a76
AS
116652012-03-24 Andreas Schwab <schwab@linux-m68k.org>
11666
8ed79523
AS
11667 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
11668 characters.
11669
7d1c3a76
AS
11670 * xterm.c (XTread_socket): Only modify handling_signal if
11671 !SYNC_INPUT. (Bug#11080)
11672
e99a9b8b
EZ
116732012-03-23 Eli Zaretskii <eliz@gnu.org>
11674
11675 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
11676 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
11677 when fetching a multibyte character consumes more bytes than
11678 CHAR_BYTES returns, due to unification of CJK characters in
11679 string_char. (Bug#11073)
11680
5063c0e1
TN
116812012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
11682
11683 * process.c (wait_reading_process_output): Handle pty disconnect
11684 by refraining from sending oneself a SIGCHLD (bug#10933).
11685
9f851fbd
CY
116862012-03-22 Chong Yidong <cyd@gnu.org>
11687
11688 * dispextern.h (struct it): New member string_from_prefix_prop_p.
11689
5063c0e1 11690 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
11691 Mark string as coming from a prefix property.
11692 (handle_face_prop): Use default face for prefix strings (Bug#4281).
11693 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
11694
fb5b8aca
CY
116952012-03-21 Chong Yidong <cyd@gnu.org>
11696
11697 * xfaces.c (Vface_remapping_alist): Doc fix.
11698
62356a1b
EZ
116992012-03-20 Eli Zaretskii <eliz@gnu.org>
11700
11701 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
11702 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
11703 Doc fixes.
62356a1b 11704
025de85b
CY
117052012-03-20 Chong Yidong <cyd@gnu.org>
11706
11707 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
11708 to reflect default non-nil value of redisplay-dont-pause.
11709
4827f94e
KH
117102012-03-19 Kenichi Handa <handa@m17n.org>
11711
11712 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
11713 it fit in a valid range (Bug#11003).
11714
e50a24a2
EZ
117152012-03-18 Eli Zaretskii <eliz@gnu.org>
11716
11717 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
11718 that is not from display property, accept the row as a "cursor
11719 row" if one of the string's character has a non-nil `cursor'
11720 property. Fixes cursor positioning when there are newlines in
11721 overlay strings, e.g. in icomplete.el. (Bug#11035)
11722
9af5ed87
PE
117232012-03-12 Paul Eggert <eggert@cs.ucla.edu>
11724
11725 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
11726
d1f55f16
CY
117272012-03-12 Chong Yidong <cyd@gnu.org>
11728
11729 * eval.c (inhibit_lisp_code): Rename from
11730 inhibit_window_configuration_change_hook; move from window.c.
11731
11732 * xfns.c (unwind_create_frame_1, Fx_create_frame):
11733 * window.c (run_window_configuration_change_hook)
11734 (syms_of_window): Callers changed.
11735
66c5eebd
CY
117362012-03-11 Chong Yidong <cyd@gnu.org>
11737
413df973
CY
11738 * keymap.c (Fkey_description): Doc fix (Bug#9700).
11739
66c5eebd
CY
11740 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
11741
1de11f56
CY
117422012-03-10 Chong Yidong <cyd@gnu.org>
11743
11744 * frame.c (other_visible_frames): Don't assume the selected frame
11745 is visible (Bug#10955).
11746
cae07000
SM
117472012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
11748
11749 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
11750
89c94350
JD
117512012-03-08 Jan Djärv <jan.h.d@swipnet.se>
11752
11753 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
11754 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
11755 zero (Bug#10954).
11756
999dd333
GM
117572012-03-03 Glenn Morris <rgm@gnu.org>
11758
01a6dcc8 11759 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 11760
de0100f2
EZ
117612012-03-02 Eli Zaretskii <eliz@gnu.org>
11762
11763 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
11764 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
11765 (redisplay_window, next_element_from_string): Fix typos in
11766 comments.
3e441275
EZ
11767 (redisplay_window): Pass to move_it_vertically the margin in
11768 pixels, not in screen lines.
de0100f2 11769
96a72ee9
GM
117702012-03-02 Glenn Morris <rgm@gnu.org>
11771
11772 * buffer.c (buffer-list-update-hook): Doc fix.
11773
312508d7
EZ
117742012-02-29 Eli Zaretskii <eliz@gnu.org>
11775
11776 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
11777 push_it before setting up the iterator for the first overlay
11778 string, even if we have an empty string loaded.
11779 (next_overlay_string): If there's an empty string on the iterator
11780 stack, pop the stack. (Bug#10903)
11781
27f3c637
PE
117822012-02-25 Paul Eggert <eggert@cs.ucla.edu>
11783
11784 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
11785 Suggested by Stefan Monnier in
11786 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
11787 * alloc.c (widen_to_Lisp_Object): New static function.
11788 (mark_memory): Also mark Lisp_Objects by fetching pointer words
11789 and widening them to Lisp_Objects. This would work even if
11790 USE_LSB_TAG is defined and wide integers are used, which might
11791 happen in a future version of Emacs.
11792
3c9dfce6
CY
117932012-02-25 Chong Yidong <cyd@gnu.org>
11794
fa74b241
CY
11795 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
11796 Doc fix.
11797
3c9dfce6
CY
11798 * xselect.c (Fx_selection_exists_p): Doc fix.
11799 (x_clipboard_manager_save_all): Print an informative message
11800 before saving to clipboard manager.
11801
9486df08
CY
118022012-02-24 Chong Yidong <cyd@gnu.org>
11803
11804 * keyboard.c (process_special_events): Handle all X selection
11805 requests in kbd_buffer, not just the next one (Bug#8869).
11806
f01d3321
CY
118072012-02-23 Chong Yidong <cyd@gnu.org>
11808
11809 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
11810 call when setting menu-bar-lines and tool-bar-lines parameters.
11811 (unwind_create_frame_1): New helper function.
11812
11813 * window.c (inhibit_window_configuration_change_hook): New var.
11814 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 11815 (syms_of_window): Initialize it.
f01d3321 11816
86b847b6
CY
118172012-02-22 Chong Yidong <cyd@gnu.org>
11818
11819 * xterm.c (x_draw_image_relief): Add missing type check for
11820 Vtool_bar_button_margin (Bug#10743).
11821
a59225b1
CY
118222012-02-21 Chong Yidong <cyd@gnu.org>
11823
11824 * fileio.c (Vfile_name_handler_alist): Doc fix.
11825
11826 * buffer.c (Fget_file_buffer): Protect against invalid file
11827 handler return value.
11828
310f5bd4
PE
118292012-02-20 Paul Eggert <eggert@cs.ucla.edu>
11830
cb3a28cc
PE
11831 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
11832 when computing $valmask.
11833
310f5bd4
PE
11834 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
11835 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
11836 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
11837 It's useless in that case, and it can cause problems on hosts
11838 that allocate halves of EMACS_INT values separately.
11839 Reported by Dan Horák. Diagnosed by Andreas Schwab in
11840 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
11841 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
11842 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
11843 it avoids undefined behavior on hosts where shifting right by more
11844 than the word width has undefined behavior.
11845
2375c96a
CY
118462012-02-19 Chong Yidong <cyd@gnu.org>
11847
11848 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
11849 (Funhandled_file_name_directory, Ffile_name_as_directory)
11850 (Fdirectory_file_name, Fexpand_file_name)
11851 (Fsubstitute_in_file_name): Protect against invalid file handler
11852 return values (Bug#10845).
11853
3eb49e71
EZ
118542012-02-18 Eli Zaretskii <eliz@gnu.org>
11855
11856 * .gdbinit (pitx): Fix incorrect references to fields of the
11857 iterator stack.
11858
7b926f3f
CY
118592012-02-17 Chong Yidong <cyd@gnu.org>
11860
11861 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
11862
11273115
PE
118632012-02-15 Paul Eggert <eggert@cs.ucla.edu>
11864
11865 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
11866 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
11867
c3a70e2b
CY
118682012-02-15 Chong Yidong <cyd@gnu.org>
11869
11870 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
11871 marked as special. Also, starting docstrings with * is obsolete.
11872
0ca43699
AS
118732012-02-13 Andreas Schwab <schwab@linux-m68k.org>
11874
11875 * gnutls.c (emacs_gnutls_write): Fix last change.
11876
2e8f3c56
LI
118772012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
11878
11879 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
11880 send_process.
11881
af70074f
SM
118822012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
11883
11884 * keymap.c (Fsingle_key_description): Handle char ranges.
11885
95986d52
CY
118862012-02-12 Chong Yidong <cyd@gnu.org>
11887
afd83bd1
CY
11888 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
11889 as that creates a dangerous corner case.
11890
95986d52
CY
11891 * window.c (Fdelete_window_internal): Invalidate the mouse
11892 highlight (Bug#9904).
11893
bd7da63e
GM
118942012-02-12 Glenn Morris <rgm@gnu.org>
11895
11896 * xselect.c (Fx_own_selection_internal)
11897 (Fx_get_selection_internal, Fx_disown_selection_internal)
11898 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
11899 * nsselect.m (Fx_own_selection_internal)
11900 (Fx_disown_selection_internal, Fx_selection_exists_p)
11901 (Fx_selection_owner_p, Fx_get_selection_internal):
11902 Sync docs and argument specs with the xselect.c versions.
11903
77abcbc2
LI
119042012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
11905
11906 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
11907
90b671e2
EZ
119082012-02-11 Eli Zaretskii <eliz@gnu.org>
11909
1c0ca0b7
EZ
11910 * w32select.c (Fx_selection_exists_p): Sync doc string and
11911 argument list with xselect.c. (Bug#10783)
11912
11913 * w16select.c (Fx_selection_exists_p): Sync doc string and
11914 argument list with xselect.c. (Bug#10783)
90b671e2 11915
49241268
GM
119162012-02-10 Glenn Morris <rgm@gnu.org>
11917
11918 * fns.c (Fsecure_hash): Doc fix.
11919
f998bbe7 119202012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
11921
11922 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
11923
0992bd9c
CY
119242012-02-07 Chong Yidong <cyd@gnu.org>
11925
11926 * buffer.c (Fbuffer_local_variables)
11927 (buffer_lisp_local_variables): Handle unbound vars correctly;
11928 don't let Qunbound leak into Lisp.
11929
af008560
GM
119302012-02-07 Glenn Morris <rgm@gnu.org>
11931
dd605cc4
GM
11932 * image.c (Fimagemagick_types): Doc fix.
11933
af008560
GM
11934 * image.c (imagemagick-render-type): Change it from a lisp object
11935 to an integer. Move the doc here from the lisp manual.
11936 Treat all values not equal to 0 the same.
11937
1449fa1d
CY
119382012-02-06 Chong Yidong <cyd@gnu.org>
11939
11940 * doc.c (store_function_docstring): Avoid applying docstring of
11941 alias to base function (Bug#2603).
11942
3723ec07
AS
119432012-02-04 Andreas Schwab <schwab@linux-m68k.org>
11944
11945 * .gdbinit (pp1, pv1): Remove redundant defines.
11946 (pr): Use pp.
11947
79c1cc1e
CY
119482012-02-04 Chong Yidong <cyd@gnu.org>
11949
11950 * nsterm.m: Declare a global (Bug#10694).
11951
d7f29f8e
EZ
119522012-02-04 Eli Zaretskii <eliz@gnu.org>
11953
cae07000
SM
11954 * w32.c (get_emacs_configuration_options):
11955 Include --enable-checking, if specified, in the return value.
d7f29f8e 11956
3b95a6f9
MR
119572012-02-04 Martin Rudalics <rudalics@gmx.at>
11958
11959 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
11960 after rounding frame sizes. (Bug#9723)
11961
d6fa96a6
EZ
119622012-02-04 Eli Zaretskii <eliz@gnu.org>
11963
11964 * keyboard.c (adjust_point_for_property): Don't position point
11965 before BEGV. (Bug#10696)
11966
df0b2940
PE
119672012-02-03 Paul Eggert <eggert@cs.ucla.edu>
11968
11969 Handle overflow when computing char display width (Bug#9496).
11970 * character.c (char_width): Return EMACS_INT, not int.
11971 (char_width, c_string_width): Check for overflow when
11972 computing the width; this is possible now that individual
11973 characters can have unbounded width. Problem introduced
11974 by merge from Emacs 23 on 2012-01-19.
11975
6bee44d6
MA
119762012-02-02 Michael Albinus <michael.albinus@gmx.de>
11977
11978 * dbusbind.c (Fdbus_register_method): Mention the return value
11979 :ignore in the docstring.
11980
44f92739
GM
119812012-02-02 Glenn Morris <rgm@gnu.org>
11982
1b9f60cc
GM
11983 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
11984
44f92739
GM
11985 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
11986 Unconditionally set to t. (Bug#10673)
11987 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
11988 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
11989 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
11990
c5d3843c
KH
119912012-02-02 Kenichi Handa <handa@m17n.org>
11992
11993 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
11994 0, do not call append_composite_glyph.
11995
159462d4 119962012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
11997
11998 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
11999 NULL (Bug#6988).
12000 (x_produce_glyphs): If the component of a composition is a null
12001 string, set it->pixel_width to 1 to avoid zero-width glyph.
12002
78cef877
EZ
120032012-02-01 Eli Zaretskii <eliz@gnu.org>
12004
12005 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
12006 first 2 arguments are identical. This makes inserting large
12007 output from a subprocess an order of magnitude faster on
12008 MS-Windows, where all sbrk'ed memory is always contiguous.
12009
97897668
GM
120102012-01-31 Glenn Morris <rgm@gnu.org>
12011
12012 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 12013 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
12014 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
12015
31fd3586
GM
120162012-01-29 Glenn Morris <rgm@gnu.org>
12017
12018 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
12019
0e24a8b2
CY
120202012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
12021
12022 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
12023
cc0adcb0
CY
120242012-01-28 Chong Yidong <cyd@gnu.org>
12025
12026 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
12027
acc28cb9
CY
120282012-01-26 Chong Yidong <cyd@gnu.org>
12029
9c69cfb7
CY
12030 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
12031
acc28cb9
CY
12032 * search.c (Fsearch_forward, Fsearch_backward): Document negative
12033 repeat counts (Bug#10507).
12034
48da7392
GM
120352012-01-26 Glenn Morris <rgm@gnu.org>
12036
12037 * lread.c (syms_of_lread): Doc fix.
12038
14af5f7f
CY
120392012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
12040
12041 * coding.c (encode_designation_at_bol): Change return value to
12042 EMACS_INT.
12043
0b21c100
CY
120442012-01-25 Chong Yidong <cyd@gnu.org>
12045
12046 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
12047
3c2907f7
CY
120482012-01-21 Chong Yidong <cyd@gnu.org>
12049
12050 * floatfns.c (Fcopysign): Make the second argument non-optional,
12051 since nil is not allowed anyway.
12052
959ad23f
AS
120532012-01-21 Andreas Schwab <schwab@linux-m68k.org>
12054
12055 * process.c (read_process_output): Use p instead of XPROCESS (proc).
12056 (send_process): Likewise.
12057
34a02f46
MR
120582012-01-19 Martin Rudalics <rudalics@gmx.at>
12059
12060 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
12061 (Vwindow_persistent_parameters): Do not use Qstate.
12062 Rewrite doc-strings.
34a02f46 12063
1259009a 120642012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
12065
12066 * character.c (char_width): New function.
70d4fdf6
GM
12067 (Fchar_width, c_string_width, lisp_string_width):
12068 Use char_width (Bug#9496).
25ed9e61 12069
6a6ee00d
MR
120702012-01-16 Martin Rudalics <rudalics@gmx.at>
12071
12072 * window.c (Vwindow_persistent_parameters): New variable.
12073 (Fset_window_configuration, save_window_save): Handle persistent
12074 window parameters.
12075
c85efaf7
EZ
120762012-01-14 Eli Zaretskii <eliz@gnu.org>
12077
12078 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
12079 thrashing the stack of the thread. (Bug#9087)
12080
5944709e
PE
120812012-01-12 Paul Eggert <eggert@cs.ucla.edu>
12082
12083 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
12084
e71f5d99
EZ
120852012-01-11 Eli Zaretskii <eliz@gnu.org>
12086
12087 * xdisp.c (rows_from_pos_range): Handle the case where the
12088 highlight ends on a newline. (Bug#10464)
12089 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
12090 he end column for display of highlight that ends on a newline
12091 before a R2L line.
12092
ce316182
GM
120932012-01-11 Glenn Morris <rgm@gnu.org>
12094
12095 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
12096 from load-path also when installation-directory is nil. (Bug#10208)
12097
5b43da69
GM
120982012-01-10 Glenn Morris <rgm@gnu.org>
12099
74cc8ff9
GM
12100 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
12101
7d8d6e4e
GM
12102 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
12103 Update template values to be closer to their typical values these days.
5b43da69 12104
a0db8d43
EZ
121052012-01-09 Eli Zaretskii <eliz@gnu.org>
12106
12107 * xdisp.c (rows_from_pos_range): Accept additional argument
12108 DISP_STRING, and accept any glyph in a row whose object is that
12109 string as eligible for mouse highlight. Fixes mouse highlight of
12110 display strings from overlays. (Bug#10464)
12111
9a0115ab 121122012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 12113
b9110d6a 12114 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
12115 * fileio.c (auto_saving_dir_umask): New static var.
12116 (Fmake_directory_internal): Use it.
12117 (do_auto_save_make_dir): Set it, instead of invoking chmod after
12118 creating the directory. The old code temporarily assigns
12119 too-generous permissions to the directory.
12120 (do_auto_save_eh): Clear it.
b9110d6a 12121 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
12122 that the var is always cleared.
12123
6c1bd3f3
EZ
121242012-01-07 Eli Zaretskii <eliz@gnu.org>
12125
12126 * search.c (scan_buffer): Pass character positions to
12127 know_region_cache, not byte positions. (Bug#6540)
12128
069d2b50
L
121292012-01-07 LynX <_LynX@bk.ru> (tiny change)
12130
12131 * w32.c (sys_rename): Report EXDEV when rename of a directory
12132 fails because the target is on another logical disk. (Bug#10284)
12133
75bf0d33
DB
121342012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
12135
12136 * xterm.c (x_embed_request_focus): New function.
12137
12138 * xterm.h: Add prototype.
12139
12140 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
12141
1c6e5a32
GM
121422012-01-05 Glenn Morris <rgm@gnu.org>
12143
12144 * emacs.c (emacs_copyright): Update short copyright year to 2012.
12145
651e947e
EZ
121462012-01-01 Eli Zaretskii <eliz@gnu.org>
12147
12148 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
12149 Load gnutls_transport_set_lowat only if GnuTLS version is below
12150 2.11.1.
12151 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
12152 GnuTLS versions below 2.11.1.
12153
3778cdd8
AL
121542011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
12155
12156 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
12157 to the doc string advising against its use for altering the way
12158 windows are scrolled.
12159
0e5317f7
KH
121602011-12-28 Kenichi Handa <handa@m17n.org>
12161
12162 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
12163 coding-system ASCII compatible only when it does not produce BOM
12164 on encoding (Bug#10383).
12165
93d5ca1f
JD
121662011-12-26 Jan Djärv <jan.h.d@swipnet.se>
12167
12168 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
12169 can scroll.
12170 (create_and_show_popup_menu): Always use menu_position_func for
12171 Gtk3 (Bug#10361).
12172
ca22b785
AS
121732011-12-24 Andreas Schwab <schwab@linux-m68k.org>
12174
12175 * callint.c (Fcall_interactively): Don't truncate prompt string.
12176
d048e1e6
EZ
121772011-12-23 Eli Zaretskii <eliz@gnu.org>
12178
12179 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
12180 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 12181 resumed from there (after widening). (Bug#10360)
d048e1e6 12182
5ccaba1f
JD
121832011-12-22 Jan Djärv <jan.h.d@swipnet.se>
12184
12185 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
12186
204ee57f
JD
121872011-12-21 Jan Djärv <jan.h.d@swipnet.se>
12188
b81d40f0
JB
12189 * nsterm.m (x_free_frame_resources):
12190 Release f->output_data.ns->miniimage.
204ee57f
JD
12191 (ns_index_color): Fix indentation. Do not retain
12192 color_table->colors[i].
12193
12194 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
12195 before returning.
12196
12197 * nsfns.m (x_set_background_color): Assign return value from
12198 ns_index_color to face-background instead of NSColor*.
12199 (ns_implicitly_set_icon_type): Fix indentation.
12200 Change assignment in for loop to comparison.
12201
12202 * emacs.c (ns_pool): New variable.
12203 (main): Assign ns_pool.
12204 (Fkill_emacs): Call ns_release_autorelease_pool.
12205
12206 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
12207 autorelease fdesc, release fdAttrs and tdict.
12208 (ns_get_covering_families): Release charset.
12209 (ns_findfonts): Release NSFontDescriptor created with new.
12210 (ns_uni_to_glyphs): Fix indentation.
12211 (setString): Release attrStr before assigning new value.
12212
c803b2b7
JD
122132011-12-18 Jan Djärv <jan.h.d@swipnet.se>
12214
678f4426
JD
12215 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
12216 and NS_IMPL_COCOA.
12217 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
12218 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
12219
cd394be1 122202011-12-18 David Reitter <reitter@cmu.edu>
678f4426 12221
5fecd5fc
JD
12222 * nsterm.m (ns_term_init): Subscribe for notifications
12223 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
12224 to method trackingNotification in EmacsMenu.
12225
12226 * nsmenu.m (trackingMenu): New variable.
3771cb17 12227 (trackingNotification): New method (from Aquamacs).
5fecd5fc 12228 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 12229 from Aquamacs (Bug#7030).
678f4426
JD
12230
122312011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 12232
c803b2b7
JD
12233 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
12234 (symbol_to_nsstring): Fix indentation.
12235 (ns_symbol_to_pb): New function.
cae07000
SM
12236 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
12237 (Fns_rotate_cut_buffers_internal): Remove.
12238 (Fns_store_selection_internal): Rename from
c803b2b7
JD
12239 Fns_store_cut_buffer_internal.
12240 (ns_get_foreign_selection, Fx_own_selection_internal)
12241 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
12242 (Fns_get_selection_internal, Fns_store_selection_internal):
12243 Use ns_symbol_to_pb and check if return value is nil.
12244 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
12245 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
12246 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
12247 renamed to Sns_store_selection_internal.
12248 (ns_handle_selection_request): Move code to Fx_own_selection_internal
12249 and remove this function.
12250 (ns_handle_selection_clear): Remove, never used.
12251 (Fx_own_selection_internal): Move code from ns_handle_selection_request
12252 here.
12253
e1b01a3a
KB
122542011-12-17 Ken Brown <kbrown@cornell.edu>
12255
12256 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
12257 GID is unknown (Bug#10257).
12258
2adb6e85
PE
122592011-12-17 Paul Eggert <eggert@cs.ucla.edu>
12260
12261 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
12262 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
12263 which caused a build failure on GNU/Linux IA-64. This problem was
12264 introduced by my 2011-10-07 patch.
12265
d1d7b339
JL
122662011-12-15 Juri Linkov <juri@jurta.org>
12267
12268 * image.c (imagemagick_error): New function. (Bug#10112)
12269 (imagemagick_load_image): Comment out `MagickSetResolution' call.
12270 Use `imagemagick_error' where ImageMagick functions return
12271 `MagickFalse'.
12272 (Fimagemagick_types): Add `Fnreverse' to return the list in the
12273 proper order.
12274
100d5755
KH
122752011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12276
12277 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
12278 fill background (Bug#8992).
12279
454592a6
MR
122802011-12-13 Martin Rudalics <rudalics@gmx.at>
12281
12282 * window.c (Vwindow_combination_resize)
12283 (Vwindow_combination_limit): Use t instead of non-nil in
12284 doc-strings.
61d4b438
MR
12285 (Vrecenter_redisplay): Add first sentence of doc-string on
12286 separate line.
53524d93 12287 (Frecenter): Fix doc-string typo.
454592a6 12288
3633e3aa
KH
122892011-12-11 Kenichi Handa <handa@m17n.org>
12290
12291 * coding.c (Funencodable_char_position): Pay attention to the
12292 buffer text relocation (Bug#9389).
12293
7b9d523a 122942011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 12295
7b9d523a
JD
12296 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
12297 gtk_init (Bug#10100).
12298
b73189c6
EZ
122992011-12-10 Eli Zaretskii <eliz@gnu.org>
12300
12301 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
12302 IT->string is nil. (Bug#10263)
12303
f7dfe5d6
JD
123042011-12-10 Jan Djärv <jan.h.d@swipnet.se>
12305
83faebb4
JD
12306 * nsterm.h (x_free_frame_resources): Declare.
12307
f7dfe5d6
JD
12308 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
12309 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
12310
12311 * nsterm.h (ns_get_defaults_value): Declare.
12312
12313 * nsterm.m (ns_default): Call ns_get_defaults_value.
12314
7cd4e72c
EZ
123152011-12-09 Eli Zaretskii <eliz@gnu.org>
12316
12317 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
12318 (Bug#10170)
12319
b34d7317
YM
123202011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12321
12322 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
12323 that where the value of an _OBJC_* symbol points to is in the .bss
12324 section (Bug#10240).
12325
76470ad1
KH
123262011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
12327
12328 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 12329 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 12330
745fff94
KH
123312011-12-08 Kenichi Handa <handa@m17n.org>
12332
12333 * ftfont.c (get_adstyle_property): Fix previous change
12334 (Bug#10233).
12335
6e44397c
JB
123362011-12-07 Juanma Barranquero <lekktu@gmail.com>
12337
12338 * w32.c (init_environment): If no_site_lisp, remove site-lisp
12339 dirs from the default value of EMACSLOADPATH (bug#10208).
12340
7efa6272
GM
123412011-12-07 Glenn Morris <rgm@gnu.org>
12342
12343 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
12344 installation and source directories as well. (Bug#10208)
12345
f6fc4d87
CY
123462011-12-06 Chong Yidong <cyd@gnu.org>
12347
12348 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
12349
2bf26180
GM
123502011-12-06 Glenn Morris <rgm@gnu.org>
12351
12352 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
12353 as an error, not just -1. (Bug#10217)
12354
3a6ad4f0
CY
123552011-12-05 Chong Yidong <cyd@gnu.org>
12356
12357 * keyboard.c (process_special_events): New function.
12358 (swallow_events, Finput_pending_p): Use it (Bug#10195).
12359
75a3b399
PE
123602011-12-05 Paul Eggert <eggert@cs.ucla.edu>
12361
12362 * coding.c (encode_designation_at_bol): Don't use uninitialized
12363 local variable (Bug#9318).
12364
c3c9e25e
KH
123652011-12-05 Kenichi Handa <handa@m17n.org>
12366
12367 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
12368 return Qnil (Bug#8046, Bug#10193).
12369
5eb05ea3
KH
123702011-12-05 Kenichi Handa <handa@m17n.org>
12371
12372 * coding.c (encode_designation_at_bol): New args charbuf_end and
12373 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
12374 (coding_set_source): Return how many bytes coding->source was
12375 relocated.
12376 (coding_set_destination): Return how many bytes
12377 coding->destination was relocated.
12378 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 12379 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
12380
123812011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
12382
12383 * coding.c (CODING_CHAR_CHARSET_P): New macro.
12384 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
12385 macro (Bug#9318).
12386
123872011-12-05 Andreas Schwab <schwab@linux-m68k.org>
12388
12389 The following changes are to fix Bug#9318.
12390
a79703f5 12391 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
12392 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
12393 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 12394 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 12395
7dbda6df
JB
123962011-12-05 Juanma Barranquero <lekktu@gmail.com>
12397
12398 * lisp.h (process_quit_flag): Fix external declaration.
12399
6d5eb5b0
SM
124002011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
12401
12402 Don't macro-inline non-performance-critical code.
12403 * eval.c (process_quit_flag): New function.
12404 * lisp.h (QUIT): Use it.
12405
a0c3fad0
JD
124062011-12-04 Jan Djärv <jan.h.d@swipnet.se>
12407
12408 * nsfns.m (get_geometry_from_preferences): New function.
12409 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
12410
6c07aac2
AS
124112011-12-04 Andreas Schwab <schwab@linux-m68k.org>
12412
12413 * emacs.c (Qkill_emacs): Define.
12414 (syms_of_emacs): Initialize it.
12415 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
12416 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
12417 (quit_throw_to_read_char): Add parameter `from_signal'.
12418 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
12419 * lisp.h (QUIT): Call Fkill_emacs if requested.
12420
c052ead4
JD
124212011-12-03 Jan Djärv <jan.h.d@swipnet.se>
12422
12423 * widget.c (update_wm_hints): Return if wmshell is null.
12424 (widget_update_wm_size_hints): New function.
12425
12426 * widget.h (widget_update_wm_size_hints): Declare.
12427
12428 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
12429 widget_update_wm_size_hints (Bug#10104).
12430
9e49252b
EZ
124312011-12-03 Eli Zaretskii <eliz@gnu.org>
12432
12433 * xdisp.c (handle_invisible_prop): If the invisible text ends just
12434 before a newline, prepare the bidi iterator for consuming the
12435 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 12436 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 12437
02b16839
JL
124382011-12-02 Juri Linkov <juri@jurta.org>
12439
12440 * search.c (Fword_search_regexp): New Lisp function created from
12441 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
12442 (Fword_search_backward, Fword_search_forward)
12443 (Fword_search_backward_lax, Fword_search_forward_lax):
12444 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
12445 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
12446
0068070e
SM
124472011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
12448
12449 * fileio.c (Finsert_file_contents): Move after-change-function call
12450 to before the "handled:" label, since all "goto handled" appear in
12451 cases where the *-change-functions have already been properly called
12452 (bug#10117).
12453
3360a3fc
AS
124542011-12-01 Andreas Schwab <schwab@linux-m68k.org>
12455
12456 * keyboard.c (interrupt_signal): Don't call kill-emacs when
12457 waiting for input. (Bug#10169)
12458
73d6c093
EZ
124592011-11-30 Eli Zaretskii <eliz@gnu.org>
12460
12461 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
12462 verifies glyph row's hash code--we have just reallocated the
12463 glyphs, so their contents can be complete garbage. (Bug#10164)
12464
febe6bea
JB
124652011-11-30 Juanma Barranquero <lekktu@gmail.com>
12466
12467 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
12468
801a4313
EZ
124692011-11-30 Eli Zaretskii <eliz@gnu.org>
12470
12471 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
12472 attributes are tested _before_ calling verify_row_hash, to protect
12473 against GCC re-ordering of the tests. (Bug#10164)
12474
2b56b87e
JD
124752011-11-29 Jan Djärv <jan.h.d@swipnet.se>
12476
12477 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
12478
12479 * xterm.c (handle_one_xevent): Only set async_visible and friends
12480 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 12481 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
12482 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
12483
dbf31225
PE
124842011-11-28 Paul Eggert <eggert@cs.ucla.edu>
12485
12486 Remove GCPRO-related macros that exist only to avoid shadowing locals.
12487 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
12488 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
12489 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
12490 All uses changed to use GCPRO1 etc.
12491 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
12492 Revert to old implementation (i.e., before 2011-03-11).
12493
1305621b
YM
124942011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12495
12496 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
12497 of scroll runs so as to avoid assigning disabled bogus rows and
12498 unnecessary graphics copy operations.
12499
8c9afb46
EZ
125002011-11-27 Eli Zaretskii <eliz@gnu.org>
12501
12502 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
12503 (snprintf) [_MSC_VER]: Redirect to _snprintf.
12504 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
12505 (malloc, free, realloc, calloc): Redirect to e_* only when
12506 compiling Emacs.
12507
12508 * lisp.h (GCTYPEBITS): Move before first use.
12509 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
12510 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
12511 this macro definition.
12512
12513 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
12514 _MSC_VER.
12515
54e9e3bf
JD
125162011-11-27 Jan Djärv <jan.h.d@swipnet.se>
12517
6d5eb5b0
SM
12518 * gtkutil.c (xg_create_frame_widgets):
12519 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
12520 present with Gtk+ 2.0.
12521
83aca1cb
PE
125222011-11-26 Paul Eggert <eggert@cs.ucla.edu>
12523
12524 * fileio.c (Finsert_file_contents): Undo previous change; see
12525 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
12526
5b76caa4
PE
125272011-11-26 Paul Eggert <eggert@cs.ucla.edu>
12528
12529 Rename locals to avoid shadowing.
12530 * fileio.c (Finsert_file_contents):
12531 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
12532 * process.c (wait_reading_process_output):
12533 Rename inner 'proc' to 'p' to avoid shadowing.
12534 Indent for consistency with usual Emacs style.
12535
8c535114
EZ
125362011-11-25 Eli Zaretskii <eliz@gnu.org>
12537
12538 * xdisp.c (redisplay_window): If cursor row is not fully visible
12539 after recentering, and scroll-conservatively is set to a large
12540 number, scroll window by a few more lines to make the cursor fully
12541 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
12542 (start_display): Don't move to the next line if the display should
12543 start at a newline that is part of a display vector or an overlay
12544 string. (Bug#10119)
8c535114 12545
fa4fdb5c
JL
125462011-11-24 Juri Linkov <juri@jurta.org>
12547
12548 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
12549 after the `MagickPingImage' call. (Bug#10112)
12550
90ec88df
CY
125512011-11-23 Chong Yidong <cyd@gnu.org>
12552
12553 * window.c (Fcoordinates_in_window_p): Accept only live windows.
12554
56e2e794
MR
125552011-11-23 Martin Rudalics <rudalics@gmx.at>
12556
12557 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
12558 making another buffer current. (Bug#10114)
12559
b6e64c41
GM
125602011-11-23 Glenn Morris <rgm@gnu.org>
12561
12562 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
12563
6b21de18
CY
125642011-11-23 Chong Yidong <cyd@gnu.org>
12565
12566 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
12567 using it (Bug#5984).
12568
b12cd789
EZ
125692011-11-22 Eli Zaretskii <eliz@gnu.org>
12570
12571 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
12572 and header-lines, as they don't have one computed for them.
12573 (Bug#10098)
12574
12575 * .gdbinit (prow): Make displayed values more self-explaining.
12576 Add row's hash code.
12577
261b6fd4
LMI
125782011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
12579
12580 * process.c (wait_reading_process_output): Fix asynchrounous
12581 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 12582 (wait_reading_process_output): Add comment and URL.
261b6fd4 12583
e7cfd277
JD
125842011-11-21 Jan Djärv <jan.h.d@swipnet.se>
12585
12586 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
12587
a9b9b7f5
CY
125882011-11-21 Chong Yidong <cyd@gnu.org>
12589
12590 * window.c (Fnext_window, Fprevious_window): Doc fix.
12591
b0d15b4f
SM
125922011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
12593
12594 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
12595
fe7a3057
JB
125962011-11-20 Juanma Barranquero <lekktu@gmail.com>
12597
12598 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
12599
d2999b1a
MR
126002011-11-20 Martin Rudalics <rudalics@gmx.at>
12601
12602 * window.c (Fset_window_combination_limit): Rename argument
12603 STATUS to LIMIT.
12604 (Vwindow_combination_limit): Remove "status" from doc-string.
12605
d5ff9cd0
AS
126062011-11-20 Andreas Schwab <schwab@linux-m68k.org>
12607
12608 * m/ibms390.h: Remove.
12609 * m/ibms390x.h: Don't include "ibms390.h".
12610
a5bb9bd3
SM
126112011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
12612
12613 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
12614 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
12615
cd1181db
JB
126162011-11-20 Juanma Barranquero <lekktu@gmail.com>
12617
12618 * casetab.c (Fset_case_table):
12619 * charset.c (Fcharset_after): Fix typos.
12620
615a3b8d 126212011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 12622
17e845af
PE
12623 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
12624 Otherwise, valgrind does not work on some platforms.
12625 Problem reported by Andreas Schwab in
6a0bf43d
PE
12626 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
12627 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
12628 is set, removing the need for VIRT_ADDRESS_VARIES.
12629 (PURE_P): Use a more-efficient implementation that needs just one
12630 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
12631 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
12632 to 4 (xorl, subq, cmpq, setbe).
12633 * alloc.c (pure): Always extern now, since that's the
12634 VIRT_ADDR_VARIES behavior.
12635 (PURE_POINTER_P): Use a single comparison, not two, for
12636 consistency with the new puresize.h.
12637 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
12638 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
12639 Remove VIRT_ADDR_VARIES no longer needed.
12640
f8fe6f96
EZ
126412011-11-19 Eli Zaretskii <eliz@gnu.org>
12642
12643 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
12644 (erase_phys_cursor, update_window_cursor, show_mouse_face)
12645 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
12646 behave as if the cursor position were at the window margin.
12647
12648 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
12649 and the cursor position is out of bounds, behave as if the cursor
12650 position were at the window margin. (Bug#10075)
12651
df05a53c
CY
126522011-11-18 Chong Yidong <cyd@gnu.org>
12653
12654 * window.c (Fwindow_combination_limit): Make first argument
12655 non-optional, since it is meaningless for live windows like the
12656 selected window.
61ccba97 12657
2071918e
DA
126582011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
12659
12660 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
12661
b50a28de
SM
126622011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
12663
12664 * intervals.c: Fix grafting over the whole buffer (bug#10071).
12665 (graft_intervals_into_buffer): Simplify.
12666
015137db
EZ
126672011-11-18 Eli Zaretskii <eliz@gnu.org>
12668
12669 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
12670 hash values of the two rows.
12671 (copy_row_except_pointers): Preserve the used[] arrays and the
12672 hash values of the two rows. (Bug#10035)
68c95424 12673 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
12674
12675 * xdisp.c (row_hash): New function, body extracted from
12676 compute_line_metrics.
12677 (compute_line_metrics): Call row_hash, instead of computing the
12678 hash code inline.
12679
12680 * dispnew.c (verify_row_hash): Call row_hash for computing the
12681 hash code of a row, instead of duplicating code from xdisp.c.
12682
12683 * dispextern.h (row_hash): Add prototype.
12684
a2addb04
TH
126852011-11-18 Tassilo Horn <tassilo@member.fsf.org>
12686
12687 * frame.c (delete_frame): Don't delete the terminal when the last
12688 X frame is closed if emacs is built with GTK toolkit.
12689
df85d315
JB
126902011-11-17 Juanma Barranquero <lekktu@gmail.com>
12691
12692 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
12693
a0c2d0ae
MR
126942011-11-17 Martin Rudalics <rudalics@gmx.at>
12695
12696 * window.c (Vwindow_splits): Rename to
12697 Vwindow_combination_resize. Suggested by Juri Linkov.
12698 (Fsplit_window_internal): Use Vwindow_combination_resize instead
12699 of Vwindow_splits.
12700
58179cce
JB
127012011-11-16 Juanma Barranquero <lekktu@gmail.com>
12702
7877f373
JB
12703 * nsfns.m (Fns_font_name):
12704 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 12705
b6f67890
MR
127062011-11-16 Martin Rudalics <rudalics@gmx.at>
12707
12708 * window.h (window): Rename slot "nest" to "combination_limit".
12709 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
12710 (Fset_window_nest): Rename to Fset_window_combination_limit.
12711 (Vwindow_nest): Rename to Vwindow_combination_limit.
12712 (recombine_windows, make_parent_window, make_window)
12713 (Fsplit_window_internal, saved_window)
12714 (Fset_window_configuration, save_window_save): Rename all
12715 occurrences of window_nest to window_combination_limit.
12716
c7015153
JB
127172011-11-15 Juanma Barranquero <lekktu@gmail.com>
12718
12719 * image.c (imagemagick_load_image): Fix typo.
12720
322ad6ec
EZ
127212011-11-14 Eli Zaretskii <eliz@gnu.org>
12722
12723 * xdisp.c (display_line): Move the call to
12724 highlight_trailing_whitespace before the call to
12725 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
12726 faces of all the glyphs to compute ROW's hash value.
12727 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 12728
f067b8ec
JB
127292011-11-14 Juanma Barranquero <lekktu@gmail.com>
12730
12731 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
12732 just return (bug#10044).
12733
1e5b2111
EZ
127342011-11-12 Eli Zaretskii <eliz@gnu.org>
12735
7ef3cbd5
EZ
12736 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
12737 with user-defined heap size. Bump the default size of the temacs
12738 heap to 27MB, to avoid memory warning when running temacs.
12739 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
12740
1e5b2111
EZ
12741 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
12742 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
12743 (verify_row_hash) [XASSERTS]: New function.
12744 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
12745 that the hash value of glyph rows is correct.
1e5b2111 12746
89d61221
MR
127472011-11-12 Martin Rudalics <rudalics@gmx.at>
12748
12749 * window.h (window): Remove splits slot.
12750 * window.c (Fwindow_splits, Fset_window_splits): Remove.
12751 (Fdelete_other_windows_internal, make_parent_window)
12752 (make_window, Fsplit_window_internal, Fdelete_window_internal)
12753 (Fset_window_configuration, save_window_save): Don't deal with
12754 split status of windows.
12755 (saved_window): Remove splits slot.
12756 (Vwindow_splits): Rewrite doc-string.
12757
97f18cc8
JD
127582011-11-11 Jan Djärv <jan.h.d@swipnet.se>
12759
12760 * xfns.c (unwind_create_frame):
12761 * nsfns.m (unwind_create_frame):
12762 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
12763 Vframe_list (Bug#9999).
12764
22a648b4
DA
127652011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
12766
0b381c7e 12767 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 12768
659afede
KH
127692011-11-11 Kenichi Handa <handa@m17n.org>
12770
12771 * callproc.c (Fcall_process): Set the member dst_multibyte of
12772 process_coding.
12773
9ac0394b
KH
127742011-11-11 Johan Bockgård <bojohan@gnu.org>
12775
12776 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
12777 avoid a crash (bug#9496).
12778
2fbdc249
CY
127792011-11-09 Chong Yidong <cyd@gnu.org>
12780
12781 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
12782 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
12783
ac6b1f81
PE
127842011-11-08 Paul Eggert <eggert@cs.ucla.edu>
12785
12786 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
12787
09db192c
PE
127882011-11-08 Paul Eggert <eggert@cs.ucla.edu>
12789
12790 Avoid some portability problems by eschewing 'extern inline' functions.
12791 The trivial performance wins aren't worth the portability hassles; see
12792 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
12793 et seq.
12794 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
12795 (window_box_width, window_box_left, window_box_left_offset)
12796 (window_box_right, window_box_right_offset): Undo previous change,
12797 by removing the "extern"s.
12798 * intervals.c (adjust_intervals_for_insertion)
12799 (adjust_intervals_for_deletion): Undo previous change,
12800 making these static again.
12801 (offset_intervals, temp_set_point_both, temp_set_point)
12802 (copy_intervals_to_string): No longer inline.
12803 * xdisp.c (window_text_bottom_y, window_box_width)
12804 (window_box_height, window_box_left_offset)
12805 (window_box_right_offset, window_box_left, window_box_right)
12806 (window_box): No longer inline.
12807
105216ed
CY
128082011-11-08 Chong Yidong <cyd@gnu.org>
12809
12810 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
12811 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
12812 Signal an error if not a live window.
105216ed
CY
12813 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
12814 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
12815
ae9e237f
JB
128162011-11-07 Juanma Barranquero <lekktu@gmail.com>
12817
12818 * lisp.h (syms_of_abbrev): Remove declaration.
12819 Reported by CHENG Gao <chenggao@royau.me>.
12820
c7aa8333
EZ
128212011-11-07 Eli Zaretskii <eliz@gnu.org>
12822
12823 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
12824 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
12825 of temacs in GUI mode.
12826
be7f5545
MR
128272011-11-07 Martin Rudalics <rudalics@gmx.at>
12828
12829 * window.h: Declare delete_all_child_windows instead of
12830 delete_all_subwindows.
12831 * window.c (Fwindow_nest, Fset_window_nest)
12832 (Fset_window_new_total, Fset_window_new_normal)
12833 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
12834 (delete_all_subwindows): Rename to delete_all_child_windows.
12835 (Fdelete_other_windows_internal, Fset_window_configuration):
12836 Call delete_all_child_windows instead of delete_all_subwindows.
12837 * frame.c (delete_frame): Call delete_all_child_windows instead
12838 of delete_all_subwindows.
12839
ca78dc43
PE
128402011-11-07 Paul Eggert <eggert@cs.ucla.edu>
12841
12842 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
12843 This is also needed for porting to any host where GC_MARK_STACK is
12844 not GC_MAKE_GCPROS_NOOPS.
12845 (which_symbols): Use it.
12846
a0241d01
KH
128472011-11-07 Kenichi Handa <handa@m17n.org>
12848
12849 * coding.c (coding_set_destination): Check coding->src_pos only
12850 when coding->src_object is a buffer (bug#9910).
12851
12852 * process.c (send_process): Set the member src_multibyte of coding
12853 to 0 (bug#9911) when sending a unibyte text.
12854
12855 * callproc.c (Fcall_process): Set the member src_multibyte of
12856 process_coding to 0 (bug#9912).
12857
a64bfdfa 128582011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
12859
12860 * xmenu.c (cleanup_widget_value_tree): New function.
12861 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
12862 calling free_menubar_widget_value_tree directly (Bug#9830).
12863
cb41b32a
PE
128642011-11-06 Paul Eggert <eggert@cs.ucla.edu>
12865
12866 Fix some portability problems with 'inline'.
12867 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
12868 (window_box_width, window_box_left, window_box_left_offset)
12869 (window_box_right, window_box_right_offset): Declare extern.
12870 Otherwise, these inline functions do not conform to C99 and
12871 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
12872 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
12873 * intervals.c (adjust_intervals_for_insertion)
12874 (adjust_intervals_for_deletion): Now extern, because otherwise the
12875 extern inline functions 'offset_intervals' couldn't refer to it.
12876 (static_offset_intervals): Remove.
12877 (offset_intervals): Rewrite using the old contents of
12878 static_offset_intervals. The old version didn't conform to C99
12879 because an extern inline function contained a reference to an
12880 identifier with static linkage.
12881
b7041366
AS
128822011-11-06 Andreas Schwab <schwab@linux-m68k.org>
12883
12884 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
12885 GC.
12886
88a37c4d
EZ
128872011-11-06 Eli Zaretskii <eliz@gnu.org>
12888
12889 * xdisp.c (init_iterator, reseat_to_string): Don't set the
12890 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
12891 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
12892 return Qleft_to_right.
12893
49745b39
CY
128942011-11-06 Chong Yidong <cyd@gnu.org>
12895
12896 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
12897 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
12898 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
12899 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
12900 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
12901 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
12902 (Fwindow_vscroll): Doc fix.
12903 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
12904 argument, since it makes no sense to pass a live window and for
12905 consistency with window-child.
12906
1f05cd82
CS
129072011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
12908
12909 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
12910 support MSVC.
12911
22610910
JR
129122011-11-05 Jason Rumney <jasonr@gnu.org>
12913
12914 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
12915 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
12916 fonts (Bug#6029).
12917 (add_font_entity_to_list): Fix logic errors in mixed boolean and
12918 bitwise arithmetic preventing use of unicode-sip and non-truetype
12919 opentype fonts.
12920
a06776b2
EZ
129212011-11-05 Eli Zaretskii <eliz@gnu.org>
12922
3ad924ba
EZ
12923 * s/ms-w32.h (fstat, stat, utime): Move redirections to
12924 "emacs"-only part.
12925
a06776b2
EZ
12926 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
12927 initialization code to keep similarity to xfns.c after changes
12928 from 2011-11-05.
12929
c9e7db78
JD
129302011-11-05 Jan Djärv <jan.h.d@swipnet.se>
12931
a97f8f3f
JD
12932 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
12933 (unwind_create_frame): New function (Bug#9943).
12934 (Fx_create_frame): Restructure code to be more similar to the one in
12935 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
12936 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
12937 Move terminal->reference_count++ just before making the frame official
12938 (Bug#9943).
12939
12940 * nsterm.m (x_free_frame_resources): New function.
12941 (x_destroy_window): Move code to x_free_frame_resources.
12942
c9e7db78 12943 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
12944 (Fx_create_frame, x_create_tip_frame):
12945 Move terminal->reference_count++ just before making the frame
75f1671a 12946 official. Move initialization of image_cache_refcount and
c9e7db78
JD
12947 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
12948
a6fc3b5c
EZ
129492011-11-05 Eli Zaretskii <eliz@gnu.org>
12950
12951 Support MSVC build with newer versions of Visual Studio.
12952 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
12953 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
12954 nt/gmake.defs.
12955
12956 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
12957 which are not supported by MSVC.
12958 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
12959 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
12960 bitfields.
12961 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
12962 types in bitfields.
12963 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
12964
12965 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
12966
58179cce 129672011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
12968
12969 Support MSVC build with newer versions of Visual Studio.
12970 * w32.c: Don't include w32api.h for MSVC.
12971 (init_environment) [_MSC_VER]: Call sys_access, not _access.
12972
12973 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
12974 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
12975 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
12976 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
12977 e_* cousins.
12978 (alloca) [_MSC_VER]: Define to _alloca.
12979
12980 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
12981
12982 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
12983
a58c13ed
EZ
129842011-11-04 Eli Zaretskii <eliz@gnu.org>
12985
12986 * xdisp.c (note_mouse_highlight): If either of
12987 previous/next-single-property-change returns nil, treat that as
12988 the beginning or the end of the buffer. (Bug#9955)
12989
fe0b6370
JD
129902011-11-04 Jan Djärv <jan.h.d@swipnet.se>
12991
a58c13ed 12992 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
12993 label is not null (Bug#9951).
12994 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
12995 may be NULL.
12996
89bd5ee1
EZ
129972011-11-04 Eli Zaretskii <eliz@gnu.org>
12998
12999 * window.c (Fwindow_body_size): Mention in the doc string that the
13000 return value is in frame's canonical units. (Bug#9949)
13001
84c3edb9
EZ
130022011-11-03 Eli Zaretskii <eliz@gnu.org>
13003
4e2fb5c7
EZ
13004 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
13005
84c3edb9 13006 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 13007 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 13008 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 13009
bc17a887
EZ
130102011-11-01 Eli Zaretskii <eliz@gnu.org>
13011
13012 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
13013 Don't stop backward scan on the continuation glyph, even though
13014 its CHARPOS is positive.
6d5eb5b0
SM
13015 (mouse_face_from_buffer_pos, note_mouse_highlight):
13016 Rename cover_string to disp_string.
bc17a887 13017
4ee88440
MR
130182011-11-01 Martin Rudalics <rudalics@gmx.at>
13019
13020 * window.c (temp_output_buffer_show): Don't use
13021 Vtemp_buffer_show_specifiers.
13022 (Vtemp_buffer_show_specifiers): Remove unused variable.
13023
c2ff3c02
EZ
130242011-10-30 Eli Zaretskii <eliz@gnu.org>
13025
13026 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
13027 past the beginning of the current glyph matrix.
13028
58179cce 130292011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
13030
13031 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
13032 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
13033 HAVE_GTK3 (Bug#9869).
b77a6a7f 13034
3b574623
JD
13035 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
13036 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
13037
b77a6a7f
JD
13038 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
13039
13040 * xterm.c: Declare x_handle_net_wm_state to return int.
13041 (handle_one_xevent): Check if we are iconified but don't have
13042 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
13043 (get_current_wm_state): Return non-zero if not hidden,
13044 check for _NET_WM_STATE_HIDDEN (Bug#9893).
13045 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
13046 (x_handle_net_wm_state): Return what get_current_wm_state returns.
13047 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
13048
196e41e4
PE
130492011-10-29 Paul Eggert <eggert@cs.ucla.edu>
13050
13051 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
13052 so that this new function doesn't get optimized away by a
13053 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
13054
021f2e1a
AS
130552011-10-29 Andreas Schwab <schwab@linux-m68k.org>
13056
13057 * frame.h (MOUSE_HL_INFO): Remove excess parens.
13058
8b058d44
EZ
130592011-10-29 Eli Zaretskii <eliz@gnu.org>
13060
13061 Fix the `xbytecode' command.
13062 * .gdbinit (xprintbytestr): New command.
b50a28de 13063 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
13064 (xbytecode): Print the byte-code string as well.
13065
4452fb80
EZ
130662011-10-29 Kim Storm <storm@cua.dk>
13067
8b058d44
EZ
13068 * alloc.c (which_symbols): New function.
13069
21b72067
AS
130702011-10-29 Andreas Schwab <schwab@linux-m68k.org>
13071
13072 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
13073 line. (Bug#9903)
13074
83ed7b5c
GM
130752011-10-29 Glenn Morris <rgm@gnu.org>
13076
13077 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
13078 Not clear what it was for, and it causes various bugs. (Bug#9839)
13079
5a7a728b
EZ
130802011-10-28 Eli Zaretskii <eliz@gnu.org>
13081
13082 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
13083 possible random value that matches one of those tested as
13084 condition to clear the mouse face.
13085
d3d0842f
CY
130862011-10-28 Chong Yidong <cyd@gnu.org>
13087
13088 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
13089
31b39d13
DN
130902011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
13091
13092 * window.c (make_window): Initialize phys_cursor_on_p.
13093
9aba6043
SM
130942011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
13095
13096 * lisp.h (struct Lisp_Symbol): Update comments.
13097
c20992f4
JB
130982011-10-28 Juanma Barranquero <lekktu@gmail.com>
13099
13100 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
13101
db4f02f2
EZ
131022011-10-28 Eli Zaretskii <eliz@gnu.org>
13103
13104 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
13105 <oslsachem@gmail.com> for helping to debug this.
13106
13107 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
13108 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
13109 (g_b_init_get_glyph_outline_w): New static variables.
13110 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
13111 (GetGlyphOutlineW_Proc): New typedefs.
13112 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
13113 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
13114 New functions.
13115 (w32font_open_internal, compute_metrics):
13116 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
13117 instead of calling the "wide" APIs directly.
13118
13119 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
13120
13121 * w32.h (syms_of_w32font): Add prototype.
13122
87e68db4
JB
131232011-10-27 Juanma Barranquero <lekktu@gmail.com>
13124
13125 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
13126 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
13127 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
13128 (Fmove_to_window_line): Doc fix.
13129
435c1d67
CY
131302011-10-27 Chong Yidong <cyd@gnu.org>
13131
13132 * process.c (make_process): Set gnutls_state to NULL.
13133
13134 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
13135 non-NULL, regardless of GNUTLS_INITSTAGE.
13136 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
13137 an error. Set process slots as soon as we allocate them.
13138
13139 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
13140
9c6c6f49
CY
131412011-10-27 Chong Yidong <cyd@gnu.org>
13142
9aba6043
SM
13143 * gnutls.c (emacs_gnutls_deinit): New function.
13144 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
13145 (Fgnutls_deinit, Fgnutls_boot): Use it.
13146
13147 * process.c (make_process): Initialize GnuTLS credentials to NULL.
13148 (deactivate_process): Call emacs_gnutls_deinit.
13149
657d08d3
JB
131502011-10-27 Juanma Barranquero <lekktu@gmail.com>
13151
13152 * image.c (x_create_x_image_and_pixmap):
13153 * w32.c (sys_rename, w32_delayed_load):
13154 * w32font.c (fill_in_logfont):
13155 * w32reg.c (x_get_string_resource): Silence compiler warnings.
13156
5430d399
JB
131572011-10-26 Juanma Barranquero <lekktu@gmail.com>
13158
13159 * w32fns.c (w32_default_color_map): New function,
13160 extracted from Fw32_default_color_map.
a7ef684b 13161 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 13162
fe0055fa
PE
131632011-10-25 Paul Eggert <eggert@cs.ucla.edu>
13164
13165 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
13166
e6346438
SM
131672011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
13168
13169 * keyboard.c (test_undefined): New function (bug#9751).
13170 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
13171
e112cc37
ET
131722011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
13173
13174 * sysdep.c (init_sys_modes): Fix the check for the controlling
13175 terminal (Bug#6649).
13176
7b5d6677
EZ
131772011-10-20 Eli Zaretskii <eliz@gnu.org>
13178
13179 * dispextern.h (struct bidi_it): New member next_en_type.
13180
13181 * bidi.c (bidi_line_init): Initialize the next_en_type member.
13182 (bidi_resolve_explicit_1): When next_en_pos is valid for the
13183 current character, check also for next_en_type being WEAK_EN.
13184 (bidi_resolve_weak): Don't enter the expensive loop if the current
13185 position is before next_en_pos. Record the bidi type of the first
13186 non-ET, non-BN character we find, in addition to its position.
13187 (bidi_level_of_next_char): Invalidate next_en_type when
13188 next_en_pos is over-stepped.
13189
7da0b018
PE
131902011-10-20 Paul Eggert <eggert@cs.ucla.edu>
13191
13192 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
13193 * editfns.c: Rewrite current-time-zone so that it invokes
13194 the equivalent of (format-time-string "%Z") to get the time zone name.
13195 This fixes a bug when the time zone name contains characters that
13196 need converting from the system time locale to Emacs internal format.
13197 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
13198 that patch fixed format-time-string to do the conversion, but
13199 I forgot to fix current-time-zone.
13200 (format_time_string): New function, containing most of
13201 what Fformat_time_string used to contain.
13202 (Fformat_time_string): Rewrite in terms of format_time_string.
13203 This doesn't change this function's behavior.
13204 (current-time-zone): Rewrite to use format_time_string.
13205 This fixes the bug reported by Michael Schierl in
13206 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
13207 Jason Rumney's 2007-06-07 change worked around this bug, but
13208 didn't fix it.
13209 * systime.h (tzname, timezone): Remove no-longer-used declarations.
13210
8547b010
EZ
132112011-10-19 Eli Zaretskii <eliz@gnu.org>
13212
13213 * xdisp.c (start_display): If the character at POS is displayed
13214 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
13215 (try_window_reusing_current_matrix): If a line ends in a display
13216 vector or the next line starts in a display vector, continue
13217 redrawing the window even though the character position of
13218 start_row was reached.
8547b010
EZ
13219 (Bug#9771, part 2)
13220
4e948d15
CY
132212011-10-18 Chong Yidong <cyd@gnu.org>
13222
13223 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
13224 with nobreak-char-display too.
13225
4787455f
EZ
132262011-10-18 Eli Zaretskii <eliz@gnu.org>
13227
13228 Fix part 3 of bug#9771.
13229 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
13230 (bidi_resolve_neutral): Don't enter the expensive loop looking for
13231 non-neutral characters if the current character is a paragraph
13232 separator (a.k.a. Newline). This avoids running the same
13233 expensive loop twice, once when we consume the preceding newline
13234 and the other time when the line actually needs to be displayed.
13235 Avoid the loop when we see neutrals on the base embedding level
13236 following a character whose directionality is the same as the
13237 paragraph's. This avoids running the expensive loop when a line
13238 ends in a long sequence of neutrals, like control characters.
13239 Add assertion against STRONG_AL type. Slightly rearrange code
13240 that determines the type of a neutral given the first non-neutral
13241 that follows it.
13242 (bidi_level_of_next_char): Set next_en_pos to zero when
13243 invalidating its info.
13244
2c91f553
EZ
132452011-10-17 Eli Zaretskii <eliz@gnu.org>
13246
13247 * xdisp.c (push_display_prop): Determine whether to record string
13248 or buffer position by IT->string, not by IT->method. Allow
13249 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
13250 (move_it_vertically_backward): Don't look for character position
13251 immediately after the newline when in a continuation line.
13252 (Bug#9771, part 1)
2c91f553 13253
c7b08b0d
MR
132542011-10-15 Martin Rudalics <rudalics@gmx.at>
13255
13256 * window.c (coordinates_in_window): Rewrite and delabelize
13257 vertical border check. (Bug#5357) (Bug#9618)
13258
6b02f655
SM
132592011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
13260
13261 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
13262 errors in XSetWindowBorder (bug#9310).
13263
81d40c92
DA
132642011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
13265
13266 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
13267 avoid crash when xmalloc overrun checking is enabled.
13268
d4172c3b
EZ
132692011-10-13 Eli Zaretskii <eliz@gnu.org>
13270
13271 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
13272 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
13273 cursor motion with <left> and <right> arrow keys.
13274
13275 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
13276 some callers set that themselves.
13277
b00eea75
EZ
132782011-10-12 Eli Zaretskii <eliz@gnu.org>
13279
13280 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
13281 display string and the previous row comes from the same string and
13282 is empty. (Bug#9739) (Bug#9738)
13283
8fe012c4
SM
132842011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
13285
13286 * doc.c (get_doc_string): Encode file name (bug#9735).
13287
0074aef2
EZ
132882011-10-12 Eli Zaretskii <eliz@gnu.org>
13289
79beb178
EZ
13290 * bidi.c (bidi_level_of_next_char):
13291 * xdisp.c (get_visually_first_element): Remove old incorrect
13292 comments regarding the Unicode Line Separator character.
13293
0074aef2
EZ
13294 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
13295
6e4b3fbe
DA
132962011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
13297
13298 * alloc.c (Fgc_status): Do not access beyond zombies array
13299 boundary if nzombies > MAX_ZOMBIES.
13300 * alloc.c (dump_zombies): Add missing format specifier.
13301
0324f3af
PE
133022011-10-12 Paul Eggert <eggert@cs.ucla.edu>
13303
b5525cac
PE
13304 * xdisp.c (set_cursor_from_row): Simplify conditionals,
13305 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
13306
0324f3af
PE
13307 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
13308 Some packages use them to denote characters with modifiers.
13309
e9b5f888
AS
133102011-10-11 Andreas Schwab <schwab@linux-m68k.org>
13311
13312 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
13313 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
13314 matching a pp-number. Rename parameter var to var1.
13315
127827c0
SM
133162011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
13317
13318 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
13319
c8fd3bd0
GM
133202011-10-08 Glenn Morris <rgm@gnu.org>
13321
13322 * callint.c (Fcall_interactively): Give a more explicit error for the
13323 'c' case with a non-character input. (Bug#8479)
13324
352ec8ff
EZ
133252011-10-08 Eli Zaretskii <eliz@gnu.org>
13326
03669ccb
EZ
13327 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
13328 lines.
7061c986
EZ
13329 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
13330 lines that are hscrolled on the left.
03669ccb 13331
352ec8ff
EZ
13332 * dispnew.c (buffer_posn_from_coords): Account for a possible
13333 presence of header-line. (Bug#4426)
13334
a66cfb1c
SM
133352011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
13336
6b02f655
SM
13337 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
13338 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 13339
7c5ee88e
PE
133402011-10-07 Paul Eggert <eggert@cs.ucla.edu>
13341
13342 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
13343 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
13344 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
13345 this makes Emacs dump core during garbage collection on rare
13346 occasions. sizeof is obviously inferior to offsetof here, so
13347 stick with offsetof.
13348 (GC_POINTER_ALIGNMENT): New macro.
13349 (mark_memory): Omit 3rd (offset) arg; caller changed.
13350 Don't assume EMACS_INT alignment is the same as pointer alignment.
13351
df1bbe5b
SM
133522011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
13353
13354 * keyboard.c (read_key_sequence_remapped): New var.
13355 (read_key_sequence): Compute remapping in the right buffer.
13356 (command_loop_1): Use read_key_sequence's remapping directly.
13357
51553db6
SM
133582011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
13359
32c1fffd
SM
13360 * dired.c (file_name_completion): Don't expand file name.
13361 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
13362 before checking file name handler.
13363
51553db6
SM
13364 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
13365 they've been requested explicitly (bug#9591).
13366
b6bd1599 133672011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
13368
13369 * keymap.c (Fsingle_key_description): Use make_specified_string
13370 instead of build_string to build string from push_key_description.
13371 (Bug#5193)
13372
f701dc2a
PE
133732011-09-30 Paul Eggert <eggert@cs.ucla.edu>
13374
4222c55d
PE
13375 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
13376 This fixes a Y2038 bug on 64-bit hosts.
13377 * buffer.c (reset_buffer):
13378 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
13379 (Fclear_buffer_auto_save_failure):
13380 Use 0, not -1, to represent an unset failure time, since time_t
13381 might not be signed.
13382
f701dc2a
PE
13383 Remove dependency on glibc malloc internals.
13384 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13385 Move back here from lisp.h, but with their new implementations.
13386 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
13387 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
13388 * charset.c (charset_table_init): New static var.
13389 (syms_of_charset): Use it instead of xmalloc. This removes a
13390 dependency on glibc malloc internals. See Eli Zaretskii's comment in
13391 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
13392 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13393 Move back to alloc.c.
13394 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
13395 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
13396
9ceebf39
JD
133972011-09-30 Jan Djärv <jan.h.d@swipnet.se>
13398
13399 * nsterm.m (windowDidResize): Call x_set_window_size only when
13400 ns_in_resize is true. Otherwise set pixelwidth/height and
13401 call change_frame_size (Bug#9628).
13402
cb993c58
PE
134032011-09-30 Paul Eggert <eggert@cs.ucla.edu>
13404
3930c88b
PE
13405 Port --enable-checking=all to Fedora 14 x86-64.
13406 * charset.c (syms_of_charset): Also account for glibc malloc's
13407 internal overhead when calculating the initial malloc maximum.
13408
cb993c58
PE
13409 Port --enable-checking=all to Fedora 14 x86.
13410 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13411 Move to lisp.h.
13412 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
13413 (overrun_check_realloc, overrun_check_free):
13414 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
13415 That way, xmalloc returns a properly-aligned pointer even if
13416 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
13417 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
13418 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
13419 into account when calculating the initial malloc maximum.
13420 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13421 Move here from alloc.c, so that charset.c can use it too.
13422 Properly align; the old code wasn't right for common 32-bit hosts
13423 when configured with --enable-checking=all.
13424 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
13425 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
13426
31bed486
EZ
134272011-09-29 Eli Zaretskii <eliz@gnu.org>
13428
04c70788 13429 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
13430 use EDOM.
13431
fbcaa2f3
EZ
134322011-09-28 Eli Zaretskii <eliz@gnu.org>
13433
13434 * xdisp.c (compute_display_string_end): If there's no display
13435 string at CHARPOS, return -1.
13436
13437 * bidi.c (bidi_fetch_char): When compute_display_string_end
13438 returns a negative value, treat the character as a normal
13439 character not covered by a display string. (Bug#9624)
13440
a239d4e9
JB
134412011-09-28 Juanma Barranquero <lekktu@gmail.com>
13442
13443 * lread.c (Fread_from_string): Fix typo in docstring.
13444
88652fd5
EZ
134452011-09-27 Eli Zaretskii <eliz@gnu.org>
13446
13447 * xdisp.c (handle_invisible_prop): If invisible text ends on a
13448 newline, reseat the iterator instead of bidi-iterating there one
13449 character at a time. (Bug#9610)
32c1fffd
SM
13450 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
13451 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 13452
ed497dd4
AS
134532011-09-27 Andreas Schwab <schwab@linux-m68k.org>
13454
13455 * lread.c (readevalloop): Use correct code for NBSP.
13456 (read1): Likewise. (Bug#9608)
13457
b2bf61aa
MA
134582011-09-25 Michael Albinus <michael.albinus@gmx.de>
13459
13460 * dbusbind.c (Fdbus_register_signal): When service is not
13461 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
13462
32bbb17c
GM
134632011-09-25 Glenn Morris <rgm@gnu.org>
13464
13465 * buffer.c (truncate-lines): Doc fix.
13466
94e0933e
CY
134672011-09-24 Chong Yidong <cyd@stupidchicken.com>
13468
13469 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
13470 (Fset_window_next_buffers): Doc fix.
13471
cddde921
GM
134722011-09-24 Glenn Morris <rgm@gnu.org>
13473
13474 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
13475
1260aef1
PE
134762011-09-24 Paul Eggert <eggert@cs.ucla.edu>
13477
25b4bfa0
PE
13478 Fix minor problems found by static checking.
13479 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
13480 * indent.c (Fvertical_motion): Fix == vs = typo.
13481
e3cbd34b
EZ
134822011-09-24 Eli Zaretskii <eliz@gnu.org>
13483
a66cfb1c
SM
13484 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
13485 Default value is now t. Doc fix.
6bf7006f 13486
e3cbd34b 13487 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 13488 logic when moving up, not only when moving down. Fix the
e3cbd34b 13489 confusing name and values of the it_overshoot_expected variable;
32c1fffd 13490 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
13491
13492 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
13493 CHARPOS is covered by a display string which includes newlines.
13494 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
13495 is covered by a display string with embedded newlines.
13496
a3de0cbd
MA
134972011-09-24 Michael Albinus <michael.albinus@gmx.de>
13498
13499 * dbusbind.c (Fdbus_register_signal): Add match rule to
13500 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
13501 (Fdbus_register_method, Vdbus_registered_objects_table):
13502 Fix docstring.
a3de0cbd 13503
b260039d
JM
135042011-09-24 Jim Meyering <meyering@redhat.com>
13505
32c1fffd 13506 do not ignore write error for any output size
b260039d
JM
13507 The previous change was incomplete.
13508 While it makes emacs --batch detect the vast majority of stdout
13509 write failures, errors were still ignored whenever the output size is
13510 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
13511 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
13512 && echo FAIL: ignored write error
13513 FAIL: ignored write error
13514 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
13515 && echo FAIL: ignored write error
13516 FAIL: ignored write error
13517 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
13518
8eca8a7c
AS
135192011-09-23 Andreas Schwab <schwab@linux-m68k.org>
13520
13521 * emacs.c (Fkill_emacs): In noninteractive mode exit
13522 non-successfully if a write error occurred on stdout. (Bug#9574)
13523
3341db62
EZ
135242011-09-21 Eli Zaretskii <eliz@gnu.org>
13525
13526 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
13527 the xassert test.
13528
13529 * dispextern.h (struct it): Update the comment documenting what
13530 can it->OBJECT be.
13531
8c203dbf
EZ
135322011-09-20 Eli Zaretskii <eliz@gnu.org>
13533
13534 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
13535 a display string, extend search for cursor position to end of row.
13536 (find_row_edges): If the row ends in a newline from a display
13537 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
13538 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
13539 (Fcurrent_bidi_paragraph_direction): Fix search for previous
13540 non-empty line. Fixes confusing cursor motion with arrow keys at
13541 the beginning of a line that starts with whitespace.
8c203dbf 13542
a4824228
LMI
135432011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
13544
13545 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
13546 (bug#9493).
13547
33ed493b
CY
135482011-09-18 Chong Yidong <cyd@stupidchicken.com>
13549
13550 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
13551 boolean (Bug#9154).
13552
56cd55c8
EZ
135532011-09-18 Eli Zaretskii <eliz@gnu.org>
13554
13555 * xdisp.c (display_line): Record maximum and minimum buffer
13556 positions even if no glyphs were produced (e.g., by a zero-width
13557 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
13558 buffer positions that will be removed from the glyph row because
13559 they don't fit.
c02dcedf
EZ
13560 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
13561 column is beyond frame width: don't subtract 1 "pixel" when
13562 computing width of the stretch.
3e62b7e0
EZ
13563 (reseat_at_next_visible_line_start): Undo the change made on
13564 2011-09-17 that saved paragraph information and restored it after
13565 the call to `reseat'. (Bug#9545)
56cd55c8 13566
5ed99d36 135672011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
13568
13569 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
13570 and turn window cursor on if cleared (Bug#9415).
13571
5ed99d36 135722011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
13573
13574 * search.c (boyer_moore): Take unibyte characters from pattern
13575 literally. (Bug#9458)
13576
9bade7b2
EZ
135772011-09-18 Eli Zaretskii <eliz@gnu.org>
13578
13579 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
13580
e5e9d610
PE
135812011-09-18 Paul Eggert <eggert@cs.ucla.edu>
13582
87e4427a
PE
13583 Fix minor problem found by static checking.
13584 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
13585 initialized, to pacify gcc -Wuninitialized.
13586
e5e9d610
PE
13587 * fileio.c: Report proper errno when syscall falls.
13588 (Finsert_file_contents): Save and restore errno,
13589 so that report_file_error outputs the correct diagnostic.
13590 (Fwrite_region) [CLASH_DETECTION]: Likewise.
13591
a1674f0b
EZ
135922011-09-18 Eli Zaretskii <eliz@gnu.org>
13593
13594 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
13595
fbfb6dd4
EZ
135962011-09-17 Eli Zaretskii <eliz@gnu.org>
13597
13598 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
13599 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
13600
bb187662
EZ
136012011-09-17 Eli Zaretskii <eliz@gnu.org>
13602
1137e8b8 13603 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 13604 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
13605
13606 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
13607 (bidi_find_paragraph_start): Search back for paragraph beginning
13608 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
13609 (bidi_move_to_visually_next): Only trigger paragraph-related
13610 computations when the last character is a newline or at EOB, not
13611 just any NEUTRAL_B. (Bug#9470)
13612
bb187662
EZ
13613 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
13614 truncated lines if point is covered by a display string. (Bug#9524)
13615
2e621251
PE
136162011-09-16 Paul Eggert <eggert@cs.ucla.edu>
13617
13618 * xselect.c: Relax test for outgoing X longs (Bug#9498).
13619 (cons_to_x_long): New function.
13620 (lisp_data_to_selection_data): Use it. Correct the test for
13621 short-versus-long data; it was negated. Break out of vector
13622 loop, for efficiency, when a long datum is discovered.
13623
91a15bc6
SM
136242011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
13625
13626 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
13627
b41c3a35
EZ
136282011-09-16 Eli Zaretskii <eliz@gnu.org>
13629
13630 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
13631 GCC PR/17406) by declaring this function with external scope.
13632
7812ba2d
PE
136332011-09-15 Paul Eggert <eggert@cs.ucla.edu>
13634
13635 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
13636 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
13637
cf7edc2a
AS
136382011-09-15 Andreas Schwab <schwab@linux-m68k.org>
13639
13640 * editfns.c (Fformat): Correctly handle text properties on "%%".
13641
bd01620e
EZ
136422011-09-15 Eli Zaretskii <eliz@gnu.org>
13643
13644 * xterm.c (x_draw_composite_glyph_string_foreground):
13645 * w32term.c (x_draw_composite_glyph_string_foreground):
13646 * term.c (encode_terminal_code):
13647 * composite.c (composition_update_it, get_composition_id):
13648 * xdisp.c (get_next_display_element)
13649 (fill_composite_glyph_string): Add comments about special meaning
13650 of TAB characters in a composition.
13651
a02719a3
PE
136522011-09-15 Paul Eggert <eggert@cs.ucla.edu>
13653
13654 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
13655 This occurs when processing a multibyte format.
13656 Problem reported by Wolfgang Jenker.
a02719a3 13657
72589a3c
JB
136582011-09-15 Johan Bockgård <bojohan@gnu.org>
13659
13660 * xdisp.c (try_cursor_movement): Only check for exact match if
13661 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
13662
1c14176c
PE
136632011-09-14 Paul Eggert <eggert@cs.ucla.edu>
13664
13665 Remove unused external symbols.
13666 * dispextern.h (calc_pixel_width_or_height): Remove decl.
13667 * xdisp.c (calc_pixel_width_or_height): Now static.
13668 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
13669 * indent.c (check_display_width):
13670 * w32term.c: Fix comment to match code.
13671 * xterm.c, xterm.h (x_catching_errors): Remove.
13672
d2eea5b5
PE
136732011-09-14 Paul Eggert <eggert@cs.ucla.edu>
13674
13675 * xselect.c: Use signed conversions more consistently (Bug#9498).
13676 (selection_data_to_lisp_data): Assume incoming selection data are
13677 signed integers, not unsigned. This is to be consistent with
13678 outgoing selection data, which was modified to use signed integers
13679 in as part of the fix to Bug#9196 in response to Jan D.'s comment
13680 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
13681 expects long, not unsigned long.
13682
46888499
EZ
136832011-09-14 Eli Zaretskii <eliz@gnu.org>
13684
13685 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
13686 computation of loop end. Reported by Johan Bockgård
13687 <bojohan@gnu.org>.
13688
ef8ef9fb
CY
136892011-09-13 Chong Yidong <cyd@stupidchicken.com>
13690
13691 * frame.c (Fother_visible_frames_p): Function deleted.
13692
fa819fed
EZ
136932011-09-12 Eli Zaretskii <eliz@gnu.org>
13694
13695 * indent.c (compute_motion): Process display vector front to back
13696 rather than the other way around. (Bug#2496)
13697
2ba8e008
SM
136982011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
13699
13700 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
13701
20f53c69
CY
137022011-09-11 Chong Yidong <cyd@stupidchicken.com>
13703
13704 * minibuf.c (Fread_from_minibuffer): Doc fix.
13705
d562d7a4
EZ
137062011-09-11 Eli Zaretskii <eliz@gnu.org>
13707
13708 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
13709 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
13710
1c4d7f3d
LMI
137112011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
13712
13713 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
13714 value for non-existent files.
13715
b885bf36
EZ
137162011-09-11 Eli Zaretskii <eliz@gnu.org>
13717
13718 * fileio.c (Finsert_file_contents): If the file cannot be opened,
13719 set its "size" to -1. This will set the modtime_size field of
13720 the corresponding buffer to -1, which is what
13721 verify-visited-file-modtime expects for files that do not exist.
13722 (Bug#9139)
13723
6612f0bf
PE
137242011-09-11 Paul Eggert <eggert@cs.ucla.edu>
13725
13726 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
13727 here ...
13728 * lisp.h: ... from here. push_key_description is no longer
13729 defined in keyboard.c, so its declaration should not be in
13730 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
13731 logically belongs with push_key_description.
13732
dfb3f755
PE
137332011-09-10 Paul Eggert <eggert@cs.ucla.edu>
13734
13735 * buffer.h: Include <sys/types.h> instead of <time.h>.
13736 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
13737 Problem reported by Herbert J. Skuhra.
13738
3134906c
LMI
137392011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
13740
13741 * xml.c (parse_region): Make the parsing work for
13742 non-comment-starting XML files again (bug#9144).
13743
8d903f4e
AS
137442011-09-10 Andreas Schwab <schwab@linux-m68k.org>
13745
13746 * image.c (gif_load): Fix calculation of bottom and right corner.
13747 (Bug#9468)
13748
80ad64f4
EZ
137492011-09-10 Eli Zaretskii <eliz@gnu.org>
13750
13751 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
13752 redisplay in small windows.
13753
208a048d
EZ
137542011-09-09 Eli Zaretskii <eliz@gnu.org>
13755
13756 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
13757
9b1c252e
MR
137582011-09-08 Martin Rudalics <rudalics@gmx.at>
13759
13760 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
13761 Operate on live windows only.
13762
2949f33b
JB
137632011-09-08 Juanma Barranquero <lekktu@gmail.com>
13764
13765 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
13766
e08dcafd
EZ
137672011-09-07 Eli Zaretskii <eliz@gnu.org>
13768
13769 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
13770 only under bidi iteration.
13771
115b96bd
JD
137722011-09-07 Jan Djärv <jan.h.d@swipnet.se>
13773
13774 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
13775
c8199d0f
PE
137762011-09-06 Paul Eggert <eggert@cs.ucla.edu>
13777
13778 isnan: Fix porting problem to Solaris 10 with bundled gcc.
13779 Without this fix, the command to link temacs failed due to an
13780 undefined symbol __builtin_isnan. This is because
13781 /usr/include/iso/math_c99.h #defines isnan(x) to
13782 __builtin_isnan(x), but the bundled gcc, which identifies itself
13783 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
13784 a __builtin_isnan.
13785 * floatfns.c (isnan): #undef, and then #define to a clone of
13786 what's in data.c.
13787 (Fisnan): Always define, since it's always available now.
13788 (syms_of_floatfns): Always define isnan at the Lisp level.
13789
e39b275c 137902011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
13791
13792 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
13793
b2db44d9 137942011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 13795
f4af5137 13796 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
13797 The previous code assumed that file offsets (off_t values) fit in
13798 EMACS_INT variables, which is not true on typical 32-bit hosts.
13799 The code messed up by falsely reporting buffer overflow in cases
13800 such as (insert-file-contents "big" nil 1 2) into an empty buffer
13801 when "big" contains more than 2**29 bytes, even though this
13802 inserts just one byte and does not overflow the buffer.
13803 (Finsert_file_contents): Store file offsets as off_t
13804 values, not as EMACS_INT values. Check for overflow when
13805 converting between EMACS_INT and off_t. When checking for
13806 buffer overflow or for overlap, take the offsets into account.
13807 Don't use EMACS_INT for small values where int suffices.
13808 When checking for overlap, fix a typo: ZV was used where
13809 ZV_BYTE was intended.
13810 (Fwrite_region): Don't assume off_t fits into 'long'.
13811 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
13812
ecfc0a49
MA
138132011-09-05 Michael Albinus <michael.albinus@gmx.de>
13814
13815 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
13816
6511acf2 138172011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 13818
0999621a 13819 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
13820
13821 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 13822 (esprintf, exprintf, evxprintf): New functions.
62f19c19 13823 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 13824 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
13825 (modify_event_symbol): Do not assume that the length of
13826 name_alist_or_stem is safe to alloca and fits in int.
13827 (Fexecute_extended_command): Likewise for function name and binding.
13828 (Frecursion_depth): Wrap around reliably on integer overflow.
13829 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
13830 since some callers pass EMACS_INT values.
13831 (Fsingle_key_description): Don't crash if symbol name contains more
13832 than MAX_ALLOCA bytes.
13833 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
13834 (get_minibuffer): Arg is now EMACS_INT, not int.
13835 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 13836 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
13837 * window.h (command_loop_level, minibuf_level): Reflect API changes.
13838
2be7d702
PE
13839 * dbusbind.c (signature_cat): New function.
13840 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
13841 Do not overrun buffer; instead, report string overflow.
13842
9d1df220
PE
13843 * dispnew.c (add_window_display_history): Don't overrun buffer.
13844 Truncate instead; this is OK since it's just a log.
13845
33ef5c64
PE
13846 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
13847 even if the time zone offset is outlandishly large.
13848 Don't mishandle offset == INT_MIN.
13849
66c6fdd5
PE
13850 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
13851 when creating daemon; the previous buffer-overflow check was incorrect.
13852
d749b01b
PE
13853 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
13854 which has the guts of the old verror function.
13855
b5cd1905
PE
13856 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
13857 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
13858
6e1a67fb
PE
13859 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
13860 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 13861 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 13862 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
13863 length of string rather than counting it via multiple sprintfs;
13864 that's simpler and more reliable.
c21721cc
PE
13865 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
13866 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
13867 sprintf, in case result does not fit in int.
13868
c57b67fc
PE
13869 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
13870 (fontset_from_font): Print it.
13871
8a401434
PE
13872 * frame.c (tty_frame_count): Now printmax_t, not int.
13873 (make_terminal_frame, set_term_frame_name): Print it.
13874 (x_report_frame_params): In X, window IDs are unsigned long,
13875 not signed long, so print them as unsigned.
13876 (validate_x_resource_name): Check for implausibly long names,
13877 and don't assume name length fits in 'int'.
13878 (x_get_resource_string): Don't blindly alloca invocation name;
13879 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
13880 not fit in int.
13881
6e1a67fb
PE
13882 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
13883 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
13884 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
13885
0df02bf3
PE
13886 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
13887 Use esprintf, not sprintf, in case result does not fit in int.
13888
48e30793
PE
13889 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
13890 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
13891 it as a large positive number.
13892 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
13893 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
13894
a66ff6d8
PE
13895 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
13896 in case result does not fit in int.
13897
aca216ff
PE
13898 * print.c (float_to_string): Detect width overflow more reliably.
13899 (print_object): Make sprintf buffer a bit bigger, to avoid potential
13900 buffer overrun. Don't assume list length fits in 'int'. Treat
13901 print length of 0 as 0, not as infinity; to be consistent with other
13902 uses of print length in this function. Don't overflow print length
13903 index. Don't assume hash table size fits in 'long', or that
13904 vectorlike size fits in 'unsigned long'.
13905
31c286f7
PE
13906 * process.c (make_process): Use printmax_t, not int, to format
13907 process-name gensyms.
13908
55e5faa1
PE
13909 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
13910
80f2e268
PE
13911 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
13912 to avoid potential buffer overrun.
13913
670741ab
PE
13914 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
13915 if X resource line is longer than 512 bytes.
13916
b7163a50
PE
13917 * xfns.c (x_window): Make sprintf buffer a bit bigger
13918 to avoid potential buffer overrun.
13919
ae58ff1f
PE
13920 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
13921
c43c8a6a
PE
13922 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
13923
3f8236f4
PE
139242011-09-04 Paul Eggert <eggert@cs.ucla.edu>
13925
53e9fe90 13926 Integer overflow fixes for scrolling, etc.
6511acf2
PE
13927 Without these, Emacs silently mishandles large integers sometimes.
13928 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
13929 it were "C-u 1 M-x recenter" on a typical 64-bit host.
13930
6511acf2
PE
13931 * xdisp.c (try_window_id): Check Emacs fixnum range before
13932 converting to 'int'.
806add1d 13933
6511acf2 13934 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
13935 Check that an Emacs fixnum is in range before assigning it to 'int'.
13936 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
13937 values converted from Emacs fixnums.
13938 (Frecenter): Don't wrap around a line count if it is out of 'int'
13939 range; instead, treat it as an extreme value.
13940 (Fset_window_configuration, compare_window_configurations):
13941 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
13942
6511acf2
PE
13943 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
13944 that can exceed INT_MAX. Check that EMACS_INT value is in range
13945 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
13946 (match_limit): Don't assume that a fixnum can fit in 'int'.
13947
6511acf2 13948 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
13949 exceed INT_MAX.
13950
6511acf2 13951 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
13952 (Fvertical_motion): Don't wrap around LINES values that don't fit
13953 in 'int'. Instead, treat them as extreme values. This is good
13954 enough for windows, which can't have more than INT_MAX lines anyway.
13955
fcb901a7
LMI
139562011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13957
0f2f6b6d
LMI
13958 * Require libxml/parser.h to avoid compilation warning.
13959
fcb901a7
LMI
13960 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
13961
13962 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
13963 since this reportedly can destroy thread storage.
13964
6e20a0d4
CY
139652011-08-30 Chong Yidong <cyd@stupidchicken.com>
13966
13967 * syntax.c (find_defun_start): Update all cache variables if
13968 exiting early (Bug#9401).
13969
148ae00e
EZ
139702011-08-30 Eli Zaretskii <eliz@gnu.org>
13971
f6cfbd8f
EZ
13972 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
13973
148ae00e
EZ
13974 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
13975 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
13976 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
13977
13978 * term.c (tty_append_glyph): New function.
13979 (produce_stretch_glyph): Static function and its prototype deleted.
13980
a66cfb1c
SM
13981 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
13982 Add prototypes.
148ae00e 13983
c4a07a4c
PE
139842011-08-29 Paul Eggert <eggert@cs.ucla.edu>
13985
13986 * image.c (parse_image_spec): Check for nonnegative, not for positive,
13987 when checking :margin (Bug#9390).
13988 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 13989 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
13990 so that the name doesn't mislead. All uses changed.
13991
6bc8cd65
JB
139922011-08-28 Johan Bockgård <bojohan@gnu.org>
13993
13994 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
13995 set_tty_hooks.
13996
dca4927e
EZ
139972011-08-27 Eli Zaretskii <eliz@gnu.org>
13998
13999 * xdisp.c (move_it_to): Don't bail out early when reaching
14000 position beyond to_charpos, if we are scanning backwards.
14001 (move_it_vertically_backward): When DY == 0, make sure we get to
14002 the first character in the line after the newline.
14003
f2cad773
PE
140042011-08-27 Paul Eggert <eggert@cs.ucla.edu>
14005
14006 * ccl.c: Improve and simplify overflow checking (Bug#9196).
14007 (ccl_driver): Do not generate an out-of-range pointer.
14008 (Fccl_execute_on_string): Remove unnecessary check for
14009 integer overflow, noted by Stefan Monnier in
14010 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
14011 Remove a FIXME that didn't need fixing.
14012 Simplify the newly-introduced buffer reallocation code.
14013
0cae2cdb
JB
140142011-08-27 Juanma Barranquero <lekktu@gmail.com>
14015
14016 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
14017
5fc295a4 140182011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 14019
70c60eb2 14020 Integer and memory overflow issues (Bug#9196).
726e0ab1 14021
d31850da
PE
14022 * doc.c (get_doc_string): Rework so that
14023 get_doc_string_buffer_size is the actual buffer size, rather than
14024 being 1 less than the actual buffer size; this makes xpalloc more
14025 convenient.
14026
a69fbedb
PE
14027 * image.c (x_allocate_bitmap_record, cache_image):
14028 * xselect.c (Fx_register_dnd_atom):
14029 Simplify previous changes by using xpalloc.
14030
fe5c5d37
PE
14031 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
14032 since either will do and ptrdiff_t is convenient with xpalloc.
14033
0065d054
PE
14034 * charset.c (charset_table_size)
14035 (struct charset_sort_data.priority): Now ptrdiff_t.
14036 (charset_compare): Don't overflow if priorities differ greatly.
14037 (Fsort_charsets): Don't assume list length fits in int.
14038 Check for size-calculation overflow when allocating sort data.
14039 (syms_of_charset): Allocate an initial charset table that is
14040 just under 64 KiB, to avoid problems with glibc malloc and mmap.
14041
14042 * cmds.c (internal_self_insert): Check for size-calculation overflow.
14043
14044 * composite.h (struct composition.glyph_len): Now int, not unsigned.
14045 The actual value is always <= INT_MAX, and leaving it unsigned made
14046 overflow checking harder.
14047
14048 * dispextern.h (struct glyph_matrix.rows_allocated)
14049 (struct face_cache.size): Now ptrdiff_t, for convenience in use
14050 with xpalloc. The values are still always <= INT_MAX.
14051
14052 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
14053
14054 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
14055 (SAFE_NALLOCA): New macro.
14056
14057 * region-cache.c (struct boundary.pos, find_cache_boundary)
14058 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
14059 (set_cache_region, invalidate_region_cache)
14060 (revalidate_region_cache, know_region_cache, region_cache_forward)
14061 (region_cache_backward, pp_cache):
14062 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
14063 so that ptrdiff_t * can be passed to xpalloc.
14064 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
14065 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
14066 (pp_cache): Don't assume cache_len fits in int.
14067 * region-cache.h: Adjust extern decls to match.
14068
14069 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
14070 EMACS_INT, since either will do, for xpalloc.
14071
14072 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
14073 (xnmalloc, xnrealloc, xpalloc): New functions.
14074
726e0ab1
PE
14075 * bidi.c (bidi_shelve_header_size): New constant.
14076 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
14077 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
14078
51f30bc5 14079 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
14080 * buffer.c (overlays_at, overlays_in, record_overlay_string)
14081 (overlay_strings):
14082 Don't update size of array until after memory allocation succeeds,
14083 because xmalloc/xrealloc may not return.
0065d054
PE
14084 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
14085 now that we have proper integer overflow checking.
14086 (record_overlay_string, overlay_strings): Catch overflows when
14087 calculating size of overlay_str_buf.
726e0ab1 14088
0065d054
PE
14089 * callproc.c (Fcall_process): Check for size overflow when
14090 calculating size of args2.
14091 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
14092 Normally we prefer signed values, but sticking with ptrdiff_t would
14093 require adding more-complicated checks.
726e0ab1
PE
14094
14095 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
14096 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
14097 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 14098 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
14099
14100 * character.c (Fstring): Check for size-calculation overflow.
14101
14102 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
14103 unnecessary integer overflow. Check for size overflow.
14104 (encode_coding_object): Don't update size until xmalloc succeeds.
14105
14106 * composite.c (get_composition_id): Check for overflow in glyph
14107 length calculations.
14108
14109 Integer and memory overflow fixes for display code.
14110 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
14111 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
14112 (scrolling_window): Check for overflow in size calculations.
14113 (line_draw_cost, realloc_glyph_pool, add_row_entry):
14114 Don't assume glyph table len fits in int.
14115 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
14116 (row_table_size): Now ptrdiff_t, not int.
14117 (scrolling_window): Avoid overflow in size calculations.
14118 Don't update size until allocation succeeds.
14119 * fns.c (concat): Check for overflow in size calculations.
14120 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
14121 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
14122 (NEXT_ALMOST_PRIME_LIMIT): New constant.
14123
14124 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
14125 (get_doc_string): Check for size calculation overflow.
14126 Don't update size until allocation succeeds.
14127 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
14128 EMACS_INT, where ptrdiff_t will do.
14129 (Fsubstitute_command_keys): Check for string overflow.
14130
14131 * editfns.c (set_time_zone_rule): Don't assume environment length
14132 fits in int.
14133 (message_length): Now ptrdiff_t, not int.
14134 (Fmessage_box): Don't update size until allocation succeeds.
14135 Don't assume message length fits in int.
14136 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
14137
0065d054
PE
14138 * emacs.c (main): Do not reallocate argv, since there is a null at
14139 the end that can be overwritten, and this way there's no need to
14140 worry about size-calculation overflow.
14141 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
14142
14143 * eval.c (init_eval_once, grow_specpdl): Don't update size until
14144 alloc succeeds.
14145 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
14146
14147 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
14148 (x_set_scroll_bar_width, x_figure_window_size):
14149 Check for integer overflow.
14150 (x_set_alpha): Do not assume XINT fits in int.
14151
14152 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
14153 This is for the members text_lines, text_cols, total_lines, total_cols,
14154 where the system imposes an 'int' limit.
14155
14156 * fringe.c (Fdefine_fringe_bitmap):
14157 Don't update size until alloc works.
14158
14159 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
14160 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
14161
14162 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
14163 Check for size-calculation overflow.
14164 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
14165 do, as we prefer signed integers.
14166 (id_to_widget.max_size, id_to_widget.used)
14167 (xg_store_widget_in_map, xg_remove_widget_from_map)
14168 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
14169 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
14170 Use and return ptrdiff_t, not int.
14171 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
14172 * gtkutil.h: Change prototypes to match the above.
14173
14174 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
14175 are duplicate now that they've been promoted to lisp.h.
14176 (x_allocate_bitmap_record, x_alloc_image_color)
14177 (make_image_cache, cache_image, xpm_load):
14178 Don't update size until alloc is done.
14179 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
14180 (x_detect_edges):
3256efce 14181 Check for size calculation overflow.
726e0ab1
PE
14182 (ct_colors_allocated_max): New constant.
14183 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
14184 overflow.
3256efce 14185
726e0ab1
PE
14186 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
14187 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
14188 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
14189 Use ptrdiff_t, not int, to count maps.
14190 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
14191 calculations. Don't update size until allocation succeeds.
14192 Redo calculations to avoid overflow.
726e0ab1
PE
14193 * keyboard.h: Change prototypes to match the above.
14194
14195 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
14196 to count maps.
14197 (current_minor_maps): Check for size calculation overflow.
14198 * keymap.h: Change prototypes to match the above.
14199
14200 * lread.c (read1, init_obarray): Don't update size until alloc done.
14201
14202 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
14203 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
14204
726e0ab1
PE
14205 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
14206 Now ptrdiff_t, not int.
14207 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
14208 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
14209
14210 * process.c (Fnetwork_interface_list): Check for overflow
14211 in size calculation.
14212
14213 * region-cache.c (move_cache_gap): Check for size calculation overflow.
14214
14215 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
14216 overflow. Don't bother calling xmalloc when xrealloc will do.
14217
14218 * search.c (Freplace_match): Check for size calculation overflow.
14219 (Fset_match_data): Don't assume list lengths fit in 'int'.
14220
14221 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
14222 for command line length. Do not attempt to address one before the
14223 beginning of an array, as that's not portable.
14224
14225 * term.c (max_frame_lines): Remove; unused.
14226 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
14227 not int.
14228 (encode_terminal_code, calculate_costs): Check for size
14229 calculation overflow.
14230 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
14231 table lengths and related sizes. Don't update size until alloc
14232 done. Redo calculations to avoid overflow.
14233 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
14234
14235 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
14236 subtracting pointers.
14237 (gobble_line): Check for overflow more carefully. Don't update size
14238 until alloc done.
14239
14240 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
14241 Don't update size until alloc done.
14242 Redo size calculations to avoid overflow.
14243 Check for size calculation overflow.
0065d054 14244 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
14245
14246 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
14247 Use ptrdiff_t, not int, for sizes.
14248 (store_mode_line_noprop_char): Don't update size until alloc done.
14249
0065d054
PE
14250 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
14251 Use ptrdiff_t, not int, for sizes.
14252 (Finternal_make_lisp_face, cache_face):
14253 Check for size calculation overflow.
14254 (cache_face): Treat size calculation overflows as if they were
14255 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
14256
14257 * xfns.c (x_encode_text, x_set_name_internal)
14258 (Fx_change_window_property): Use ptrdiff_t, not int, to count
14259 sizes, since they can exceed INT_MAX in size. Check for size
14260 calculation overflow.
14261
0065d054
PE
14262 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
14263 (xg_select): Check for size calculation overflow.
726e0ab1
PE
14264 Don't update size until alloc done.
14265
0065d054 14266 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 14267 as sprintf is limited to int lengths.
1d526e2f 14268
252c5ee1
PE
14269 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
14270 (X_LONG_MIN): New macros.
864d7ce7
PE
14271 Use them to make the following changes clearer.
14272 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
14273 This change doesn't affect the value now, but it may help remind
14274 future maintainers not to raise the value too much later.
14275 (SELECTION_QUANTUM): Remove, replacing with ...
14276 (selection_quantum): ... new function, which avoids overflow.
14277 All uses changed.
14278 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
14279 assumption that selection length fits in 'int'.
14280 (x_reply_selection_request, x_handle_selection_request)
14281 (x_get_window_property, receive_incremental_selection)
14282 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
14283 (lisp_data_to_selection_data, clean_local_selection_data):
14284 Use ptrdiff_t, not int, to record length of selection.
14285 (x_reply_selection_request, x_get_window_property)
14286 (receive_incremental_selection, x_property_data_to_lisp):
14287 Redo calculations to avoid overflow.
14288 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 14289 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
14290 something.
14291 (x_get_window_property, receive_incremental_selection)
14292 (lisp_data_to_selection_data, x_property_data_to_lisp):
14293 Check for size-calculation overflow.
14294 (x_get_window_property, receive_incremental_selection)
14295 (lisp_data_to_selection_data, Fx_register_dnd_atom):
14296 Don't store size until memory allocation succeeds.
14297 (x_get_window_property): Plug memory leak on memory exhaustion.
14298 Don't double-block input; malloc is safe here. Don't assume 2**34
14299 - 4 fits in unsigned long. Add an xassert to check
14300 XGetWindowProperty overflow. Be more careful about overflow
14301 calculations, and distinguish size from memory overflow better.
14302 (receive_incremental_selection): When tracing, don't assume
14303 unsigned int is less than INT_MAX.
14304 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
14305 harmful) conversions of unsigned short to int.
14306 (lisp_data_to_selection_data): Don't assume that integers
14307 in the range -65535 through -1 fit in an X unsigned short.
14308 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
14309 result parameters unless successful. Rely on cons_to_unsigned
14310 to report problems with elements; the old code wasn't right anyway.
14311 (x_check_property_data): Check for int overflow; we cannot use
14312 a wider type due to X limits.
14313 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
14314
726e0ab1 14315 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 14316
0065d054
PE
14317 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
14318 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
14319 (x_color_cells): Don't store size until memory allocation succeeds.
14320 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 14321 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
14322 (x_term_init): Don't assume length fits in int (sprintf is limited
14323 to int size).
bc18e09d 14324
ebfa62c0
PE
14325 Use ptrdiff_t for composition IDs.
14326 * character.c (lisp_string_width):
14327 * composite.c (composition_table_size, n_compositions)
14328 (get_composition_id, composition_gstring_from_id):
14329 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
14330 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
14331 * window.c (Frecenter):
14332 Use ptrdiff_t, not int, for composition IDs.
14333 * composite.c (get_composition_id): Check for integer overflow.
14334 * composite.h: Adjust prototypes to match the above changes.
14335
d3411f89
PE
14336 Use ptrdiff_t for hash table indexes.
14337 * category.c (hash_get_category_set):
14338 * ccl.c (ccl_driver):
14339 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
14340 * coding.c (coding_system_charset_list, detect_coding_system):
14341 * coding.h (struct coding_system.id):
14342 * composite.c (get_composition_id, gstring_lookup_cache):
14343 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
14344 * image.c (xpm_get_color_table_h):
14345 * lisp.h (hash_lookup, hash_put):
14346 * minibuf.c (Ftest_completion):
14347 Use ptrdiff_t for hash table indexes, not int (which is too
14348 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
14349 32-bit --with-wide-int hosts).
14350
e097a6fa
PE
14351 * charset.c (Fdefine_charset_internal): Check for integer overflow.
14352 Add a FIXME comment about memory leaks.
14353 (syms_of_charset): Don't assume xmalloc returns.
14354
5637687f
PE
14355 Don't assume that stated character widths fit in int.
14356 * character.c (Fchar_width, c_string_width, lisp_string_width):
14357 * character.h (CHAR_WIDTH):
14358 * indent.c (MULTIBYTE_BYTES_WIDTH):
14359 Use sanitize_char_width to avoid undefined and/or bad behavior
14360 with outlandish widths.
a66cfb1c 14361 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
14362 now that we have two such functions. All uses changed.
14363 (sanitize_char_width): New inline function.
14364
a2271ba2
PE
14365 Don't assume that tab-width fits in int.
14366 * character.h (sanitize_width): New inline function.
14367 (SANE_TAB_WIDTH): New macro.
14368 (ASCII_CHAR_WIDTH): Use it.
14369 * indent.c (sane_tab_width): Remove. All uses replaced by
14370 SANE_TAB_WIDTH (current_buffer).
14371 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
14372
18c52557
PE
14373 * fileio.c: Integer overflow issues with file modes.
14374 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
14375
caeeedc1
PE
14376 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
14377 Remove unreachable code.
14378 (read_hex, load_charset_map_from_file): Check for integer overflow.
14379
6df6ae42 14380 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
14381 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
14382 (x_send_scroll_bar_event): Likewise. Check that the size does not
14383 exceed limits imposed by XClientMessageEvent, as well as the usual
14384 ptrdiff_t and size_t limits.
14385
b13995db
PE
14386 * keyboard.c: Overflow, signedness and related fixes.
14387 (make_lispy_movement): Use same integer type in forward decl
14388 that is used in the definition.
14389 (read_key_sequence, keyremap_step):
14390 Change bufsize argument back to int, undoing my 2011-03-30 change.
14391 We prefer signed types, and int is wide enough here.
14392 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
14393 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
14394 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
14395 length, not size_t. Use ptrdiff_t for index, not int.
14396 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
14397 possibility of integer overflow.
14398
13464394
PE
14399 Overflow, signedness and related fixes for images.
14400
14401 * dispextern.h (struct it.stack[0].u.image.image_id)
14402 (struct_it.image_id, struct image.id, struct image_cache.size)
14403 (struct image_cache.used, struct image_cache.ref_count):
14404 * gtkutil.c (update_frame_tool_bar):
14405 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
14406 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
14407 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
14408 * nsmenu.m (update_frame_tool_bar):
14409 * xdisp.c (calc_pixel_width_or_height):
14410 * xfns.c (image_cache_refcount):
14411 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
14412 on typical 64-bit hosts.
14413
14414 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
14415 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
14416 Omit unnecessary casts to int.
14417 (parse_image_spec): Check that integers fall into 'int' range
14418 when the callers expect that.
14419 (image_ascent): Redo ascent calculation to avoid int overflow.
14420 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
14421 (lookup_image): Remove unnecessary tests.
14422 (xbm_image_p): Locals are now of int, not EMACS_INT,
14423 since parse_image_check makes sure they fit into int.
14424 (png_load, gif_load, svg_load_image):
14425 Prefer int to unsigned where either will do.
14426 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
14427 old tiff_error_handler and tiff_warning_handler.
14428 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
14429 stack buffer overflows. It uses only the features of vsnprintf
14430 that are common to both POSIX and native Microsoft.
14431 (tiff_error_handler, tiff_warning_handler): Use it.
14432 (tiff_load, gif_load, imagemagick_load_image):
14433 Don't assume :index value fits in 'int'.
14434 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
14435 (imagemagick_load_image): Check that crop parameters fit into
14436 the integer types that MagickCropImage accepts. Don't assume
14437 Vimagemagick_render_type has a nonnegative value. Don't assume
14438 size_t fits in 'long'.
14439 (gs_load): Use printmax_t to print the widest integers possible.
14440 Check for integer overflow when computing image height and width.
14441
c11821d4
EZ
144422011-08-26 Eli Zaretskii <eliz@gnu.org>
14443
14444 * xdisp.c (redisplay_window): Don't force window start if point
14445 will be invisible in the resulting window. (Bug#9324)
14446
0c95fcf7
EZ
144472011-08-25 Eli Zaretskii <eliz@gnu.org>
14448
14449 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
14450 the display spec is of the form `(space ...)'.
14451 (handle_display_spec): Return the value returned by
14452 handle_single_display_spec, not just 1 or zero.
14453 (handle_single_display_spec): If the display spec is of the form
14454 `(space ...)', and specifies display in the text area, return 2
14455 rather than 1.
fee65a97 14456 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
14457 accurately, and prefer exact match for point under bidi.
14458 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
14459
14460 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
14461 into disp_prop; all users changed.
14462
14463 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
14464 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
14465 for the text covered by the display property.
14466
e4ed06f1
CY
144672011-08-25 Chong Yidong <cyd@stupidchicken.com>
14468
14469 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
14470 Change return value to nil.
14471 (Frecord_buffer): Delete unused function.
14472
f67cdd7f
EZ
144732011-08-24 Eli Zaretskii <eliz@gnu.org>
14474
5980d4c6
EZ
14475 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
14476 buffers, return left-to-right.
8610fe8b
EZ
14477 (set_cursor_from_row): Consider candidate row a win if its glyph
14478 represents a newline and point is on that newline. Fixes cursor
14479 positioning on the newline at EOL of R2L text within L2R
14480 paragraph, and vice versa.
14481 (try_cursor_movement): Check continued rows, in addition to
14482 continuation rows. Fixes unwarranted scroll when point enters a
14483 continued line of R2L text within an L2R paragraph, or vice versa.
14484 (cursor_row_p): Consider the case of point being equal to
14485 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
14486 from the end of a short line to the beginning of a continued line
14487 of R2L text within L2R paragraph.
14488 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
14489 composed characters.
5980d4c6 14490
f67cdd7f
EZ
14491 * bidi.c (bidi_check_type): Use xassert.
14492 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
14493 members.
14494
bca633fb
EZ
144952011-08-23 Eli Zaretskii <eliz@gnu.org>
14496
14497 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
14498 a character.
14499
4a5885a7
CY
145002011-08-23 Chong Yidong <cyd@stupidchicken.com>
14501
14502 * nsfont.m (ns_otf_to_script): Fix typo.
14503
0902a04e
KH
145042011-08-22 Kenichi Handa <handa@m17n.org>
14505
14506 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
14507 extra slot even if the purpose is char-code-property-table.
14508
1a2e6670
EZ
145092011-08-23 Eli Zaretskii <eliz@gnu.org>
14510
8ddde651
EZ
14511 * xdisp.c (redisplay_window): When computing centering_position,
14512 account for the height of the header line. (Bug#8874)
14513
425cc014
EZ
14514 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
14515 instead of CHAR_TO_BYTE. Fixes a crash when a completion
14516 candidate is selected by the mouse, and that candidate has a
14517 composed character under the mouse.
14518
1a2e6670
EZ
14519 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
14520 coordinates reported by pos-visible-in-window-p for a composed
14521 character in column zero.
14522
8b76d6f8
SM
145232011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
14524
14525 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
14526
dac347dd
EZ
145272011-08-22 Eli Zaretskii <eliz@gnu.org>
14528
14529 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
14530 consider it a hit if to_charpos is anywhere in the range of the
14531 composed buffer positions.
14532
e013fb34
CY
145332011-08-22 Chong Yidong <cyd@stupidchicken.com>
14534
14535 * image.c (gif_load): Don't assume that each subimage has the same
14536 dimensions as the base image. Handle disposal method that is
14537 "undefined" by the gif spec (Bug#9335).
14538
bd1ba3e8
CY
145392011-08-20 Chong Yidong <cyd@stupidchicken.com>
14540
14541 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 14542 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 14543
54a1215b
EZ
145442011-08-19 Eli Zaretskii <eliz@gnu.org>
14545
823564e5
EZ
14546 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
14547 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
14548 from an Org mode buffer to a Speedbar frame.
14549
54a1215b
EZ
14550 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
14551 a composition, take its buffer position from IT->cmp_it.charpos.
14552 Fixes cursor positioning at the beginning of a line that begins
14553 with a composed character.
14554
9778ebcc
EZ
145552011-08-18 Eli Zaretskii <eliz@gnu.org>
14556
0be6ee06
EZ
14557 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
14558 character bidirectional type, use STRONG_L instead. Fixes crashes
14559 in a buffer produced by `describe-categories'.
14560
9778ebcc
EZ
14561 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
14562 members before the level stack, so they would be saved and
14563 restored when copying iterator state. Fixes incorrect reordering
14564 around TABs covered by display properties.
14565
156bffbe
AS
145662011-08-18 Andreas Schwab <schwab@linux-m68k.org>
14567
6b02f655 14568 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 14569
72ad093b
CY
145702011-08-17 Chong Yidong <cyd@stupidchicken.com>
14571
14572 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
14573 (internal_condition_case_2, internal_condition_case_n):
14574 Remove unnecessary aborts (Bug#9081).
72ad093b 14575
35774242
EZ
145762011-08-17 Eli Zaretskii <eliz@gnu.org>
14577
14578 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
14579 has no `load' handler, try opening the file locally. (Bug#9311)
14580
db76dd85
KB
145812011-08-16 Ken Brown <kbrown@cornell.edu>
14582
14583 * gmalloc.c: Expand comment.
14584
b215eee5
EZ
145852011-08-16 Eli Zaretskii <eliz@gnu.org>
14586
14587 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
14588 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
14589
a4579d33
KB
145902011-08-16 Ken Brown <kbrown@cornell.edu>
14591
14592 Fix memory allocation problems in Cygwin build (Bug#9273).
14593
14594 * unexcw.c ( __malloc_initialized): Declare external variable.
14595 (fixup_executable): Force the dumped emacs to reinitialize malloc.
14596
8b76d6f8
SM
14597 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
14598 New variables.
a4579d33
KB
14599 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
14600 dumped emacs.
14601 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
14602 in the static heap.
14603 [CYGWIN] (special_realloc): New function.
14604 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
14605 requests to realloc storage in the static heap.
14606
3ebec551
PE
146072011-08-15 Paul Eggert <eggert@cs.ucla.edu>
14608
14609 * bidi.c (bidi_initialize): Remove unused local.
14610
9fd8be00
EZ
146112011-08-15 Eli Zaretskii <eliz@gnu.org>
14612
6b02f655
SM
14613 * bidimirror.h:
14614 * biditype.h: Remove file.
14615 * makefile.w32-in ($(BLD)/bidi.$(O)):
14616 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
14617
14618 * dispextern.h: Fix a typo in the comment to bidi_type_t.
14619
14620 * chartab.c: Improve commentary for the uniprop_table API.
14621
32413314
EZ
14622 * bidi.c (bidi_paragraph_init): Support zero value of
14623 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
14624 (bidi_initialize): Use uniprop_table instead of including
14625 biditype.h and bidimirror.h.
32413314 14626
9fd8be00
EZ
14627 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
14628 coordinates of the iterator when restoring from ppos_it.
14629 (Bug#9296)
14630
5cf2b69b
KH
146312011-08-14 Kenichi Handa <handa@m17n.org>
14632
14633 * process.c (create_process): Call setup_process_coding_systems
72ad093b 14634 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 14635
daf17d00
EZ
146362011-08-14 Eli Zaretskii <eliz@gnu.org>
14637
14638 * xdisp.c (move_it_in_display_line_to): Don't invoke
14639 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
14640 ppos_it. Fixes vertical cursor motion when line beginning is
14641 covered by an image. (Bug#9296)
14642
08e3161a
JD
146432011-08-14 Jan Djärv <jan.h.d@swipnet.se>
14644
14645 * nsterm.h (ns_run_ascript): Declare.
14646 (NSAPP_DATA2_RUNASSCRIPT): Define.
14647
14648 * nsfns.m (as_script, as_result, as_status): New static variables.
14649 (ns_run_ascript): New function.
5e617bc2 14650 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
14651 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
14652 the event loop. Get status from as_status (Bug#7276).
14653
14654 * nsterm.m (sendEvent): If event is NSApplicationDefined and
14655 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
14656 the event loop (Bug#7276).
14657
a3720aa2
AS
146582011-08-14 Andreas Schwab <schwab@linux-m68k.org>
14659
14660 * gnutls.c (QCgnutls_bootprop_priority)
14661 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
14662 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
14663 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
14664 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
14665 (QCgnutls_bootprop_verify_hostname_error)
14666 (QCgnutls_bootprop_callbacks_verify): Rename from
14667 Qgnutls_bootprop_..., all uses changed.
14668
14669 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
14670 uses changed.
14671
0a0d27fb
PE
146722011-08-14 Paul Eggert <eggert@cs.ucla.edu>
14673
19d5c50c
PE
14674 * xfaces.c (Qframe_set_background_mode): Now static.
14675 * dispextern.h (Qframe_set_background_mode): Remove decl.
14676
0a0d27fb
PE
14677 * process.c (Fnetwork_interface_info): Declare local only if needed.
14678
377538cb
JD
146792011-08-13 Jan Djärv <jan.h.d@swipnet.se>
14680
14681 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
14682 (Fnetwork_interface_list): Allocate in increments of bytes instead
14683 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
14684 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
14685 sockaddr.
14686 (struct ifflag_def): notrailers is smart on OSX.
14687 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
14688 Get hardware address with getifaddrs if available.
14689
08fff70c
EZ
146902011-08-12 Eli Zaretskii <eliz@gnu.org>
14691
14692 * xdisp.c (iterate_out_of_display_property): xassert that
14693 IT->position is set to within IT->object's boundaries. Break from
14694 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
14695 when IT->position is set up wrongly due to some bug.
14696 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
14697 (push_display_prop): Allow GET_FROM_STRING as IT->method on
14698 entry. Force push_it to save on the stack the current
14699 buffer/string position, to be restored by pop_it. Fix flags in
14700 the iterator structure wrt the object coming from a display
14701 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
14702 properties. (Bug#9284)
14703
7be1c708 147042011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 14705
7be1c708
CY
14706 * fontset.c (fontset_get_font_group): Add proper type checks.
14707 (Bug#9172)
aac0c6e3 14708
7be1c708 147092011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 14710
7be1c708
CY
14711 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
14712 and LC_VERSION_MIN_MACOSX.
14713 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
14714 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 14715
97bb72a6
EZ
147162011-08-08 Eli Zaretskii <eliz@gnu.org>
14717
14718 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
14719 no-display-properties-and-no-overlays under bidi display.
14720 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 14721 properties and overlays.
97bb72a6 14722
d5617611
CY
147232011-08-08 Chong Yidong <cyd@stupidchicken.com>
14724
37e11a63
CY
14725 * editfns.c (Fset_time_zone_rule): Document relationship with the
14726 setenv function.
14727
d5617611
CY
14728 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
14729 the font entity extracted from the cache (Bug#8109).
14730
58872834
CY
147312011-08-07 Chong Yidong <cyd@stupidchicken.com>
14732
14733 * composite.c (autocmp_chars): Don't reset point. That is done by
14734 restore_point_unwind (Bug#5984).
14735
75bfc667
JL
147362011-08-07 Juri Linkov <juri@jurta.org>
14737
14738 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
14739 to show the arg `TIME' instead of `TIMEVAL'.
14740
d1410150
EZ
147412011-08-06 Eli Zaretskii <eliz@gnu.org>
14742
14743 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
14744 display property strides EOL and includes a newline, as in
14745 longlines-mode. (Bug#9254)
75b771e4
EZ
14746 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
14747 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
14748
14749 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
14750 is non-zero, even if the data buffer is NULL. Fixes a crash in
14751 vertical-motion with longlines-mode. (Bug#9254)
14752
35928349
EZ
147532011-08-05 Eli Zaretskii <eliz@gnu.org>
14754
ec7cc85b
EZ
14755 * bidi.c <bidi_cache_total_alloc>: Now static.
14756 (bidi_initialize): Initialize bidi_cache_total_alloc.
14757
8b76d6f8 14758 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
14759 cache. (Bug#9221)
14760
14761 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
14762 amount allocated this far in `bidi_cache_total_alloc'.
14763 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
14764 non-zero, only free the data buffer without restoring the cache
14765 contents. All callers changed.
14766
14767 * dispextern.h (bidi_unshelve_cache): Update prototype.
14768
14769 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
14770 (move_it_in_display_line, move_it_to)
14771 (move_it_vertically_backward, move_it_by_lines): Replace the call
14772 to xfree to an equivalent call to bidi_unshelve_cache.
14773 (move_it_in_display_line_to): Fix logic of returning
412b6358 14774 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 14775
e2e2423b
EZ
147762011-08-05 Eli Zaretskii <eliz@gnu.org>
14777
14778 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
14779 came from a string character with a `cursor' property. (Bug#9229)
14780
ae9e757a
JD
147812011-08-04 Jan Djärv <jan.h.d@swipnet.se>
14782
14783 * Makefile.in (LIB_PTHREAD): New variable.
14784 (LIBES): Add LIB_PTHREAD (Bug#9216).
14785
14786 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
14787 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
14788
213bd7f2
AS
147892011-08-04 Andreas Schwab <schwab@linux-m68k.org>
14790
6b02f655 14791 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 14792
99aaf75f
JD
147932011-08-04 Jan Djärv <jan.h.d@swipnet.se>
14794
14795 * xterm.c (x_find_topmost_parent): New function.
14796 (x_set_frame_alpha): Find topmost parent window with
14797 x_find_topmost_parent and set the property there also (bug#9181).
14798 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
14799
c74e9d86
PE
148002011-08-04 Paul Eggert <eggert@cs.ucla.edu>
14801
14802 * callproc.c (Fcall_process): Avoid vfork clobbering
14803 the local vars buffer, coding_systems, current_dir.
14804
640c8776
SM
148052011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
14806
14807 * keymap.c (Fmake_composed_keymap): Move to subr.el.
14808
f26d0e4c
PE
148092011-08-03 Paul Eggert <eggert@cs.ucla.edu>
14810
8a10d76c
PE
14811 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
14812 so that it is not optimized away.
14813
f26d0e4c
PE
14814 * xdisp.c (compute_display_string_pos): Remove unused local.
14815
55439c61
EZ
148162011-08-02 Eli Zaretskii <eliz@gnu.org>
14817
14818 Fix slow cursor motion and scrolling in large buffers with
14819 selective display, like Org Mode buffers. (Bug#9218)
14820
14821 * dispextern.h (struct bidi_it): New member disp_prop_p.
14822
14823 * xdisp.c: Remove one-slot cache of display string positions.
14824 (compute_display_string_pos): Accept an additional argument
5e617bc2 14825 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
14826 for a display string or property. If found, set DISP_PROP_P
14827 non-zero.
14828
14829 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
14830 DISP_PROP_P, and pass it to compute_display_string_pos.
14831 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
14832 non-zero. All callers of bidi_fetch_char changed.
14833
fb33fa43
SM
148342011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
14835
14836 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
14837
b099e063
DM
148382010-12-03 Don March <don@ohspite.net>
14839
14840 * keymap.c (Fdefine_key): Fix non-prefix key error message when
14841 last character M-[char] is translated to ESC [char] (bug#7541).
14842
5cc7f7af
KH
148432011-08-02 Kenichi Handa <handa@m17n.org>
14844
d0fffa3f 14845 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
14846
14847 * chartab.c (uniprop_table): Make it non-static.
14848
525d5e6e
EZ
148492011-08-01 Eli Zaretskii <eliz@gnu.org>
14850
14851 * xdisp.c (forward_to_next_line_start): Accept additional argument
14852 BIDI_IT_PREV, and store into it the state of the bidi iterator had
14853 on the newline.
14854 (reseat_at_next_visible_line_start): Use the bidi iterator state
14855 returned by forward_to_next_line_start to restore the state of
14856 it->bidi_it after backing up to previous newline. (Bug#9212)
14857
31011111
AS
148582011-07-30 Andreas Schwab <schwab@linux-m68k.org>
14859
14860 * regex.c (re_comp): Protoize.
14861 (re_exec): Fix return type.
14862 (regexec): Fix type of `ret'. (Bug#9203)
14863
476371c4
PE
148642011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14865
e5d76069
PE
14866 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
14867 This is needed if max-image-size is a floating-point number.
14868
9a79b20c
AS
148692011-07-28 Andreas Schwab <schwab@linux-m68k.org>
14870
14871 * print.c (print_object): Print empty symbol as ##.
14872
14873 * lread.c (read1): Read ## as empty symbol.
14874
d8c2fa78
AA
148752011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
14876
14877 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
14878 setting frame foreground color (Bug#9175).
14879 (x_set_background_color): Likewise.
14880
ffe57a7a
AA
14881 * nsmenu.m (-setText): Size tooltip dimensions precisely to
14882 contents (Bug#9176).
14883 (EmacsTooltip -init): Remove bezels and add shadows to
14884 tooltip windows.
14885
bf3492a5
AA
14886 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
14887 or scroll bar (Bug#8470).
14888
d55e9c53
AA
14889 * nsfont.m (nsfont_open): Remove assignment to voffset and
14890 unnecessary vars hshink, expand, hd, full_height, min_height.
14891 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
14892
14893 * nsterm.h (nsfont_info): Remove voffset field.
14894
d8c2fa78 148952011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
14896
14897 Implement strike-through and overline on NextStep (Bug#8863).
14898
14899 * nsfont.m (nsfont_open): Use underline position provided by font,
14900 instead of hard-coded value of 2.
14901 (nsfont_draw): Call ns_draw_text_decoration instead.
14902
14903 * nsterm.h: Add declaration for ns_draw_text_decoration.
14904
14905 * nsterm.m (ns_draw_text_decoration): New function for drawing
14906 underline, overline, and strike-through.
14907 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
14908 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 14909 accommodate underlining, etc.
4843aac3 14910
4cc60b9b
EZ
149112011-07-28 Eli Zaretskii <eliz@gnu.org>
14912
bc7ece87
EZ
14913 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
14914 default.
4cc60b9b 14915
476371c4
PE
149162011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14917
66606eea
PE
14918 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
14919 Without this fix, if a signal arrives just after memory fills up,
14920 'malloc' might be invoked reentrantly.
14921
476371c4
PE
14922 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
14923 In other words, assume that every image size is allowed, on non-X
14924 hosts. This assumption is probably wrong, but it lets Emacs compile.
14925
f3fcc40d
AS
149262011-07-28 Andreas Schwab <schwab@linux-m68k.org>
14927
14928 * regex.c (re_iswctype): Convert return values to boolean.
14929
350c992f
EZ
149302011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
14931
14932 * xdisp.c (compute_display_string_pos): Don't use cached display
14933 string position if the buffer had its restriction changed.
14934 (Bug#9184)
14935
5266b4bb
PE
149362011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14937
14938 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
14939
2573a837 149402011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 14941
41f55ccd 14942 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 14943
39e378da
PE
14944 * bidi.c: Integer size and overflow fixes.
14945 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
14946 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
14947 (bidi_cache_find_level_change, bidi_cache_ensure_space)
14948 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
14949 (bidi_find_other_level_edge):
14950 Use ptrdiff_t instead of EMACS_INT where either will do.
14951 This works better on 32-bit hosts configured --with-wide-int.
14952 (bidi_cache_ensure_space): Check for size-calculation overflow.
14953 Use % rather than repeated addition, for better worst-case speed.
14954 Don't set bidi_cache_size until after xrealloc returns, because it
14955 might not return.
14956 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
14957 (bidi_cache_ensure_space): Also check that the bidi cache size
14958 does not exceed that of the largest Lisp string or buffer. See Eli
14959 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 14960
5e927815
PE
14961 * alloc.c (__malloc_size_t): Remove.
14962 All uses replaced by size_t. See Andreas Schwab's note
14963 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
14964
ca4aa935
PE
14965 * image.c: Improve checking for integer overflow.
14966 (check_image_size): Assume that f is nonnull, since
14967 it is always nonnull in practice. This is one less thing to
14968 worry about when checking for integer overflow later.
14969 (x_check_image_size): New function, which checks for integer
14970 overflow issues inside X.
14971 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
14972 This removes the need for a memory_full check.
14973 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
14974 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
14975 (xbm_read_bitmap_data): Change locals back to 'int', since
14976 their values must fit in 'int'.
14977 (xpm_load_image, png_load, tiff_load):
14978 Invoke x_create_x_image_and_pixmap earlier,
14979 to avoid much needless work if the image is too large.
14980 (tiff_load): Treat overly large images as if
14981 x_create_x_image_and_pixmap failed, not as malloc failures.
14982 (gs_load): Use x_check_image_size.
14983
5f8f9cc2
PE
14984 * gtkutil.c: Omit integer casts.
14985 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
14986 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
14987
5adf60bc
PE
14988 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
14989
c8907a93
PE
14990 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
14991 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
14992 would wrongly return t on a 64-bit host.
14993
e3c25c68
PE
14994 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
14995 The plain *_OVERFLOW macros run afoul of GCC bug 49705
14996 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
14997 and therefore cause GCC to emit a bogus diagnostic in some cases.
14998
3f791afe
PE
14999 * image.c: Integer signedness and overflow and related fixes.
15000 This is not an exhaustive set of fixes, but it's time to
15001 record what I've got.
15002 (lookup_pixel_color, check_image_size): Remove redundant decls.
15003 (check_image_size): Don't assume that arbitrary EMACS_INT values
15004 fit in 'int', or that arbitrary 'double' values fit in 'int'.
15005 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
15006 (tiff_load, imagemagick_load_image):
15007 Check for overflow in size calculations.
15008 (x_create_x_image_and_pixmap): Remove unnecessary test for
15009 xmalloc returning NULL; that can't happen.
15010 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
15011 (xpm_color_bucket): Use better integer hashing function.
15012 (xpm_cache_color): Don't possibly over-allocate memory.
15013 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
15014 (gif_memory_source):
15015 Use ptrdiff_t, not int or size_t, to record sizes.
15016 (png_load): Don't assume values greater than 2**31 fit in 'int'.
15017 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
15018 either works, as we prefer signed integers.
15019 (tiff_read_from_memory, tiff_write_from_memory):
15020 Return tsize_t, not size_t, since that's what the TIFF API wants.
15021 (tiff_read_from_memory): Don't fail simply because the read would
15022 go past EOF; instead, return a short read.
15023 (tiff_load): Omit no-longer-needed casts.
15024 (Fimagemagick_types): Don't assume size fits into 'int'.
15025
3cc5a532
PE
15026 Improve hashing quality when configured --with-wide-int.
15027 * fns.c (hash_string): New function, taken from sxhash_string.
15028 Do not discard information about ASCII character case; this
15029 discarding is no longer needed.
15030 (sxhash-string): Use it. Change sig to match it. Caller changed.
15031 * lisp.h: Declare it.
15032 * lread.c (hash_string): Remove, since we now use fns.c's version.
15033 The fns.c version returns a wider integer if --with-wide-int is
15034 specified, so this should help the quality of the hashing a bit.
15035
b312a492
PE
15036 * emacs.c: Integer overflow minor fix.
15037 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
15038 Define only if GNU_LINUX.
15039 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
15040
dfd153ae
PE
15041 * dispnew.c: Integer signedness and overflow fixes.
15042 Remove unnecessary forward decls, that were a maintenance hassle.
15043 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
15044 All uses changed.
15045 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
15046 (scrolling_window): Use ptrdiff_t, not int, for byte count.
15047 (prepare_desired_row, line_draw_cost):
15048 Use int, not unsigned, where either works.
15049 (save_current_matrix, restore_current_matrix):
15050 Use ptrdiff_t, not size_t, where either works.
15051 (init_display): Check for overflow more accurately, and without
15052 relying on undefined behavior.
15053
a81d11a3
PE
15054 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
15055 Remove, replacing with the new symbols in lisp.h. All uses changed.
15056 * fileio.c (make_temp_name):
15057 * filelock.c (lock_file_1, lock_file):
15058 * xdisp.c (message_dolog):
15059 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
15060 Use pMd etc. instead.
15061 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
15062 replacing the pWIDE etc. symbols removed from editfns.c.
15063
3300e6fd
PE
15064 * keyboard.h (num_input_events): Now uintmax_t.
15065 This is (very slightly) less likely to mess up due to wraparound.
15066 All uses changed.
15067
fd05c7e9
PE
15068 * buffer.c: Integer signedness fixes.
15069 (alloc_buffer_text, enlarge_buffer_text):
15070 Use ptrdiff_t rather than size_t when either will do, as we prefer
15071 signed integers.
15072
903fe15d
PE
15073 * alloc.c: Integer signedness and overflow fixes.
15074 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
15075 (__malloc_size_t): Default to size_t, not to int.
15076 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
15077 (Fgarbage_collect, mark_object_loop_halt, mark_object):
15078 Prefer ptrdiff_t to size_t when either would do, as we prefer
15079 signed integers.
15080 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
15081 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
15082 Now const. Initialize with values that are in range even if char
15083 is signed.
15084 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
15085 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
15086 These functions do the right thing with sizes > 2**32.
15087 (check_depth): Now ptrdiff_t, not int.
15088 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
15089 Adjust to new way of storing sizes. Check for size overflow bugs
15090 in rest of code.
15091 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
15092 slightly wrong anyway, as it missed one instance of
15093 XMALLOC_OVERRUN_CHECK_OVERHEAD.
15094 (refill_memory_reserve): Omit needless cast to size_t.
15095 (mark_object_loop_halt): Mark as externally visible.
15096
ac82cc6a
PE
15097 * xselect.c: Integer signedness and overflow fixes.
15098 (Fx_register_dnd_atom, x_handle_dnd_message):
15099 Use ptrdiff_t, not size_t, since we prefer signed.
15100 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
15101 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
15102 x_dnd_atoms_size and x_dnd_atoms_length.
15103
c2d1e36d
PE
15104 * doprnt.c: Prefer signed to unsigned when either works.
15105 * eval.c (verror):
15106 * doprnt.c (doprnt):
15107 * lisp.h (doprnt):
15108 * xdisp.c (vmessage):
15109 Use ptrdiff_t, not size_t, when using or implementing doprnt,
15110 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
15111 prefer signed arithmetic to avoid comparison confusion.
15112 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
15113 but is a bit tricky.
15114
0e926e56
PE
15115 Assume freestanding C89 headers, string.h, stdlib.h.
15116 * data.c, doprnt.c, floatfns.c, print.c:
15117 Include float.h unconditionally.
15118 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
15119 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
15120 * regex.c: Likewise for stddef.h, string.h.
15121 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
15122 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
15123 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
15124 (STDC_HEADERS): Remove obsolete defines.
15125 * sysdep.c: Include limits.h unconditionally.
15126
9cfdb3ec
PE
15127 Assume support for memcmp, memcpy, memmove, memset.
15128 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
15129 * regex.c (memcmp, memcpy):
15130 Remove; we assume C89 now.
15131
15132 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
15133 (__malloc_safe_bcopy): Remove; no longer needed.
15134
cf950e6b 15135 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
15136 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
15137 well either way, and we prefer signed to unsigned.
15138
dbf38e02
LMI
151392011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
15140
15141 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
15142 closes the connection while we're reading (bug#9182).
15143
d6f0886c 151442011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 15145
d6f0886c
JD
15146 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
15147 are specified (Bug#9168).
24e0f6b1 15148
2eb1f9e6
PE
151492011-07-25 Paul Eggert <eggert@cs.ucla.edu>
15150
15151 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
15152 Found by GCC static checking and --with-wide-int on a 32-bit host.
15153
22381272 151542011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
15155
15156 * xdisp.c (compute_display_string_pos): Fix logic of caching
15157 previous display string position. Initialize cached_prev_pos to
15158 -1. Fixes slow-down at the beginning of a buffer.
15159
f25e39b4
EZ
151602011-07-24 Eli Zaretskii <eliz@gnu.org>
15161
15162 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
15163 for attrs[LFACE_FONTSET_INDEX].
15164
04c4b52e
PE
151652011-07-23 Paul Eggert <eggert@cs.ucla.edu>
15166
15167 * xml.c (parse_region): Remove unused local
15168 that was recently introduced.
15169
c1734fbd
EZ
151702011-07-23 Eli Zaretskii <eliz@gnu.org>
15171
be18c5a5
EZ
15172 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
15173 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
15174
c1734fbd
EZ
15175 * xdisp.c (move_it_in_display_line_to): Record the best matching
15176 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
15177 exit if none of the characters scanned was an exact match.
15178 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
15179 when exact match is impossible due to invisible text, and the
15180 lines are truncated.
15181
a258d627
JD
151822011-07-23 Jan Djärv <jan.h.d@swipnet.se>
15183
15184 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
15185 for OSX >= 10.7.
15186
b6d5a689
EZ
151872011-07-22 Eli Zaretskii <eliz@gnu.org>
15188
0f74f785
EZ
15189 Fix a significant slow-down of cursor motion with C-n, C-p,
15190 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
15191 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 15192 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
15193 (next_element_from_buffer): Call compute_stop_pos_backwards to
15194 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
15195 base_level_stop.
15196 (reseat): Don't look for prev_stop, as that could mean a very long
15197 run.
15198 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
15199 <cached_disp_overlay_modiff>: Cache for last found display string
15200 position.
551918c1 15201 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
15202 about the same buffer in the same area of character positions, and
15203 the buffer wasn't changed since the time the display string
15204 position was cached.
551918c1 15205
b2d0c91a
EZ
152062011-07-22 Eli Zaretskii <eliz@gnu.org>
15207
15208 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
15209 is an integer, which is important for empty lines. (Bug#9149)
15210
043604ee
CY
152112011-07-22 Chong Yidong <cyd@stupidchicken.com>
15212
15213 * frame.c (Fmodify_frame_parameters): In tty case, update the
15214 default face if necessary (Bug#4238).
15215
da4adb04
CY
152162011-07-21 Chong Yidong <cyd@stupidchicken.com>
15217
15218 * editfns.c (Fstring_to_char): No need to explain what a character
15219 is in the docstring (Bug#6576).
15220
9abd0532
LMI
152212011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
15222
15223 * xml.c (parse_region): Make sure we always return a tree.
15224
36881d16
HK
152252011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
15226
15227 * xml.c (parse_region): If a document contains only comments,
15228 return that, too.
15229
1e98674d
LMI
152302011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
15231
15232 * xml.c (make_dom): Return comments, too.
15233
590bd467
PE
152342011-07-19 Paul Eggert <eggert@cs.ucla.edu>
15235
15236 Port to OpenBSD.
15237 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
15238 and the surrounding thread.
15239 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
15240 rather than fgets, and retry after EINTR. Otherwise, 'emacs
15241 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
15242 timer goes off.
15243 * s/openbsd.h (BROKEN_SIGIO): Define.
15244 * unexelf.c (unexec) [__OpenBSD__]:
15245 Don't update the .mdebug section of the Alpha COFF symbol table.
15246
f41628b2
LMI
152472011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
15248
15249 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
15250 (bug#8460).
15251
b59b67c5
PE
152522011-07-18 Paul Eggert <eggert@cs.ucla.edu>
15253
15e3a074
PE
15254 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
15255 This fixes some race conditions on the permissions of any newly
15256 created file.
15257
41bed37d
PE
15258 * alloc.c (valid_pointer_p): Use pipe, not open.
15259 This fixes some permissions issues when debugging.
15260
b59b67c5
PE
15261 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
15262 If fchown fails to set both uid and gid, try to set just gid,
15263 as that is sometimes allowed. Adjust the file's mode to eliminate
15264 setuid or setgid bits that are inappropriate if fchown fails.
15265
925a6be7
SM
152662011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
15267
15268 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
15269 to compare Lisp_Objects.
15270 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
15271 global_gnutls_log_level, don't mistake it for a Lisp_Object.
15272 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
15273
52968808
AS
152742011-07-17 Andreas Schwab <schwab@linux-m68k.org>
15275
0a6a104b
AS
15276 * lread.c (read_integer): Unread even EOF character.
15277 (read1): Likewise. Properly record start position of symbol.
15278
52968808
AS
15279 * lread.c (read1): Read `#:' as empty uninterned symbol if no
15280 symbol character follows.
15281
9e381cdd
PE
152822011-07-17 Paul Eggert <eggert@cs.ucla.edu>
15283
15284 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
15285 This works around a problem with the previous change to Fcopy_file.
15286 Recent glibc declares fchown with __attribute__((warn_unused_result)),
15287 and without this change, GCC might complain about discarding
15288 fchown's return value.
15289
b5641435
JB
152902011-07-16 Juanma Barranquero <lekktu@gmail.com>
15291
15292 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
15293
a8031457
PE
152942011-07-16 Paul Eggert <eggert@cs.ucla.edu>
15295
15296 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
15297
dd889327
LMI
152982011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
15299
750c33f7
LMI
15300 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
15301 it's used from the C level.
15302
dd889327
LMI
15303 * process.c: Use the same condition for POLL_FOR_INPUT in both
15304 keyboard.c and process.c (bug#1858).
15305
87e86684
LM
153062011-07-09 Lawrence Mitchell <wence@gmx.li>
15307
15308 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
15309 (Fgnutls_boot): Use it.
15310
64348f40
AS
153112011-07-15 Andreas Schwab <schwab@linux-m68k.org>
15312
15313 * doc.c (Fsubstitute_command_keys): Revert last change.
15314
1d698799
LMI
153152011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
15316
f863868c
LMI
15317 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
15318 quotes the next character, and doesn't affect other longer
15319 sequences (bug#8935).
15320
1d698799
LMI
15321 * lread.c (syms_of_lread): Clarify that is isn't only
15322 `eval-buffer' and `eval-defun' that's affected by
15323 `lexical-binding' (bug#8460).
15324
aa4b6df6
EZ
153252011-07-15 Eli Zaretskii <eliz@gnu.org>
15326
15327 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 15328 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 15329
5d856da6
PE
153302011-07-14 Paul Eggert <eggert@cs.ucla.edu>
15331
ad6042bb
PE
15332 Fix minor problems found by static checking.
15333 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
15334 (elsz): Now a signed constant, not a size_t var. We prefer signed
15335 types to unsigned, to avoid integer comparison confusion. Without
15336 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
15337 "cannot optimize loop, the loop counter may overflow", a symptom
15338 of the confusion.
f00bbb22 15339 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
15340 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
15341
6468f31c
LMI
153422011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
15343
49080b10
LMI
15344 * search.c (Fre_search_backward): Mention `case-fold-search' in
15345 all the re_search_* functions (bug#8138).
15346
6468f31c
LMI
15347 * keyboard.c (Fopen_dribble_file): Document when the file is
15348 closed (bug#8056).
15349
c965adc5
EZ
153502011-07-14 Eli Zaretskii <eliz@gnu.org>
15351
df9733bf
EZ
15352 * bidi.c (bidi_dump_cached_states): Fix format of displaying
15353 bidi_cache_idx.
15354
0bb23927
EZ
15355 Support bidi reordering of display and overlay strings.
15356 * xdisp.c (compute_display_string_pos)
15357 (compute_display_string_end): Accept additional argument STRING.
15358 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
15359 (reseat_to_string): Initialize bidi_it->string.s and
15360 bidi_it->string.schars.
15361 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
15362 NULL (avoids a crash in bidi_paragraph_init).
15363 Initialize itb.string.lstring.
0bb23927
EZ
15364 (init_iterator): Call bidi_init_it only of a valid
15365 buffer position was specified. Initialize paragraph_embedding to
15366 L2R.
15367 (reseat_to_string): Initialize the bidi iterator.
15368 (display_string): If we need to ignore text properties of
15369 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
15370 original value of -1 will not work with bidi.)
15371 (compute_display_string_pos): First arg is now struct
15372 `text_pos *'; all callers changed. Support display properties on
15373 Lisp strings.
15374 (compute_display_string_end): Support display properties on Lisp
15375 strings.
15376 (init_iterator, reseat_1, reseat_to_string): Initialize the
15377 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
15378 when iterating on a string not from display properties).
640c8776
SM
15379 (compute_display_string_pos, compute_display_string_end):
15380 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
15381 arrow keys.
15382 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
15383 base_level_stop; instead, set base_level_stop to BEGV.
15384 Fixes crashes in vertical-motion.
0bb23927
EZ
15385 (next_element_from_buffer): Improve commentary for when
15386 the iterator is before prev_stop.
15387 (init_iterator): Initialize bidi_p from the default value of
15388 bidi-display-reordering, not from buffer-local value. Use the
15389 buffer-local value only if initializing for buffer iteration.
15390 (handle_invisible_prop): Support invisible properties on strings
15391 that are being bidi-reordered.
15392 (set_iterator_to_next): Support bidi reordering of C strings and
15393 Lisp strings.
15394 (next_element_from_string): Support bidi reordering of Lisp
15395 strings.
15396 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
15397 (display_string): Support display of R2L glyph rows.
15398 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
15399 (init_iterator): Don't initialize it->bidi_p for strings
15400 here.
15401 (reseat_to_string): Initialize it->bidi_p for strings here.
15402 (next_element_from_string, next_element_from_c_string)
15403 (next_element_from_buffer): Add xassert's for correspondence
15404 between IT's object being iterated and it->bidi_it.string
15405 structure.
15406 (face_before_or_after_it_pos): Support bidi iteration.
15407 (next_element_from_c_string): Handle the case of the first string
15408 character that is not the first one in the visual order.
15409 (get_visually_first_element): New function, refactored from common
15410 parts of next_element_from_buffer, next_element_from_string, and
15411 next_element_from_c_string.
15412 (tool_bar_lines_needed, redisplay_tool_bar)
15413 (display_menu_bar): Force left-to-right direction. Add a FIXME
15414 comment for making that be controlled by a user option.
15415 (push_it, pop_it): Save and restore the state of the
15416 bidi iterator. Save and restore the bidi_p flag.
15417 (pop_it): Iterate out of display property for string iteration as
15418 well.
15419 (iterate_out_of_display_property): Support iteration over strings.
15420 (handle_single_display_spec): Set up it->bidi_it for iteration
15421 over a display string, and call bidi_init_it.
15422 (handle_single_display_spec, next_overlay_string)
15423 (get_overlay_strings_1, push_display_prop): Set up the bidi
15424 iterator for displaying display or overlay strings.
15425 (forward_to_next_line_start): Don't use the shortcut if
15426 bidi-iterating.
15427 (back_to_previous_visible_line_start): If handle_display_prop
15428 pushed the iterator stack, restore the internal state of the bidi
15429 iterator by calling bidi_pop_it same number of times.
15430 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
15431 and we are bidi-iterating, don't decrement the iterator position;
15432 instead, set the first_elt flag in the bidi iterator, to produce
15433 the same effect.
15434 (reseat_1): Remove redundant setting of string_from_display_prop_p.
15435 (push_display_prop): xassert that we are iterating a buffer.
15436 (push_it, pop_it): Save and restore paragraph_embedding member.
15437 (handle_single_display_spec, next_overlay_string)
15438 (get_overlay_strings_1, reseat_1, reseat_to_string)
15439 (push_display_prop): Set up the `unibyte' member of bidi_it.string
15440 correctly. Don't assume unibyte strings are not bidi-reordered.
15441 (compute_display_string_pos)
15442 (compute_display_string_end): Fix handling the case of C string.
15443 (push_it, pop_it): Save and restore from_disp_prop_p.
15444 (handle_single_display_spec, push_display_prop): Set the
15445 from_disp_prop_p flag.
15446 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
15447 (pop_it): Call iterate_out_of_display_property only if we are
15448 popping after iteration over a string that came from a display
15449 property. Fix a typo in popping stretch info. Add an assertion
15450 for verifying that the iterator position is in sync with the bidi
15451 iterator.
15452 (handle_single_display_spec, get_overlay_strings_1)
15453 (push_display_prop): Fix initialization of paragraph direction for
15454 string when that of the parent object is not yet determined.
15455 (reseat_1): Call bidi_init_it to resync the bidi
15456 iterator with IT's position. (Bug#7616)
15457 (find_row_edges): If ROW->start.pos gives position
15458 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
15459 (handle_stop, back_to_previous_visible_line_start, reseat_1):
15460 Reset the from_disp_prop_p flag.
15461 (SAVE_IT, RESTORE_IT): New macros.
15462 (pos_visible_p, face_before_or_after_it_pos)
15463 (back_to_previous_visible_line_start)
15464 (move_it_in_display_line_to, move_it_in_display_line)
15465 (move_it_to, move_it_vertically_backward, move_it_by_lines)
15466 (try_scrolling, redisplay_window, display_line): Use them when
15467 saving a temporary copy of the iterator and restoring it back.
15468 (back_to_previous_visible_line_start, reseat_1)
15469 (init_iterator): Empty the bidi cache "stack".
15470 (move_it_in_display_line_to): If iterator ended up at
15471 EOL, but we never saw any buffer positions smaller than
15472 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
15473 motion in bidi-reordered lines.
15474 (move_it_in_display_line_to): Record prev_method and prev_pos
15475 immediately before the call to set_iterator_to_next. Fixes cursor
15476 motion in bidi-reordered lines with stretch glyphs and strings
15477 displayed in margins. (Bug#8133) (Bug#8867)
15478 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
15479 TO_CHARPOS.
640c8776
SM
15480 (pos_visible_p): Support positions in bidi-reordered lines.
15481 Save and restore bidi cache.
0bb23927
EZ
15482
15483 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
15484 (bidi_paragraph_info): Delete unused struct.
15485 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
15486 (bidi_cache_start): New variable.
15487 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
15488 to zero.
15489 (bidi_cache_fetch_state, bidi_cache_search)
15490 (bidi_cache_find_level_change, bidi_cache_iterator_state)
15491 (bidi_cache_find, bidi_peek_at_next_level)
15492 (bidi_level_of_next_char, bidi_find_other_level_edge)
15493 (bidi_move_to_visually_next): Compare cache index with
15494 bidi_cache_start rather than with zero.
15495 (bidi_fetch_char): Accept new argument STRING; all callers
15496 changed. Support iteration over a string. Support strings with
15497 display properties. Support unibyte strings. Fix the type of
15498 `len' according to what STRING_CHAR_AND_LENGTH expects.
15499 (bidi_paragraph_init, bidi_resolve_explicit_1)
15500 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
15501 (bidi_level_of_next_char, bidi_move_to_visually_next):
15502 Support iteration over a string.
0bb23927
EZ
15503 (bidi_set_sor_type, bidi_resolve_explicit_1)
15504 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
15505 can now be zero (for strings); special values 0 and -1 were
15506 changed to -1 and -2, respectively.
15507 (bidi_char_at_pos): New function.
15508 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
15509 Call it instead of FETCH_MULTIBYTE_CHAR.
15510 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
15511 initialized to valid values.
15512 (bidi_init_it): Don't initialize charpos and bytepos with invalid
15513 values.
15514 (bidi_level_of_next_char): Allow the sentinel "position" to pass
15515 the test for valid cached positions. Fix the logic for looking up
15516 the sentinel state in the cache. GCPRO the Lisp string we are
15517 iterating.
15518 (bidi_push_it, bidi_pop_it): New functions.
15519 (bidi_initialize): Initialize the bidi cache start stack pointer.
15520 (bidi_cache_ensure_space): New function, refactored from part of
15521 bidi_cache_iterator_state. Don't assume the required size is just
15522 one BIDI_CACHE_CHUNK away.
15523 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
15524 (bidi_count_bytes, bidi_char_at_pos): New functions.
15525 (bidi_cache_search): Don't assume bidi_cache_last_idx is
15526 always valid if bidi_cache_idx is valid.
15527 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
15528 is valid if it's going to be used.
15529 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
15530 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
15531 (bidi_cache_find_level_change, bidi_cache_ensure_space)
15532 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
15533 (bidi_find_other_level_edge, bidi_cache_start_stack):
15534 All variables related to cache indices are now EMACS_INT.
c965adc5 15535
0bb23927
EZ
15536 * dispextern.h (struct bidi_string_data): New structure.
15537 (struct bidi_it): New member `string'. Make flag members be 1-bit
15538 fields, and put them last in the struct.
640c8776
SM
15539 (compute_display_string_pos, compute_display_string_end):
15540 Update prototypes.
0bb23927
EZ
15541 (bidi_push_it, bidi_pop_it): Add prototypes.
15542 (struct iterator_stack_entry): New members bidi_p,
15543 paragraph_embedding, and from_disp_prop_p.
15544 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
15545 (bidi_shelve_cache, bidi_unshelve_cache):
15546 Declare prototypes.
0bb23927
EZ
15547
15548 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
15549 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
15550 and vector-like objects.
15551
15552 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
15553 cache around display iteration.
15554
15555 * window.c (Fwindow_end, window_scroll_pixel_based)
15556 (displayed_window_lines, Frecenter): Save and restore the bidi
15557 cache around display iteration.
15558
3bbd2265
LMI
155592011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
15560
15561 * editfns.c (Fdelete_region): Clarify the use of the named
15562 parameters (bug#6788).
15563
adc47434
MR
155642011-07-14 Martin Rudalics <rudalics@gmx.at>
15565
15566 * indent.c (Fvertical_motion): Set and restore w->pointm when
15567 saving and restoring the window's buffer (Bug#9006).
15568
837c31f8
LMI
155692011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
15570
15571 * editfns.c (Fstring_to_char): Clarify just what is returned
15572 (bug#6576). Text by Eli Zaretskii.
15573
ac389d0c
JB
155742011-07-13 Juanma Barranquero <lekktu@gmail.com>
15575
15576 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
15577
0be0ce47
EZ
155782011-07-13 Eli Zaretskii <eliz@gnu.org>
15579
15580 * buffer.c (mmap_find): Fix a typo.
15581
cd18e7e3
JB
155822011-07-13 Johan Bockgård <bojohan@gnu.org>
15583
15584 Fix execution of x selection hooks.
15585 * xselect.c (Qx_lost_selection_functions)
15586 (Qx_sent_selection_functions): New vars.
15587 (syms_of_xselect): DEFSYM them.
15588 (x_handle_selection_request): Pass Qx_sent_selection_functions
15589 rather than Vx_sent_selection_functions to Frun_hook_with_args.
15590 (x_handle_selection_clear,x_clear_frame_selections):
15591 Pass Qx_lost_selection_functions rather than
15592 Vx_lost_selection_functions to Frun_hook_with_args.
15593
47ea7f44
PE
155942011-07-13 Paul Eggert <eggert@cs.ucla.edu>
15595
ac389d0c 15596 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
15597 The old code sometimes used this field without initializing it.
15598
47ea7f44
PE
15599 * alloc.c (gc_sweep): Don't read past end of array.
15600 In theory, the old code could also have corrupted Emacs internals,
15601 though it'd be very unlikely.
15602
bc985c87
AS
156032011-07-12 Andreas Schwab <schwab@linux-m68k.org>
15604
15605 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 15606 argument. (Bug#4026)
bc985c87 15607
0cf34688
LMI
156082011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
15609
b3dadd76
LMI
15610 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
15611 key" (bug#4257).
15612
0cf34688
LMI
15613 * window.c (Fset_window_start): Doc fix (bug#4199).
15614 (Fset_window_hscroll): Ditto.
15615
270768cd
PE
156162011-07-12 Paul Eggert <eggert@cs.ucla.edu>
15617
077e3dda 15618 Fix minor new problems caught by GCC 4.6.1.
270768cd 15619 * term.c (init_tty): Remove unused local.
490011a6 15620 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 15621 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 15622 not used otherwise.
270768cd 15623
b1f58454
CY
156242011-07-12 Chong Yidong <cyd@stupidchicken.com>
15625
15626 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
15627
22b9578d
LMI
156282011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
15629
6e70ab07
LMI
15630 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
15631 are the mini-buffer and the echo area (bug#3320).
15632
22b9578d
LMI
15633 * term.c (init_tty): Remove support for supdup, c10 and perq
15634 terminals, which are no longer supported (bug#1482).
15635
8974cc9f
JB
156362011-07-10 Johan Bockgård <bojohan@gnu.org>
15637
15638 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
15639
a560d974
JD
156402011-07-10 Jan Djärv <jan.h.d@swipnet.se>
15641
15642 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
15643 for non-popups (Bug#3642).
15644
1dae0f0a
AS
156452011-07-10 Andreas Schwab <schwab@linux-m68k.org>
15646
268c2c36 15647 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 15648 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
15649 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
15650 * cm.c (losecursor): Likewise.
1dae0f0a
AS
15651 * data.c (fmod): Likewise.
15652 * dispnew.c (swap_glyphs_in_rows): Likewise.
15653 * emacs.c (memory_warning_signal): Likewise.
15654 * floatfns.c (float_error): Likewise.
15655 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
15656 (otf_open, font_otf_capability, generate_otf_features)
15657 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
15658 Likewise.
15659 * image.c (pbm_read_file): Likewise.
15660 * indent.c (string_display_width): Likewise.
15661 * intervals.c (check_for_interval, search_for_interval)
15662 (inc_interval_count, count_intervals, root_interval)
15663 (adjust_intervals_for_insertion, make_new_interval): Likewise.
15664 * lread.c (defalias): Likewise.
268c2c36 15665 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
15666 * regex.c (set_image_of_range_1, set_image_of_range)
15667 (regex_grow_registers): Likewise.
15668 * sysdep.c (strerror): Likewise.
15669 * termcap.c (valid_filename_p, tprint, main): Likewise.
15670 * tparam.c (main): Likewise.
15671 * unexhp9k800.c (run_time_remap, save_data_space)
15672 (update_file_ptrs, read_header, write_header, calculate_checksum)
15673 (copy_file, copy_rest, display_header): Likewise.
15674 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
15675 Likewise.
15676 * xdisp.c (check_it): Likewise.
15677 * xfaces.c (register_color, unregister_color, unregister_colors):
15678 Likewise.
15679 * xfns.c (print_fontset_result): Likewise.
15680 * xrdb.c (member, fatal, main): Likewise.
15681
99033785
PE
156822011-07-10 Paul Eggert <eggert@cs.ucla.edu>
15683
15684 Fix minor problems found by static checking (Bug#9031).
15685 * chartab.c (char_table_set_range, map_sub_char_table):
15686 Remove unused locals.
15687 (uniprop_table): Now static.
15688 * composite.c (_work_char): Remove unused static var.
15689
9cb2ac56
JB
156902011-07-09 Juanma Barranquero <lekktu@gmail.com>
15691
15692 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
15693
f25661f0
JD
156942011-07-09 Jan Djärv <jan.h.d@swipnet.se>
15695
15696 * gtkutil.c (qttip_cb): Remove code without function.
15697
8278c4fe
EZ
156982011-07-09 Eli Zaretskii <eliz@gnu.org>
15699
15700 * w32.c (pthread_sigmask): New stub.
15701
1692ae2d 157022011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 15703
8a6ebd58 15704 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
15705 sigprocmask is portable only for single-threaded applications, and
15706 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
15707 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
15708 (LIBES): Use it.
15709 * callproc.c (Fcall_process):
15710 * process.c (create_process):
15711 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
15712 Use pthread_sigmask, not sigprocmask.
123403e4 15713
1b854618
JD
157142011-07-08 Jan Djärv <jan.h.d@swipnet.se>
15715
15716 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
15717 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
15718 wrong (Bug#8591).
15719
3fe4b549
JD
157202011-07-08 Jan Djärv <jan.h.d@swipnet.se>
15721
0ce7e563
JD
15722 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
15723 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
15724 (xg_hide_tooltip): Fix comment.
15725
3fe4b549
JD
15726 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
15727 in registerServicesMenuSendTypes.
15728 (validRequestorForSendType): Don't check ns_return_types.
15729
15730 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
15731 ns_return_type.
15732
5df75e47
JR
157332011-07-08 Jason Rumney <jasonr@gnu.org>
15734
22610910
JR
15735 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
15736 SH_SHOW for hidden windows (Bug#5482).
15737
5df75e47
JR
15738 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
15739 frame struct members of non-existent frames (Bug#6284).
15740
699c10bd
JD
157412011-07-08 Jan Djärv <jan.h.d@swipnet.se>
15742
4393663b
JD
15743 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
15744 variable firstTime not needed on OSX >= 10.6.
15745 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
15746 >= 10.5. Use setKnobProportion, setDoubleValue.
15747
15748 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
15749 (MAC_OS_X_VERSION_10_5): Define if not defined.
15750 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
15751 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
15752 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
15753
15754 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 15755 cString and lossyCString on OSX >= 10.4.
4393663b 15756
58179cce 15757 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
15758 sizeToFit on OSX >= 10.2.
15759
15760 * nsimage.m (allocInitFromFile): Don't use deprecated method
15761 bestRepresentationForDevice on OSX >= 10.6.
15762
15763 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
15764 to avoid warning.
15765
15766 * emacs.c: Declare unexec_init_emacs_zone.
15767
a63e0781
JD
15768 * nsgui.h: Fix compiler warning about gnulib redefining verify.
15769
699c10bd
JD
15770 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
15771
15772 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
15773 on svcsMenu (Bug#8842).
15774
15775 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
15776 ns_return_types.
15777 (Fns_list_services): Just return Qnil on 10.6, code not working there.
15778
15779 * nsterm.m (QUTF8_STRING): Declare.
15780 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
15781 (validRequestorForSendType): Return type is (id).
15782 Change indexOfObjectIdenticalTo to indexOfObject.
15783 Check if we have local selection before returning self (Bug#8842).
15784 (writeSelectionToPasteboard): Put local selection into paste board
15785 if we have a local selection (Bug#8842).
15786 (syms_of_nsterm): DEFSYM QUTF8_STRING.
15787
15788 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
15789 (ns_get_local_selection): Declare.
15790
54e10184
LMI
157912011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
15792
9888ff71
LMI
15793 * keymap.c (describe_map_tree): Don't insert a double newline at
15794 the end of the buffer (bug#1169) and return whether we inserted
15795 something.
15796
54e10184
LMI
15797 * callint.c (Fcall_interactively): Change "reading args" to
15798 "providing args" to try to clarify what it does (bug#1010).
15799
15fa4783
KH
158002011-07-07 Kenichi Handa <handa@m17n.org>
15801
15802 * composite.c (composition_compute_stop_pos): Ignore a static
15803 composition starting before CHARPOS (Bug#8915).
15804
15805 * xdisp.c (handle_composition_prop): Likewise.
15806
a8815b00
EZ
158072011-07-07 Eli Zaretskii <eliz@gnu.org>
15808
15809 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
15810 (Bug#9015)
15811
ef7b981d 158122011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
15813
15814 * character.h (unicode_category_t): New enum type.
15815
15816 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
15817 (Qchar_code_property_table): New variable.
15818 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
15819 (UNIPROP_COMPRESSED_FORM_P): New macros.
15820 (char_table_ascii): Uncompress the compressed values.
15821 (sub_char_table_ref): New arg is_uniprop. Callers changed.
15822 Uncompress the compressed values.
ac389d0c 15823 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
15824 (char_table_ref_and_range): Uncompress the compressed values.
15825 (sub_char_table_set): New arg is_uniprop. Callers changed.
15826 Uncompress the compressed values.
15827 (sub_char_table_set_range): Args changed. Callers changed.
15828 (char_table_set_range): Adjuted for the above change.
15829 (map_sub_char_table): Delete args default_val and parent. Add arg
15830 top. Give decoded values to a Lisp function.
640c8776 15831 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
15832 values to a Lisp function. Gcpro more variables.
15833 (uniprop_table_uncompress)
15834 (uniprop_decode_value_run_length): New functions.
15835 (uniprop_decoder, uniprop_decoder_count): New variables.
15836 (uniprop_get_decoder, uniprop_encode_value_character)
15837 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
15838 New functions.
15839 (uniprop_encoder, uniprop_encoder_count): New variables.
15840 (uniprop_get_encoder, uniprop_table)
15841 (Funicode_property_table_internal, Fget_unicode_property_internal)
15842 (Fput_unicode_property_internal): New functions.
15843 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
15844 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 15845 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
15846 char-code-property-alist.
15847
640c8776 15848 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
15849 Vunicode_category_table.
15850
640c8776 15851 * font.c (font_range): Adjust for the change of
c805dec0
KH
15852 Vunicode_category_table.
15853
76b397fb
DN
158542011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
15855
15856 * m/iris4d.h: Remove file, move contents ...
15857 * s/irix6-5.h: ... here.
15858
22b4128e
PE
158592011-07-06 Paul Eggert <eggert@cs.ucla.edu>
15860
15861 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
15862 * alloc.c (mark_buffer):
15863 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
15864 (clone_per_buffer_values): Don't assume that
22b4128e
PE
15865 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
15866 This isn't true in general, and it's particularly not true
15867 if Emacs is configured with --with-wide-int.
15868 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
15869 New macros, used in the buffer.c change.
15870
869795d6
JD
158712011-07-05 Jan Djärv <jan.h.d@swipnet.se>
15872
15873 * xsettings.c: Use both GConf and GSettings if both are available.
15874 (store_config_changed_event): Add comment.
15875 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
15876 (store_tool_bar_style_changed): New functions.
5e617bc2 15877 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
15878 (struct xsettings): Move font inside HAVE_XFT.
15879 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 15880 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 15881 Move inside HAVE_XFT.
640c8776 15882 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
15883 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
15884 also.
15885 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 15886 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 15887 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
15888 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
15889 (parse_settings): Move check for font inside HAVE_XFT.
15890 (read_settings, apply_xft_settings): Add comment.
15891 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
15892 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
15893 call store_font_name_changed.
15894 (xft_settings_event): Add comment.
15895 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
15896 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
15897 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
15898 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
15899 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
15900 (xsettings_get_system_font, xsettings_get_system_normal_font):
15901 Add comment.
869795d6 15902
d8ed26bd
PE
159032011-07-05 Paul Eggert <eggert@cs.ucla.edu>
15904
15905 Random fixes. E.g., (random) never returned negative values.
15906 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
15907 subseconds part to the entropy, as that's a bit more random.
15908 Prefer signed to unsigned, since the signedness doesn't matter and
15909 in general we prefer signed. When given a limit, use a
15910 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
15911 latter isn't right if USE_2_TAGS_FOR_INTS.
15912 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
15913 not 0..VALMASK. Don't discard "excess" bits that random () returns.
15914
cabf1cac
SM
159152011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
15916
15917 * textprop.c (text_property_stickiness):
15918 Obey Vtext_property_default_nonsticky.
15919 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
15920 * w32fns.c (syms_of_w32fns):
15921 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
15922
6e9b2be9
PE
159232011-07-04 Paul Eggert <eggert@cs.ucla.edu>
15924
15925 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
15926 This is more efficient than Ffile_directory_p and avoids a minor race.
15927
90186c68
LMI
159282011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
15929
7c301272
LMI
15930 * buffer.c (Foverlay_put): Say what the return value is
15931 (bug#7835).
15932
c4f2d8d4
LMI
15933 * fileio.c (barf_or_query_if_file_exists): Check first if the file
15934 is a directory before asking whether to use the file name
15935 (bug#7564).
ad637907
LMI
15936 (barf_or_query_if_file_exists): Make the "File is a directory"
15937 error be more correct.
c4f2d8d4 15938
90186c68
LMI
15939 * fns.c (Frequire): Remove the mention of the .gz files, since
15940 that's installation-specific, but keep the mention of
15941 `get-load-suffixes'.
15942
da64016e
PE
159432011-07-04 Paul Eggert <eggert@cs.ucla.edu>
15944
15945 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
15946 Report string overflow if the output is too long.
15947
7d47b580
JB
159482011-07-04 Juanma Barranquero <lekktu@gmail.com>
15949
a555cb87
JB
15950 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
15951 (syms_of_gnutls): Remove duplicate DEFSYM for
15952 Qgnutls_bootprop_verify_hostname_error, an error for
15953 Qgnutls_bootprop_verify_error (which is no longer used).
15954
7d47b580
JB
15955 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
15956 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
15957 Also (re)move comments that are misplaced or no longer relevant.
15958
1e49bfab
LMI
159592011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
15960
15961 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
15962
1485f4c0
CY
159632011-07-03 Chong Yidong <cyd@stupidchicken.com>
15964
15965 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
15966 and background color parameters if they have been changed.
15967
a9ab721e
LMI
159682011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
15969
15970 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
15971
cf7cff57
PE
159722011-07-03 Paul Eggert <eggert@cs.ucla.edu>
15973
2e13213d
PE
15974 * xsettings.c (SYSTEM_FONT): Define only when used.
15975 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
15976
cf7cff57
PE
15977 * keymap.c (access_keymap_1): Now static.
15978
7a8e04f7
CY
159792011-07-02 Chong Yidong <cyd@stupidchicken.com>
15980
15981 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
15982 leave any prefix arg for the up event (Bug#1586).
15983
61352f62
LMI
159842011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
15985
69bb1ef7
LMI
15986 * lread.c (syms_of_lread): Mention single symbols defined by
15987 `defvar' or `defconst' (bug#7154).
15988
61352f62 15989 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 15990 (Frequire): Mention get-load-suffixes.
61352f62 15991
28545e04
MR
159922011-07-02 Martin Rudalics <rudalics@gmx.at>
15993
15994 * window.h (window): Remove clone_number slot.
15995 * window.c (Fwindow_clone_number, Fset_window_clone_number):
15996 Remove.
15997 (make_parent_window, make_window, saved_window)
15998 (Fset_window_configuration, save_window_save): Don't deal with
15999 clone numbers.
16000 * buffer.c (Qclone_number): Remove declaration.
16001 (sort_overlays, overlay_strings): Don't deal with clone numbers.
16002
3349e122
SM
160032011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
16004
16005 Add multiple inheritance to keymaps.
16006 * keymap.c (Fmake_composed_keymap): New function.
16007 (Fset_keymap_parent): Simplify.
16008 (fix_submap_inheritance): Remove.
16009 (access_keymap_1): New function extracted from access_keymap to handle
16010 embedded parents and handle lists of maps.
16011 (access_keymap): Use it.
16012 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
16013 (Fcopy_keymap): Handle embedded parents.
16014 (Fcommand_remapping, define_as_prefix): Simplify.
16015 (Fkey_binding): Simplify.
16016 (syms_of_keymap): Move minibuffer-local-completion-map,
16017 minibuffer-local-filename-completion-map,
16018 minibuffer-local-must-match-map, and
16019 minibuffer-local-filename-must-match-map to Elisp.
16020 (syms_of_keymap): Defsubr make-composed-keymap.
16021 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
16022 (parse_menu_item): Trivial simplification.
16023
3279eb87
GM
160242011-07-01 Glenn Morris <rgm@gnu.org>
16025
16026 * Makefile.in (SETTINGS_LIBS): Fix typo.
16027
39cb9e56 160282011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
16029
16030 * coding.c (Fencode_coding_string): Record the last coding system
16031 used, as the function doc string says (bug#8738).
16032
0949d2b6
JD
160332011-07-01 Jan Djärv <jan.h.d@swipnet.se>
16034
16035 * xsettings.c (store_monospaced_changed): Take new font as arg and
16036 check for change against current_mono_font.
16037 (EMACS_TYPE_SETTINGS): Remove this and related defines.
16038 (emacs_settings_constructor, emacs_settings_get_property)
16039 (emacs_settings_set_property, emacs_settings_class_init)
16040 (emacs_settings_init, gsettings_obj): Remove.
16041 (something_changedCB): New function for HAVE_GSETTINGS.
16042 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
16043 with value as argument.
16044 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
16045 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 16046 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
16047 "changed".
16048
16049 * xgselect.c: Add defined (HAVE_GSETTINGS).
16050 (xgselect_initialize): Ditto.
16051
16052 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
16053 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
16054 xg_select.
16055
bbc6b304
PE
160562011-07-01 Paul Eggert <eggert@cs.ucla.edu>
16057
16058 * eval.c (struct backtrace): Simplify and port the data structure.
16059 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
16060 signed bit field, as this assumption is not portable and it makes
16061 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
16062 "char debug_on_exit : 1" as this is not portable either; instead,
16063 use the portable "unsigned int debug_on_exit : 1". Remove unused
16064 member evalargs. Remove obsolete comments about cc bombing out.
16065
9851bfc5
JD
160662011-06-30 Jan Djärv <jan.h.d@swipnet.se>
16067
51bb811f 16068 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
16069 Let HAVE_GSETTINGS override HAVE_GCONF.
16070 (store_monospaced_changed): New function.
16071 (EMACS_SETTINGS): A new type derived from GObject to handle
16072 GSettings notifications.
16073 (emacs_settings_constructor, emacs_settings_get_property)
16074 (emacs_settings_set_property, emacs_settings_class_init):
16075 New functions.
16076 (gsettings_client, gsettings_obj): New variables.
16077 (GSETTINGS_SCHEMA): New define.
16078 (something_changedCB): Call store_monospaced_changed.
16079 (init_gsettings): New function.
16080 (xsettings_initialize): Call init_gsettings.
16081 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
16082 to NULL.
16083
640c8776 16084 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
16085 GCONF_CFLAGS/LIBS.
16086
5386012d
MR
160872011-06-29 Martin Rudalics <rudalics@gmx.at>
16088
16089 * window.c (resize_root_window, grow_mini_window)
16090 (shrink_mini_window): Rename Qresize_root_window to
16091 Qwindow_resize_root_window and Qresize_root_window_vertically to
16092 Qwindow_resize_root_window_vertically.
16093
f13e0b08
PE
160942011-06-28 Paul Eggert <eggert@cs.ucla.edu>
16095
16096 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
16097
94515237
JB
160982011-06-27 Juanma Barranquero <lekktu@gmail.com>
16099
16100 * makefile.w32-in: Redesign dependencies so they reflect more
16101 clearly which files are directly included by each source file,
16102 and not through other includes.
16103
e43b6e43
MR
161042011-06-27 Martin Rudalics <rudalics@gmx.at>
16105
16106 * buffer.c (Qclone_number): Declare static and DEFSYM it.
16107 (sort_overlays, overlay_strings): When an overlay's clone number
16108 matches the window's clone number process the overlay even if
16109 the overlay's window property doesn't match the current window.
16110
d68443dc
MR
16111 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
16112 (Fwindow_hchild): Rename to Fwindow_left_child.
16113 (Fwindow_next): Rename to Fwindow_next_sibling.
16114 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
16115 (resize_window_check): Rename to window_resize_check.
16116 (resize_window_apply): Rename to window_resize_apply.
16117 (Fresize_window_apply): Rename to Fwindow_resize_apply.
16118 (Fdelete_other_windows_internal, resize_frame_windows)
16119 (Fsplit_window_internal, Fdelete_window_internal)
16120 (grow_mini_window, shrink_mini_window)
16121 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 16122
c7e73be5
JD
161232011-06-26 Jan Djärv <jan.h.d@swipnet.se>
16124
16125 * emacsgtkfixed.h: State that this is only used with Gtk+3.
16126 (emacs_fixed_set_min_size): Remove.
16127 (emacs_fixed_new): Take frame as argument.
16128
16129 * emacsgtkfixed.c: State that this is only used with Gtk+3.
16130 (_EmacsFixedPrivate): Remove minwidth/height.
16131 Add struct frame *f.
16132 (emacs_fixed_init): Initialize priv->f.
16133 (get_parent_class, emacs_fixed_set_min_size): Remove.
16134 (emacs_fixed_new): Set priv->f to argument.
16135 (emacs_fixed_get_preferred_width)
16136 (emacs_fixed_get_preferred_height): Use min_width/height from
16137 frames size_hint to set minimum and natural (Bug#8919).
16138 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
16139 and use min_width/height from frames size_hint to set
16140 min_width/height (Bug#8919).
16141
16142 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
16143 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
16144 Fix indentation.
c7e73be5 16145
cf99dcf8
EZ
161462011-06-26 Eli Zaretskii <eliz@gnu.org>
16147
16148 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
16149 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
16150 called at ZV.
16151
029529ac
CY
161522011-06-26 Chong Yidong <cyd@stupidchicken.com>
16153
16154 * process.c (wait_reading_process_output): Bypass select if
16155 waiting for a cell while ignoring keyboard input, and input is
16156 pending. Suggested by Jan Djärv (Bug#8869).
16157
7a7ef429
PE
161582011-06-25 Paul Eggert <eggert@cs.ucla.edu>
16159
16160 Use gnulib's dup2 module instead of rolling our own.
16161 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
16162
11fdef7d 161632011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
16164
16165 * dispnew.c (scrolling_window): Before scrolling, turn off a
16166 mouse-highlight in the window being scrolled.
16167
cd3520a4
JB
161682011-06-24 Juanma Barranquero <lekktu@gmail.com>
16169
16170 Move DEFSYM to lisp.h and use everywhere.
16171
16172 * character.h (DEFSYM): Move declaration...
16173 * lisp.h (DEFSYM): ...here.
16174
16175 * gnutls.c:
16176 * minibuf.c:
16177 * w32menu.c:
16178 * w32proc.c:
16179 * w32select.c: Don't include character.h.
16180
16181 * alloc.c (syms_of_alloc):
16182 * buffer.c (syms_of_buffer):
16183 * bytecode.c (syms_of_bytecode):
16184 * callint.c (syms_of_callint):
16185 * casefiddle.c (syms_of_casefiddle):
16186 * casetab.c (init_casetab_once):
16187 * category.c (init_category_once, syms_of_category):
16188 * ccl.c (syms_of_ccl):
16189 * cmds.c (syms_of_cmds):
16190 * composite.c (syms_of_composite):
16191 * dbusbind.c (syms_of_dbusbind):
16192 * dired.c (syms_of_dired):
16193 * dispnew.c (syms_of_display):
16194 * doc.c (syms_of_doc):
16195 * editfns.c (syms_of_editfns):
16196 * emacs.c (syms_of_emacs):
16197 * eval.c (syms_of_eval):
16198 * fileio.c (syms_of_fileio):
16199 * fns.c (syms_of_fns):
16200 * frame.c (syms_of_frame):
16201 * fringe.c (syms_of_fringe):
16202 * insdel.c (syms_of_insdel):
16203 * keymap.c (syms_of_keymap):
16204 * lread.c (init_obarray, syms_of_lread):
16205 * macros.c (syms_of_macros):
16206 * msdos.c (syms_of_msdos):
16207 * print.c (syms_of_print):
16208 * process.c (syms_of_process):
16209 * search.c (syms_of_search):
16210 * sound.c (syms_of_sound):
16211 * syntax.c (init_syntax_once, syms_of_syntax):
16212 * terminal.c (syms_of_terminal):
16213 * textprop.c (syms_of_textprop):
16214 * undo.c (syms_of_undo):
16215 * w32.c (globals_of_w32):
16216 * window.c (syms_of_window):
16217 * xdisp.c (syms_of_xdisp):
16218 * xfaces.c (syms_of_xfaces):
16219 * xfns.c (syms_of_xfns):
16220 * xmenu.c (syms_of_xmenu):
16221 * xsettings.c (syms_of_xsettings):
16222 * xterm.c (syms_of_xterm): Use DEFSYM.
16223
4228cf16
TZ
162242011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
16225
cd3520a4 16226 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 16227
7fcccf1e
PE
162282011-06-23 Paul Eggert <eggert@cs.ucla.edu>
16229
7efb4e0e
PE
16230 Integer and buffer overflow fixes (Bug#8873).
16231
ff5844ad
PE
16232 * print.c (printchar, strout): Check for string overflow.
16233 (PRINTPREPARE, printchar, strout):
16234 Don't set size unless allocation succeeds.
16235
90532f02
PE
16236 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
16237 for sizes. Check for string overflow more accurately.
16238 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
16239
6d84508d
PE
16240 * macros.c: Integer and buffer overflow fixes.
16241 * keyboard.h (struct keyboard.kbd_macro_bufsize):
16242 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
16243 Use ptrdiff_t, not int, for sizes.
16244 Don't increment bufsize until after realloc succeeds.
16245 Check for size-calculation overflow.
16246 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
16247
437b2cb4
PE
16248 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
16249
8b9ac8b4
PE
16250 * lread.c: Integer overflow fixes.
16251 (read_integer): Radix is now EMACS_INT, not int,
16252 to improve quality of diagnostics for out-of-range radices.
16253 Calculate buffer size correctly for out-of-range radices.
16254 (read1): Check for integer overflow in radices, and in
16255 read-circle numbers.
82cb60d3
PE
16256 (read_escape): Avoid int overflow.
16257 (Fload, openp, read_buffer_size, read1)
16258 (substitute_object_recurse, read_vector, read_list, map_obarray):
16259 Use ptrdiff_t, not int, for sizes.
16260 (read1): Use EMACS_INT, not int, for sizes.
20270765 16261 Check for size overflow.
8b9ac8b4 16262
7fcccf1e
PE
16263 * image.c (cache_image): Check for size arithmetic overflow.
16264
bfbbd7e7
PE
16265 * lread.c: Integer overflow issues.
16266 (saved_doc_string_size, saved_doc_string_length)
16267 (prev_saved_doc_string_size, prev_saved_doc_string_length):
16268 Now ptrdiff_t, not int.
16269 (read1): Don't assume doc string length fits in int. Check for
16270 out-of-range doc string lengths.
16271 (read_list): Don't assume file position fits in int.
39019e54 16272 (read_escape): Check for hex character overflow.
bfbbd7e7 16273
4e323265
LL
162742011-06-22 Leo Liu <sdl.web@gmail.com>
16275
16276 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
16277 Move to minibuffer.el.
16278
85fece3e
PE
162792011-06-22 Paul Eggert <eggert@cs.ucla.edu>
16280
20b84ce9 16281 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
16282 The following patches are for when GLYPH_DEBUG && !XASSERT.
16283 * dispextern.h (trace_redisplay_p, dump_glyph_string):
16284 * dispnew.c (flush_stdout):
16285 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
16286 Mark as externally visible.
16287 * dispnew.c (check_window_matrix_pointers): Now static.
16288 * dispnew.c (window_to_frame_vpos):
16289 * xfns.c (unwind_create_frame):
16290 * xterm.c (x_check_font): Remove unused local.
16291 * scroll.c (CHECK_BOUNDS):
16292 * xfaces.c (cache_fache): Rename local to avoid shadowing.
16293 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
16294 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
16295 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
16296 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
16297 Now static.
16298 (debug_method_add): Use va_list and vsprintf rather than relying
16299 on undefined behavior with wrong number of arguments.
16300 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
16301 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
16302 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
16303 since we're not interested in debugging glyphs with old libraries.
16304 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
16305 GCC 4.6.0's static checking.
16306
0766b489
PE
163072011-06-22 Paul Eggert <eggert@cs.ucla.edu>
16308
31fd4b32
PE
16309 Integer overflow and signedness fixes (Bug#8873).
16310 A few related buffer overrun fixes, too.
16311
b79e8648
PE
16312 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
16313
0766b489
PE
16314 * dispextern.h (struct face.stipple):
16315 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
16316 (x_bitmap_mask, x_allocate_bitmap_record)
16317 (x_create_bitmap_from_data, x_create_bitmap_from_file)
16318 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
16319 (x_create_bitmap_from_xpm_data):
16320 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
16321 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
16322 (.bitmaps_last):
16323 * xfaces.c (load_pixmap):
16324 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
16325 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
16326 (.bitmaps_last, struct x_output.icon_bitmap):
16327 Use ptrdiff_t, not int, for bitmap indexes.
16328 (x_allocate_bitmap_record): Check for size overflow.
16329 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
16330
b081724f
PE
16331 Use ptrdiff_t, not int, for overlay counts.
16332 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
16333 * editfns.c (overlays_around, get_pos_property):
16334 * textprop.c (get_char_property_and_overlay):
16335 * xdisp.c (next_overlay_change, note_mouse_highlight):
16336 * xfaces.c (face_at_buffer_position):
21514da7
PE
16337 * buffer.c (OVERLAY_COUNT_MAX): New macro.
16338 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
16339 (Fnext_overlay_change, Fprevious_overlay_change)
16340 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 16341 Use ptrdiff_t, not int, for sizes.
21514da7 16342 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 16343
3de73e5e
PE
16344 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
16345
2606c57b
PE
16346 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
16347 (x_session_initialize): Do not assume string length fits in int.
16348
aaafe47a
PE
16349 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
16350 This is unlikely, but can occur if DPI is outlandish.
16351
2674ddc8 16352 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
16353 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
16354
28154962
PE
16355 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
16356 * xrdb.c (magic_file_p, search_magic_path):
16357 Omit last arg SUFFIX; it was always 0. All callers changed.
16358 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
16359
7de51af5
PE
16360 * xfont.c (xfont_match): Avoid need for strlen.
16361
25ed6cc3
PE
16362 * xfns.c: Don't assume strlen fits in int.
16363 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
16364
4eab31dd
PE
16365 * xdisp.c (message_log_check_duplicate): Return intmax_t,
16366 not unsigned long, as we prefer signed integers. All callers changed.
16367 Detect integer overflow in repeat count.
16368 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 16369 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 16370
171e2a58
PE
16371 * termcap.c: Don't assume sizes fit in int and never overflow.
16372 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
16373 (gobble_line): Check for size-calculation overflow.
16374
ad39faca 16375 * minibuf.c (Fread_buffer):
6e5bb2dc 16376 * lread.c (intern, intern_c_string):
74ca2eb3
PE
16377 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
16378 Don't assume string length fits in int.
16379
52c61c22 16380 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
16381 * gtkutil.c (style_changed_cb): Avoid need for strlen.
16382
b5b8c9e5
PE
16383 * font.c: Don't assume string length fits in int.
16384 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
16385 Use ptrdiff_t, not int.
ccd6111c
PE
16386 (font_intern_prop): Don't assume string length fits in int.
16387 Don't assume integer property fits in fixnum.
16388 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 16389
882f0d81 16390 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 16391 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
16392 Reformulate so as not to need the command string.
16393 Invoke gzip -cd rather than gunzip, as it's more portable.
16394 (lock_info_type, lock_file_1, lock_file):
16395 Don't assume pid_t and time_t fit in unsigned long.
16396 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
16397 (current_lock_owner): Prefer signed type for sizes.
16398 Use memcpy, not strncpy, where memcpy is what is really wanted.
16399 Don't assume (via atoi) that time_t and pid_t fit in int.
16400 Check for time_t and/or pid_t out of range, e.g., via a network share.
16401 Don't alloca where an auto var works fine.
16402
93f4cf88
PE
16403 * fileio.c: Fix some integer overflow issues.
16404 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
16405 Don't assume string length fits in int.
16406 (directory_file_name): Don't assume string length fits in long.
16407 (make_temp_name): Don't assume pid fits in int, or that its print
16408 length is less than 20.
16409
f3e92b69
PE
16410 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
16411
1bfdaf10
PE
16412 * coding.c (make_subsidiaries): Don't assume string length fits in int.
16413
35016e9a
PE
16414 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
16415
3d1e65a1
PE
16416 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
16417 We prefer signed integers, even for size calculations.
16418
0b963a93
PE
16419 * emacs.c: Don't assume string length fits in 'int'.
16420 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
16421 (main): Don't invoke strlen when not needed.
16422
573f4b54
PE
16423 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
16424 (XD_DEBUG_MESSAGE): Don't waste a byte.
16425
989f33ba
PE
16426 * callproc.c (getenv_internal_1, getenv_internal)
16427 (Fgetenv_internal):
965d34eb
PE
16428 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
16429
e4d29b33
PE
16430 * lread.c (invalid_syntax): Omit length argument.
16431 All uses changed. This doesn't fix a bug, but it simplifies the
16432 code away from its former Hollerith-constant appearance, and it's
16433 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 16434 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 16435
eb49b136
PE
16436 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
16437 This didn't break anything, but it didn't help either.
16438 It's confusing to put a bogus integer in a place where the actual
16439 value does not matter.
9f62aeb1 16440 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 16441 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 16442
15375a22
PE
16443 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
16444 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
16445 implementation.
b61cc01c
PE
16446 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
16447 We prefer signed types, and the value cannot exceed the EMACS_INT
16448 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
16449 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
16450 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
16451 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 16452
53b2623d
PE
16453 * indent.c (sane_tab_width): New function.
16454 (current_column, scan_for_column, Findent_to, position_indentation)
16455 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 16456 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 16457
51cab52b 16458 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 16459
f2ed8a70
PE
16460 * lisp.h (lint_assume): New macro.
16461 * composite.c (composition_gstring_put_cache):
16462 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
16463
abe80cc6
PE
16464 * editfns.c, insdel.c:
16465 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 16466
b02c740e
PE
16467 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
16468
ebc96716
PE
16469 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
16470
b4e50fa0 16471 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 16472 Use much-faster test for byte-length change.
311d5d7c 16473 Don't assume string byte-length fits in 'int'.
a4cf38e4 16474 Check that character arg fits in 'int'.
85461888 16475 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 16476
c0c1ee9f
PE
16477 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
16478
a498d7f4
PE
16479 * fns.c (concat): Catch string overflow earlier.
16480 Do not rely on integer wraparound.
16481
51cab52b
PE
16482 * dispextern.h (struct it.overlay_strings_charpos)
16483 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
16484 * xdisp.c (forward_to_next_line_start)
16485 (back_to_previous_visible_line_start)
16486 (reseat_at_next_visible_line_start, next_element_from_buffer):
16487 Don't arbitrarily truncate the value of 'selective' to int.
16488
76031fad
PE
16489 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
16490
5eb55db9
PE
16491 * composite.c: Don't truncate sizes to 'int'.
16492 (composition_gstring_p, composition_reseat_it)
16493 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
16494 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
16495 not EMACS_UINT, for indexes.
5eb55db9 16496
0703a717
PE
16497 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
16498
d6202519
PE
16499 * buffer.c: Include <verify.h>.
16500 (struct sortvec.priority, struct sortstr.priority):
8961a454 16501 Now EMACS_INT, not int.
c20998a7 16502 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
16503 (struct sortstr.size, record_overlay_string)
16504 (struct sortstrlist.size, struct sortlist.used):
16505 Don't truncate size to int.
16506 (record_overlay_string): Check for size-calculation overflow.
d6202519 16507 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 16508
d5a19415
JM
165092011-06-22 Jim Meyering <meyering@redhat.com>
16510
029529ac 16511 Don't leak an XBM-image-sized buffer
d5a19415
JM
16512 * image.c (xbm_load): Free the image buffer after using it.
16513
a9041e6c
PE
165142011-06-21 Paul Eggert <eggert@cs.ucla.edu>
16515
16516 Port to Sun C.
16517 * composite.c (find_automatic_composition): Omit needless 'return 0;'
16518 that Sun C diagnosed.
16519 * fns.c (secure_hash): Fix pointer signedness issue.
16520 * intervals.c (static_offset_intervals): New function.
16521 (offset_intervals): Use it.
16522
7f3f739f
LL
165232011-06-21 Leo Liu <sdl.web@gmail.com>
16524
16525 * deps.mk (fns.o):
16526 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
16527 sha512.h.
16528
16529 * fns.c (secure_hash): Rename from crypto_hash_function and change
16530 the first arg to accept symbols.
5b66d427 16531 (Fsecure_hash): New primitive.
7f3f739f
LL
16532 (syms_of_fns): New symbols.
16533
76147d94
DD
165342011-06-20 Deniz Dogan <deniz@dogan.se>
16535
16536 * process.c (Fset_process_buffer): Clarify return value in
16537 docstring.
16538
7d7d0045
CY
165392011-06-18 Chong Yidong <cyd@stupidchicken.com>
16540
16541 * dispnew.c (add_window_display_history): Use BVAR.
16542
16543 * xdisp.c (debug_method_add): Use BVAR.
16544 (check_window_end, dump_glyph_matrix, dump_glyph)
16545 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
16546
16547 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
16548 Likewise.
16549
16550 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
16551 check till after the cache is created in init_frame_faces.
16552
ff2bc410
SM
165532011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
16554
16555 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
16556
28177add
PE
165572011-06-16 Paul Eggert <eggert@cs.ucla.edu>
16558
dd3482fe
PE
16559 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
16560 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
16561 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
16562
393d71f3 16563 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
16564 * fileio.c (Finsert_file_contents):
16565 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
16566 Remove the old (too-loose) buffer overflow checks.
16567 They weren't needed, since make_gap checks for buffer overflow.
16568 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
16569 The old code merely checked for Emacs fixnum overflow, and relied
16570 on undefined (wraparound) behavior. The new code avoids undefined
16571 behavior, and also checks for ptrdiff_t and/or size_t overflow.
16572
2e6813b0 16573 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
16574 Tune. Don't use wider integers than needed. Don't use alloca.
16575 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 16576
599a9e4f
PE
16577 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
16578
99561444
PE
16579 * insdel.c, lisp.h (buffer_overflow): New function.
16580 (insert_from_buffer_1, replace_range, replace_range_2):
16581 * insdel.c (make_gap_larger):
16582 * editfns.c (Finsert_char):
16583 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
16584
28177add
PE
16585 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
16586
e69dafad
PE
165872011-06-15 Paul Eggert <eggert@cs.ucla.edu>
16588
4baa020d 16589 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 16590
b1c46f02
PE
16591 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
16592 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
16593
e69dafad
PE
16594 * fileio.c: Don't assume EMACS_INT fits in off_t.
16595 (emacs_lseek): New static function.
16596 (Finsert_file_contents, Fwrite_region): Use it.
16597 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
16598
566684ea
PE
16599 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
16600
e6966cd6
PE
16601 * fns.c: Don't overflow int when computing a list length.
16602 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
16603 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
16604 truncation on 64-bit hosts. Check for QUIT every
16605 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
16606 faster and is responsive enough.
16607 (Flength): Report an error instead of overflowing an integer.
16608 (Fsafe_length): Return a float if the value is not representable
16609 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 16610 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 16611 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 16612
dd0b0efb
PE
16613 * alloc.c: Check that resized vectors' lengths fit in fixnums.
16614 (header_size, word_size): New constants.
16615 (allocate_vectorlike): Don't check size overflow here.
16616 (allocate_vector): Check it here instead, since this is the only
16617 caller of allocate_vectorlike that could cause overflow.
16618 Check that the new vector's length is representable as a fixnum.
16619
86fe5cfe
PE
16620 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
16621 The previous code was bogus. For example, next_almost_prime (32)
16622 returned 39, which is undesirable as it is a multiple of 3; and
16623 next_almost_prime (24) returned 25, which is a multiple of 5 so
16624 why was the code bothering to check for multiples of 7?
16625
80e88859
PE
16626 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
16627
4a2f0ad6
PE
16628 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
16629
f66c7cf8
PE
16630 Variadic C functions now count arguments with ptrdiff_t.
16631 This partly undoes my 2011-03-30 change, which replaced int with size_t.
16632 Back then I didn't know that the Emacs coding style prefers signed int.
16633 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
16634 were being counted with int, which may truncate counts on 64-bit
16635 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
16636 * lisp.h (struct Lisp_Subr.function.aMANY)
16637 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
16638 Arg counts are now ptrdiff_t, not size_t.
16639 All variadic functions and their callers changed accordingly.
16640 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
16641 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
16642 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
16643 * callint.c (Fcall_interactively): Check arg count for overflow,
16644 to avoid potential buffer overrun. Use signed char, not 'int',
16645 for 'varies' array, so that we needn't bother to check its size
16646 calculation for overflow.
16647 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
16648 * eval.c (apply_lambda):
16649 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
16650 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
16651 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
16652
a1759b76
PE
16653 * callint.c (Fcall_interactively): Don't use index var as event count.
16654
d96be9fc
PE
16655 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
16656 * mem-limits.h (SIZE): Remove; no longer used.
16657
a690a978 16658 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 16659
578c21e6
PE
16660 Remove unnecessary casts.
16661 * xterm.c (x_term_init):
16662 * xfns.c (x_set_border_pixel):
16663 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
16664 These aren't needed now that we assume ANSI C.
16665
96f53c6c
PE
16666 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
16667 It's more likely to cause problems (due to unsigned overflow)
16668 than to cure them.
16669
83c77d31
PE
16670 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
16671
ee2079f1
PE
16672 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
16673
6da65536
PE
16674 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
16675
7147c4a4
PE
16676 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
16677
193e32d9
PE
16678 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
16679
e5533da6
PE
16680 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
16681
9910e595
PE
16682 GLYPH_CODE_FACE returns EMACS_INT, not int.
16683 * dispextern.h (merge_faces):
16684 * xfaces.c (merge_faces):
01103c44
PE
16685 * xdisp.c (get_next_display_element, next_element_from_display_vector):
16686 Don't assume EMACS_INT fits in int.
9910e595 16687
2638320e
PE
16688 * character.h (CHAR_VALID_P): Remove unused parameter.
16689 * fontset.c, lisp.h, xdisp.c: All uses changed.
16690
045eb8d9
PE
16691 * editfns.c (Ftranslate_region_internal): Omit redundant test.
16692
c1f134b5
PE
16693 * fns.c (concat): Minor tuning based on overflow analysis.
16694 This doesn't fix any bugs. Use int to hold character, instead
16695 of constantly refetching from Emacs object. Use XFASTINT, not
16696 XINT, for value known to be a character. Don't bother comparing
16697 a single byte to 0400, as it's always less.
16698
395fcb93 16699 * floatfns.c (Fexpt):
327eeec8
PE
16700 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
16701
abbd3d23
PE
16702 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
16703 for characters.
16704
684a03ef
PE
16705 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
16706
0fed43f3
PE
16707 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
16708 Without this fix, on a 64-bit host (aset S 0 4294967386) would
16709 incorrectly succeed when S was a string, because 4294967386 was
16710 truncated before it was used.
16711
8fd02eb7
PE
16712 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
16713 Otherwise, an out-of-range integer could cause undefined behavior
16714 on a 64-bit host.
16715
f8c86b69
PE
16716 * composite.c: Use int, not EMACS_INT, for characters.
16717 (fill_gstring_body, composition_compute_stop_pos): Use int, not
16718 EMACS_INT, for values that are known to be in character range.
16719 This doesn't fix any bugs but is the usual style inside Emacs and
16720 may generate better code on 32-bit machines.
16721
34206dd2
PE
16722 Make sure a 64-bit char is never passed to ENCODE_CHAR.
16723 This is for reasons similar to the recent CHAR_STRING fix.
16724 * charset.c (Fencode_char): Check that character arg is actually
16725 a character. Pass an int to ENCODE_CHAR.
16726 * charset.h (ENCODE_CHAR): Verify that the character argument is no
16727 wider than 'int', as a compile-time check to prevent future regressions
16728 in this area.
16729
c5958d4c 16730 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
16731
16732 Make sure a 64-bit char is never passed to CHAR_STRING.
16733 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
16734 by silently ignoring the top 32 bits, allowing some values
16735 that were far too large to be valid characters.
16736 * character.h: Include <verify.h>.
16737 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
16738 arguments are no wider than unsigned, as a compile-time check
16739 to prevent future regressions in this area.
16740 * data.c (Faset):
01103c44 16741 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
16742 (Fsubst_char_in_region):
16743 * fns.c (concat):
16744 * xdisp.c (decode_mode_spec_coding):
16745 Adjust to CHAR_STRING's new requirement.
16746 * editfns.c (Finsert_char, Fsubst_char_in_region):
16747 * fns.c (concat): Check that character args are actually
16748 characters. Without this test, these functions did the wrong
16749 thing with wildly out-of-range values on 64-bit hosts.
16750
d37ca623
PE
16751 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
16752 These casts should not be needed on 32-bit hosts, either.
16753 * keyboard.c (read_char):
16754 * lread.c (Fload): Remove casts to unsigned.
16755
ea204efb
PE
16756 * lisp.h (UNSIGNED_CMP): New macro.
16757 This fixes comparison bugs on 64-bit hosts.
16758 (ASCII_CHAR_P): Use it.
16759 * casefiddle.c (casify_object):
01103c44 16760 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
16761 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
16762 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
16763 * dispextern.h (FACE_FROM_ID):
16764 * keyboard.c (read_char): Use UNSIGNED_CMP.
16765
41cb286c
PE
16766 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
16767 not to EMACS_INT, to avoid GCC warning.
16768
4a1b9832
PE
16769 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
16770
55daad71
PE
16771 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
16772 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
16773 isn't needed on 32-bit machines.
8f95c75c 16774
01103c44
PE
16775 * buffer.c (Fgenerate_new_buffer_name):
16776 Use EMACS_INT for count, not int.
0ceccced 16777 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
16778
16779 * data.c (Qcompiled_function): Now static.
16780
c6f072e7
PE
16781 * window.c (window_body_lines): Now static.
16782
20ce5912
PE
16783 * image.c (gif_load): Rename local to avoid shadowing.
16784
9c4c5f81
PE
16785 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
16786 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
16787 * alloc.c (make_save_value): Integer argument is now of type
16788 ptrdiff_t, not int.
16789 (mark_object): Use ptrdiff_t, not int.
16790 * lisp.h (pD): New macro.
16791 * print.c (print_object): Use it.
16792
c0c5c8ae
PE
16793 * alloc.c: Use EMACS_INT, not int, to count objects.
16794 (total_conses, total_markers, total_symbols, total_vector_size)
16795 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
16796 (total_free_floats, total_floats, total_free_intervals)
16797 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
16798 Now EMACS_INT, not int. All uses changed.
16799 (Fgarbage_collect): Compute overall total using a double, so that
16800 integer overflow is less likely to be a problem. Check for overflow
16801 when converting back to an integer.
5a25e253
PE
16802 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
16803 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
16804 These were 'int' variables that could overflow on 64-bit hosts;
16805 they were never used, so remove them instead of repairing them.
211a0b2a 16806 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
16807 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
16808 Previously, this ceilinged at INT_MAX, but that doesn't work on
16809 64-bit machines.
e46bb31a 16810 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 16811
c78baabf 16812 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 16813 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
16814 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
16815 when a (possibly-narrower) signed value would do just as well.
16816 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 16817
c9d624c6
PE
16818 * alloc.c: Catch some string size overflows that we were missing.
16819 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
16820 for convenience in STRING_BYTES_MAX.
16821 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
16822 The definition here is exact; the one in lisp.h was approximate.
16823 (allocate_string_data): Check for string overflow. This catches
16824 some instances we weren't catching before. Also, it catches
16825 size_t overflow on (unusual) hosts where SIZE_MAX <= min
16826 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
16827 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 16828
c9d624c6
PE
16829 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
16830 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 16831 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 16832
353032ce
PE
16833 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
16834
2bccce07
PE
16835 * alloc.c (Fmake_string): Check for out-of-range init.
16836
0ac30604
SM
168372011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
16838
16839 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
16840
c195f2de
JD
168412011-06-14 Jan Djärv <jan.h.d@swipnet.se>
16842
16843 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
16844 xg_get_default_scrollbar_width.
16845
16846 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
16847 (int_gtk_range_get_value): Move to the scroll bar part of the file.
16848 (style_changed_cb): Call update_theme_scrollbar_width and call
16849 x_set_scroll_bar_default_width and xg_frame_set_char_size for
16850 all frames (Bug#8505).
16851 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
16852 Call gtk_window_set_resizable if HAVE_GTK3.
16853 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
16854 and height if HAVE_GTK3 (Bug#8505).
16855 (scroll_bar_width_for_theme): New variable.
16856 (update_theme_scrollbar_width): New function.
16857 (xg_get_default_scrollbar_width): Move code to
16858 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
16859 (xg_initialize): Call update_theme_scrollbar_width.
16860
16861 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
16862
16863 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
16864
e10ac9f1
MR
168652011-06-12 Martin Rudalics <rudalics@gmx.at>
16866
16867 * frame.c (make_frame): Call other_buffer_safely instead of
16868 other_buffer.
16869
16870 * window.c (temp_output_buffer_show): Call display_buffer with
16871 second argument Vtemp_buffer_show_specifiers and reset latter
16872 immediately after the call.
16873 (Vtemp_buffer_show_specifiers): New variable.
16874 (auto_window_vscroll_p, next_screen_context_lines)
16875 (Vscroll_preserve_screen_position): Remove leading asterisks from
16876 doc-strings.
16877
2d3c217e 168782011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 16879
7b7f97e8 16880 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
16881 * buffer.c (Qclone_number): Remove for now, as it's unused.
16882 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
16883 (record_buffer): Remove unused local.
16884 * frame.c (other_visible_frames, frame_buffer_list): Now static.
16885 (set_frame_buffer_list): Remove; unused.
16886 * frame.h (other_visible_frames): Remove decl.
16887 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
16888 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
16889 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
16890 if HAVE_GPM.
16891 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
16892 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
16893 Define only if HAVE_GPM.
16894 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
16895 (update_hints_inhibit): Remove; never set. All uses removed.
16896 * widgetprv.h (emacsFrameClassRec): Remove decl.
16897 * window.c (delete_deletable_window): Now returns void, since it
16898 wasn't returning anything.
16899 (compare_window_configurations): Remove unused locals.
16900 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
16901 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
16902 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
16903 the same widths as pointers. This follows up on the 2011-05-06 patch.
16904 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
16905 * xterm.h: Likewise.
16906 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
16907
1384b89e
JB
169082011-06-12 Juanma Barranquero <lekktu@gmail.com>
16909
16910 * makefile.w32-in: Update dependencies.
16911 (LISP_H): Add lib/intprops.h.
16912
1100a63c
CY
169132011-06-11 Chong Yidong <cyd@stupidchicken.com>
16914
16915 * image.c (gif_load): Add animation frame delay to the metadata.
16916 (syms_of_image): Use DEFSYM. New symbol `delay'.
16917
6198ccd0
MR
169182011-06-11 Martin Rudalics <rudalics@gmx.at>
16919
16920 * window.c (delete_deletable_window): Re-add.
16921 (Fset_window_configuration): Rewrite to handle dead buffers and
16922 consequently deletable windows.
16923 (window_tree, Fwindow_tree): Remove. Supply functionality in
16924 window.el.
16925 (compare_window_configurations): Simplify code.
16926
b6e3633c
AS
169272011-06-11 Andreas Schwab <schwab@linux-m68k.org>
16928
1ab0dee5
AS
16929 * image.c (imagemagick_load_image): Fix type mismatch.
16930 (Fimagemagick_types): Likewise.
16931
b6e3633c
AS
16932 * window.h (replace_buffer_in_windows): Declare.
16933
9397e56f
MR
169342011-06-11 Martin Rudalics <rudalics@gmx.at>
16935
16936 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
16937 Qclone_number. Remove external declaration of Qdelete_window.
16938 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
16939 code.
640c8776
SM
16940 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
16941 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
16942 (Fother_buffer): Rewrite doc-string. Major rewrite for new
16943 buffer list implementation.
16944 (other_buffer_safely): New function.
16945 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
16946 calls to replace_buffer_in_windows and
16947 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
16948 if allowed.
16949 (record_buffer): Inhibit quitting and rewrite using quittable
16950 functions. Run Qbuffer_list_update_hook if allowed.
16951 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
16952 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
16953 Move switch-to-buffer to window.el.
9397e56f
MR
16954 (bury-buffer): Move to window.el.
16955 (Vbuffer_list_update_hook): New variable.
16956
16957 * lisp.h (other_buffer_safely): Add prototype in buffer.c
16958 section.
16959
16960 * window.h (resize_frame_windows): Move up in code.
16961 (Fwindow_frame): Remove EXFUN.
16962 (replace_buffer_in_all_windows): Remove prototype.
16963 (replace_buffer_in_windows_safely): Add prototype.
16964
16965 * window.c: Declare Qdelete_window static again. Move down
16966 declaration of select_count.
16967 (Fnext_window, Fprevious_window): Rewrite doc-strings.
16968 (Fother_window): Move to window.el.
16969 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
16970 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
16971 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
16972 window.el.
16973 (replace_buffer_in_windows): Implement by calling
16974 Qreplace_buffer_in_windows.
16975 (replace_buffer_in_all_windows): Remove with some functionality
16976 moved into replace_buffer_in_windows_safely.
16977 (replace_buffer_in_windows_safely): New function.
16978 (select_window_norecord, select_frame_norecord): Move in front
16979 of run_window_configuration_change_hook. Remove now obsolete
16980 declarations.
640c8776
SM
16981 (Fset_window_buffer): Rewrite doc-string.
16982 Call Qrecord_window_buffer.
9397e56f
MR
16983 (keys_of_window): Move binding for other-window to window.el.
16984
b50691aa
CY
169852011-06-11 Chong Yidong <cyd@stupidchicken.com>
16986
16987 * dispextern.h (struct image): Replace data member, whose int_val
16988 and ptr_val fields were not used by anything, with a single
16989 lisp_val object.
16990
16991 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
16992 (gif_clear_image, gif_load, imagemagick_load_image)
16993 (gs_clear_image, gs_load): Callers changed.
16994
3f754b86
PE
169952011-06-10 Paul Eggert <eggert@cs.ucla.edu>
16996
cca69397
PE
16997 * buffer.h: Include <time.h>, for time_t.
16998 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
16999
109e28d0
PE
17000 Fix minor problems found by static checking.
17001
60737f02
PE
17002 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
17003
4b66faf3
PE
17004 Make identifiers static if they are not used in other modules.
17005 * data.c (Qcompiled_function, Qframe, Qvector):
17006 * image.c (QimageMagick, Qsvg):
17007 * minibuf.c (Qmetadata):
17008 * window.c (resize_window_check, resize_root_window): Now static.
17009 * window.h (resize_window_check, resize_root_window): Remove decls.
17010
109e28d0
PE
17011 * window.c (window_deletion_count, delete_deletable_window):
17012 Remove; unused.
46a4ce9e
PE
17013 (window_body_lines): Now static.
17014 (Fdelete_other_windows_internal): Mark vars as initialized.
17015 Make sure 'resize_failed' is initialized.
17016 (run_window_configuration_change_hook): Rename local to avoid shadowing.
17017 (resize_window_apply): Remove unused local.
17018 * window.h (delete_deletable_window): Remove decl.
17019
109e28d0 17020 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
17021 (imagemagick_load_image): Fix pointer signedness problem by changing
17022 last arg from unsigned char * to char *. All uses changed.
17023 Also, fix a local for similar reasons.
17024 Remove unused locals. Remove locals to avoid shadowing.
17025 (fn_rsvg_handle_free): Remove; unused.
17026 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 17027 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 17028
3f754b86
PE
17029 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
17030
2547adb1
CY
170312011-06-10 Chong Yidong <cyd@stupidchicken.com>
17032
17033 * image.c (gif_load): Fix omitted cast error introduced by
17034 2011-06-06 change.
17035
2c8e37d4
MR
170362011-06-10 Martin Rudalics <rudalics@gmx.at>
17037
17038 * window.h (resize_proportionally, orig_total_lines)
17039 (orig_top_line): Remove from window structure.
17040 (set_window_height, set_window_width, change_window_heights)
17041 (Fdelete_window): Remove prototypes.
17042 (resize_frame_windows): Remove duplicate declaration.
17043
440a42e3
EZ
170442011-06-10 Eli Zaretskii <eliz@gnu.org>
17045
17046 * window.h (resize_frame_windows, resize_window_check)
17047 (delete_deletable_window, resize_root_window)
17048 (resize_frame_windows): Declare prototypes.
17049
17050 * window.c (resize_window_apply): Make definition be "static" to
17051 match the prototype.
17052
562dd5e9
MR
170532011-06-10 Martin Rudalics <rudalics@gmx.at>
17054
17055 * window.c: Remove declarations of Qwindow_size_fixed,
17056 window_min_size_1, window_min_size_2, window_min_size,
17057 size_window, window_fixed_size_p, enlarge_window, delete_window.
17058 Remove static from declaration of Qdelete_window, it's
17059 temporarily needed by Fbury_buffer.
17060 (replace_window): Don't assign orig_top_line and
17061 orig_total_lines.
17062 (Fdelete_window, delete_window): Remove. Window deletion is
17063 handled by window.el.
640c8776
SM
17064 (window_loop): Remove DELETE_OTHER_WINDOWS case.
17065 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
17066 (Fdelete_other_windows): Remove. Deleting other windows is
17067 handled by window.el.
17068 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
17069 handled in window.el.
17070 (window_min_size_2, window_min_size_1, window_min_size): Remove.
17071 Window minimum sizes are handled in window.el.
17072 (shrink_windows, size_window, set_window_height)
17073 (set_window_width, change_window_heights, window_height)
17074 (window_width, CURBEG, CURSIZE, enlarge_window)
17075 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
17076 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
17077 handled in window.el.
17078 (make_dummy_parent): Rename to make_parent_window and give it a
17079 second argument horflag.
17080 (make_window): Don't set resize_proportionally any more.
17081 (Fsplit_window): Remove. Windows are split in window.el.
17082 (save_restore_action, save_restore_orig_size)
17083 (shrink_window_lowest_first, save_restore_orig_size): Remove.
17084 Resize mini windows in window.el.
17085 (grow_mini_window, shrink_mini_window): Implement by calling
17086 Qresize_root_window_vertically, resize_window_check and
17087 resize_window_apply.
640c8776
SM
17088 (saved_window, Fset_window_configuration, save_window_save):
17089 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
17090 resize_proportionally.
17091 (window_min_height, window_min_width): Move to window.el.
17092 (keys_of_window): Move bindings for delete-other-windows,
17093 split-window, delete-window and enlarge-window to window.el.
17094
17095 * buffer.c: Temporarily extern Qdelete_window.
17096 (Fbury_buffer): Temporarily call Qdelete_window instead of
17097 Fdelete_window (Fbury_buffer will move to window.el soon).
17098
17099 * frame.c (set_menu_bar_lines_1): Remove code handling
17100 orig_top_line and orig_total_lines.
17101
17102 * dispnew.c (adjust_frame_glyphs_initially): Don't use
17103 set_window_height but set heights directly.
17104 (change_frame_size_1): Use resize_frame_windows.
17105
17106 * xdisp.c (init_xdisp): Don't use set_window_height but set
17107 heights directly.
17108
640c8776
SM
17109 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
17110 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
17111 run_window_configuration_change_hook.
17112
17113 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
17114 instead of change_window_heights and run
17115 run_window_configuration_change_hook.
17116
1a13852e
MR
171172011-06-09 Martin Rudalics <rudalics@gmx.at>
17118
17119 * window.c (replace_window): Rename second argument REPLACEMENT to
17120 NEW. New third argument SETFLAG. Rewrite.
17121 (delete_window, make_dummy_parent): Call replace_window with
17122 third argument 1.
17123 (window_list_1): Move down in code.
17124 (run_window_configuration_change_hook): Move set_buffer part
17125 before select_frame_norecord part in order to unwind correctly.
17126 Rename count1 to count.
17127 (recombine_windows, delete_deletable_window, resize_root_window)
17128 (Fdelete_other_windows_internal)
17129 (Frun_window_configuration_change_hook, make_parent_window)
17130 (resize_window_check, resize_window_apply, Fresize_window_apply)
17131 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
17132 (Fdelete_window_internal, Fresize_mini_window_internal):
17133 New functions.
1a13852e
MR
17134 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
17135
f3d1777e
MR
171362011-06-08 Martin Rudalics <rudalics@gmx.at>
17137
496e208e
MR
17138 * window.h (window): Add some new members to window structure -
17139 normal_lines, normal_cols, new_total, new_normal, clone_number,
17140 splits, nest, prev_buffers, next_buffers.
17141 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 17142 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 17143
f3d1777e
MR
17144 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
17145 Remove.
496e208e
MR
17146 (make_dummy_parent): Set new members of windows structure.
17147 (make_window): Move down in code. Handle new members of window
17148 structure.
17149 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
17150 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
17151 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
17152 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
17153 (Fset_window_next_buffers, Fset_window_clone_number):
17154 New functions.
496e208e
MR
17155 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
17156 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
17157 Doc-string fixes.
17158 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
17159 Argument WINDOW can be now internal window too.
17160 (Fwindow_use_time): Move up in code.
17161 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
17162 Rewrite doc-string.
17163 (Fset_window_configuration, saved_window)
17164 (Fcurrent_window_configuration, save_window_save): Handle new
17165 members of window structure.
b9e809c2
MR
17166 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
17167 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
17168 (syms_of_window): New Lisp objects Qrecord_window_buffer,
17169 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
17170 Qget_mru_window, Qresize_root_window,
17171 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
17172 Qauto_buffer_name; staticpro them.
f3d1777e 17173
abde8f8c
MR
171742011-06-07 Martin Rudalics <rudalics@gmx.at>
17175
17176 * window.c (Fwindow_total_size, Fwindow_left_column)
17177 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
17178 (Fwindow_list_1): New functions.
17179 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
17180 (Fwindow_width, Fscroll_left, Fscroll_right):
17181 Use window_body_cols instead of window_box_text_cols.
17182 (delete_window, Fset_window_configuration):
17183 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
17184 (delete_all_subwindows): Take a window as argument and not a
17185 structure. Rewrite.
190b47e6
MR
17186 (window_loop): Remove handling of GET_LRU_WINDOW and
17187 GET_LARGEST_WINDOW.
17188 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
17189
17190 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
17191 window_box_text_cols. delete_all_subwindows now takes a
17192 Lisp_Object as argument.
abde8f8c 17193
640c8776
SM
17194 * indent.c (compute_motion, Fcompute_motion):
17195 Use window_body_cols instead of window_box_text_cols.
abde8f8c 17196
fa8a67e6
MR
17197 * frame.c (delete_frame): Call delete_all_subwindows with root
17198 window as argument.
17199
a54e3482
DC
172002011-06-07 Daniel Colascione <dan.colascione@gmail.com>
17201
17202 * fns.c (Fputhash): Document return value.
17203
60002bf5
CY
172042011-06-06 Chong Yidong <cyd@stupidchicken.com>
17205
17206 * image.c (gif_load): Implement gif89a spec "no disposal" method.
17207
0c671da6 172082011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 17209
b862a52a 17210 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 17211
be44ca6c
PE
17212 Check for overflow when converting integer to cons and back.
17213 * charset.c (Fdefine_charset_internal, Fdecode_char):
17214 Use cons_to_unsigned to catch overflow.
17215 (Fencode_char): Use INTEGER_TO_CONS.
17216 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
17217 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
17218 * data.c (long_to_cons, cons_to_long): Remove.
17219 (cons_to_unsigned, cons_to_signed): New functions.
17220 These signal an error for invalid or out-of-range values.
17221 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
17222 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
17223 * font.c (Ffont_variation_glyphs):
17224 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
17225 * lisp.h: Include <intprops.h>.
17226 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
17227 (cons_to_signed, cons_to_unsigned): New decls.
17228 (long_to_cons, cons_to_long): Remove decls.
17229 * undo.c (record_first_change): Use INTEGER_TO_CONS.
17230 (Fprimitive_undo): Use CONS_TO_INTEGER.
17231 * xfns.c (Fx_window_property): Likewise.
17232 * xselect.c: Include <limits.h>.
17233 (x_own_selection, selection_data_to_lisp_data):
17234 Use INTEGER_TO_CONS.
17235 (x_handle_selection_request, x_handle_selection_clear)
17236 (x_get_foreign_selection, Fx_disown_selection_internal)
17237 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
17238 (lisp_data_to_selection_data): Use cons_to_unsigned.
17239 (x_fill_property_data): Use cons_to_signed.
17240 Report values out of range.
17241
d1f3d2af
PE
17242 Check for buffer and string overflow more precisely.
17243 * buffer.h (BUF_BYTES_MAX): New macro.
17244 * lisp.h (STRING_BYTES_MAX): New macro.
17245 * alloc.c (Fmake_string):
17246 * character.c (string_escape_byte8):
17247 * coding.c (coding_alloc_by_realloc):
17248 * doprnt.c (doprnt):
17249 * editfns.c (Fformat):
17250 * eval.c (verror):
17251 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
17252 since they may not be the same number.
17253 * editfns.c (Finsert_char):
17254 * fileio.c (Finsert_file_contents):
17255 Likewise for BUF_BYTES_MAX.
17256
dd52fcea
PE
17257 * image.c: Use ptrdiff_t, not int, for sizes.
17258 (slurp_file): Switch from int to ptrdiff_t.
17259 All uses changed.
17260 (slurp_file): Check that file size fits in both size_t (for
17261 malloc) and ptrdiff_t (for sanity and safety).
17262
7f9bbdbb
PE
17263 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
17264 if b->modtime has its maximal value.
17265
dfe18f82
PE
17266 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
17267
84acfcf0
PE
17268 Don't assume time_t can fit into int.
17269 * buffer.h (struct buffer.modtime): Now time_t, not int.
17270 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
17271 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
17272
ccd9a01a
PE
17273 Minor fixes for signed vs unsigned integers.
17274 * character.h (MAYBE_UNIFY_CHAR):
17275 * charset.c (maybe_unify_char):
17276 * keyboard.c (read_char, reorder_modifiers):
17277 XINT -> XFASTINT, since the integer must be nonnegative.
17278 * ftfont.c (ftfont_spec_pattern):
17279 * keymap.c (access_keymap, silly_event_symbol_error):
17280 XUINT -> XFASTINT, since the integer must be nonnegative.
17281 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
17282 since it makes no difference and we prefer signed.
17283 * keyboard.c (record_char): Use XUINT when all the neighbors do.
17284 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
17285 nonnegative.
17286
d6d100dd
SM
172872011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
17288
17289 * window.h (Fwindow_frame): Declare.
17290
2b6148e4
PE
172912011-06-06 Paul Eggert <eggert@cs.ucla.edu>
17292
17293 * alloc.c: Simplify handling of large-request failures (Bug#8800).
17294 (SPARE_MEMORY): Always define.
17295 (LARGE_REQUEST): Remove.
17296 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
17297
f230ecc9
MR
172982011-06-06 Martin Rudalics <rudalics@gmx.at>
17299
727e958e
MR
17300 * lisp.h: Move EXFUNS for Fframe_root_window,
17301 Fframe_first_window and Fset_frame_selected_window to window.h.
17302
17303 * window.h: Move EXFUNS for Fframe_root_window,
17304 Fframe_first_window and Fset_frame_selected_window here from
17305 lisp.h.
17306
17307 * frame.c (Fwindow_frame, Fframe_first_window)
17308 (Fframe_root_window, Fframe_selected_window)
17309 (Fset_frame_selected_window): Move to window.c.
17310 (Factive_minibuffer_window): Move to minibuf.c.
17311 (Fother_visible_frames_p): New function.
17312
17313 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
17314
f230ecc9
MR
17315 * window.c (decode_window, decode_any_window): Move up in code.
17316 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
17317 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
17318 (Fwindow_buffer): Move up and rewrite doc-string.
17319 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
17320 (Fwindow_prev): New functions.
727e958e
MR
17321 (Fwindow_frame): Move here from frame.c. Accept any window as
17322 argument.
17323 (Fframe_root_window, Fframe_first_window)
17324 (Fframe_selected_window): Move here from frame.c. Accept frame
17325 or arbitrary window as argument. Update doc-strings.
17326 (Fminibuffer_window): Move up in code.
17327 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
17328 (Fset_frame_selected_window): Move here from frame.c.
17329 Marginal rewrite.
727e958e
MR
17330 (Fselected_window, select_window, Fselect_window): Move up in
17331 code. Minor doc-string fixes.
f230ecc9 17332
4d09bcf6
PE
173332011-06-06 Paul Eggert <eggert@cs.ucla.edu>
17334
17335 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
17336 Do not assume that spare memory exists; that assumption is valid
17337 only if SYSTEM_MALLOC.
17338 (LARGE_REQUEST): New macro, so that the issue of large requests
17339 is separated from the issue of spare memory.
17340
810928a2
AS
173412011-06-05 Andreas Schwab <schwab@linux-m68k.org>
17342
172418ad
AS
17343 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
17344 format. (Bug#8806)
17345
43f862f7
AS
17346 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
17347
810928a2
AS
17348 * xfns.c (x_set_scroll_bar_default_width): Move declarations
17349 before statements.
17350
a059fe24
JD
173512011-06-05 Jan Djärv <jan.h.d@swipnet.se>
17352
17353 * gtkutil.c (xg_get_default_scrollbar_width): New function.
17354
17355 * gtkutil.h: Declare xg_get_default_scrollbar_width.
17356
17357 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
17358 min width by calling x_set_scroll_bar_default_width (Bug#8505).
17359
989bf368
JB
173602011-06-05 Juanma Barranquero <lekktu@gmail.com>
17361
17362 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
17363
4b80f674
CY
173642011-06-04 Chong Yidong <cyd@stupidchicken.com>
17365
17366 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
17367 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
17368 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
17369 New error handlers.
4b80f674
CY
17370 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
17371 Obey Vx_select_enable_clipboard_manager. Catch errors in
17372 x_clipboard_manager_save (Bug#8779).
17373 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 17374 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 17375
99a33b77 173762011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
17377
17378 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
17379
99a33b77 173802011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
17381
17382 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
17383 in the current matrix if keep_current_p is non-zero.
17384
8264569d
EZ
173852011-06-04 Eli Zaretskii <eliz@gnu.org>
17386
17387 * bidi.c (bidi_level_of_next_char): Fix last change.
17388
57f97249
EZ
173892011-06-03 Eli Zaretskii <eliz@gnu.org>
17390
fec2107c 17391 Support bidi reordering of text covered by display properties.
57f97249 17392
fec2107c
EZ
17393 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
17394 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
17395 (bidi_cache_search, bidi_cache_iterator_state)
17396 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
17397 (bidi_level_of_next_char, bidi_move_to_visually_next):
17398 Support character positions inside a run of characters covered by a
fec2107c
EZ
17399 display string.
17400 (bidi_paragraph_init, bidi_resolve_explicit_1)
17401 (bidi_level_of_next_char): Call bidi_fetch_char and
17402 bidi_fetch_char_advance instead of FETCH_CHAR and
17403 FETCH_CHAR_ADVANCE.
17404 (bidi_init_it): Initialize new members.
17405 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
17406 definitions.
17407 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
17408 instead of using explicit *_CHAR codes.
d6d100dd
SM
17409 (bidi_resolve_explicit, bidi_resolve_weak):
17410 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
17411 bidirectional text is supported only in multibyte buffers.
17412 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
17413 it to initialize the frame_window_p member of struct bidi_it.
17414 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
17415 (bidi_resolve_explicit, bidi_resolve_weak)
17416 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
17417 bidi_it->nchars is non-positive.
17418 (bidi_level_of_next_char): Don't try to lookup the cache for the
17419 next/previous character if nothing is cached there yet, or if we
17420 were just reseat()'ed to a new position.
c40e2fb2 17421
0e14fe90
EZ
17422 * xdisp.c (set_cursor_from_row): Set start and stop points
17423 according to the row's direction when priming the loop that looks
17424 for the glyph on which to display cursor.
17425 (single_display_spec_intangible_p): Function deleted.
17426 (display_prop_intangible_p): Reimplement to call
17427 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
17428 Accept 3 additional arguments needed by handle_display_spec.
17429 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
17430 values: lists, `(when COND...)' forms, etc.
17431 (single_display_spec_string_p): Support property values that are
17432 lists with the argument STRING its top-level element.
17433 (display_prop_string_p): Fix the condition for processing a
17434 property that is a list to be consistent with handle_display_spec.
fec2107c 17435 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
17436 last portion of handle_display_prop.
17437 (compute_display_string_pos): Accept additional argument
17438 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
17439 value of a `display' property is a "replacing spec".
17440 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
17441 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
17442 the display property, but just return a value indicating whether
17443 the display property will replace the characters it covers.
17444 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
17445 frame_window_p members of struct bidi_it.
d6d100dd
SM
17446 (compute_display_string_pos, compute_display_string_end):
17447 New functions.
fec2107c
EZ
17448 (push_it): Accept second argument POSITION, where pop_it should
17449 jump to continue iteration.
17450 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 17451
fec2107c
EZ
17452 * keyboard.c (adjust_point_for_property): Adjust the call to
17453 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
17454
17455 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
17456 (bidi_init_it): Update prototypes.
17457 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
17458 (compute_display_string_pos, compute_display_string_end):
17459 Declare prototypes.
fec2107c
EZ
17460 (struct bidi_it): New members nchars and disp_pos. ch_len is now
17461 EMACS_INT.
fc6f18ce 17462
40087514 174632011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 17464
57f53182
PE
17465 Malloc failure behavior now depends on size of allocation.
17466 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
17467 * lisp.h: Change signatures accordingly.
17468 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
17469 All callers changed. (Bug#8762)
17470
17471 * gnutls.c: Use Emacs's memory allocators.
17472 Without this change, the gnutls library would invoke malloc etc.
17473 directly, which causes problems on non-SYNC_INPUT hosts, and which
17474 runs afoul of improving memory_full behavior. (Bug#8761)
17475 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
17476 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
17477 xfree instead of the default malloc, realloc, free.
17478 (Fgnutls_boot): No need to check for memory allocation failure,
17479 since xmalloc does that for us.
17480
ac32cd99 17481 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
17482 * category.c (hash_get_category_set):
17483 * ccl.c (ccl_driver):
17484 * charset.c (Fdefine_charset_internal):
17485 * charset.h (struct charset.hash_index):
17486 * composite.c (get_composition_id, gstring_lookup_cache)
17487 (composition_gstring_put_cache):
17488 * composite.h (struct composition.hash_index):
17489 * dispextern.h (struct image.hash):
17490 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
17491 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
17492 (hashfn_equal, hashfn_user_defined, make_hash_table)
17493 (maybe_resize_hash_table, hash_lookup, hash_put)
17494 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
17495 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
17496 (Fsxhash, Fgethash, Fputhash, Fmaphash):
17497 * image.c (make_image, search_image_cache, lookup_image)
17498 (xpm_put_color_table_h):
17499 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 17500 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 17501 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 17502 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
17503 * alloc.c (allocate_vectorlike):
17504 Check for overflow in vector size calculations.
17505 * ccl.c (ccl_driver):
17506 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
17507 * fns.c, image.c: Remove unnecessary static decls that would otherwise
17508 need to be updated by these changes.
40087514
PE
17509 * fns.c (make_hash_table, maybe_resize_hash_table):
17510 Check for integer overflow with large hash tables.
0de4bb68
PE
17511 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
17512 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
17513 (SXHASH_REDUCE): New macro.
17514 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
17515 Use it instead of discarding useful hash info with large hash values.
17516 (sxhash_float): New function.
17517 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
17518 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
17519 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
17520 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
17521 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
17522 Adjust signatures to match updated version of code.
17523 (consing_since_gc): Now EMACS_INT, since a single hash table can
17524 use more than INT_MAX bytes.
17525
698d32e2
DN
175262011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
17527
17528 Make it possible to build with GCC-4.6+ -O2 -flto.
17529
17530 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
17531
fd6fa53f
SM
175322011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
17533
17534 * minibuf.c (get_minibuffer, read_minibuf_unwind):
17535 Call minibuffer-inactive-mode.
17536
864db017
JB
175372011-05-31 Juanma Barranquero <lekktu@gmail.com>
17538
17539 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
17540 Update dependencies.
17541
2ad0baf4
DN
175422011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17543
17544 * data.c (init_data): Remove code for UTS, this system is not
17545 supported anymore.
17546
4fcc2638
DN
175472011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17548
17549 Don't force ./temacs to start in terminal mode.
17550
17551 * frame.c (make_initial_frame): Initialize faces in all cases, not
17552 only when CANNOT_DUMP is defined.
17553 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
17554
c56e0fd5
DN
175552011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17556
17557 * dispnew.c (add_window_display_history): Use const for the string
17558 pointer. Remove declaration, not needed.
17559
333d54da 175602011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 17561
55d4c1b2 17562 Use 'inline', not 'INLINE'.
333d54da 17563 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
17564 * alloc.c, fontset.c (INLINE): Remove.
17565 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
17566 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
17567 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
17568 * gmalloc.c (register_heapinfo): Use inline unconditionally.
17569 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
17570
738db178
DN
175712011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17572
17573 Make it possible to run ./temacs.
17574
17575 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
17576 syms_of_callproc does the same thing. Remove test for
17577 "initialized", do it in the caller.
17578 * emacs.c (main): Avoid calling set_initial_environment when dumping.
17579
620c53a6
SM
175802011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
17581
17582 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
17583 (read_minibuf): Use get_minibuffer.
17584 (syms_of_minibuf): Use DEFSYM.
17585 (Qmetadata): New var.
17586 * data.c (Qbuffer): Don't make it static.
17587 (syms_of_data): Use DEFSYM.
17588
e003a292
PE
175892011-05-31 Paul Eggert <eggert@cs.ucla.edu>
17590
17591 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
17592 (CCL_CODE_MIN): New macro.
17593
ed008a6d
PE
175942011-05-30 Paul Eggert <eggert@cs.ucla.edu>
17595
3687c2ef
PE
17596 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
17597
ed008a6d
PE
17598 * eval.c (Qdebug): Now static.
17599 * lisp.h (Qdebug): Remove decl. This reverts a part of the
17600 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
17601 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
17602
d66c4c7c
CY
176032011-05-29 Chong Yidong <cyd@stupidchicken.com>
17604
17605 * image.c: Various fixes to ImageMagick code comments.
17606 (Fimagemagick_types): Doc fix.
17607
5fbc2025
PE
176082011-05-29 Paul Eggert <eggert@cs.ucla.edu>
17609
0196f88a
PE
17610 Minor fixes prompted by GCC 4.6.0 warnings.
17611
17612 * xselect.c (converted_selections, conversion_fail_tag): Now static.
17613
5fbc2025
PE
17614 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
17615 (x_clipboard_manager_save_all): Move extern decl to ...
17616 * xterm.h: ... here, so that it can be checked for consistency.
17617
1dd3c2d9
CY
176182011-05-29 Chong Yidong <cyd@stupidchicken.com>
17619
17620 * xselect.c (x_clipboard_manager_save_frame)
17621 (x_clipboard_manager_save_all): New functions.
17622 (Fx_clipboard_manager_save): Lisp function deleted.
17623
17624 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
17625 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
17626
17627 * xterm.h: Update prototype.
17628
5ba6571d
WX
176292011-05-28 William Xu <william.xwl@gmail.com>
17630
17631 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
17632 exiting (Bug#8239).
17633
3eaff834
JM
176342011-05-28 Jim Meyering <meyering@redhat.com>
17635
e1900994 17636 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
17637 * fns.c (to_uchar): Define.
17638 (crypto_hash_function): Use it to convert some newly-signed
17639 variables to unsigned, to avoid sign-extension bugs. For example,
17640 without this change, (md5 "truc") would evaluate to
17641 45723a2aff78ff4fff7fff1114760e62 rather than the expected
17642 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 17643 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 17644
0f6990a7
PE
176452011-05-27 Paul Eggert <eggert@cs.ucla.edu>
17646
17647 Integer overflow fixes.
c8a9ca5a 17648
08686060
PE
17649 * dbusbind.c: Serial number integer overflow fixes.
17650 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
17651 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
17652 to hold a serial number that is too large for a fixnum.
17653 (Fdbus_method_return_internal, Fdbus_method_error_internal):
17654 Check for serial numbers out of range. Decode any serial number
59568bf0 17655 that was so large that it became a float. (Bug#8722)
08686060 17656
2d1fc3c7
PE
17657 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
17658 (Fdbus_call_method, Fdbus_call_method_asynchronously):
17659 Use XFASTINT rather than XUINT when numbers are nonnegative.
17660 (xd_append_arg, Fdbus_method_return_internal):
17661 (Fdbus_method_error_internal): Likewise. Also, for unsigned
17662 arguments, check that Lisp number is nonnegative, rather than
59568bf0 17663 silently wrapping negative numbers around. (Bug#8722)
30217ff0 17664 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 17665 (Bug#8722)
2d1fc3c7 17666
c8a9ca5a
PE
17667 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
17668
519e1d69
PE
17669 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
17670
6df6ae42 17671 ccl: Add integer overflow checks.
30569699
PE
17672 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
17673 (IN_INT_RANGE): New macros.
17674 (ccl_driver): Use them to check for integer overflow when
17675 decoding a CCL program. Many of the new checks are whether XINT (x)
17676 fits in int; it doesn't always, on 64-bit hosts. The new version
17677 doesn't catch all possible integer overflows, but it's an
847044ea 17678 improvement. (Bug#8719)
30569699 17679
c11285dc
PE
17680 * alloc.c (make_event_array): Use XINT, not XUINT.
17681 There's no need for unsigned here.
17682
fdccd48e
PE
17683 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
17684 This follows up to the 2011-05-06 change that substituted uintptr_t
17685 for EMACS_INT. This case wasn't caught back then.
17686
37910ab2
PE
17687 Rework Fformat to avoid integer overflow issues.
17688 * editfns.c: Include <float.h> unconditionally, as it's everywhere
17689 now (part of C89). Include <verify.h>.
17690 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
17691 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
17692 (Fformat): Avoid the prepass trying to compute sizes; it was only
17693 approximate and thus did not catch overflow reliably. Instead, walk
17694 through the format just once, formatting and computing sizes as we go,
17695 checking for integer overflow at every step, and allocating a larger
17696 buffer as needed. Keep track separately whether the format is
17697 multibyte. Keep only the most-recently calculated precision, rather
17698 than them all. Record whether each argument has been converted to
17699 string. Use EMACS_INT, not int, for byte and char and arg counts.
17700 Support field widths and precisions larger than INT_MAX. Avoid
17701 sprintf's undefined behavior with conversion specifications such as %#d
17702 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
17703 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
17704 formatting out-of-range floating point numbers with int
9173deec 17705 formats. (Bug#8668)
37910ab2 17706
2e6578fb
PE
17707 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
17708
0ae6bdee
PE
17709 * data.c: Avoid integer truncation in expressions involving floats.
17710 * data.c: Include <intprops.h>.
17711 (arith_driver): When there's an integer overflow in an expression
17712 involving floating point, convert the integers to floating point
17713 so that the resulting value does not suffer from catastrophic
17714 integer truncation. For example, on a 64-bit host (* 4
17715 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
17716 Do not rely on undefined behavior after integer overflow.
17717
de883a70
PE
17718 merge count_size_as_multibyte, parse_str_to_multibyte
17719 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 17720 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
17721 Check for integer overflow.
17722 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
17723 since it's now a duplicate of the other. This is more of
17724 a character than a buffer op, so better that it's in character.c.
17725 * fns.c, print.c: Adjust to above changes.
17726
2ff916cb
PE
177272011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
17728
17729 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
17730
f1b54466
PE
177312011-05-27 Paul Eggert <eggert@cs.ucla.edu>
17732
fb1ac845
PE
17733 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
17734 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
17735 (x_clipboard_manager_save): Now static.
17736 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
17737
f1b54466
PE
17738 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
17739 (crypto_hash_function): Now static.
17740 Fix pointer signedness problems. Avoid unnecessary initializations.
17741
a9f737ee
CY
177422011-05-27 Chong Yidong <cyd@stupidchicken.com>
17743
17744 * termhooks.h (Vselection_alist): Make it terminal-local.
17745
17746 * terminal.c (create_terminal): Initialize it.
17747
17748 * xselect.c: Support for clipboard managers.
17749 (Vselection_alist): Move to termhooks.h as terminal-local var.
17750 (LOCAL_SELECTION): New macro.
17751 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
17752 (symbol_to_x_atom): Remove gratuitous arg.
17753 (x_handle_selection_request, lisp_data_to_selection_data)
17754 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
17755 (x_own_selection, x_get_local_selection, x_convert_selection):
17756 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
17757 (some_frame_on_display): Delete unused function.
17758 (Fx_own_selection_internal, Fx_get_selection_internal)
17759 (Fx_disown_selection_internal, Fx_selection_owner_p)
17760 (Fx_selection_exists_p): New optional frame arg.
17761 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
17762 (x_handle_selection_clear): Don't treat other terminals with the
17763 same keyboard specially. Use the terminal-local Vselection_alist.
17764 (x_clear_frame_selections): Use Frun_hook_with_args.
17765
17766 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
17767
17768 * xterm.h: Add support for those atoms.
17769
e067f0c1
CY
177702011-05-26 Chong Yidong <cyd@stupidchicken.com>
17771
17772 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
17773 (converted_selections, conversion_fail_tag): New global variables.
17774 (x_selection_request_lisp_error): Free the above.
17775 (x_get_local_selection): Remove unnecessary code.
17776 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
17777 of converted selections stored in converted_selections.
17778 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
17779 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
17780 (x_convert_selection): New function.
17781 (x_handle_selection_event): Simplify.
17782 (x_get_foreign_selection): Don't ignore incoming requests while
17783 waiting for an answer; this will fail when we implement
17784 SAVE_TARGETS, and seems unnecessary anyway.
17785 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
17786 (Vx_sent_selection_functions): Doc fix.
17787
0f4aebc0
LL
177882011-05-26 Leo Liu <sdl.web@gmail.com>
17789
17790 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
17791
e61124cd
YM
177922011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17793
17794 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
17795
17796 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
17797 for fringe update if it has periodic bitmap.
ac389d0c 17798 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
17799 and fringe_bitmap_periodic_p.
17800
17801 * fringe.c (get_fringe_bitmap_data): New function.
17802 (draw_fringe_bitmap_1, update_window_fringes): Use it.
17803 (update_window_fringes): Record periodicity of fringe bitmap in glyph
17804 row. Mark glyph row for fringe update if periodicity changed.
17805
17806 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
17807 for fringe update unless it has periodic bitmap.
17808
f16d9837
KH
178092011-05-25 Kenichi Handa <handa@m17n.org>
17810
17811 * xdisp.c (get_next_display_element): Set correct it->face_id for
17812 a static composition.
17813
e1b90ef6
LL
178142011-05-24 Leo Liu <sdl.web@gmail.com>
17815
17816 * deps.mk (fns.o):
17817 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
17818
17819 * fns.c (crypto_hash_function, Fsha1): New function.
17820 (Fmd5): Use crypto_hash_function.
17821 (syms_of_fns): Add Ssha1.
17822
7400048f
PE
178232011-05-22 Paul Eggert <eggert@cs.ucla.edu>
17824
17825 * gnutls.c: Remove unused macros.
17826 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
17827 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
17828 Remove macros that are defined and never used.
17829 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
17830
abb71cf4
CY
178312011-05-22 Chong Yidong <cyd@stupidchicken.com>
17832
17833 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
17834 (Fx_get_selection_internal): Minor cleanup.
17835 (Fx_own_selection_internal): Rename arguments for consistency with
17836 select.el.
17837
6307db39
PE
178382011-05-22 Paul Eggert <eggert@cs.ucla.edu>
17839
17840 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
17841
f3d4e0a4
CY
178422011-05-22 Chong Yidong <cyd@stupidchicken.com>
17843
17844 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
17845
4d8ade89
YM
178462011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17847
17848 * dispnew.c (scrolling_window): Don't exclude the case that the
17849 last enabled row in the desired matrix touches the bottom boundary.
17850
32078c8d
GM
178512011-05-21 Glenn Morris <rgm@gnu.org>
17852
17853 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
17854 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
17855 and add some more files.
32078c8d 17856
7285dc67
EZ
178572011-05-20 Eli Zaretskii <eliz@gnu.org>
17858
17859 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
17860 report_file_error introduced by the change from 2011-05-07.
17861
89d1bd22
PE
178622011-05-20 Paul Eggert <eggert@cs.ucla.edu>
17863
17864 * systime.h (Time): Define only if emacs is defined.
17865 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
17866 where the include path doesn't have X11/X.h by default. See
17867 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
17868
cd394be1 178692011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
17870
17871 * composite.c (find_automatic_composition): Fix previous change.
17872
b9704ad9
GM
178732011-05-20 Glenn Morris <rgm@gnu.org>
17874
17875 * lisp.mk: New file, split from Makefile.in.
17876 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
17877 (shortlisp): Remove.
17878 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
17879
4a720484
GM
178802011-05-19 Glenn Morris <rgm@gnu.org>
17881
17882 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
17883 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
17884 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
17885 (lisp): Set the order to that of loadup.el.
17886 (shortlisp): Make it a copy of $lisp.
17887 (SOME_MACHINE_LISP): Remove.
17888 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
17889 Use just $shortlisp, not $SOME_MACHINE_LISP too.
17890
a28d4396
KH
178912011-05-18 Kenichi Handa <handa@m17n.org>
17892
17893 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
17894 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
17895 (find_automatic_composition): Mostly rewrite for efficiency.
17896
a2b1fa8e
JB
178972011-05-18 Juanma Barranquero <lekktu@gmail.com>
17898
17899 * makefile.w32-in: Update dependencies.
17900
8e1f5610
CS
179012011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
17902
17903 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 17904 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 17905
7025ee00 179062011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 17907
cdfa6eab
PE
17908 Fix some integer overflow issues, such as string length overflow.
17909
06d6db33
PE
17910 * insdel.c (count_size_as_multibyte): Check for string overflow.
17911
2b4560a8
PE
17912 * character.c (lisp_string_width): Check for string overflow.
17913 Use EMACS_INT, not int, for string indexes and lengths; in
17914 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
17915 the resulting string length overflows an EMACS_INT; instead,
17916 report a string overflow if no precision given. When checking for
17917 precision exhaustion, use a check that cannot possibly have
17918 integer overflow. (Bug#8675)
17919 * character.h (lisp_string_width): Adjust to new signature.
17920
cb93f9be
PE
17921 * alloc.c (string_overflow): New function.
17922 (Fmake_string): Use it. This doesn't change behavior, but saves
17923 a few bytes and will simplify future changes.
17924 * character.c (string_escape_byte8): Likewise.
17925 * lisp.h (string_overflow): New decl.
17926
1a1f3366
PE
17927 Fixups, following up to the user-interface timestamp change.
17928 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
17929 for UI timestamps, instead of unsigned long.
9fbd6841
PE
17930 * msdos.c (mouse_get_pos): Likewise.
17931 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
17932 * w32gui.h (Time): Define by including "systime.h" rather than by
17933 declaring it ourselves. (Bug#8664)
17934
d4e3e4d3
PE
17935 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
17936 * image.c (clear_image_cache): Likewise.
17937
f6a24d19
PE
17938 * term.c (term_mouse_position): Don't assume time_t wraparound.
17939
08dc5ae6
PE
17940 Be more systematic about user-interface timestamps.
17941 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
17942 and sometimes 'EMACS_UINT', to represent these timestamps.
17943 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
17944 This makes the code easier to follow, and makes it easier to catch
17945 integer overflow bugs such as Bug#8664.
17946 * frame.c (Fmouse_position, Fmouse_pixel_position):
17947 Use Time, not unsigned long, for user-interface timestamps.
17948 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
17949 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
17950 * keyboard.h (last_event_timestamp): Likewise.
17951 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
17952 * menu.h (xmenu_show): Likewise.
17953 * term.c (term_mouse_position): Likewise.
17954 * termhooks.h (struct input_event.timestamp): Likewise.
17955 (struct terminal.mouse_position_hook): Likewise.
17956 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
17957 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
17958 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
17959 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
17960 what it was before.
17961 * menu.h, termhooks.h: Include "systime.h", for Time.
17962
8e55734a
PE
17963 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
17964 Don't assume that the difference between two unsigned long values
17965 can fit into an integer. At this point, we know button_down_time
17966 <= event->timestamp, so the difference must be nonnegative, so
17967 there's no need to cast the result if double-click-time is
17968 nonnegative, as it should be; check that it's nonnegative, just in
17969 case. This bug is triggered when events are more than 2**31 ms
86db42d2 17970 apart (about 25 days). (Bug#8664)
8e55734a 17971
841f1b75 17972 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 17973 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 17974
3e26f69c
PE
17975 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
17976 that always fit in int. Use a sentinel instead of a counter, to
17977 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
17978 * frame.h (struct frame): Use int for menu_bar_items_used
17979 instead of EMACS_INT, since it always fits in int.
3e26f69c 17980
5cc152c0
PE
17981 * menu.c (grow_menu_items): Check for int overflow.
17982
d89eb65e
PE
17983 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
17984
5235bd3e
PE
17985 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
17986 Before, the code was not consistent. These values cannot exceed
17987 2**31 - 1 so there's no need to make them unsigned.
17988 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
17989 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
17990 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
17991 as modifiers.
17992 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
17993
bc827e23
PE
17994 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
17995 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
17996 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
17997 presumably because the widths might not match.
17998
78eb494e
PE
17999 * window.c (size_window): Avoid needless test at loop start.
18000
04f2d78b
CB
180012011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
18002
18003 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
18004
d2fc7e3d 180052011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
18006
18007 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
18008
d2fc7e3d 180092011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
18010
18011 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
18012 `width' to `bar_area_x' and `bar_area_width', respectively.
18013 (x_scroll_run): Take account of fringe background extension.
18014
04f2d78b
CB
18015 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
18016 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
18017 `bar_area_width', respectively.
18018 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
18019 background extension.
18020
79b70037
GM
180212011-05-10 Jim Meyering <meyering@redhat.com>
18022
18023 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
18024
2f142cc5
JB
180252011-05-10 Juanma Barranquero <lekktu@gmail.com>
18026
18027 * image.c (Finit_image_library): Return t for built-in image types,
18028 like pbm and xbm. (Bug#8640)
18029
57679c86
AS
180302011-05-09 Andreas Schwab <schwab@linux-m68k.org>
18031
18032 * w32menu.c (set_frame_menubar): Fix submenu allocation.
18033
888c9e86
EZ
180342011-05-07 Eli Zaretskii <eliz@gnu.org>
18035
b0512a1d
EZ
18036 * w32console.c (Fset_screen_color): Doc fix.
18037 (Fget_screen_color): New function.
18038 (syms_of_ntterm): Defsubr it.
18039
7285dc67
EZ
18040 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
18041 unlink the temporary file if Fcall_process didn't create it in the
18042 first place.
18043 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
18044 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
18045 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
18046 cue to call_process_cleanup not to close that handle.
18047
4d3fcc8e
BK
180482011-05-07 Ben Key <bkey76@gmail.com>
18049
18050 * makefile.w32-in: The bootstrap-temacs rule now makes use of
18051 one of two shell specific rules, either bootstrap-temacs-CMD or
18052 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
18053 to the previous implementation of the bootstrap-temacs rule.
18054 The bootstrap-temacs-CMD rule is similar to the previous
18055 implementation of the bootstrap-temacs rule except that it
18056 makes use of the ESC_CFLAGS variable instead of the CFLAGS
18057 variable.
18058
18059 These changes, along with some changes to nt/configure.bat,
18060 nt/gmake.defs, and nt/nmake.defs, are required to extend my
18061 earlier fix to add support for --cflags and --ldflags options
18062 that include quotes so that it works whether make uses cmd or
18063 sh as the shell.
18064
b4289b64
MA
180652011-05-06 Michael Albinus <michael.albinus@gmx.de>
18066
18067 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
18068 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
18069 is a constant.
18070 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
18071 a string. Handle both cases.
18072 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
18073 (Fdbus_register_method): Use Qinvalid_function.
18074
af4c0e28
JB
180752011-05-06 Juanma Barranquero <lekktu@gmail.com>
18076
18077 * makefile.w32-in: Update dependencies.
18078 (LISP_H): Add inttypes.h and stdin.h.
18079 (PROCESS_H): Add unistd.h.
18080
c51453d9
EZ
180812011-05-06 Eli Zaretskii <eliz@gnu.org>
18082
18083 * lread.c: Include limits.h (fixes the MS-Windows build broken by
18084 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
18085
8ff0ac3c 180862011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 18087
4c4b566b
PE
18088 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
18089
aab2b9b5
PE
18090 * term.c (vfatal): Remove stray call to va_end.
18091 It's not needed and the C Standard doesn't allow it here anyway.
18092
c378da0b
PE
18093 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
18094 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
18095
288b08c7
PE
18096 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
18097 bytes.
18098
e3601888
PE
18099 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
18100
db6c0e74
PE
18101 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
18102
dd5963ea
PE
18103 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
18104
88c9450f
PE
18105 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
18106
2f9442b8
PE
18107 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
18108
c032b5f8
PE
18109 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
18110 * charset.c (Fdefine_charset_internal): Don't initialize
18111 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 18112 32-bit int (Bug#8600).
a108c10b
PE
18113
18114 * lread.c (read_integer): Be more consistent with string-to-number.
18115 Use string_to_number to do the actual conversion; this avoids
18116 rounding errors and fixes some other screwups. Without this fix,
18117 for example, #x1fffffffffffffff was misread as -2305843009213693952.
18118 (digit_to_number): Move earlier, for benefit of read_integer.
18119 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 18120 not a digit in any supported base. (Bug#8602)
a108c10b 18121
ad5f9eea
PE
18122 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
18123
aec1708a
PE
18124 * dispnew.c (scrolling_window): Return 1 if we scrolled,
18125 to match comment at start of function. This also removes a
18126 GCC warning about overflow in a 32+64-bit port.
18127
47be4ab5
PE
18128 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
18129
371cac43
PE
18130 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
18131 Reported by Stefan Monnier in
18132 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
18133 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
18134 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 18135
d01a7826
PE
18136 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
18137 (EMACS_UINTPTR): Likewise, with uintptr_t.
18138
7fd47d5c
PE
18139 * lisp.h: Prefer 64-bit EMACS_INT if available.
18140 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
18141 on 32-bit hosts that have 64-bit int, so that they can access
18142 large files.
122b0c86
PE
18143 However, temporarily disable this change unless the temporary
18144 symbol WIDE_EMACS_INT is defined.
7fd47d5c 18145
8727937b
PE
18146 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
18147
8ac068ac
PE
18148 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
18149 This removes an assumption that EMACS_INT and long are the same
18150 width as pointers. The assumption is true for Emacs porting targets
18151 now, but we want to make other targets possible.
18152 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
18153 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
18154 In the rest of the code, change types of integers that hold casted
18155 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
18156 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
18157 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
18158 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
18159 No need to cast type when ORing.
18160 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
18161 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
18162 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
18163 assume EMACS_INT is the same width as char *.
18164 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
18165 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
18166 Remove no-longer-needed casts.
18167 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
18168 (xg_tool_bar_help_callback, xg_make_tool_item):
18169 Use EMACS_INTPTR to hold an integer
18170 that will be cast to void *; this can avoid a GCC warning
18171 if EMACS_INT is not the same width as void *.
18172 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
18173 * xdisp.c (display_echo_area_1, resize_mini_window_1):
18174 (current_message_1, set_message_1):
18175 Use a local to convert to proper width without a cast.
18176 * xmenu.c (dialog_selection_callback): Likewise.
18177
ede49d71
PE
18178 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
18179 Also, don't assume VALBITS / RAND_BITS is less than 5,
18180 and don't rely on undefined behavior when shifting a 1 left into
18181 the sign bit.
18182 * lisp.h (get_random): Change signature to match.
18183
2f30ecd0
PE
18184 * lread.c (hash_string): Use size_t, not int, for hash computation.
18185 Normally we prefer signed values; but hashing is special, because
18186 it's better to use unsigned division on hash table sizes so that
18187 the remainder is nonnegative. Also, size_t is the natural width
18188 for hashing into memory. The previous code used 'int', which doesn't
18189 retain enough info to hash well into very large tables.
18190 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
18191
2a866e7b
PE
18192 * dbusbind.c: Don't possibly lose pointer info when converting.
18193 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
18194 Use XPNTR rather than XHASH, so that the high-order bits of
18195 the pointer aren't lost when converting through void *.
18196
51639eac
PE
18197 * eval.c (Fautoload): Don't double-shift a pointer.
18198
92394119
PE
18199 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
18200
dbdb9a7c
JB
182012011-05-06 Juanma Barranquero <lekktu@gmail.com>
18202
18203 * gnutls.c (DEF_GNUTLS_FN):
18204 * image.c (DEF_IMGLIB_FN): Make function pointers static.
18205
db7a0b4f
AS
182062011-05-05 Andreas Schwab <schwab@linux-m68k.org>
18207
18208 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
18209 marker. (Bug#8610)
18210
cd394be1 182112011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
18212
18213 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
18214 New version that can reserve upto 2GB of heap space.
18215
f7ff1b0f 182162011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
18217
18218 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
18219
639c109b
TZ
182202011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
18221
18222 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
18223 `gnutls_certificate_set_x509_key_file'.
18224
d2127135
JB
182252011-05-05 Juanma Barranquero <lekktu@gmail.com>
18226
18227 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
18228 Update dependencies.
18229
e968f4f3
JB
182302011-05-04 Juanma Barranquero <lekktu@gmail.com>
18231
18232 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
18233 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
18234 Remove unused parameter `fildes'.
18235 * process.c (read_process_output, send_process): Don't pass it.
18236
84d358f0
JB
182372011-05-04 Juanma Barranquero <lekktu@gmail.com>
18238
18239 Fix previous change: the library cache is defined in w32.c.
18240 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
18241 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
18242
0898ca10
JB
182432011-05-04 Juanma Barranquero <lekktu@gmail.com>
18244
18245 Implement dynamic loading of GnuTLS on Windows.
18246
18247 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
18248 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
18249 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
18250 Declare.
18251
18252 * gnutls.c (Qgnutls_dll): Define.
18253 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
18254 (gnutls_*): Declare function pointers.
18255 (init_gnutls_functions): New function to initialize function pointers.
18256 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
18257 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
18258 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
18259 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
18260 (emacs_gnutls_write, emacs_gnutls_read)
18261 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
18262 (Fgnutls_available_p): New function.
18263 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
18264 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
18265 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
18266
18267 * image.c: Include w32.h.
18268 (Vimage_type_cache): Delete.
18269 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
18270 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
18271 (w32_delayed_load): Move to w32.c.
18272
18273 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
18274
18275 * w32.c (QCloaded_from, Vlibrary_cache): Define.
18276 (w32_delayed_load): Move from image.c. When loading a library, record
18277 its filename in the :loaded-from property of the library id.
18278 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
18279 Initialize and staticpro them.
18280 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
18281
18282 * process.c: Include lisp.h before w32.h, not after.
18283 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
18284 instead of gnutls_record_check_pending.
18285
18286 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
18287
ff4de4aa
TZ
182882011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
18289
18290 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
18291 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
18292 as passed in.
18293
abe95abb
JD
182942011-05-03 Jan Djärv <jan.h.d@swipnet.se>
18295
18296 * xterm.c (x_set_frame_alpha): Do not set property on anything
18297 else than FRAME_X_OUTER_WINDOW (Bug#8608).
18298
e16e55d4
JB
182992011-05-02 Juanma Barranquero <lekktu@gmail.com>
18300
18301 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
18302
bafcf6a5
JB
183032011-05-02 Juanma Barranquero <lekktu@gmail.com>
18304
18305 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
18306 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
18307 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
18308 (gnutls_global_initialized, Qgnutls_bootprop_priority)
18309 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
18310 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
18311 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
18312 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
18313 (Qgnutls_bootprop_callbacks_verify): Make static.
18314
e7a6747f
AS
183152011-05-01 Andreas Schwab <schwab@linux-m68k.org>
18316
19ed11ba
AS
18317 * callproc.c: Indentation fixup.
18318
e7a6747f 18319 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
18320 (wait_for_termination, interruptible_wait_for_termination):
18321 Move after wait_for_termination_1.
e7a6747f 18322
1ef14cb4
LMI
183232011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
18324
18325 * sysdep.c (interruptible_wait_for_termination): New function
18326 which is like wait_for_termination, but allows keyboard
18327 interruptions.
18328
18329 * callproc.c (Fcall_process): Add (:file "file") as an option for
18330 the STDOUT buffer.
18331 (Fcall_process_region): Ditto.
18332
330d880c
EZ
183332011-04-30 Eli Zaretskii <eliz@gnu.org>
18334
8db90b73
EZ
18335 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
18336 rather than `XVECTOR (FOO)->size'.
18337
330d880c
EZ
18338 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
18339 inttypes.h, as a gnulib replacement is used if it not available in
18340 system headers.
18341
15cbd324
EZ
183422011-04-21 Eli Zaretskii <eliz@gnu.org>
18343
18344 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
18345 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
18346 of MOST_POSITIVE_FIXNUM. (Bug#8528)
18347
18348 * coding.c (coding_alloc_by_realloc): Error out if destination
18349 will grow beyond MOST_POSITIVE_FIXNUM.
18350 (decode_coding_emacs_mule): Abort if there isn't enough place in
18351 charbuf for the composition carryover bytes. Reserve an extra
18352 space for up to 2 characters produced in a loop.
18353 (decode_coding_iso_2022): Abort if there isn't enough place in
18354 charbuf for the composition carryover bytes.
18355
183562011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 18357
ae940cca
EZ
18358 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
18359 aborting when %lld or %lll format is passed.
18360 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
18361 %llo or %llx format is passed. (Bug#8545)
18362
03ab8921
EZ
18363 * window.c (window_scroll_line_based): Use a marker instead of
18364 simple variables to record original value of point. (Bug#7952)
18365
afda1437
EZ
18366 * doprnt.c (doprnt): Fix the case where a multibyte sequence
18367 produced by %s or %c overflows available buffer space. (Bug#8545)
18368
f76dee0c
PE
183692011-04-28 Paul Eggert <eggert@cs.ucla.edu>
18370
18371 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 18372 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 18373
fdc5744d
JB
183742011-04-28 Juanma Barranquero <lekktu@gmail.com>
18375
18376 * w32.c (init_environment): Warn about defaulting HOME to C:\.
18377
638f053a
JB
183782011-04-28 Juanma Barranquero <lekktu@gmail.com>
18379
18380 * keyboard.c (Qdelayed_warnings_hook): Define.
18381 (command_loop_1): Run `delayed-warnings-hook'
18382 if Vdelayed_warnings_list is non-nil.
18383 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
18384 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
18385
d178f871
EZ
183862011-04-28 Eli Zaretskii <eliz@gnu.org>
18387
18388 * doprnt.c (doprnt): Don't return value smaller than the buffer
18389 size if the message was truncated. (Bug#8545).
18390
b124fd93
JB
183912011-04-28 Juanma Barranquero <lekktu@gmail.com>
18392
18393 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
18394 (Fx_window_property): #if-0 the whole functions, not just the bodies.
18395
e810457d
PE
183962011-04-27 Paul Eggert <eggert@cs.ucla.edu>
18397
18398 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
18399
ea51cceb
JB
184002011-04-27 Juanma Barranquero <lekktu@gmail.com>
18401
18402 * makefile.w32-in: Update dependencies.
18403
94dcfacf
EZ
184042011-04-27 Eli Zaretskii <eliz@gnu.org>
18405
18406 Improve `doprnt' and its usage. (Bug#8545)
18407 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
18408 `format_end'. Remove support for %l as a conversion specifier.
18409 Don't use xrealloc. Improve diagnostics when the %l size modifier
18410 is used. Update the commentary.
18411
18412 * eval.c (verror): Simplify calculation of size_t.
18413
18414 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
18415 messages.
18416
f61f41d7
PE
184172011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
18418
18419 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
18420 change.
18421
96fb4434
PE
184222011-04-27 Paul Eggert <eggert@cs.ucla.edu>
18423
18424 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
18425 This makes this file independent of the recent pseudovector change.
18426
671875da 184272011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 18428
69e9b5a3
PE
18429 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
18430
b5f869a7 18431 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 18432 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 18433 Remove unused local.
c8926152 18434 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 18435
841a1577 18436 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
18437 GCC 4.6.0 optimizes based on type-based alias analysis.
18438 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
18439 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
18440 != &v->size, and therefore "v->size = 1; b->size = 2; return
18441 v->size;" must therefore return 1. This assumption is incorrect
18442 for Emacs, since it type-puns struct Lisp_Vector * with many other
18443 types. To fix this problem, this patch adds a new type struct
f904488f 18444 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
18445 and pseudovectors, and helps optimizing compilers not get fooled
18446 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
18447 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
18448 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
18449 the size member.
eab3844f
PE
18450 (XSETPVECTYPE): Rewrite in terms of new macro.
18451 (XSETPVECTYPESIZE): New macro, specifying both type and size.
18452 This is a bit clearer, and further avoids the possibility of
18453 undesirable aliasing.
18454 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 18455 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
18456 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
18457 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
18458 (ASIZE): Now uses header.size rather than size.
18459 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
18460 to avoid the hassle of writing XVECTOR (foo)->header.size.
18461 (struct vectorlike_header): New type.
eab3844f
PE
18462 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
18463 object, to help avoid aliasing.
18464 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
18465 (SUBRP): Likewise, since Lisp_Subr is a special case.
18466 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
18467 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
18468 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 18469 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
18470 changed to be "header.size" and "header.next".
18471 * buffer.h (struct buffer): Likewise.
18472 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
18473 * frame.h (struct frame): Likewise.
18474 * process.h (struct Lisp_Process): Likewise.
18475 * termhooks.h (struct terminal): Likewise.
18476 * window.c (struct save_window_data, struct saved_window): Likewise.
18477 * window.h (struct window): Likewise.
18478 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
18479 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
18480 * buffer.c (init_buffer_once): Likewise.
18481 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
18482 special case.
18483 * process.c (Fformat_network_address): Use local var for size,
18484 for brevity.
18485
0df1eac5
PE
18486 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
18487
847ab9d1 18488 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
18489 * data.c (atof): Remove decl; no longer used or needed.
18490 (digit_to_number): Move to lread.c.
18491 (Fstring_to_number): Use new string_to_number function, to be
18492 consistent with how the Lisp reader treats infinities and NaNs.
18493 Do not assume that floating-point numbers represent EMACS_INT
18494 without losing information; this is not true on most 64-bit hosts.
18495 Avoid double-rounding errors, by insisting on integers when
18496 parsing non-base-10 numbers, as the documentation specifies.
18497 * lisp.h (string_to_number): New decl, replacing ...
18498 (isfloat_string): Remove.
bc0a5c13 18499 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 18500 (read1): Do not accept +. and -. as integers; this
452f4150
PE
18501 appears to have been a coding error. Similarly, do not accept
18502 strings like +-1e0 as floating point numbers. Do not report
18503 overflow for integer overflows unless the base is not 10 which
18504 means we have no simple and reliable way to continue.
18505 Break out the floating-point parsing into a new
18506 function string_to_number, so that Fstring_to_number parses
18507 floating point numbers consistently with the Lisp reader.
04f2d78b 18508 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
18509 (E_CHAR, EXP_INT): Remove, replacing with ...
18510 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
18511 (string_to_number): New function, replacing isfloat_string.
18512 This function checks for valid syntax and produces the resulting
18513 Lisp float number too. Rework it so that string-to-number
bc0a5c13 18514 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
18515 so that overflow for non-base-10 numbers is reported only when
18516 there's no portable and simple way to convert to floating point.
452f4150 18517
67769ffc
PE
18518 * textprop.c (set_text_properties_1): Rewrite for clarity,
18519 and to avoid GCC warning about integer overflow.
18520
c20db43f
PE
18521 * intervals.h (struct interval): Use EMACS_INT for members
18522 where EMACS_UINT might cause problems. See
18523 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
18524 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
18525 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
18526 All uses changed.
37aa2f85
PE
18527 (offset_intervals): Tell GCC not to worry about length overflow
18528 when negating a negative length.
c20db43f 18529
2538aa2f
PE
18530 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
18531 (overrun_check_free): Likewise.
18532
f2d3008d
PE
18533 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
18534 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
18535 word size.
18536
ec8df744
PE
18537 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
18538 (gnutls_make_error): Rename local to avoid shadowing.
18539 (gnutls_emacs_global_deinit): ifdef out; not used.
18540 (Fgnutls_boot): Use const for pointer to readonly storage.
18541 Comment out unused local. Fix pointer signedness problems.
18542
640ee02d
PE
18543 * lread.c (openp): Don't stuff size_t into an 'int'.
18544 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
18545 about possible signed overflow.
18546
6048fb2a
PE
18547 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
18548 (GDK_KEY_g): Don't define if already defined.
18549 (xg_prepare_tooltip): Avoid pointer signedness problem.
18550 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
18551
fa3c87e1
PE
18552 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
18553 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
18554
2172544b
PE
18555 * xfns.c (Fx_window_property): Simplify a bit,
18556 to make a bit faster and to avoid GCC 4.6.0 warning.
18557 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
18558
9b821a21
PE
18559 * fns.c (internal_equal): Don't assume size_t fits in int.
18560
3c616cfa
PE
18561 * alloc.c (compact_small_strings): Tighten assertion a little.
18562
c2982e87
PE
18563 Replace pEd with more-general pI, and fix some printf arg casts.
18564 * lisp.h (pI): New macro, generalizing old pEd macro to other
18565 conversion specifiers. For example, use "...%"pI"d..." rather
18566 than "...%"pEd"...".
18567 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 18568 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
18569 * alloc.c (check_pure_size): Don't overflow by converting size to int.
18570 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
18571 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
18572 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
18573 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
18574 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
18575 64-bit hosts.
18576 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
18577 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
18578 * print.c (safe_debug_print, print_object): Likewise.
18579 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
18580 to int.
6f04d126
PE
18581 Use pI instead of if-then-else-abort. Use %p to avoid casts,
18582 avoiding the 0 flag, which is not portable.
c2982e87
PE
18583 * process.c (Fmake_network_process): Use pI to avoid cast.
18584 * region-cache.c (pp_cache): Likewise.
18585 * xdisp.c (decode_mode_spec): Likewise.
18586 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
18587 behavior on 64-bit hosts with printf arg.
6f04d126 18588 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
18589 (x_stop_queuing_selection_requests): Likewise.
18590 (x_get_window_property): Don't truncate byte count to an 'int'
18591 when tracing.
0b432f21 18592
5e073ec7
PE
18593 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
18594 here, since it parses constructs like leading '-' and spaces,
18595 which are not wanted; and it overflows with large numbers.
18596 Instead, simply match F[0-9]+, which is what is wanted anyway.
18597
36372bf9
PE
18598 * alloc.c: Remove unportable assumptions about struct layout.
18599 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
18600 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
18601 (allocate_vectorlike, make_pure_vector): Use the new macros,
18602 plus offsetof, to remove unportable assumptions about struct layout.
18603 These assumptions hold on all porting targets that I know of, but
18604 they are not guaranteed, they're easy to remove, and removing them
18605 makes further changes easier.
18606
0b432f21
PE
18607 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
18608 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
18609 (string_overrun_cookie): Now const. Use initializers that
18610 don't formally overflow signed char, to avoid warnings.
000098c1
PE
18611 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
18612 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
18613 (allocate_buffer): Don't assume sizeof (struct buffer) is a
18614 multiple of sizeof (EMACS_INT); it need not be, if
18615 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 18616 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 18617
895009e1
JB
186182011-04-26 Juanma Barranquero <lekktu@gmail.com>
18619
18620 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
18621
6a7a1b0b
TZ
186222011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
18623
18624 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 18625 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
18626 Reported by Paul Eggert <eggert@cs.ucla.edu>.
18627
841a1577 186282011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
18629
18630 * lisp.h (Qdebug): List symbol.
895009e1 18631 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
18632 * keyboard.c (debug-on-event): New variable.
18633 (handle_user_signal): Break into debugger when debug-on-event
18634 matches the current signal symbol.
18635
f2d3ba6f
DN
186362011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
18637
18638 * alloc.c (check_sblock, check_string_bytes)
18639 (check_string_free_list): Convert to standard C.
18640
42ce4c63
TZ
186412011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
18642
18643 * w32.c (emacs_gnutls_push): Fix typo.
18644
825cd63c
EZ
186452011-04-25 Eli Zaretskii <eliz@gnu.org>
18646
fb11d64d
EZ
18647 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
18648 "cast to pointer from integer of different size".
18649
825cd63c
EZ
18650 Improve doprnt and its use in verror. (Bug#8545)
18651 * doprnt.c (doprnt): Document the set of format control sequences
18652 supported by the function. Use SAFE_ALLOCA instead of always
18653 using `alloca'.
18654
18655 * eval.c (verror): Don't limit the buffer size at size_max-1, that
18656 is one byte too soon. Don't use xrealloc; instead xfree and
18657 xmalloc anew.
18658
e061a11b
TZ
186592011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
18660
18661 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
18662 callbacks stage.
18663
18664 * gnutls.c: Renamed global_initialized to
18665 gnutls_global_initialized. Added internals for the
18666 :verify-hostname-error, :verify-error, and :verify-flags
18667 parameters of `gnutls-boot' and documented those parameters in the
18668 docstring. Start callback support.
9173deec
JB
18669 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
18670 unless a fatal error occurred. Call gnutls_alert_send_appropriate
18671 on error. Return error code.
e061a11b
TZ
18672 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
18673 (emacs_gnutls_read): Likewise.
18674 (Fgnutls_boot): Return handshake error code.
18675 (emacs_gnutls_handle_error): New function.
18676 (wsaerror_to_errno): Likewise.
18677
18678 * w32.h (emacs_gnutls_pull): Add prototype.
18679 (emacs_gnutls_push): Likewise.
18680
18681 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
18682 (emacs_gnutls_push): Likewise.
18683
186842011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
18685
18686 * process.c (wait_reading_process_output): Check if GnuTLS
18687 buffered some data internally if no FDs are set for TLS
18688 connections.
18689
18690 * makefile.w32-in (OBJ2): Add gnutls.$(O).
18691 (LIBS): Link to USER_LIBS.
18692 ($(BLD)/gnutls.$(0)): New target.
18693
fa6996bc
EZ
186942011-04-24 Eli Zaretskii <eliz@gnu.org>
18695
eb35682e
EZ
18696 * xdisp.c (handle_single_display_spec): Rename the
18697 display_replaced_before_p argument into display_replaced_p, to
18698 make it consistent with the commentary. Fix typos in the
18699 commentary.
18700
e2ad650c
EZ
18701 * textprop.c (syms_of_textprop): Remove dead code.
18702 (copy_text_properties): Delete obsolete commentary about an
18703 interface that was deleted long ago. Fix typos in the description
18704 of arguments.
18705
1b2de274
EZ
18706 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
18707 to changes in oldXMenu/XMenu.h from 2011-04-16.
18708 <menu_help_message, prev_menu_help_message>: Constify.
18709 (IT_menu_make_room): menu->help_text is now `const char **';
18710 adjust.
18711
18712 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
18713 to changes in oldXMenu/XMenu.h from 2011-04-16.
18714 (struct XMenu): Declare `help_text' `const char **'.
18715
18716 * xfaces.c <Qunspecified>: Make extern again.
18717
18718 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 18719 required by POSIX.
1b2de274 18720
762b15be
EZ
18721 * doc.c (get_doc_string): Improve the format passed to `error'.
18722
18723 * doprnt.c (doprnt): Improve commentary.
18724
18725 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
18726
18727 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
18728 them with etags.
18729
f1052e5d
EZ
18730 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
18731 changes in globals.h immediately force recompilation.
762b15be
EZ
18732 (TAGS): Depend on $(CURDIR)/m/intel386.h and
18733 $(CURDIR)/s/ms-w32.h.
18734 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 18735
fa6996bc
EZ
18736 * character.c (Fchar_direction): Function deleted.
18737 (syms_of_character): Don't defsubr it.
18738 <char-direction-table>: Deleted.
18739
e6c3da20
EZ
187402011-04-23 Eli Zaretskii <eliz@gnu.org>
18741
18742 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
18743 * doprnt.c: Include limits.h.
18744 (SIZE_MAX): New macro.
04f2d78b
CB
18745 (doprnt): Return a size_t value. 2nd arg is now size_t.
18746 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
18747 Improve overflow protection. Support `l' modifier for integer
18748 conversions. Support %l conversion. Don't assume an EMACS_INT
18749 argument for integer conversions and for %c.
18750
18751 * lisp.h (doprnt): Restore prototype.
18752
18753 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
18754 $(SRC)/character.h.
18755
18756 * Makefile.in (base_obj): Add back doprnt.o.
18757
18758 * deps.mk (doprnt.o): Add back prerequisites.
18759 (callint.o): Depend on character.h.
18760
18761 * eval.c (internal_lisp_condition_case): Include the handler
18762 representation in the error message.
18763 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
18764 when breaking from the loop.
18765
18766 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
18767
18768 * callint.c (Fcall_interactively): When displaying error message
18769 about invalid control letter, pass the character's codepoint, not
18770 a pointer to its multibyte form. Improve display of the character
18771 in octal and display also its hex code.
18772
18773 * character.c (char_string): Use %x to display the (unsigned)
18774 codepoint of an invalid character, to avoid displaying a bogus
18775 negative value.
18776
18777 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
18778 `error', not SYMBOL_NAME itself.
18779
18780 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
18781 character arguments to `error'.
18782
18783 * charset.c (check_iso_charset_parameter): Fix incorrect argument
18784 to `error' in error message about FINAL_CHAR argument. Make sure
18785 FINAL_CHAR is a character, and use %c when it is passed as
18786 argument to `error'.
18787
4ffd0d6b 187882011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
18789
18790 * s/ms-w32.h (localtime): Redirect to sys_localtime.
18791
18792 * w32.c: Include <time.h>.
18793 (sys_localtime): New function.
18794
4ffd0d6b 187952011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
18796
18797 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
18798
4ffd0d6b 18799 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 18800
4ffd0d6b 188012011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 18802
4ffd0d6b
GM
18803 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
18804 zombies (Bug#8467).
aac0c6e3 18805
04c56954
EZ
188062011-04-19 Eli Zaretskii <eliz@gnu.org>
18807
18808 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
18809 gl_state.e_property when gl_state.object is Qt.
18810
18811 * insdel.c (make_gap_larger): Remove limitation of buffer size
18812 to <= INT_MAX.
18813
16a43933
CY
188142011-04-18 Chong Yidong <cyd@stupidchicken.com>
18815
18816 * xdisp.c (lookup_glyphless_char_display)
18817 (produce_glyphless_glyph): Handle cons cell entry in
18818 glyphless-char-display.
18819 (Vglyphless_char_display): Document it.
18820
18821 * term.c (produce_glyphless_glyph): Handle cons cell entry in
18822 glyphless-char-display.
18823
4581706e
CY
188242011-04-17 Chong Yidong <cyd@stupidchicken.com>
18825
18826 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
18827
18828 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
18829
18830 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
18831 definition for no-X builds.
18832
4887c6e2 188332011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 18834
fd35b6f9
PE
18835 Static checks with GCC 4.6.0 and non-default toolkits.
18836
5c1ccb01
PE
18837 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
18838
006c5daa
PE
18839 * process.c (keyboard_bit_set): Define only if SIGIO.
18840 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
18841 (send_process): Repair possible setjmp clobbering.
18842
efc736d3
PE
18843 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
18844
4e2fe2e6
PE
18845 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
18846
f97334a2
PE
18847 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
18848
4e75f29d
PE
18849 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
18850 Define only if needed.
18851
90efadd1
PE
18852 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
18853 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 18854 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 18855
3c647824
PE
18856 * dispextern.h (struct redisplay_interface): Rename param
18857 to avoid shadowing.
e264f262 18858 * termhooks.h (struct terminal): Likewise.
761383f4 18859 * xterm.c (xembed_send_message): Likewise.
3c647824 18860
b58c5c4a
PE
18861 * insdel.c (make_gap_smaller): Define only if
18862 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
18863
cad59032
PE
18864 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
18865 it.
18866
c339dc2e
PE
18867 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
18868 so that we aren't warned about unused symbols.
18869
91a3e27b
PE
18870 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
18871
399c71d3 18872 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 18873
8ffc96f5
PE
18874 * xfns.c (x_real_positions): Mark locals as initialized.
18875
eef9bc79
PE
18876 * xmenu.c (xmenu_show): Don't use uninitialized vars.
18877
098db9dd
PE
18878 * xterm.c: Fix problems found by static analysis with other toolkits.
18879 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
18880 (x_dispatch_event): Declare static if USE_GTK, and
18881 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 18882 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 18883 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
18884 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
18885 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 18886
eb18f6cc
PE
18887 * xmenu.c (menu_help_callback): Pointer type fixes.
18888 Use const pointers when pointing at readonly data. Avoid pointer
18889 signedness clashes.
18890 (FALSE): Remove unused macro.
18891 (update_frame_menubar): Remove unused decl.
18892
1fe72bf8
PE
18893 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
18894
60d9e1db
PE
18895 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
18896 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
18897 (single_menu_item): Rename local to avoid shadowing.
18898
39261c26
PE
18899 * keyboard.c (make_lispy_event): Remove unused local var.
18900
018c5e19
PE
18901 * frame.c, frame.h (x_get_resource_string): Bring this back, but
18902 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
18903
63d2b86e
PE
18904 * bitmaps: Change bitmaps from unsigned char back to the X11
18905 compatible char. Avoid the old compiler warnings about
18906 out-of-range initializers by using, for example, '\xab' rather
18907 than 0xab.
18908
aefd87e1
PE
18909 * xgselect.c (xgselect_initialize): Check vs interface
18910 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
18911
bf501fb9
PE
18912 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
18913
e9829fdf
PE
18914 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
18915 to read-only memory.
18916
1086c095
PE
18917 * fns.c (vector): Remove; this old hack is no longer needed.
18918
2baccd04 18919 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 18920 Remove unused var.
dde42981 18921 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 18922
72391843 18923 * xrdb.c (x_load_resources): Omit unused local.
3565b346 18924
436c16df 18925 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 18926 (x_window): Rename locals to avoid shadowing.
dc5ddd85 18927 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 18928
92bb796d 18929 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 18930 (x_term_init): Remove local to avoid shadowing.
92bb796d 18931
764430a3 18932 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
18933
18934 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
18935 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
18936
d1dfb56c
EZ
189372011-04-16 Eli Zaretskii <eliz@gnu.org>
18938
c4354cb4
EZ
18939 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
18940
d1dfb56c
EZ
18941 Fix regex.c, syntax.c and friends for buffers > 2GB.
18942 * syntax.h (struct gl_state_s): Declare character position members
18943 EMACS_INT.
18944
18945 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
18946
04f2d78b
CB
18947 * textprop.c (verify_interval_modification, interval_of):
18948 Declare arguments EMACS_INT.
d1dfb56c
EZ
18949
18950 * intervals.c (adjust_intervals_for_insertion): Declare arguments
18951 EMACS_INT.
18952
18953 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
18954
18955 * indent.c (Fvertical_motion): Local variable it_start is now
18956 EMACS_INT.
18957
18958 * regex.c (re_match, re_match_2, re_match_2_internal)
18959 (bcmp_translate, regcomp, regexec, print_double_string)
18960 (group_in_compile_stack, re_search, re_search_2, regex_compile)
18961 (re_compile_pattern, re_exec): Declare arguments and local
18962 variables `size_t' and `ssize_t' and return values `regoff_t', as
18963 appropriate.
18964 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
18965 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
18966 <compile_stack_type>: `size' and `avail' are now `size_t'.
18967
18968 * regex.h <regoff_t>: Use ssize_t, not int.
18969 (re_search, re_search_2, re_match, re_match_2): Arguments that
18970 specify buffer/string position and length are now ssize_t and
18971 size_t. Return type is regoff_t.
18972
613052cd
BK
189732011-04-16 Ben Key <bkey76@gmail.com>
18974
18975 * nsfont.m: Fixed bugs in ns_get_family and
18976 ns_descriptor_to_entity that were caused by using free to
18977 deallocate memory blocks that were allocated by xmalloc (via
18978 xstrdup). This caused Emacs to crash when compiled with
18979 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
18980 --enable-checking=xmallocoverrun). xfree is now used to
18981 deallocate these memory blocks.
18982
4170f62f 189832011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 18984
71b41406
PE
18985 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
18986
9587a89d
PE
18987 emacs_write: Accept and return EMACS_INT for sizes.
18988 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
18989 et seq.
18990 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
18991 Accept and return EMACS_INT.
18992 (emacs_gnutls_write): Return the number of bytes written on
18993 partial writes.
18994 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
18995 (emacs_read, emacs_write): Remove check for negative size, as the
18996 Emacs source code has been audited now.
9587a89d
PE
18997 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
18998 (emacs_read, emacs_write): Use it.
273a5f82
PE
18999 * process.c (send_process): Adjust to the new signatures of
19000 emacs_write and emacs_gnutls_write. Do not attempt to store
19001 a byte offset into an 'int'; it might overflow.
9587a89d 19002 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 19003
3e047f51
PE
19004 * sound.c: Don't assume sizes fit in 'int'.
19005 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 19006 Return EMACS_INT, not int.
3e047f51 19007 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
19008 Accept EMACS_INT, not int.
19009 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
19010 record read return values.
19011
cc39a9db
BK
190122011-04-15 Ben Key <bkey76@gmail.com>
19013
c9d0ec6d
JB
19014 * keyboard.c (Qundefined): Don't declare static since it is used
19015 in nsfns.m.
19016 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
19017 static since they are used in nsfont.m.
cc39a9db 19018
6c60eb9f
SM
190192011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
19020
19021 * process.c (Qprocessp): Don't declare static.
19022 * lisp.h (Qprocessp): Declare again.
19023
7990b61a
JB
190242011-04-15 Juanma Barranquero <lekktu@gmail.com>
19025
19026 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
19027
5d4cb038
PE
190282011-04-14 Paul Eggert <eggert@cs.ucla.edu>
19029
8bd7b830 19030 Improve C-level modularity by making more things 'static'.
cd64ea1d 19031
e3b27b31
PE
19032 Don't publish debugger-only interfaces to other modules.
19033 * lisp.h (safe_debug_print, debug_output_compilation_hack):
19034 (verify_bytepos, count_markers): Move decls to the only modules
19035 that need them.
19036 * region-cache.h (pp_cache): Likewise.
19037 * window.h (check_all_windows): Likewise.
19038 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
19039
5d4cb038
PE
19040 * sysdep.c (croak): Now static, if
19041 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
19042 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
19043
19044 * alloc.c (refill_memory_reserve): Now static if
19045 !defined REL_ALLOC || defined SYSTEM_MALLOC.
19046 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 19047
e87b6180
PE
19048 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
19049 Define only if USE_LUCID.
19050
ac64929e
PE
19051 * xrdb.c (x_customization_string, x_rm_string): Now static.
19052
6f37259d
PE
19053 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
19054 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
19055
1683e3ab
PE
19056 * xdisp.c (draw_row_with_mouse_face): Now static.
19057 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
19058
de9c2632
PE
19059 * window.h (check_all_windows): Mark externally visible.
19060
2b96acb7
PE
19061 * window.c (window_deletion_count): Now static.
19062
19063 * undo.c: Make symbols static if they're not exported.
19064 (last_undo_buffer, last_boundary_position, pending_boundary):
19065 Now static.
19066
50436f33
PE
19067 * textprop.c (interval_insert_behind_hooks): Now static.
19068 (interval_insert_in_front_hooks): Likewise.
19069
64520e5c
PE
19070 * term.c: Make symbols static if they're not exported.
19071 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
19072 (max_frame_lines, tty_set_terminal_modes):
19073 (tty_reset_terminal_modes, tty_turn_off_highlight):
19074 (get_tty_terminal): Now static.
19075 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
19076 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 19077 HAVE_WINDOW_SYSTEM.
64520e5c
PE
19078 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
19079 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
19080
1fa53021
PE
19081 * sysdep.c: Make symbols static if they're not exported.
19082 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
19083 Now static.
19084 (sigprocmask_set, full_mask): Remove; unused.
19085 (wait_debugging): Mark as visible.
19086 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
19087 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
19088
d4b43b22
PE
19089 * syntax.c (syntax_temp): Define only if !__GNUC__.
19090
b7c513d0
PE
19091 * sound.c (current_sound_device, current_sound): Now static.
19092
989b29ad
PE
19093 * search.c (searchbufs, searchbuf_head): Now static.
19094
13a55a78
PE
19095 * scroll.c (scroll_cost): Remove; unused.
19096 * dispextern.h (scroll_cost): Remove decl.
19097
de68a1fc
PE
19098 * region-cache.h (pp_cache): Mark as externally visible.
19099
40ccffa6
PE
19100 * process.c: Make symbols static if they're not exported.
19101 (process_tick, update_tick, create_process, chan_process):
19102 (Vprocess_alist, proc_buffered_char, datagram_access):
19103 (fd_callback_data, send_process_frame, process_sent_to): Now static.
19104 (deactivate_process): Mark defn as static, as well as decl.
19105 * lisp.h (create_process): Remove decl.
19106 * process.h (chan_process, Vprocess_alist): Remove decls.
19107
ad64fc97
PE
19108 * print.c: Make symbols static if they're not exported.
19109 (print_depth, new_backquote_output, being_printed, print_buffer):
19110 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
19111 (print_interval, print_number_index, initial_stderr_stream):
19112 Now static.
19113 * lisp.h (Fprinc): Remove decl.
19114 (debug_output_compilation_hack): Mark as externally visible.
19115
adddb265
PE
19116 * sysdep.c (croak): Move decl from here to syssignal.h.
19117 * syssignal.h (croak): Put it here, so the API can be checked when
19118 'croak' is called from dissociate_if_controlling_tty.
19119
1717ede2
PE
19120 * minibuf.c: Make symbols static if they're not exported.
19121 (minibuf_save_list, choose_minibuf_frame): Now static.
19122 * lisp.h (choose_minibuf_frame): Remove decl.
19123
fa5fb2bc
PE
19124 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
19125
1e3890d1
PE
19126 * lread.c: Make symbols static if they're not exported.
19127 (read_objects, initial_obarray, oblookup_last_bucket_number):
19128 Now static.
19129 (make_symbol): Remove; unused.
19130 * lisp.h (initial_obarray, make_symbol): Remove decls.
19131
8a1414fa
PE
19132 * keyboard.c: Make symbols static if they're not exported.
19133 (single_kboard, recent_keys_index, total_keys, recent_keys):
19134 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
19135 (this_single_command_key_start, echoing, last_auto_save):
19136 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
19137 (command_loop, echo_now, keyboard_init_hook, help_char_p):
19138 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
19139 (Vlispy_mouse_stem, double_click_count):
19140 Now static.
19141 (force_auto_save_soon): Define only if SIGDANGER.
19142 (ignore_mouse_drag_p): Now static if
19143 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
19144 (print_help): Remove; unused.
19145 (stop_character, last_timer_event): Mark as externally visible.
19146 * keyboard.h (ignore_mouse_drag_p): Declare only if
19147 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
19148 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
19149 * lisp.h (echoing): Remove decl.
19150 (force_auto_save_soon): Declare only if SIGDANGER.
19151 * xdisp.c (redisplay_window): Simplify code, to make it more
19152 obvious that ignore_mouse_drag_p is not accessed if !defined
19153 USE_GTK && !defined HAVE_NS.
19154
93ea6e8f
PE
19155 * intervals.c: Make symbols static if they're not exported.
19156 (merge_properties_sticky, merge_interval_right, delete_interval):
19157 Now static.
19158 * intervals.h (merge_interval_right, delete_interval): Remove decls.
19159
77382fcc
PE
19160 * insdel.c: Make symbols static if they're not exported.
19161 However, leave prepare_to_modify_buffer alone. It's never
19162 called from outside this function, but that appears to be a bug.
19163 (combine_after_change_list, combine_after_change_buffer):
4889fc82 19164 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
19165 (adjust_after_replace_noundo): Remove; unused.
19166 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 19167 (signal_before_change): Remove decls.
77382fcc 19168
9306c32e
PE
19169 * indent.c (val_compute_motion, val_vmotion): Now static.
19170
cd44d2eb
PE
19171 * image.c: Make symbols static if they're not exported.
19172 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
19173 if USE_GTK.
19174 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
19175 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
19176
ad9a7a06
PE
19177 * fringe.c (standard_bitmaps): Now static.
19178 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
19179
81626931
PE
19180 * frame.c: Make symbols static if they're not exported.
19181 (x_report_frame_params, make_terminal_frame): Now static.
19182 (get_frame_param): Now static, unless HAVE_NS.
19183 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
19184 (x_get_resource_string): Remove; not used.
19185 * frame.h (make_terminal_frame, x_report_frame_params):
19186 (x_get_resource_string); Remove decls.
19187 (x_fullscreen_adjust): Declare only if WINDOWSNT.
19188 * lisp.h (get_frame_param): Declare only if HAVE_NS.
19189
239f9db9
PE
19190 * font.c, fontset.c: Make symbols static if they're not exported.
19191 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
19192 (FACE_SUITABLE_FOR_CHAR_P): Use it.
19193 * font.c (font_close_object): Now static.
19194 * font.h (font_close_object): Remove.
19195 * fontset.c (FONTSET_OBJLIST): Remove.
19196 (free_realized_fontset) #if-0 the body, which does nothing.
19197 (face_suitable_for_char_p): #if-0, as it's never called.
19198 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
19199 * xfaces.c (face_at_string_position):
19200 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
19201 since 0 is always ASCII.
19202
dfcf3579
PE
19203 * fns.c (weak_hash_tables): Now static.
19204
5045092b
PE
19205 * fileio.c: Make symbols static if they're not exported.
19206 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
19207 (Vwrite_region_annotation_buffers): Now static.
19208
57a96f5c
PE
19209 * eval.c: Make symbols static if they're not exported.
19210 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
19211 * lisp.h (backtrace_list): Remove decl.
19212
35f08c38
PE
19213 * emacs.c: Make symbols static if they're not exported.
19214 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
19215 (fatal_error_code, fatal_error_signal_hook, standard_args):
19216 Now static.
19217 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
19218 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
19219 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
19220 * lisp.h (fatal_error_signal_hook): Remove decl.
19221 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
19222
f44bd759
PE
19223 * editfns.c: Move a (normally-unused) function to its only use.
19224 * editfns.c, lisp.h (get_operating_system_release): Remove.
19225 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
19226 worth the hassle of breaking this out.
19227
b532497d
PE
19228 * xterm.c: Make symbols static if they're not exported.
19229 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
19230 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
19231 (x_destroy_window, x_delete_display):
19232 Now static.
19233 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
19234 (x_mouse_leave): Remove; unused.
19235 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
19236 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
19237 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
19238 Remove decls.
19239 (x_mouse_leave): Declare only if WINDOWSNT.
19240 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
19241 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
19242 USE_X_TOOLKIT.
19243
1675728f
PE
19244 * ftxfont.c: Make symbols static if they're not exported.
19245 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
19246 HAVE_FREETYPE.
19247 * font.h (ftxfont_driver): Likewise.
19248
e4cebfca
PE
19249 * xfns.c: Make symbols static if they're not exported.
19250 (x_last_font_name, x_display_info_for_name):
19251 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
19252 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
19253 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
19254 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
19255 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
19256 (last_show_tip_args): Now static.
19257 (xic_defaut_fontset, xic_create_fontsetname): Define only if
19258 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
19259 (x_screen_planes): Remove; unused.
19260 * dispextern.h (x_screen_planes): Remove decl.
19261
5bf46f05
PE
19262 * dispnew.c: Make symbols static if they're not exported.
19263 * dispextern.h (redraw_garbaged_frames, scrolling):
19264 (increment_row_positions): Remove.
19265 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
19266 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
19267 Now static.
19268 (redraw_garbaged_frames): Remove; unused.
19269
435f4c28
PE
19270 * xfaces.c: Make symbols static if they're not exported.
19271 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
19272 Remove decls.
19273 * xterm.h (defined_color): Remove decls.
19274 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
19275 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
19276 (menu_face_changed_default, defined_color, free_realized_face):
19277 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
19278 (ascii_face_of_lisp_face): Remove; unused.
19279
8524aef3
PE
19280 * xdisp.c: Make symbols static if they're not exported.
19281 * dispextern.h (scratch_glyph_row, window_box_edges):
19282 (glyph_to_pixel_coords, set_cursor_from_row):
19283 (get_next_display_element, set_iterator_to_next):
19284 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
19285 (show_mouse_face): Remove decls
19286 * frame.h (message_buf_print): Likewise.
19287 * lisp.h (pop_message, set_message, check_point_in_composition):
19288 Likewise.
19289 * xterm.h (set_vertical_scroll_bar): Likewise.
19290 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
19291 (message_buf_print, scratch_glyph_row, displayed_buffer):
19292 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
19293 (get_next_display_element, show_mouse_face, window_box_edges):
19294 (frame_to_window_pixel_xy, check_point_in_composition):
19295 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
19296 (glyph_to_pixel_coords): Remove; unused.
19297
16390cd2
PE
19298 * dired.c (file_name_completion): Now static.
19299
19300 * dbusbind.c (xd_in_read_queued_messages): Now static.
19301
a25f4dfa
PE
19302 * lisp.h (circular_list_error, FOREACH): Remove; unused.
19303 * data.c (circular_list_error): Remove.
19304
14a9c8df
PE
19305 * commands.h (last_point_position, last_point_position_buffer):
19306 (last_point_position_window): Remove decls.
19307 * keyboard.c: Make these variables static.
19308
04f2d78b
CB
19309 * coding.h (coding, code_convert_region, encode_coding_gap):
19310 Remove decls.
74ab6df5
PE
19311 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
19312 (iso_code_class, detect_coding, code_convert_region): Now static.
19313 (encode_coding_gap): Remove; unused.
19314
38dfbee1
PE
19315 * chartab.c (chartab_chars, chartab_bits): Now static.
19316
a2cb4e63
PE
19317 * charset.h (charset_iso_8859_1): Remove decl.
19318 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
19319 Now static.
19320
127198fd
PE
19321 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
19322 * ccl.c (Vccl_program_table): Now static.
19323 (check_ccl_update): Remove; unused.
19324
d85b608f
PE
19325 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
19326 * category.h: ... from here.
19327 * category.c (check_category_table, set_category_set): Now static.
19328
31cd66f3
PE
19329 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
19330 * lisp.h: Remove these decls.
19331
c358e587
PE
19332 * buffer.c (buffer_count): Remove unused var.
19333
e78aecca
PE
19334 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
19335 so that it's not optimized away.
19336 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
19337 * dispextern.h (bidi_dump_cached_states): Remove, since it's
19338 exported only to the debugger.
19339
e192d7d3 19340 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 19341 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 19342
92470028
PE
19343 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
19344 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
19345 was inaccessible from Lisp.
19346 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
19347 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
19348
244ed907
PE
19349 alloc.c: Import and export fewer symbols, and remove unused items.
19350 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
19351 is defined.
19352 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
19353 it's not optimized away by whole-program optimization.
19354 (message_enable_multibyte, free_misc): Remove.
19355 (catchlist, handlerlist, mark_backtrace):
19356 Declare only if BYTE_MARK_STACK.
19357 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
19358 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
19359 (message_enable_multibyte): Remove decl.
19360 (free_misc, interval_free_list, float_block, float_block_index):
19361 (n_float_blocks, float_free_list, cons_block, cons_block_index):
19362 (cons_free_list, last_marked_index):
19363 Now static.
19364 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
19365 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
19366 (mark_backtrace): Define only if BYTE_MARK_STACK.
19367 * xdisp.c (message_enable_multibyte): Now static.
19368
61c2b50e 19369 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
19370 This makes it easier for human readers (and static analyzers)
19371 to see whether these variables are used from other modules.
19372 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
19373 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
19374 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
19375 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
19376 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
19377 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
19378 * xmenu.c, xselect.c:
19379 Declare Q* vars static if they are not used in other modules.
19380 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
19381 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
19382 Remove decls of unexported vars.
19383 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
19384
95c82688
PE
19385 * lisp.h (DEFINE_FUNC): Make sname 'static'.
19386
16a97296
PE
19387 Make Emacs functions such as Fatom 'static' by default.
19388 This makes it easier for human readers (and static analyzers)
19389 to see whether these functions can be called from other modules.
19390 DEFUN now defines a static function. To make the function external
19391 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
19392 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
19393 (Finit_image_library):
16a97296
PE
19394 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
19395 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
19396 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
19397 Remove decls, since these functions are now static.
19398 (Funintern, Fget_internal_run_time): New decls, since these functions
19399 were already external.
95c82688 19400
16a97296
PE
19401 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
19402 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
19403 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
19404 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
19405 * keyboard.c, keymap.c, lread.c:
19406 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
19407 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
19408 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
19409 Mark functions with DEFUE instead of DEFUN,
19410 if they are used in other modules.
19411 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
19412 decls for now-static functions.
19413 * buffer.h (Fdelete_overlay): Remove decl.
19414 * callproc.c (Fgetenv_internal): Mark as internal.
19415 * composite.c (Fremove_list_of_text_properties): Remove decl.
19416 (Fcomposition_get_gstring): New forward static decl.
19417 * composite.h (Fcomposite_get_gstring): Remove decl.
19418 * dired.c (Ffile_attributes): New forward static decl.
19419 * doc.c (Fdocumntation_property): New forward static decl.
19420 * eval.c (Ffetch_bytecode): New forward static decl.
19421 (Funintern): Remove extern decl; now in .h file where it belongs.
19422 * fileio.c (Fmake_symbolic_link): New forward static decl.
19423 * image.c (Finit_image_library): New forward static decl.
19424 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
19425 * intervals.h (Fprevious_property_change):
19426 (Fremove_list_of_text_properties): Remove decls.
19427 * keyboard.c (Fthis_command_keys): Remove decl.
19428 (Fcommand_execute): New forward static decl.
19429 * keymap.c (Flookup_key): New forward static decl.
19430 (Fcopy_keymap): Now static.
19431 * keymap.h (Flookup_key): Remove decl.
19432 * process.c (Fget_process): New forward static decl.
19433 (Fprocess_datagram_address): Mark as internal.
19434 * syntax.c (Fsyntax_table_p): New forward static decl.
19435 (skip_chars): Remove duplicate decl.
19436 * textprop.c (Fprevious_property_change): New forward static decl.
19437 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
19438 Now internal.
19439 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
19440 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
19441
785bbd42
PE
19442 * editfns.c (Fformat): Remove unreachable code.
19443
8b913b57
AS
194442011-04-14 Andreas Schwab <schwab@linux-m68k.org>
19445
19446 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
19447 change. (Bug#8496)
19448
a6744a35
EZ
194492011-04-13 Eli Zaretskii <eliz@gnu.org>
19450
19451 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
19452 when at ZV. (Bug#8487)
19453
e7974947
AS
194542011-04-12 Andreas Schwab <schwab@linux-m68k.org>
19455
baad03f0
AS
19456 * charset.c (Fclear_charset_maps): Use xfree instead of free.
19457 (Bug#8437)
19458 * keyboard.c (parse_tool_bar_item): Likewise.
19459 * sound.c (sound_cleanup, alsa_close): Likewise.
19460 * termcap.c (tgetent): Likewise.
19461 * xfns.c (x_default_font_parameter): Likewise.
19462 * xsettings.c (read_and_apply_settings): Likewise.
19463
e7974947
AS
19464 * alloc.c (overrun_check_malloc, overrun_check_realloc)
19465 (overrun_check_free): Protoize.
19466
28272684
PE
194672011-04-12 Paul Eggert <eggert@cs.ucla.edu>
19468
19469 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
19470 since callers should never pass a negative size.
19471 Change the signature to match that of plain 'read' and 'write'; see
19472 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
19473 * lisp.h: Update prototypes of emacs_write and emacs_read.
19474
11997c76
EZ
194752011-04-11 Eli Zaretskii <eliz@gnu.org>
19476
19477 * xdisp.c (redisplay_window): Don't try to determine the character
19478 position of the scroll margin if the window start point w->startp
e896f03c 19479 is outside the buffer's accessible region. (Bug#8468)
11997c76 19480
8a2cbd72
EZ
194812011-04-10 Eli Zaretskii <eliz@gnu.org>
19482
19483 Fix write-region and its subroutines for buffers > 2GB.
19484 * fileio.c (a_write, e_write): Modify declaration of arguments and
19485 local variables to support buffers larger than 2GB.
19486 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
19487
19488 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
19489 argument, local variables, and return value.
19490
19491 * lisp.h: Update prototypes of emacs_write and emacs_read.
19492
19493 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
19494
4073e537 194952011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 19496
1ebfdcb6
PE
19497 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
19498
b2ded58d
PE
19499 Fix more problems found by GCC 4.6.0's static checks.
19500
7d66342c
PE
19501 * xdisp.c (vmessage): Use a better test for character truncation.
19502
bbf47d44
PE
19503 * charset.c (load_charset_map): <, not <=, for optimization,
19504 and to avoid potential problems with integer overflow.
9248994d 19505 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 19506 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 19507 * editfns.c (Fformat): Likewise.
1e69125e 19508 * syntax.c (skip_chars): Likewise.
3befa583 19509
e3019616
PE
19510 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
19511 This also lets GCC 4.6.0 generate slightly better loop code.
19512
becfa255
PE
19513 * callint.c (Fcall_interactively): <, not <=, for optimization.
19514 (Fcall_interactively): Count the number of arguments produced,
19515 not the number of arguments given. This is simpler and lets GCC
19516 4.6.0 generate slightly better code.
19517
dae0cd48
PE
19518 * ftfont.c: Distingish more carefully between FcChar8 and char.
19519 The previous code passed unsigned char * to a functions like
19520 strlen and xstrcasecmp that expect char *, which does not
19521 conform to the C standard.
19522 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
19523 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
19524 char * when the C standard requires it.
19525
76032d70
PE
19526 * keyboard.c (read_char): Remove unused var.
19527
eb3f1cc8
PE
19528 * eval.c: Port to Windows vsnprintf (Bug#8435).
19529 Include <limits.h>.
19530 (SIZE_MAX): Define if the headers do not.
19531 (verror): Do not give up if vsnprintf returns a negative count.
19532 Instead, grow the buffer. This ports to Windows vsnprintf, which
19533 does not conform to C99. Problem reported by Eli Zaretskii.
19534 Also, simplify the allocation scheme, by avoiding the need for
19535 calling realloc, and removing the ALLOCATED variable.
19536
70476b54
PE
19537 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
19538
12020a9e
PE
19539 Remove invocations of doprnt, as Emacs now uses vsnprintf.
19540 But keep the doprint source code for now, as we might revamp it
19541 and use it again (Bug#8435).
ea6c7ae6
PE
19542 * lisp.h (doprnt): Remove.
19543 * Makefile.in (base_obj): Remove doprnt.o.
19544 * deps.mk (doprnt.o): Remove.
19545
5fdb398c
PE
19546 error: Print 32- and 64-bit integers portably (Bug#8435).
19547 Without this change, on typical 64-bit hosts error ("...%d...", N)
19548 was used to print both 32- and 64-bit integers N, which relied on
19549 undefined behavior.
61bdb816 19550 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
19551 * lisp.h (error, verror): Mark as printf-like functions.
19552 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
19553 Report overflow in size calculations when allocating printf buffer.
19554 Do not truncate output string at its first null byte.
19555 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
19556 Truncate the output at a character boundary, since vsnprintf does not
19557 do that.
19558 * charset.c (check_iso_charset_parameter): Convert internal
19559 character to string before calling 'error', since %c now has the
19560 printf meaning.
19561 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
19562 overflow when computing char to be passed to 'error'. Do not
19563 pass Lisp_Object to 'error'; pass the integer instead.
19564 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
19565 formatted with plain %d.
19566
b189fa66
PE
19567 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
19568
bff87ef0
PE
19569 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
19570
7e2cac20
PE
19571 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
19572
ce4d90b5
PE
19573 * xterm.c (x_catch_errors): Remove duplicate declaration.
19574
266c9547
PE
19575 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
19576
79c49ad2
PE
19577 * xdisp.c, lisp.h (message_nolog): Remove; unused.
19578
368f4090
JM
195792011-04-10 Jim Meyering <meyering@redhat.com>
19580
19581 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
19582 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
19583 return ssize_t not "int", and use size_t as the buffer length.
19584 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
19585 * gnutls.h: Update declarations.
19586 * process.c (read_process_output): Use ssize_t, to match.
19587 (send_process): Likewise.
19588
a32d4040
CY
195892011-04-09 Chong Yidong <cyd@stupidchicken.com>
19590
19591 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
19592
8546720e 195932011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 19594
04f2d78b
CB
19595 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
19596 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 19597
8546720e
GM
19598 * xterm.c (handle_one_xevent):
19599 * xmenu.c (create_and_show_popup_menu):
19600 * xselect.c (x_decline_selection_request)
19601 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 19602
0a2f5c1a 196032011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
19604
19605 Fix some uses of `int' instead of EMACS_INT.
19606 * search.c (string_match_1, fast_string_match)
19607 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
19608 (scan_buffer, find_next_newline_no_quit)
19609 (find_before_next_newline, search_command, Freplace_match)
19610 (Fmatch_data): Make some `int' variables be EMACS_INT.
19611
19612 * xdisp.c (display_count_lines): 3rd argument and return value now
19613 EMACS_INT. All callers changed.
19614 (pint2hrstr): Last argument is now EMACS_INT.
19615
19616 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
19617 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
19618 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
19619 (decode_coding_utf_16, decode_coding_emacs_mule)
19620 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
19621 (decode_coding_ccl, decode_coding_charset)
19622 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
19623 (decode_coding_iso_2022, decode_coding_emacs_mule)
19624 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
19625 <char_offset, last_offset>: Declare EMACS_INT.
19626 (encode_coding_utf_8, encode_coding_utf_16)
19627 (encode_coding_emacs_mule, encode_invocation_designation)
19628 (encode_designation_at_bol, encode_coding_iso_2022)
19629 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
19630 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
19631 Declare EMACS_INT.
19632 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
19633 (encode_invocation_designation): Last argument P_NCHARS is now
19634 EMACS_INT.
19635 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
19636 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
19637
19638 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
19639 All users changed.
19640
19641 * ccl.c (Fccl_execute_on_string): Declare some variables
19642 EMACS_INT.
19643
8546720e 196442011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
19645
19646 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
19647
4e19a977
CS
196482011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
19649
19650 * process.c (Fformat_network_address): Doc fix.
19651
87302331
R
196522011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
19653
ee7683eb 19654 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 19655
cbb59342
CY
196562011-04-08 Chong Yidong <cyd@stupidchicken.com>
19657
19658 * keyboard.c (read_char): Call Lisp function help-form-show,
19659 instead of using internal_with_output_to_temp_buffer.
19660 (Qhelp_form_show): New var.
e0d38eeb 19661 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
19662
19663 * print.c (internal_with_output_to_temp_buffer): Function deleted.
19664
19665 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
19666
e67a13ab
CY
196672011-04-06 Chong Yidong <cyd@stupidchicken.com>
19668
04f2d78b
CB
19669 * process.c (Flist_processes): Remove to Lisp.
19670 (list_processes_1): Delete.
e67a13ab 19671
973f782d
EZ
196722011-04-06 Eli Zaretskii <eliz@gnu.org>
19673
7c106b1e
EZ
19674 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
19675
973f782d
EZ
19676 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
19677
41cf7d1a 196782011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 19679
ca23cc88
PE
19680 Fix more problems found by GCC 4.6.0's static checks.
19681
f390e2d5
PE
19682 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
19683
42eea0d0
PE
19684 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
19685
b69769da 19686 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 19687
f9541e84
PE
19688 * xdisp.c (vmessage): Mark as a printf-like function.
19689
13841b55
PE
19690 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
19691
c136c10f
PE
19692 * sound.c (sound_warning): Don't crash if arg contains a printf format.
19693
5e2d4a30
PE
19694 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
19695 printf-like functions.
19696 (tiff_load): Add casts to remove these marks before passing them
19697 to system-supplied API.
19698
583f48b9
PE
19699 * eval.c (Fsignal): Remove excess argument to 'fatal'.
19700
b25d760e
PE
19701 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
19702 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
19703 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
19704 directly, rather than having caller test rule sign. This avoids
19705 some unnecessary tests.
19706 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
19707 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
19708 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 19709
bc7b6697 19710 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 19711 (xfont_open): Avoid unnecessary tests.
bc7b6697 19712
27ccc379
PE
19713 * composite.c (composition_gstring_put_cache): Use unsigned integer.
19714
dcd5c89a
PE
19715 * composite.h, composite.c (composition_gstring_put_cache):
19716 Use EMACS_INT, not int, for length.
19717
b13a45c6
PE
19718 * composite.h (COMPOSITION_DECODE_REFS): New macro,
19719 breaking out part of COMPOSITION_DECODE_RULE.
19720 (COMPOSITION_DECODE_RULE): Use it.
19721 * composite.c (get_composition_id): Remove unused local vars,
19722 by using the new macro.
19723
1e792e4d
PE
19724 * textprop.c (set_text_properties_1): Change while to do-while,
19725 since the condition is always true at first.
19726
dc6c6455 19727 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
19728 (interval_deletion_adjustment): Return unsigned value.
19729 All uses changed.
dc6c6455 19730
aba7731a
PE
19731 * process.c (list_processes_1, create_pty, read_process_output):
19732 (exec_sentinel): Remove vars that were set but not used.
afd4052b 19733 (create_pty): Remove unnecessary "volatile"s.
bc57d757 19734 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 19735 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 19736 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 19737
fdfc4bf3
PE
19738 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
19739
fca8fe46 19740 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 19741 (update_syntax_table): Use unsigned instead of int.
fca8fe46 19742
06a0259a 19743 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 19744 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 19745 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 19746
e7b9e80f
PE
19747 * print.c (print_error_message): Avoid int overflow.
19748
56201685
PE
19749 * font.c (font_list_entities): Redo for clarity,
19750 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
19751
78834453 19752 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 19753 (font_score): Avoid potential overflow in diff calculation.
78834453 19754
0bc0b309 19755 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 19756 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 19757
e610eaca
PE
19758 * eval.c (funcall_lambda): Rename local to avoid shadowing.
19759
b895abce
PE
19760 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
19761 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
19762 can always succeed if overflow has undefined behavior.
19763
1f1d9321 19764 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 19765 (wordify): Omit three unnecessary tests.
1f1d9321 19766
c59478bc
PE
19767 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
19768 All callers changed. This avoids the need for an unused var.
19769
79b73827
PE
19770 * casefiddle.c (casify_region): Remove var that is set but not used.
19771
a4db5dfe
PE
19772 * dired.c (file_name_completion): Remove var that is set but not used.
19773
43aae36e
PE
19774 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
19775
2a47c44d 19776 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 19777 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 19778
a37c69bf
PE
19779 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
19780 Check for integer overflow on size calculations.
19781
328ab8e7
PE
19782 * buffer.c (Fprevious_overlay_change): Remove var that is set
19783 but not used.
19784
e5a2a5cb
PE
19785 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
19786 Remove vars that are set but not used.
8d84a6eb 19787 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 19788 (timer_check_2): Mark vars as initialized.
e5a2a5cb 19789
a60e5f68
PE
19790 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
19791
f661cb61 19792 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 19793 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 19794
f0397f5a
PE
19795 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
19796 that are set but not used.
19797
8664db06 19798 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 19799 if XCreateBitmapFromData fails (Bug#8410).
8664db06 19800
6abdaa4a
PE
19801 * xselect.c (x_get_local_selection, x_handle_property_notify):
19802 Remove vars that are set but not used.
19803
0ce7538d 19804 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 19805 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 19806
9ae848fc
PE
19807 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
19808 Remove var that is set but not used.
0b918413
PE
19809 (scroll_bar_windows_size): Now size_t, not int.
19810 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
19811 Check for overflow.
9ae848fc 19812
a5a62657
PE
19813 * xfaces.c (realize_named_face): Remove vars that are set but not used.
19814 (map_tty_color) [!defined MSDOS]: Likewise.
19815
5c5cdd39
PE
19816 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
19817
66ebf983
PE
19818 * coding.c: Remove vars that are set but not used.
19819 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
19820 All callers changed.
19821 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
19822 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
19823 (decode_coding_charset): Remove vars that are set but not used.
19824
1be4d761
PE
19825 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
19826 that is set but not used.
19827
47553fa8
PE
19828 * print.c (print_object): Remove var that is set but not used.
19829
1f7196bf 19830 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
19831 The gnulib version avoids calling malloc in the usual case,
19832 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
19833 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
19834 * filelock.c (current_lock_owner): Likewise.
19835 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
19836 * sysdep.c: Include allocator.h, careadlinkat.h.
19837 (emacs_no_realloc_allocator): New static constant.
19838 (emacs_readlink): New function.
fdb61804
PE
19839 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
19840 ../lib/careadlinkat.h.
d1fdcab7 19841
f84c17c7
SM
198422011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
19843
19844 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
19845 first non-nil return value).
19846
ef3862ad
JD
198472011-04-03 Jan Djärv <jan.h.d@swipnet.se>
19848
19849 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
19850 if not defined (Bug#8403).
19851
376a7006
JB
198522011-04-02 Juanma Barranquero <lekktu@gmail.com>
19853
19854 * xdisp.c (display_count_lines): Remove parameter `start',
19855 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
19856 (get_char_face_and_encoding): Remove parameter `multibyte_p',
19857 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
19858 (fill_stretch_glyph_string): Remove parameters `row' and `area',
19859 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
19860 and thereabouts. All callers changed.
19861 (get_per_char_metric): Remove parameter `f', unused since
19862 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
19863
6ca3801d
JM
198642011-04-02 Jim Meyering <meyering@redhat.com>
19865
19866 do not dereference NULL upon failed strdup
19867 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
19868 (ns_get_family): Likewise.
19869
d8e2b5ba
JB
198702011-04-02 Juanma Barranquero <lekktu@gmail.com>
19871
19872 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
19873
8c74fcbd
JD
198742011-04-02 Jan Djärv <jan.h.d@swipnet.se>
19875
19876 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
19877 later (Bug#8403).
19878
7200d79c
SM
198792011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
19880
03408648 19881 Add lexical binding.
7200d79c 19882
03408648
SM
19883 * window.c (Ftemp_output_buffer_show): New fun.
19884 (Fsave_window_excursion):
19885 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
19886
19887 * lread.c (lisp_file_lexically_bound_p): New function.
19888 (Fload): Bind Qlexical_binding.
19889 (readevalloop): Remove `evalfun' arg.
19890 Bind Qinternal_interpreter_environment.
19891 (Feval_buffer): Bind Qlexical_binding.
19892 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
19893 Mark as dynamic.
19894 (syms_of_lread): Declare `lexical-binding'.
19895
19896 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
19897
19898 * keyboard.c (eval_dyn): New fun.
19899 (menu_item_eval_property): Use it.
ca105506
SM
19900
19901 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 19902
03408648
SM
19903 * fns.c (concat, mapcar1): Accept byte-code-functions.
19904
19905 * eval.c (Fsetq): Handle lexical vars.
19906 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
19907 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
19908 (FletX, Flet): Obey lexical binding.
19909 (Fcommandp): Handle closures.
19910 (Feval): New `lexical' arg.
19911 (eval_sub): New function extracted from Feval. Use it almost
19912 everywhere where Feval was used. Look up vars in lexical env.
19913 Handle closures.
19914 (Ffunctionp): Move from subr.el.
19915 (Ffuncall): Handle closures.
19916 (apply_lambda): Remove `eval_flags'.
19917 (funcall_lambda): Handle closures and new byte-code-functions.
19918 (Fspecial_variable_p): New function.
19919 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
19920 but without exporting it to Lisp.
23aba0ea 19921
23aba0ea 19922 * doc.c (Fdocumentation, store_function_docstring):
03408648 19923 * data.c (Finteractive_form): Handle closures.
23aba0ea 19924
03408648
SM
19925 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
19926 interactive spec.
ba83908c 19927
04f2d78b
CB
19928 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
19929 New byte-codes.
03408648
SM
19930 (exec_byte_code): New function extracted from Fbyte_code to handle new
19931 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 19932
03408648 19933 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 19934
03408648 19935 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 19936
e2abce01
JB
199372011-03-31 Juanma Barranquero <lekktu@gmail.com>
19938
19939 * xdisp.c (redisplay_internal): Fix prototype.
19940
63696a73 199412011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 19942
63696a73 19943 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
19944 (try_scrolling): Use it when setting scroll_limit.
19945 Limit scrolling to 100 screen lines.
63696a73
EZ
19946 (redisplay_window): Even when falling back on "recentering",
19947 position point in the window according to scroll-conservatively,
19948 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
19949
19950 (try_scrolling): When point is above the window, allow searching
19951 as far as scroll_max, or one screenful, to compute vertical
19952 distance from PT to the scroll margin position. This prevents
19953 try_scrolling from unnecessarily failing when
19954 scroll-conservatively is set to a value slightly larger than the
19955 window height. Clean up the case of PT below the margin at bottom
19956 of window: scroll_max can no longer be INT_MAX. When aggressive
19957 scrolling is in use, don't let point enter the opposite scroll
19958 margin as result of the scroll.
19959 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
19960 threshold of 100 lines for never-recentering scrolling.
19961
e4cc2dfc
JB
199622011-03-31 Juanma Barranquero <lekktu@gmail.com>
19963
19964 * dispextern.h (move_it_by_lines):
19965 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
19966 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
19967 (message_log_check_duplicate): Remove parameters `prev_bol' and
19968 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
19969 (redisplay_internal): Remove parameter `preserve_echo_area',
19970 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
19971
19972 * indent.c (Fvertical_motion):
19973 * window.c (window_scroll_pixel_based, Frecenter):
19974 Don't pass `need_y_p' to `move_it_by_lines'.
19975
1c470562
SM
199762011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
19977
44f230aa
SM
19978 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
19979 steal a few bits to be more compact.
19980 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
19981 Remove unneeded casts.
19982
1c470562
SM
19983 * bytecode.c (Fbyte_code): CAR and CDR can GC.
19984
888adce9
ZK
199852011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
19986
19987 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
19988 binding" message (bug#7967).
19989
f838ed7b
PE
199902011-03-30 Paul Eggert <eggert@cs.ucla.edu>
19991
77861b95
PE
19992 Fix more problems found by GCC 4.6.0's static checks.
19993
de6dbc14
PE
19994 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
19995 Remove unused local var.
19996
f838ed7b
PE
19997 * editfns.c (Fmessage_box): Remove unused local var.
19998
792c7b2b
PE
19999 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
20000 (note_mode_line_or_margin_highlight, note_mouse_highlight):
20001 Omit unused local vars.
c499e557 20002 * window.c (shrink_windows): Omit unused local var.
b01a1c29 20003 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
20004 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
20005 Omit unused local var.
20006
ba0165e1
PE
20007 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
20008 Don't assume string length fits in int.
32ad8845 20009 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 20010 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 20011
3c59b4c9
PE
20012 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
20013 instead of alloca (Bug#8344).
20014
a3eed478 20015 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 20016 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 20017
eb4d412d
PE
20018 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
20019
1658b401
PE
20020 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
20021 concerns.
20022
20023 * term.c (produce_glyphless_glyph): Remove unnecessary test.
20024
20025 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 20026
9a2c6e05
PE
20027 * keyboard.c (syms_of_keyboard): Use the same style as later
20028 in this function when indexing through an array. This also
20029 works around GCC bug 48267.
20030
03d0a109
PE
20031 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
20032
44f730c8
PE
20033 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
20034
fe75f926
PE
20035 * chartab.c (sub_char_table_ref_and_range): Redo for slight
20036 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
20037
ffa8c828
PE
20038 * keyboard.c, keyboard.h (num_input_events): Now size_t.
20039 This avoids undefined behavior on integer overflow, and is a bit
20040 more convenient anyway since it is compared to a size_t variable.
20041
c5101a77
PE
20042 Variadic C functions now count arguments with size_t, not int.
20043 This avoids an unnecessary limitation on 64-bit machines, which
20044 caused (substring ...) to crash on large vectors (Bug#8344).
20045 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
20046 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 20047 All variadic functions and their callers changed accordingly.
c5101a77
PE
20048 (struct gcpro.nvars): Now size_t, not int. All uses changed.
20049 * data.c (arith_driver, float_arith_driver): Likewise.
20050 * editfns.c (general_insert_function): Likewise.
20051 * eval.c (struct backtrace.nargs, interactive_p)
20052 (internal_condition_case_n, run_hook_with_args, apply_lambda)
20053 (funcall_lambda, mark_backtrace): Likewise.
20054 * fns.c (concat): Likewise.
20055 * frame.c (x_set_frame_parameters): Likewise.
20056 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
20057 0 if not found, not -1. All callers changed.
20058
dd3f25f7
PE
20059 * alloc.c (garbage_collect): Don't assume stack size fits in int.
20060 (stack_copy_size): Now size_t, not int.
20061 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
20062
461c2ab9
JB
200632011-03-28 Juanma Barranquero <lekktu@gmail.com>
20064
20065 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
20066 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
20067 All callers changed.
20068
20069 * lisp.h (multibyte_char_to_unibyte):
20070 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
20071 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
20072 * character.h (CHAR_TO_BYTE8):
20073 * cmds.c (internal_self_insert):
20074 * editfns.c (general_insert_function):
20075 * keymap.c (push_key_description):
20076 * search.c (Freplace_match):
20077 * xdisp.c (message_dolog, set_message_1): All callers changed.
20078
f6d62986
SM
200792011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
20080
20081 * keyboard.c (safe_run_hook_funcall): New function.
20082 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
20083 don't set the hook to nil, but remove the offending function instead.
20084 (Qcommand_hook_internal): Remove, unused.
20085 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
20086 Vcommand_hook_internal.
20087
20088 * eval.c (enum run_hooks_condition): Remove.
20089 (funcall_nil, funcall_not): New functions.
20090 (run_hook_with_args): Call each function through a `funcall' argument.
20091 Remove `cond' argument, now redundant.
20092 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
20093 (Frun_hook_with_args_until_failure): Adjust accordingly.
20094 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
20095
1db5b1ad
JB
200962011-03-28 Juanma Barranquero <lekktu@gmail.com>
20097
20098 * dispextern.h (string_buffer_position): Remove declaration.
20099
20100 * print.c (strout): Remove parameter `multibyte', unused since
20101 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
20102
20103 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
20104 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
20105 All callers changed.
20106
20107 * w32.c (_wsa_errlist): Use braces for struct initializers.
20108
20109 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
20110 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
20111 All callers changed.
20112 (string_buffer_position): Likewise. Also, make static (it's never
20113 used outside xdisp.c).
20114 (cursor_row_p): Remove parameter `w', unused since
20115 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
20116 (decode_mode_spec): Remove parameter `precision', introduced during
20117 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
20118 All callers changed.
20119
5ffb62aa
JD
201202011-03-27 Jan Djärv <jan.h.d@swipnet.se>
20121
20122 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
20123
461c2ab9 201242011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
20125
20126 * nsterm.m (ns_menu_bar_is_hidden): New variable.
20127 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
20128 (ns_update_auto_hide_menu_bar): New functions.
20129 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
20130 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
20131 ns_constrain_all_frames.
20132 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
20133 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
20134
5c380ffb
JD
201352011-03-27 Jan Djärv <jan.h.d@swipnet.se>
20136
20137 * nsmenu.m (runDialogAt): Remove argument to timer_check.
20138
9af30bdf
GM
201392011-03-27 Glenn Morris <rgm@gnu.org>
20140
20141 * syssignal.h: Replace RETSIGTYPE with void.
20142 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
20143 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
20144 Replace SIGTYPE with void everywhere.
20145 * s/usg5-4-common.h (SIGTYPE): Remove definition.
20146 * s/template.h (SIGTYPE): Remove commented out definition.
20147
e2abce01
JB
201482011-03-26 Eli Zaretskii <eliz@gnu.org>
20149
20150 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
20151 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
20152
f868cd8a
JB
201532011-03-26 Juanma Barranquero <lekktu@gmail.com>
20154
59eb0929
JB
20155 * w32.c (read_unc_volume): Use parameter `henum', instead of
20156 global variable `wget_enum_handle'.
20157
20158 * keymap.c (describe_vector): Remove parameters `indices' and
20159 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
20160 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
20161
f868cd8a
JB
20162 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
20163
20164 * keyboard.c (timer_check): Remove parameter `do_it_now',
20165 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
20166 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
20167 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
20168
20169 * keyboard.c (read_char):
20170 * w32menu.c (w32_menu_display_help):
20171 * xmenu.c (show_help_event, menu_help_callback):
20172 Adjust calls to `show_help_echo'.
20173
20174 * gtkutil.c (xg_maybe_add_timer):
20175 * keyboard.c (readable_events):
20176 * process.c (wait_reading_process_output):
20177 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
20178
20179 * insdel.c (adjust_markers_gap_motion):
20180 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
20181 (gap_left, gap_right): Don't call it.
20182
2ecf6fdb
CY
201832011-03-25 Chong Yidong <cyd@stupidchicken.com>
20184
20185 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
20186 incurred during fontification.
20187
6b1f9ba4
JB
201882011-03-25 Juanma Barranquero <lekktu@gmail.com>
20189
20190 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
20191 (DEFVAR_PER_BUFFER): Don't pass it.
20192
20193 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
20194 (scrolling_window): Don't pass it.
20195
0f4a96b5
JB
201962011-03-25 Juanma Barranquero <lekktu@gmail.com>
20197
20198 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
20199
20200 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
20201 and `suffix'.
20202 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
20203 of variables specific to SELinux and computation of `encoded_absname'.
20204
20205 * image.c (XPutPixel): Remove unused variable `height'.
20206
20207 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
20208
20209 * unexw32.c (get_section_info): Remove unused variable `section'.
20210
20211 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
20212 (system_process_attributes): Remove unused variable `sess'.
20213 (sys_read): Remove unused variable `err'.
20214
20215 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
20216 (w32_wnd_proc): Remove unused variable `isdead'.
20217 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
20218 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
20219 (x_create_tip_frame): Remove unused variable `tem'.
20220
20221 * w32inevt.c (w32_console_read_socket):
20222 Remove unused variable `no_events'.
20223
20224 * w32term.c (x_draw_composite_glyph_string_foreground):
20225 Remove unused variable `width'.
20226
1149507c
JB
202272011-03-24 Juanma Barranquero <lekktu@gmail.com>
20228
20229 * w32term.c (x_set_glyph_string_clipping):
20230 Don't pass uninitialized region to CombineRgn.
20231
9c88f339
JB
202322011-03-23 Juanma Barranquero <lekktu@gmail.com>
20233
20234 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
20235 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
20236 (Fx_close_connection): Remove unused variable `i'.
20237
20238 * w32font.c (w32font_draw): Return number of glyphs.
20239 (w32font_open_internal): Remove unused variable `i'.
20240 (w32font_driver): Add missing initializer.
20241
20242 * w32menu.c (utf8to16): Remove unused variable `utf16'.
20243 (fill_in_menu): Remove unused variable `items_added'.
20244
20245 * w32term.c (last_mouse_press_frame): Remove static global variable.
20246 (w32_clip_to_row): Remove unused variable `f'.
20247 (x_delete_terminal): Remove unused variable `i'.
20248
20249 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
20250 (NOTHING): Remove unused static global variable.
20251 (uniscribe_check_otf): Remove unused variable `table'.
20252 (uniscribe_font_driver): Add missing initializers.
20253
dee091a3
JD
202542011-03-23 Julien Danjou <julien@danjou.info>
20255
20256 * term.c (Fsuspend_tty, Fresume_tty):
20257 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
20258 * window.c (temp_output_buffer_show):
20259 * insdel.c (signal_before_change):
20260 * frame.c (Fhandle_switch_frame):
20261 * fileio.c (Fdo_auto_save):
20262 * emacs.c (Fkill_emacs):
20263 * editfns.c (save_excursion_restore):
20264 * cmds.c (internal_self_insert):
20265 * callint.c (Fcall_interactively):
20266 * buffer.c (Fkill_all_local_variables):
20267 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
20268 Use Frun_hooks.
0f4a96b5 20269 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 20270 unconditionally since it does the check itself.
dee091a3 20271
2c520ab5 202722011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 20273
c9c49752
PE
20274 Fix more problems found by GCC 4.5.2's static checks.
20275
8abc3f12
PE
20276 * coding.c (encode_coding_raw_text): Avoid unnecessary test
20277 the first time through the loop, since we know p0 < p1 then.
20278 This also avoids a gcc -Wstrict-overflow warning.
20279
a2d26660
PE
20280 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
20281 leading to a memory leak, possible in functions like
20282 load_charset_map_from_file that can allocate an unbounded number
b12ef411 20283 of objects (Bug#8318).
a2d26660 20284
916c72e9
PE
20285 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
20286 that could (at least in theory) be that large.
20287
19ab8a18
PE
20288 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
20289 This is less likely to overflow, and avoids undefined behavior if
20290 overflow does occur. All callers changed. Use strtoul to scan
20291 for the unsigned long integer.
b7cbbd6f
PE
20292 (pint2hrstr): Simplify and tune code slightly.
20293 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 20294
f0641eff
PE
20295 * scroll.c (do_scrolling): Work around GCC bug 48228.
20296 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
20297
7f650bb9
PE
20298 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
20299 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
20300 (validate_x_resource_name): Simplify count usage.
20301 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 20302
37dd57d1
PE
20303 * fileio.c (Fcopy_file): Report error if fchown or fchmod
20304 fail (Bug#8306).
81e56e61 20305
699979fc 20306 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 20307
401bf9b4
PE
20308 * process.c (Fmake_network_process): Use socklen_t, not int,
20309 where POSIX says socklen_t is required in portable programs.
20310 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 20311 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
20312 (Fmake_network_process, server_accept_connection):
20313 (wait_reading_process_output, read_process_output):
20314 Likewise.
20315
b93aacde
PE
20316 * process.c: Rename or move locals to avoid shadowing.
20317 (list_processes_1, Fmake_network_process):
20318 (read_process_output_error_handler, exec_sentinel_error_handler):
20319 Rename or move locals.
4dc343ee 20320 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 20321 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 20322 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 20323 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 20324 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 20325
af8a867c 20326 Make tparam.h and terminfo.c consistent.
44f230aa
SM
20327 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
20328 Include tparam.h instead, since it declares them.
af8a867c
PE
20329 * cm.h (PC): Remove extern decl; tparam.h now does this.
20330 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
20331 * terminfo.c: Include tparam.h, to check interfaces.
20332 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
20333 (tparam): Adjust signature to match interface in tparam.h;
20334 this removes some undefined behavior. Check that outstring and len
20335 are zero, which they always are with Emacs.
20336 * tparam.h (PC, BC, UP): New extern decls.
20337
0248044d 20338 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 20339 (xftfont_open): Rename locals to avoid shadowing.
0248044d 20340
8ff096c1 20341 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
20342 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
20343 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 20344 (ftfont_list): Remove unused local.
49eaafba
PE
20345 (get_adstyle_property, ftfont_pattern_entity):
20346 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
20347 Rename locals to avoid shadowing.
8ff096c1 20348
e2be39f6
PE
20349 * xfont.c (xfont_list_family): Mark var as initialized.
20350
c9735e30
PE
20351 * xml.c (make_dom): Now static.
20352
8f5201ae
PE
20353 * composite.c (composition_compute_stop_pos): Rename local to
20354 avoid shadowing.
b246f932
PE
20355 (composition_reseat_it): Remove unused locals.
20356 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 20357 (composition_update_it): Mark var as initialized.
11b61122
PE
20358 (find_automatic_composition): Mark vars as initialized,
20359 with a FIXME (Bug#8290).
8f5201ae 20360
760fbc2c
PE
20361 character.h: Rename locals to avoid shadowing.
20362 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
20363 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
20364 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
20365 (BUF_DEC_POS): Be more systematic about renaming local temporaries
20366 to avoid shadowing.
20367
ff08eb85
PE
20368 * textprop.c (property_change_between_p): Remove; unused.
20369
fc7bf025
PE
20370 * intervals.c (interval_start_pos): Now static.
20371
235d7abc
PE
20372 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
20373
44f230aa
SM
20374 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
20375 Rename locals to avoid shadowing.
3e7d6594 20376
50060332
PE
20377 * sound.c (wav_play, au_play, Fplay_sound_internal):
20378 Fix pointer signedness.
d01f234b 20379 (alsa_choose_format): Remove unused local var.
c83b8872
PE
20380 (wav_play): Initialize a variable to 0, to prevent undefined
20381 behavior (Bug#8278).
50060332 20382
c4fc4e30
PE
20383 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
20384
918436ed
PE
20385 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
20386
c939f91b
PE
20387 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
20388 clobbering (Bug#8298).
b9c7f648
PE
20389 * sysdep.c (sys_subshell): Likewise.
20390 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 20391
6bd8c144
PE
20392 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
20393 This should get cleaned up, so that child_setup has the
20394 same signature on all platforms.
20395
7710357c 20396 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 20397 (relocate_fd): Rename locals to avoid shadowing.
7710357c 20398
c59da222
CY
203992011-03-22 Chong Yidong <cyd@stupidchicken.com>
20400
20401 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
20402 not to be necessary, and produces flickering.
20403
66b87493
GM
204042011-03-20 Glenn Morris <rgm@gnu.org>
20405
20406 * config.in: Remove file.
20407
45b6f6d5
JB
204082011-03-20 Juanma Barranquero <lekktu@gmail.com>
20409
20410 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
20411 are now in src/globals.h.
20412 (syms_of_minibuf): Remove spurious & from previous change.
20413
cd394be1 204142011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
20415
20416 * minibuf.c (completing-read-function): New variable.
20417 (completing-read-default): Rename from completing-read.
20418 (completing-read): Call completing-read-function.
20419
b14e3e21
CY
204202011-03-19 Juanma Barranquero <lekktu@gmail.com>
20421
20422 * xfaces.c (Fx_load_color_file):
20423 Read color file from absolute filename (bug#8250).
20424
f2b726e6
JB
204252011-03-19 Juanma Barranquero <lekktu@gmail.com>
20426
20427 * makefile.w32-in: Update dependencies.
20428
09f6ff02
EZ
204292011-03-17 Eli Zaretskii <eliz@gnu.org>
20430
20431 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
20432
29a6015a
PE
204332011-03-17 Paul Eggert <eggert@cs.ucla.edu>
20434
a3a6c54e
PE
20435 Fix more problems found by GCC 4.5.2's static checks.
20436
b766f867
PE
20437 * process.c (make_serial_process_unwind, send_process_trap):
20438 (sigchld_handler): Now static.
20439
be02381c
PE
20440 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
20441 That way, the code declares only the vars that it needs.
20442 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
20443 * s/cygwin.h (PTY_ITERATION): Likewise.
20444 * s/darwin.h (PTY_ITERATION): Likewise.
20445 * s/gnu-linux.h (PTY_ITERATION): Likewise.
20446
57048744
PE
20447 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
20448 * process.c (allocate_pty): Don't declare stb unless it's needed.
20449
7914961c 20450 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
20451 (CONSTANTLIM): Remove; unused.
20452 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
20453 Define only if needed.
7914961c 20454
b3967b18
PE
20455 * unexelf.c (unexec): Name an expression,
20456 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
20457 Use a different way to cause a compilation error if anyone uses
20458 n rather than nn, a way that does not involve shadowing.
73366a00 20459 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 20460
29a6015a
PE
20461 * deps.mk (unexalpha.o): Remove; unused.
20462
43cfc33e 20463 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 20464 * unexec.h: New file.
ce701a33
PE
20465 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
20466 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
20467 Depend on unexec.h.
20468 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
20469 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
20470 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 20471 Change as necessary to match prototype in unexec.h.
ce701a33 20472
01f44d5a
PE
20473 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
20474 shadowing.
4f63c6bb 20475 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 20476
a6670b0b
PE
20477 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
20478 Rename locals to avoid shadowing.
20479
cef2010d 20480 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 20481 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 20482
d4d7173a
PE
20483 * print.c (Fredirect_debugging_output): Fix pointer signedess.
20484
f08b802a
PE
20485 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
20486 warning when compiling print.c.
20487
3ddb0639
PE
20488 * font.c (font_unparse_fcname): Abort in an "impossible" situation
20489 instead of using an uninitialized var.
5ad03b97 20490 (font_sort_entities): Mark var as initialized.
3ddb0639 20491
170a2692
PE
20492 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
20493
e663c700
PE
20494 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
20495 pointers to constants.
89bc529a 20496 (font_parse_fcname): Remove unused vars.
7b81e2d0 20497 (font_delete_unmatched): Now static.
ea838e10 20498 (font_get_spec): Remove; unused.
13a547c6
PE
20499 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
20500 (font_update_drivers, Ffont_get_glyphs, font_add_log):
20501 Rename or move locals to avoid shadowing.
e663c700 20502
2a80c887 20503 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 20504 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 20505
1384fa33 20506 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 20507 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 20508
8b2c52e9
PE
20509 * alloc.c (mark_backtrace): Move decl from here ...
20510 * lisp.h: ... to here, so that it can be checked.
20511
475545b5 20512 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 20513 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
20514 (lisp_indirect_variable): Name an expression,
20515 to avoid gcc -Wbad-function-cast warning.
1faed8ae 20516 (Fdefvar): Rename locals to avoid shadowing.
475545b5 20517
b1349114 20518 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 20519 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 20520 Use const pointer when appropriate.
b1349114 20521
a2928364
PE
20522 * lisp.h (get_system_name, get_operating_system_release):
20523 Move decls here, to check interfaces.
20524 * process.c (get_operating_system_release): Move decl to lisp.h.
20525 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
20526 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
20527 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
20528 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
20529 (Fformat_time_string, Fencode_time, Finsert_char):
20530 (Ftranslate_region_internal, Fformat):
20531 Rename or remove local vars to avoid shadowing.
9710023e 20532 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 20533
a415e694
PE
20534 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
20535 avoid shadowing.
20536
8ef4622d
PE
20537 * lisp.h (eassert): Check that the argument compiles, even if
20538 ENABLE_CHECKING is not defined.
20539
946f9a5b
PE
20540 * data.c (Findirect_variable): Name an expression, to avoid
20541 gcc -Wbad-function-cast warning.
112396d6 20542 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 20543 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
20544 (Fmake_variable_buffer_local, Fmake_local_variable):
20545 Mark variables as initialized.
52746918 20546 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 20547
e5aab7e7 20548 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
20549 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
20550 Rename locals to avoid shadowing.
dff45157
PE
20551 (mark_stack): Move local variables into the #ifdef region where
20552 they're used.
7bc26fdb
PE
20553 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
20554 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
20555 needed otherwise.
20556 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
20557 (GC_STRING_CHARS): Remove; not used.
d40d4be1 20558 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 20559
e5aab7e7
PE
20560 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
20561 avoids undefined behavior in theory.
20562
4da60324
PE
20563 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
20564
88043301
PE
20565 Use functions, not macros, for up- and down-casing (Bug#8254).
20566 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
20567 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
20568 to use the following functions instead of these macros.
20569 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
20570 EMACS_INT, since callers assume the returned value fits in int.
20571 (upcase1): Likewise, for UPCASE_TABLE.
20572 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 20573 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 20574 the race-condition problem in the old DOWNCASE.
88043301 20575
19ed5445
PE
20576 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
20577 Rename locals to avoid shadowing.
20578 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
20579 (regex_compile, re_search_2, re_match_2_internal):
20580 Remove unused local vars.
952db0d7
PE
20581 (FREE_VAR): Rewrite so as not to use empty "else",
20582 which gcc can warn about.
da053e48 20583 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
20584 (RETALLOC_IF): Define only if needed.
20585 (WORDCHAR_P): Likewise. This one is never needed, but is used
20586 only in a comment talking about a compiler bug, so put inside
20587 the #if 0 of that comment.
20588 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
20589 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
20590 Remove; unused.
19ed5445 20591
1f3561e4 20592 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
20593 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
20594 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 20595
ded6f8f7
PE
20596 * search.c (simple_search): Remove unused var.
20597
dbd37a95
PE
20598 * dired.c (compile_pattern): Move decl from here ...
20599 * lisp.h: ... to here, so that it can be checked.
20600 (struct re_registers): New forward decl.
20601
7e47afad
PE
20602 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
20603
85f24f61
PE
20604 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
20605 All uses changed.
20606 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
20607 Rename locals to avoid shadowing.
5671df8f 20608 (Fvertical_motion): Mark locals as initialized.
85f24f61 20609
181aa2be 20610 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 20611 (casify_region): Mark local as initialized.
181aa2be 20612
930d429c
PE
20613 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
20614
7082eac6
PE
20615 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
20616 New macros, so that the caller can use some names other than
20617 gcpro1, gcpro2, etc.
20618 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
20619 of the new macros.
20620 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
20621 argument, for consistency with GCPRO2_VAR, etc: it is now the
20622 prefix of the variable, not the variable itself. All uses
20623 changed.
38b2c076
PE
20624 * dired.c (directory_files_internal, file_name_completion):
20625 Rename locals to avoid shadowing.
20626
15206ed9
PE
20627 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
20628 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
20629 dired.c's scmp function, had undefined behavior.
20630 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
20631 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
20632 * buffer.h: ... to here, because these macros use current_buffer,
20633 and the new implementation with inline functions needs to have
20634 current_buffer in scope now, rather than later when the macros
20635 are used.
20636 (downcase, upcase1): New static inline functions.
20637 (DOWNCASE, UPCASE1): Reimplement using these functions.
20638 This avoids undefined behavior in expressions like
20639 DOWNCASE (x) == DOWNCASE (y), which previously suffered
20640 from race conditions in accessing the global variables
20641 case_temp1 and case_temp2.
20642 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
20643 * lisp.h (case_temp1, case_temp2): Remove their decls.
20644 * character.h (ASCII_CHAR_P): Move from here ...
20645 * lisp.h: ... to here, so that the inline functions mentioned
20646 above can use them.
20647
4a6bea26
PE
20648 * dired.c (directory_files_internal_unwind): Now static.
20649
f14b7e14
PE
20650 * fileio.c (file_name_as_directory, directory_file_name):
20651 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
20652 Now static.
2893f146
PE
20653 (file_name_as_directory): Use const pointers when appropriate.
20654 (Fexpand_file_name): Likewise. In particular, newdir might
20655 point at constant storage, so make it a const pointer.
fd4ead52 20656 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
20657 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
20658 signedness issues.
f839df0c
PE
20659 (Fset_file_times, Finsert_file_contents, auto_save_error):
20660 Rename locals to avoid shadowing.
f14b7e14 20661
5716756e 20662 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
20663 (Ftry_completion, Fall_completions): Rename or remove locals
20664 to avoid shadowing.
5716756e 20665
b4c3046a
PE
20666 * marker.c (bytepos_to_charpos): Remove; unused.
20667
b45db522
PE
20668 * lisp.h (verify_bytepos, count_markers): New decls,
20669 so that gcc does not warn that these functions aren't declared.
20670
85876d07
PE
20671 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
20672 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 20673 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 20674 (copy_text): Remove unused local var.
85876d07 20675
03d78a21 20676 * filelock.c (within_one_second): Now static.
b3dd38ab 20677 (lock_file_1): Rename local to avoid shadowing.
03d78a21 20678
5df8f01b
PE
20679 * buffer.c (fix_overlays_before): Mark locals as initialized.
20680 (fix_start_end_in_overlays): Likewise. This function should be
20681 simplified by using pointers-to-pointers, but that's a different
20682 matter.
b1d876f1 20683 (switch_to_buffer_1): Now static.
8f54f30a
PE
20684 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
20685 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 20686
a70072c9 20687 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 20688 Fix pointer signedness issue.
edced198
PE
20689 (sys_subshell): Mark local as volatile if checking for lint,
20690 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 20691 (MAXPATHLEN): Define only if needed.
a70072c9 20692
a0977c44
PE
20693 * process.c (serial_open, serial_configure): Move decls from here ...
20694 * systty.h: ... to here, so that they can be checked.
20695
a884fdcc
PE
20696 * fns.c (get_random, seed_random): Move extern decls from here ...
20697 * lisp.h: ... to here, so that they can be checked.
20698
604efe86 20699 * sysdep.c (reset_io): Now static.
b8950c94 20700 (wait_for_termination_signal): Remove; unused.
604efe86 20701
38fc62d9
PE
20702 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
20703 (copy_keymap_item, append_key, push_text_char_description):
20704 Now static.
1004a21a 20705 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 20706 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
20707 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
20708 (describe_map_tree):
20709 Rename locals to avoid shadowing.
38fc62d9 20710
2f2650da
PE
20711 * keyboard.c: Declare functions static if they are not used elsewhere.
20712 (echo_char, echo_dash, cmd_error, top_level_2):
20713 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
20714 (read_char, kbd_buffer_get_event, make_lispy_position):
20715 (make_lispy_event, make_lispy_movement, apply_modifiers):
20716 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
20717 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
20718 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 20719 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 20720 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 20721
a053e86c 20722 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
20723 (mark_kboards): Move decl here ...
20724 * alloc.c (mark_kboards): ... from here.
a053e86c 20725
4752793e
PE
20726 * lisp.h (force_auto_save_soon): New decl.
20727
74f10ca7 20728 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
20729 (DEFINE_DUMMY_FUNCTION): New macro.
20730 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
20731 Use it.
c03cd23f
PE
20732 (main): Add casts to avoid warnings
20733 if GCC considers string literals to be constants.
74f10ca7 20734
022e70d4
PE
20735 * lisp.h (fatal_error_signal): Add decl, since it's exported.
20736
59d6fe83
PE
20737 * dbusbind.c: Pointer signedness fixes.
20738 (xd_signature, xd_append_arg, xd_initialize):
20739 (Fdbus_call_method, Fdbus_call_method_asynchronously):
20740 (Fdbus_method_return_internal, Fdbus_method_error_internal):
20741 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
20742 (Fdbus_register_signal): Use SSDATA when the context wants char *.
20743
78320123
PE
20744 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
20745 if GCC considers string literals to be constants.
49cebcca 20746 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 20747
35ac2a97
SM
207482011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
20749
fb103ca9
SM
20750 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
20751 (print_preprocess, print_object): New macro to fix last change.
20752
35ac2a97
SM
20753 * print.c (print_preprocess): Don't forget font objects.
20754
62973b41
JB
207552011-03-16 Juanma Barranquero <lekktu@gmail.com>
20756
20757 * emacs.c (USAGE3): Doc fixes.
20758
0e48bb22
AS
207592011-03-15 Andreas Schwab <schwab@linux-m68k.org>
20760
20761 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
20762 structure.
20763
7684e57b
JB
207642011-03-14 Juanma Barranquero <lekktu@gmail.com>
20765
20766 * lisp.h (VWindow_system, Qfile_name_history):
20767 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
20768 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
20769 (w32_system_caret_x, w32_system_caret_y): Declare extern.
20770
20771 * w32select.c: Don't #include "keyboard.h".
c96bbc66 20772 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
20773
20774 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
20775 * w32console.c (detect_input_pending, read_input_pending)
20776 (encode_terminal_code):
20777 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
20778 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
20779 (w32_system_caret_y, Qfile_name_history):
20780 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
20781 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
20782 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
20783 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
20784 * w32proc.c (Qlocal, report_file_error):
20785 * w32term.c (Vwindow_system, updating_frame):
20786 * w32uniscribe.c (initialized, uniscribe_font_driver):
20787 Remove unneeded extern declarations.
20788
2aa46d6c
CY
207892011-03-14 Chong Yidong <cyd@stupidchicken.com>
20790
c96bbc66 20791 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 20792
cffc6f3b
CY
207932011-03-13 Chong Yidong <cyd@stupidchicken.com>
20794
20795 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
20796 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
20797 These macros can no longer be used for assignment.
20798
44f230aa
SM
20799 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
20800 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
20801 (record_buffer_markers, fetch_buffer_markers): New functions for
20802 recording and fetching special buffer markers.
20803 (set_buffer_internal_1, set_buffer_temp): Use them.
20804
20805 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
20806
20807 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
20808
20809 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
20810 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
20811
20812 * xdisp.c (hscroll_window_tree):
20813 (reconsider_clip_changes): Use PT instead of BUF_PT.
20814
d251f04b
EZ
208152011-03-13 Eli Zaretskii <eliz@gnu.org>
20816
20817 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
20818 $(EMACS_ROOT)/lib/intprops.h.
20819
f0c77cd1
PE
208202011-03-13 Paul Eggert <eggert@cs.ucla.edu>
20821
3eca4629
PE
20822 Fix more problems found by GCC 4.5.2's static checks.
20823
7c86ee98
PE
20824 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
20825 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
20826 (xg_free_frame_widgets): Make it clear that a local variable is
20827 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
20828 (gdk_window_get_screen): Make it clear that this macro is needed
20829 only if USE_GTK_TOOLTIP.
1e5524e7
PE
20830 (int_gtk_range_get_value): New function, which avoids a diagnostic
20831 from gcc -Wbad-function-cast.
20832 (xg_set_toolkit_scroll_bar_thumb): Use it.
20833 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
20834 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
20835 (get_utf8_string, xg_get_file_with_chooser):
20836 Rename locals to avoid shadowing.
20837 (create_dialog): Move locals to avoid shadowing.
7c86ee98 20838
41729b81
PE
20839 * xgselect.c (xg_select): Remove unused var.
20840
f0c77cd1
PE
20841 * image.c (four_corners_best): Mark locals as initialized.
20842 (gif_load): Initialize transparent_p to zero (Bug#8238).
20843 Mark another local as initialized.
ec6cf4c6 20844 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 20845
ce0ad53d 20846 * image.c (clear_image_cache): Now static.
d5d5a617 20847 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 20848 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
20849 (x_edge_detection): Remove unnecessary cast that
20850 gcc -Wbad-function-cast diagnoses.
2037898d 20851 (gif_load): Fix pointer signedness.
6ae141d6
PE
20852 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
20853 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 20854
33383987 208552011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 20856
d32df629
PE
20857 Improve quality of tests for time stamp overflow.
20858 For example, without this patch (encode-time 0 0 0 1 1
20859 1152921504606846976) returns the obviously-bogus value (-948597
20860 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
20861 reports time overflow. See
20862 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
20863 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
20864 * editfns.c: Include limits.h and intprops.h.
20865 (TIME_T_MIN, TIME_T_MAX): New macros.
20866 (time_overflow): Move earlier, to before first use.
20867 (hi_time, lo_time): New functions, for an accurate test for
20868 out-of-range times.
20869 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
20870 (Fget_internal_run_time): Don't assume time_t fits in int.
20871 (make_time): Use list2 instead of Fcons twice.
20872 (Fdecode_time): More accurate test for out-of-range times.
20873 (check_tm_member): New function.
20874 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
20875 (lisp_time_argument): Don't rely on undefined left-shift and
20876 right-shift behavior when checking for time stamp overflow.
8be6f318 20877
fe31d94c
PE
20878 * editfns.c (time_overflow): New function, refactoring common code.
20879 (Fformat_time_string, Fdecode_time, Fencode_time):
20880 (Fcurrent_time_string): Use it.
20881
8be6f318
PE
20882 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
20883 * dired.c (make_time): Move to ...
20884 * editfns.c (make_time): ... here.
20885 * systime.h: Note the move.
20886
09d9db2c 208872011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 20888
126bc0dc
YM
20889 * fringe.c (update_window_fringes): Remove unused variables.
20890
c47cbdfd
YM
20891 * unexmacosx.c (copy_data_segment): Also copy __got section.
20892 (Bug#8223)
20893
7ac80be9
EZ
208942011-03-12 Eli Zaretskii <eliz@gnu.org>
20895
c96bbc66 20896 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
20897 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
20898 Constify `char *' arguments and their references according to
20899 prototypes in tparam.h.
20900
ecb0f94d 20901 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 20902
7ac80be9
EZ
20903 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
20904 Adapt all references accordingly.
20905
20906 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
20907
ef1fd07e
TT
209082011-03-11 Tom Tromey <tromey@redhat.com>
20909
20910 * buffer.c (syms_of_buffer): Remove obsolete comment.
20911
7ef4b50c
EZ
209122011-03-11 Eli Zaretskii <eliz@gnu.org>
20913
20914 * termhooks.h (encode_terminal_code): Declare prototype.
20915
20916 * msdos.c (encode_terminal_code): Don't declare prototype.
20917
20918 * term.c (encode_terminal_code): Now external again, used by
20919 w32console.c and msdos.c.
20920
44f230aa
SM
20921 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
20922 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 20923
4b1ec863 209242011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 20925
1714f52b 20926 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 20927
4b1ec863
PE
20928 * fringe.c (update_window_fringes): Mark locals as initialized
20929 (Bug#8227).
20930 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 20931
524c7aa6
PE
20932 * alloc.c (mark_fringe_data): Move decl from here ...
20933 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
20934 to check its interface.
20935 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
20936
a5c0af81 20937 * fontset.c (free_realized_fontset): Now static.
7519b8cd 20938 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 20939 (fontset_font): Mark local as initialized.
a9a06e0b 20940 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 20941
b4716021
PE
20942 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
20943
811e9bac 20944 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 20945 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
20946 (x_own_selection, Fx_disown_selection_internal): Rename locals
20947 to avoid shadowing.
20948 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 20949
7e3ab302
PE
20950 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
20951 so that the caller can use some name other than gcpro1.
20952 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
20953 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
20954 (Fx_backspace_delete_keys_p):
20955 Use them to avoid shadowing, and rename vars to avoid shadowing.
20956 (x_decode_color, x_set_name, x_window): Now static.
6b437900 20957 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 20958 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
20959 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
20960 Remove unused locals.
7e3ab302
PE
20961 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
20962 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
20963 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
20964 macros.
f78faa98 20965
e2b13473
PE
20966 * xterm.h (x_mouse_leave): New decl.
20967
77f23912
PE
20968 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
20969 Remove unused functions.
cdf4ba58
PE
20970 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
20971 (x_calc_absolute_position): Now static.
7411c686 20972 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 20973 Don't declare local "event" unless it's used.
ed7bf3a5
PE
20974 (x_iconify_frame, x_free_frame_resources): Don't declare locals
20975 unless they are used.
38d0b34a
PE
20976 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
20977 (x_fatal_error_signal): Remove; not used.
a6067996
PE
20978 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
20979 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
20980 (x_error_catcher, x_connection_closed, x_error_handler):
20981 (x_error_quitter, xembed_send_message, x_iconify_frame):
20982 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 20983 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 20984 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 20985
44f230aa
SM
20986 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
20987 Rename or move locals to avoid shadowing.
6b463e58 20988 (tty_defined_color, merge_face_heights): Now static.
5967d051 20989 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
20990 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
20991 does not deduce is never used uninitialized.
73719eba
PE
20992 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
20993 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 20994
426994c3 20995 * terminal.c (store_terminal_param): Now static.
5489860b 20996
032f1620 20997 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 20998 (set_frame_menubar): Remove unused local.
d4323972 20999 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
21000 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
21001 since they might point to immutable storage.
281585b0
PE
21002 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
21003 since it's unused otherwise.
032f1620 21004
367c19e5 21005 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 21006 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
21007 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
21008 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 21009 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
21010 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
21011 does not deduce are never used uninitialized.
70739cbe 21012
07b48fa9
PE
21013 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
21014
8868a238 21015 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
21016 * window.c (window_loop, size_window):
21017 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 21018
7e5cf297 21019 * window.c (display_buffer): Now static.
d6550a9f
PE
21020 (size_window): Mark variables that gcc -Wuninitialized
21021 does not deduce are never used uninitialized.
a586633d
PE
21022 * window.h (check_all_windows): New decl, to forestall
21023 gcc -Wmissing-prototypes diagnostic.
5b555da1 21024 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 21025
f6095868
PE
21026 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
21027 shadowing.
21028 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
21029 Include <limits.h>.
21030 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
21031 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
21032 (load_charset_map): Mark variables that gcc -Wuninitialized
21033 does not deduce are never used uninitialized.
53df7c11 21034 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 21035
f38b440c
PE
21036 * coding.c (coding_set_source, coding_set_destination):
21037 Use "else { /* comment */ }" rather than "else /* comment */;"
21038 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
21039 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
21040 a block, when the outer 'i' will do.
21041 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
21042 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
21043 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
21044 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
21045 (Fdecode_sjis_char, Fdefine_coding_system_internal):
21046 Rename locals to avoid shadowing.
21047 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
21048 * coding.c (emacs_mule_char, encode_invocation_designation):
21049 Now static, since they're not used elsewhere.
413bb2db 21050 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 21051 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
21052 (decode_coding_emacs_mule): Mark variables that gcc
21053 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
21054 (detect_coding_iso_2022): Initialize a local variable that might
21055 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 21056 this initialization is needed. (Bug#8211)
5f58e762
PE
21057 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
21058 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
21059 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
21060 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
21061 Remove unused macros.
f38b440c 21062
232b38b9 21063 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 21064 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 21065 * character.c (string_count_byte8): Likewise.
232b38b9 21066
fb90da1b
PE
21067 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
21068 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
21069
fb93dbc2
PE
21070 * chartab.c (copy_sub_char_table): Now static, since it's not used
21071 elsewhere.
5c156ace
PE
21072 (sub_char_table_ref_and_range, char_table_ref_and_range):
21073 Rename locals to avoid shadowing.
bbcd0949 21074 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 21075
7d3b3862 21076 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 21077 (BIDI_BOB): Remove unused macro.
7d3b3862 21078
6be7d3da
PE
21079 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
21080 deduce are never used uninitialized.
c2ed9c8b 21081 * term.c (encode_terminal_code): Likewise.
6be7d3da 21082
75f8807f 21083 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 21084
50938595
PE
21085 * tparam.h: New file.
21086 * term.c, tparam.h: Include it.
21087 * deps.mk (term.o, tparam.o): Depend on tparam.h.
21088 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
21089 Move these decls to tparam.h, and make them agree with what
21090 is actually in tparam.c. The previous trick of using incompatible
21091 decls in different modules does not conform to the C standard.
21092 All callers of tparam changed to use tparam's actual API.
21093 * tparam.c (tparam1, tparam, tgoto):
21094 Use const pointers where appropriate.
21095
fbceeba2
PE
21096 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
21097 * cm.h (struct cm): Likewise.
21098 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
21099 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
21100 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
21101 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
21102 (turn_on_face, init_tty): Likewise.
21103 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 21104
7f3f1250
PE
21105 * term.c (term_mouse_position): Rename local to avoid shadowing.
21106
e6ca6543
PE
21107 * alloc.c (mark_ttys): Move decl from here ...
21108 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
21109
c40f8d15
AS
211102011-03-11 Andreas Schwab <schwab@linux-m68k.org>
21111
21112 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
21113
cfe0661d
JB
211142011-03-09 Juanma Barranquero <lekktu@gmail.com>
21115
21116 * search.c (compile_pattern_1): Remove argument regp, unused since
21117 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
21118 (compile_pattern): Don't pass it.
21119
0afb4571
J
211202011-03-08 Jan Djärv <jan.h.d@swipnet.se>
21121
21122 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
21123 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
21124 for ! HAVE_GTK3.
21125 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
21126
21127 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
21128
21129 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
21130 gdk_window_get_screen, gdk_window_get_geometry,
21131 gdk_x11_window_lookup_for_display and GDK_KEY_g.
21132 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
21133 (xg_get_pixbuf_from_pixmap): New function.
21134 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
21135 to Pixmap, take frame as parameter, remove GdkColormap parameter.
21136 Call xg_get_pixbuf_from_pixmap instead of
21137 gdk_pixbuf_get_from_drawable.
21138 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
21139 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
21140 (xg_check_special_colors): Use GtkStyleContext and its functions
21141 for HAVE_GTK3.
21142 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
21143 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
21144 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
21145 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
21146 Call gtk_widget_get_preferred_size.
0afb4571
J
21147 (xg_frame_resized): gdk_window_get_geometry only takes 5
21148 parameters.
44f230aa
SM
21149 (xg_win_to_widget, xg_event_is_for_menubar):
21150 Call gdk_x11_window_lookup_for_display.
0afb4571
J
21151 (xg_set_widget_bg): New function.
21152 (delete_cb): New function.
895009e1 21153 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 21154 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
21155 (xg_set_background_color): Call xg_set_widget_bg.
21156 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
21157 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
21158 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
21159 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
21160 if ! HAVE_GTK3.
21161 (update_frame_tool_bar): Call gtk_widget_hide.
21162 (xg_initialize): Use GDK_KEY_g.
21163
21164 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
21165 if ! HAVE_GTK3
21166 (x_session_initialize): Call gdk_x11_set_sm_client_id.
21167
21168 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
21169 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
21170 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
21171
1c2cc4ef
JB
211722011-03-08 Juanma Barranquero <lekktu@gmail.com>
21173
21174 * w32xfns.c (select_palette): Check success of RealizePalette against
21175 GDI_ERROR, not zero.
21176
33383987 21177See ChangeLog.11 for earlier changes.
aac0c6e3
MR
21178
21179;; Local Variables:
21180;; coding: utf-8
aac0c6e3
MR
21181;; End:
21182
2f097256 21183 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
21184
21185 This file is part of GNU Emacs.
21186
21187 GNU Emacs is free software: you can redistribute it and/or modify
21188 it under the terms of the GNU General Public License as published by
21189 the Free Software Foundation, either version 3 of the License, or
21190 (at your option) any later version.
21191
21192 GNU Emacs is distributed in the hope that it will be useful,
21193 but WITHOUT ANY WARRANTY; without even the implied warranty of
21194 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21195 GNU General Public License for more details.
21196
21197 You should have received a copy of the GNU General Public License
21198 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.