* process.c (wait_reading_process_output): Clean up last change.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
85fabcb7
CY
12012-11-03 Chong Yidong <cyd@gnu.org>
2
3 * process.c (wait_reading_process_output): Clean up the last
4 change.
5
893cc455
CY
62012-11-03 Jim Paris <jim@jtan.com> (tiny change)
7
8 * process.c (wait_reading_process_output): Avoid a race condition
9 with SIGIO delivery (Bug#11536).
10
0f7b074f
CY
112012-11-03 Chong Yidong <cyd@gnu.org>
12
13 * buffer.c (cursor_type): Untabify docstring.
14
3737fee7
DA
152012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
16
17 * frame.h (struct frame): Drop can_have_scroll_bars member
18 which is meaningless for a long time. Adjust comments.
19 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
20 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
21
b6a9e8b1
DA
222012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
23
24 * window.c (decode_next_window_args): Update window arg after
25 calling decode_live_window and so fix crash reported at
26 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
27 by Juanma Barranquero <lekktu@gmail.com>.
28 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
29 * font.c (Ffont_at): Likewise.
30
600d4768
JD
312012-11-01 Jan Djärv <jan.h.d@swipnet.se>
32
33 * widget.c (resize_cb): New function.
34 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
35 (EmacsFrameResize): Check if all is up to date before changing frame
36 size.
37
1005b4b9
EZ
382012-11-02 Eli Zaretskii <eliz@gnu.org>
39
40 Implement backtrace output for fatal errors on MS-Windows.
41 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
42 (BACKTRACE_LIMIT_MAX): New macro.
43 (w32_backtrace): New function.
44 (emacs_abort): Use w32_backtrace when the user chooses not to
45 attach a debugger. Update the text of the abort dialog.
46
b9e9df47
DA
472012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
48
49 Window-related stuff cleanup here and there.
50 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
51 Use decode_any_window.
52 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
53 * xdisp.c (Fformat_mode_line): Likewise.
54 * font.c (Ffont_at): Use decode_live_window.
55 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
56 * window.c (decode_next_window_args): Likewise.
57 (decode_any_window): Remove static.
58 * window.h (decode_any_window): Add prototype.
59 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
60 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
61 respectively.
62
2b371ff7
DA
632012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
64
65 Remove pad from struct input_event.
66 * termhooks.h (struct input_event): Remove padding field.
67 Adjust comment.
68 * keyboard.c (event_to_kboard): Simplify because frame_or_window
69 member is never cons for a long time. Adjust comment.
70 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
71 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
72 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
73 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
74
7e8b50d9
EZ
752012-11-01 Eli Zaretskii <eliz@gnu.org>
76
77 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
78
322aea6d
PE
792012-10-31 Paul Eggert <eggert@cs.ucla.edu>
80
81 Fix crash when using Emacs as commit editor for git (Bug#12697).
82 * callproc.c (setpgrp): Remove macro, as we now use setpgid
83 and it is configured in conf_post.h.
84 (Fcall_process): Don't invoke both setsid and setpgid; the former
85 is enough, if it exists.
86 * callproc.c (Fcall_process, child_setup):
87 * process.c (create_process): Use setpgid.
88 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
89 for the real thing.
90 * dispnew.c (init_display): Initialize the foreground group
91 if we are running a tty display.
92 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
93 * lisp.h (init_foreground_group): New decl.
94 * sysdep.c (inherited_pgroup): New static var.
95 (init_foreground_group, tcsetpgrp_without_stopping)
96 (narrow_foreground_group, widen_foreground_group): New functions.
97 (init_sys_modes): Narrow foreground group.
98 (reset_sys_modes): Widen foreground group.
99
220cb2bd
MA
1002012-10-31 Michael Albinus <michael.albinus@gmx.de>
101
102 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
103
218e997a
MR
1042012-10-31 Martin Rudalics <rudalics@gmx.at>
105
106 * minibuf.c (read_minibuf): Restore current buffer since
107 choose_minibuf_frame calling Fset_frame_selected_window may
108 change it (Bug#12766).
109
02615da0
JD
1102012-10-30 Jan Djärv <jan.h.d@swipnet.se>
111
112 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
113
aee5b18e
KH
1142012-10-30 Kenichi Handa <handa@gnu.org>
115
116 * font.c (Ffont_at): If WINDOW is specified and it is not
117 displaying the current buffer, signal an error.
118
ba116008
DC
1192012-10-29 Daniel Colascione <dancol@dancol.org>
120
121 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode): In
122 preparation for fixing bug#12739, move these functions from
123 here...
124
125 * coding.h, coding.c: ... to here, and compile them only when
53372c27
DC
126 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
127 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
ba116008 128
640bf8ad
EZ
1292012-10-28 Eli Zaretskii <eliz@gnu.org>
130
131 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
132 (timer_loop, getitimer, setitimer): Use it instead of
133 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
134 'clock'.
135 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
136 literal 10000.
137
64ccff5f
JD
1382012-10-28 Jan Djärv <jan.h.d@swipnet.se>
139
140 * nsterm.m (NO_APPDEFINED_DATA): New define.
141 (last_appdefined_event_data): New variable
142 (last_appdefined_event): Remove.
143 (ns_select): Initialize t from last_appdefined_event_data instead
144 of [last_appdefined_event data1].
145 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
146 remove last_appdefined_event (Bug#12698).
147
e483264c
SM
1482012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
149
150 * frame.c (x_set_font): Catch internal error.
151
6c16c13e
EZ
1522012-10-27 Eli Zaretskii <eliz@gnu.org>
153
e483264c
SM
154 Avoid overflow in w32 implementation of interval timers.
155 When possible, for ITIMER_PROF count only times the main thread
6c16c13e
EZ
156 actually executes.
157 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
2e612797
EZ
158 'volatile ULONGLONG' types. All the other data which was
159 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
6c16c13e
EZ
160 (GetThreadTimes_Proc): New typedef.
161 (w32_get_timer_time): New function, returns a suitable time value
162 for the timer.
163 (timer_loop): Enter critical section when accessing ULONGLONG
164 values of the itimer_data struct, as these accesses are no longer
e483264c
SM
165 atomic. Call 'w32_get_timer_time' instead of 'clock'.
166 Remove unused variable.
6c16c13e
EZ
167 (init_timers): Initialize s_pfn_Get_Thread_Times.
168 (start_timer_thread): Don't assign itimer->caller_thread here.
169 (getitimer): Assign itimer->caller_thread here.
170 (setitimer): Always call getitimer to get the value of ticks_now.
2f246cd3 171 (sys_spawnve): Avoid compiler warning about format mismatch.
6c16c13e 172
ccc83f50
EZ
1732012-10-26 Eli Zaretskii <eliz@gnu.org>
174
175 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
176 mouse movement events if the menu bar is active. This avoids
177 producing a busy "hour-glass" cursor by Windows if the mouse
178 pointer is positioned over a tooltip shown for some menu item.
179
69deda53
PE
1802012-10-25 Paul Eggert <eggert@cs.ucla.edu>
181
182 Don't assume process IDs fit in int.
183 * emacs.c (shut_down_emacs) [!DOS_NT]:
184 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
185 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
186 Use pid_t, not int, to store process IDs, as 'int'
187 is not wide enough on a few platforms (e.g., AIX and IRIX).
188
7e70a152
KH
1892012-10-23 Kenichi Handa <handa@gnu.org>
190
191 The following change is to make face-font-rescale-alist work
192 correctly for non-ASCII fonts.
193
194 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
195 (font_open_for_lface): Handle Vface_font_rescale_alist.
196
49238e7f
CY
1972012-10-23 Chong Yidong <cyd@gnu.org>
198
199 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
200
5ec86886
JD
2012012-10-21 Jan Djärv <jan.h.d@swipnet.se>
202
ef446959
JD
203 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
204 for screen font.
205 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
206
5ec86886
JD
207 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
208 event (Bug#12681).
209
ee7a418d
GM
2102012-10-21 Glenn Morris <rgm@gnu.org>
211
212 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
213
4973679b
PE
2142012-10-20 Paul Eggert <eggert@cs.ucla.edu>
215
216 Port to OpenBSD 5.1.
217 * frame.c (Fmouse_position, Fmouse_pixel_position):
218 * xdisp.c (produce_stretch_glyph):
219 Declare local vars only when they're needed.
220 This is clearer and avoids a warning on OpenBSD about unused vars.
221 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
222 This is safer, and avoids OpenBSD warnings about unused vars.
223 * keyboard.c (record_menu_key): Remove unnecessary decl.
224 (poll_timer): Define only if POLL_FOR_INPUT is defined.
225 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
226 as our definition clashes with OpenBSD's.
227 * xfaces.c (load_face_colors, check_lface_attrs)
228 (get_lface_attributes_no_remap, get_lface_attributes)
229 (lface_fully_specified_p, x_supports_face_attributes_p)
230 (tty_supports_face_attributes_p, face_fontset, realize_face)
231 (realize_x_face, realize_tty_face):
232 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
233 merely Lisp_Object *. This is more informative and avoids
234 a warning on OpenBSD about accessing beyond an object's size.
235
c664f463
CY
2362012-10-20 Chong Yidong <cyd@gnu.org>
237
238 * lread.c (Fload): Doc fix (Bug#12592).
239
6ec83f92 2402012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
a0d7415f
KH
241
242 * font.c (Ffont_at): Fix previous change.
243
d2824928
EZ
2442012-10-19 Eli Zaretskii <eliz@gnu.org>
245
e483264c
SM
246 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
247 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
c052c554
EZ
248 for the reasons.
249
d2824928
EZ
250 * alloc.c (NSTATICS): Decrease to 0x800.
251
f60d391f
SM
2522012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
253
254 * fns.c (Fnreverse): Include the problem element when signalling an
255 error (bug#12677).
256
1a9327d5
JD
2572012-10-18 Jan Djärv <jan.h.d@swipnet.se>
258
259 * nsterm.m (ns_select): Check writefds before call to
260 FD_ISSET (Bug#12668).
261
14145a1e
DC
2622012-10-18 Daniel Colascione <dancol@dancol.org>
263
264 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
265 (staticpro): If we run out of staticpro slots, die with an
266 informative error instead of just calling emacs_abort.
267
1f76f6f5
MR
2682012-10-18 Martin Rudalics <rudalics@gmx.at>
269
270 Fix two flaws reported by Dmitry Antipov.
271 * window.c (Ftemp_output_buffer_show): Remove.
272 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
273 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
274
fcf14875
EZ
2752012-10-17 Eli Zaretskii <eliz@gnu.org>
276
1f76f6f5
MR
277 * makefile.w32-in ($(BLD)/w32.$(O)):
278 ($(BLD)/vm-limit.$(O)):
279 ($(BLD)/term.$(O)):
280 ($(BLD)/unexw32.$(O)):
281 ($(BLD)/fileio.$(O)):
a68089e4
EZ
282 ($(BLD)/dispnew.$(O)): Update dependencies.
283
284 * w32term.h (w32_initialize_display_info, initialize_w32_display):
285 Add prototypes.
286
287 * w32proc.c: Include ctype.h.
288
289 * w32.h (init_environment, check_windows_init_file)
290 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
291 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
292 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
293 (sys_link): Add prototypes.
294
295 * w32.c: Include w32select.h.
296 (sys_access, e_malloc, sys_select): Add prototypes.
297 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
298
299 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
300
301 * unexw32.c: Include lisp.h and w32.h.
302
303 * term.c [WINDOWSNT]: Include w32term.h.
304
305 * process.c [WINDOWSNT]: Add prototype of sys_select.
306
307 * fileio.c [WINDOWSNT]: Include w32.h.
308
309 * dispnew.c [WINDOWSNT]: Include w32.h.
310
fcf14875
EZ
311 * cygw32.c (Fcygwin_convert_path_to_windows)
312 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
313 Lisp_Object values. (Bug#12661)
314
315 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
316 to Lisp_Object. (Bug#12661)
317
fe0b1ec4
KH
3182012-10-17 Kenichi Handa <handa@gnu.org>
319
320 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
321 invalidate.
322
d556ebf9
DA
3232012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
324
325 * buffer.c (Fkill_buffer): When unchaining the marker,
1f9f395d 326 reset its buffer pointer to NULL (Bug#12652).
d556ebf9 327
f0863a54
DA
3282012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
329
330 Do not verify indirection counters of killed buffers (Bug#12579).
331 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
332 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
333
12fbe755
DA
3342012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
335
336 * alloc.c (Fmake_byte_code): Fix typo in comment.
337 * print.c (print_interval): Define as static to match prototype.
338 * indent.c (disptab_matches_widthtab, recompute_width_table):
339 Convert to eassert.
340
61655b89
DA
3412012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
342
343 * editfns.c (get_system_name): Remove.
344 * lisp.h (get_system_name): Remove prototype.
345 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
346 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
347
9520f2f2
DC
3482012-10-15 Daniel Colascione <dancol@dancol.org>
349
350 * dbusbind.c: Add comment explaining reason for previous change.
351
dca778d5
MR
3522012-10-15 Martin Rudalics <rudalics@gmx.at>
353
354 * window.c (Fwindow_end): Rewrite check whether cached position
355 can be used (Bug#12600).
356 (resize_frame_windows, grow_mini_window, shrink_mini_window):
357 Set windows_or_buffers_changed.
358
3e0341b0
DC
3592012-10-15 Daniel Colascione <dancol@dancol.org>
360
361 * dbusbind.c: Fix cygw32 build break when compiling with dbus
362 enabled by undefining the symbol "interface", which the platform
363 headers define to something incompatible.
364
33d4113c
DC
3652012-10-14 Daniel Colascione <dancol@dancol.org>
366
367 * image.c (init_tiff_functions, init_imagemagick_functions)
368 (init_svg_functions): Fix cygw32 build break by using these
369 functions only when WINDOWSNT _and_ HAVE_NTGUI.
370
a36fb15e
JD
3712012-10-14 Jan Djärv <jan.h.d@swipnet.se>
372
373 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
374
537f336d
JD
3752012-10-13 Jan Djärv <jan.h.d@swipnet.se>
376
377 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
378
0ba06a77
KH
3792012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
380
381 * coding.c (detect_coding): Set coding->id before calling
382 this->detector.
383
ce2fe65a
AS
3842012-10-13 Andreas Schwab <schwab@linux-m68k.org>
385
386 * fileio.c: Formatting fixes.
387
d6453ce4
PE
3882012-10-13 Paul Eggert <eggert@cs.ucla.edu>
389
390 Fix some stat-related races.
391 * fileio.c (Fwrite_region): Avoid race condition if a file is
392 removed or renamed by some other process immediately after Emacs
393 writes it but before Emacs stats it. Do not assume that stat (or
394 fstat) succeeds.
395 * image.c (slurp_file): Resolve the file name with fopen + fstat
396 rather than stat + fopen.
397 (pbm_read_file) [0]: Remove unused code with stat race.
398 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
399 Remove ineffective code with stat race.
400
06485aa8
SM
4012012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
402
403 * doc.c (get_doc_string): Don't signal an error if the file is missing.
404
167e3640
JD
4052012-10-12 Jan Djärv <jan.h.d@swipnet.se>
406
407 * nsterm.m (hold_event_q): New static variable.
408 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
409 ! q_event_ptr.
410 (hold_event): New function.
411 (ns_read_socket): If hold_event_q have events, store them and
412 return (Bug#12384).
413 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
414 is zero (Bug#12384).
415
c40239df
JB
4162012-10-12 Juanma Barranquero <lekktu@gmail.com>
417
418 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
419
bb385a92
EZ
4202012-10-12 Eli Zaretskii <eliz@gnu.org>
421
2a9f1099
EZ
422 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
423
bb385a92
EZ
424 * fileio.c (check_existing): New function.
425 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
426 instead of calling 'stat', when what's needed is to check whether
427 a file exists. This avoids expensive system calls on MS-Windows.
428 (Bug#12587)
429
8599b23a 430 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
bb385a92
EZ
431
432 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
433 determine whether a file exists and is not a directory.
434
435 * lisp.h (check_existing): Add prototype.
436
2b9c2e68
JD
4372012-10-12 Jan Djärv <jan.h.d@swipnet.se>
438
439 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
440
81749a23
GM
4412012-10-12 Glenn Morris <rgm@gnu.org>
442
443 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
444
5253a5fd
SM
4452012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
446
389a94a5
SM
447 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
448
5253a5fd
SM
449 * eval.c (Fautoload): Remember previous autoload status in load-history.
450
7cded46f
PE
4512012-10-11 Paul Eggert <eggert@cs.ucla.edu>
452
453 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
454 * lread.c (load_each_byte, new_backquote_flag, readchar)
455 (read_filtered_event, lisp_file_lexically_bound_p)
456 (safe_to_load_version, Fload, complete_filename_p, openp)
457 (build_load_history, readevalloop, read_escape, read1)
458 (string_to_number, read_vector, read_list):
459 * macros.c (Fstart_kbd_macro):
460 * marker.c (CONSIDER):
461 * menu.c (parse_single_submenu, digest_single_submenu)
462 (find_and_return_menu_selection, Fx_popup_menu):
463 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
464 (Ftry_completion):
465 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
466 (ns_menu_show):
467 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
468 (xmenu_show, xdialog_show):
469 Use bool for booleans.
470 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
471 as it's not a predicate. All uses changed. Omit unnecessary
472 buffer termination.
473
549c3414
DA
4742012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
475
476 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
477 (save_excursion_restore): Do not restore mark if it was not saved.
478
e85aafe7
PE
4792012-10-11 Paul Eggert <eggert@cs.ucla.edu>
480
fd2f90cf
PE
481 * marker.c (cached_modiff): EMACS_INT, not int.
482
c1af190b
PE
483 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
484 instead of having a wrong decl.
e85aafe7
PE
485 * nsmenu.m (waiting_for_input): Remove wrong decl.
486
e738ca56
PE
4872012-10-10 Paul Eggert <eggert@cs.ucla.edu>
488
9fa1de30
PE
489 keyboard.c, keymap.c: Use bool for booleans.
490 * dispnew.c (sit_for): Distinguish between 3-way display_option
491 and boolean do_display.
492 * keyboard.c (single_kboard, this_command_key_count_reset)
493 (waiting_for_input, echoing, immediate_quit, input_pending)
494 (interrupt_input, interrupts_deferred, pop_kboard)
495 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
496 (command_loop_1, adjust_point_for_property)
497 (safe_run_hooks_error, input_polling_used, read_char):
498 (help_char_p, readable_events, kbd_buffer_events_waiting)
499 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
500 (lucid_event_type_list_p, get_input_pending):
501 (gobble_input, menu_separator_name_p, menu_bar_item)
502 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
503 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
504 (keyremap_step, test_undefined, read_key_sequence)
505 (detect_input_pending, detect_input_pending_ignore_squeezables)
506 (detect_input_pending_run_timers, requeued_events_pending_p)
507 (quit_throw_to_read_char, Fset_input_interrupt_mode):
508 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
509 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
510 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
511 (accessible_keymaps_1, Fkey_description, push_key_description):
512 (shadow_lookup, struct where_is_internal_data)
513 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
514 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
515 (describe_map, describe_vector):
516 * menu.c (single_menu_item):
517 * nsmenu.m (ns_update_menubar):
518 * process.c (wait_reading_process_output):
519 * search.c (scan_buffer, scan_newline):
520 Use bool for boolean.
521 * keyboard.c (timers_run, swallow_events)
522 (detect_input_pending_run_timers):
523 * process.c (wait_reading_process_output):
524 Use unsigned for counter where wraparound-on-overflow is desired,
525 since unsigned is guaranteed to have that behavior and signed is not.
526 (read_char): Use ptrdiff_t for string length.
527 (get_input_pending): Remove first argument, since it was always
528 the same pointer-to-int (now pointer-to-boolean) &input_pending,
529 and behave as if it had that value. Return new value of
530 input_pending. All callers changed.
531 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
532 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
533 a string length.
534 * keymap.c (push_key_description): Omit last arg, which was always 1.
535 All callers changed.
536
e738ca56
PE
537 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
538
29f21cdf
JB
5392012-10-10 Juanma Barranquero <lekktu@gmail.com>
540
541 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
542 ($(BLD)/term.$(O)): Update dependencies.
543
6aea7528
DA
5442012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
545
546 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
547 * lisp.h (enum pvec_type): Adjust comments and omit explicit
548 initializer for PVEC_NORMAL_VECTOR.
549
5f3f57be
PE
5502012-10-10 Paul Eggert <eggert@cs.ucla.edu>
551
552 Clean out old termopts cruft.
553 * termopts.h (flow_control, meta_key): Remove unused decls.
554 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
555 Don't include termopts.h.
556
3e98c68e
DA
5572012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
558
559 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
560
77e344e5
PE
5612012-10-10 Paul Eggert <eggert@cs.ucla.edu>
562
563 * commands.h (immediate_quit): Remove duplicate decl.
564
5683d7cd
JD
5652012-10-09 Jan Djärv <jan.h.d@swipnet.se>
566
567 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
568 caching.
569 (nsfont_open): Remove setting of Vfonts_in_cache.
1f9f395d 570 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
5683d7cd 571
cf5fc6db
EZ
5722012-10-09 Eli Zaretskii <eliz@gnu.org>
573
b15736e6
EZ
574 * w32fns.c (w32_last_error): Change the return value to DWORD, to
575 match what GetLastError returns. Explain why the function is
576 needed.
577
cf5fc6db
EZ
578 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
579 'is_tooltip_frame', to avoid confusion with its global namesake.
580
f99714ce
DC
5812012-10-08 Daniel Colascione <dancol@dancol.org>
582
583 * xdisp.c (start_hourglass): Call w32_note_current_window when
2b1f11ed
EZ
584 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
585 build that caused Emacs to display the hourglass cursor forever.
f99714ce 586
fd59cb29
GM
587 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
588 which is broken under remote desktop, calculate the number of
589 colors available for a display based on the display's number of
590 planes and number of bits per pixel per plane. (bug#10397).
591
62c480c9 5922012-10-08 Jan Djärv <jan.h.d@swipnet.se>
fd59cb29 593
62c480c9
JD
594 * nsfont.m (Vfonts_in_cache): New variable.
595 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
596 are used. Add cached fonts to Vfonts_in_cache.
597 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
598
607446ba
JB
5992012-10-08 Juanma Barranquero <lekktu@gmail.com>
600
fd5125ad
JB
601 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
602 in nt/config.nt.
46979e0b
JB
603 (FONT_H): Define after FRAME_H.
604 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
605 Update dependencies.
fd5125ad 606
607446ba
JB
607 * w32term.c: Remove leftover declaration of keyboard_codepage.
608
b6f4e300
EZ
6092012-10-08 Eli Zaretskii <eliz@gnu.org>
610
c54ebba4
EZ
611 * makefile.w32-in (FONT_H): Add $(FRAME_H).
612 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
613 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
614 (GLOBAL_SOURCES): Add cygw32.c.
fd59cb29
GM
615 ($(BLD)/unexw32.$(O)):
616 ($(BLD)/w32.$(O)):
617 ($(BLD)/w32console.$(O)):
618 ($(BLD)/w32fns.$(O)):
619 ($(BLD)/w32heap.$(O)):
620 ($(BLD)/w32menu.$(O)):
15c720a3 621 ($(BLD)/w32proc.$(O)): Add w32common.h.
c54ebba4 622
b6f4e300
EZ
623 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
624 'const char *'.
625 (x_to_w32_color): Don't modify the argument, modify a copy instead.
626
501199a3
DC
6272012-10-08 Daniel Colascione <dancol@dancol.org>
628
629 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
630 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
631 accidental message numbering hole. Change other messages to
632 match.
633
634 * w32select.h (HAVE_W32SELECT): Remove.
635
636 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
1f9f395d 637 w32common.h instead of w32heap.h.
501199a3
DC
638
639 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
640 (get_allocation_unit, get_processor_type, get_w32_major_version)
641 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
642 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
643 (OS_NT, os_subtype, cache_system_info): Move declarations to
644 w32common.
645
646 * w32heap.c: Include w32common.h.
647 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
8599b23a
SM
648 (w32_minor_version, w32_build_number, w32_subtype):
649 Remove duplicate definitions.
501199a3
DC
650
651 * w32fns.c: Include w32common.h; include w32heap.h only in
652 WINDOWSNT.
653
654 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
655 Use `report_file_error' instead of `error' in order to better
656 inform users of what went wrong. Increase NTGUI_UNICODE file
657 dialog box file name length to 32k, the maximum allowed by the NT
658 kernel.
659
660 * w32common.h: New file.
661 (ROUND_UP, ROUND_DOWN, get_page_size)
662 (get_allocation_unit, get_processor_type, get_w32_major_version)
663 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
664 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
665 (OS_NT, os_subtype, cache_system_info): Move here.
666
667 * unexw32.c, unexcw.c: Include w32common.h.
668
669 * emacs.c (main): Use (defined (WINDOWSNT) || defined
670 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
671 to call syms_of_w32select.
672
673 * cygw32.h: Remove obsolete EXFUN declarations.
674
675 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
676
677 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
678 of w32inevt.o from SOME_MACHINE_OBJECTS.
679
93aa5c81
DC
6802012-10-08 Daniel Colascione <dancol@dancol.org>
681
682 * image.c: Permanent fix for JPEG compilation issue --- limit
683 jpeglib `boolean' redefinition to Cygwin builds.
684
d424f3d8
EZ
6852012-10-08 Eli Zaretskii <eliz@gnu.org>
686
8ee4c6ce
EZ
687 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
688
d424f3d8
EZ
689 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
690 Cygwin.
691
e08348a0
DC
6922012-10-08 Daniel Colascione <dancol@dancol.org>
693
694 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
695 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
696 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
697 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
698 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
699 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
700 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
701 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
702 now a supported configuration.
703
704 * Makefile.in: consolidate image variables into LIBIMAGE; add
705 W32_OBJ and W32_LIBS. Compile new files.
706
707 * conf_post.h:
708 (_DebPrint) declare tracing facility for W32 debugging. We need
709 to unify tracing later.
710
711 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
712 unconditional use of W32 Unicode functions. Cygwin runs only on
713 100% Unicode operating systems.
714
715 * cygw32.c: New file. Define Cygwin-specific facilities.
716 (Fcygwin_convert_path_to_windows)
717 (Fcygwin_convert_path_from_windows): New user functions for
718 accessing Cygwin path-munging routines.
719
720 * cygw32.h: New file.
721 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
722 UTF-16LE strings temporarily inside non-Lisp-visible string
723 objects.
724
725 (w32_strerror): Just what it says on the tin.
726
727 * emacs.c: Make the NS fork-then-exec code for daemon-launching
728 also run for Cygwin; both systems have the same problem with using
729 GUI facilities in a forked child. Also call syms_of_cygw32,
730 syms_of_w32select in correct places.
731
732 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
733 needs fork-then-exec for daemon launching.
734
735 * font.h: Include frame.h.
736
737 * image.c: Use the image library cache machinery only when we're
738 compiling for native WINDOWSNT; Cygwin can use shared libraries
739 like any other Unixlike system.
740
741 * keyboard.c: Clarify a comment regarding the input loop.
742
743 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
744 functions directly instead of trying to detect at runtime that our
745 host operating system supports them. We make this change for two
746 reasons: Cygwin lacks support for the multibyte character
747 conversion functions used by the legacy menu code, and Cygwin
748 never needs to rely on non-Unicode APIs.
749
750 * unexw32.c (hinst): Declare extern.
751
752 * w32.c: Change header order;
753 (w32_strerror): Move to w32fns.c because we need it for
754 non-WINDOWSNT builds.
755
756 * w32.h: Add #error macro to make sure we don't include w32.h for
757 Cygwin builds. Remove w32select declarations.
758
759 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
1f9f395d 760 w32fns.c. w32console.c is WINDOWSNT-only.
e08348a0
DC
761
762 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
763 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
764 POSIXy alternative.
765 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
766 (w32_major_version, w32_minor_version, w32_build_number)
767 (os_subtype, sound_type): Define here
768 (w32_defined_color): Make color parameter const for consistency
769 with other _defined_color functions.
770 (w32_createwindow): Unconditionally call w32_init_class instead of
771 doing so only when hprevinst is non-NULL. Plumbing hprevinst
772 through the code is complex and unnecessary because class
773 registration is practically free.
774 (w32_name_of_message): New EMACSDEBUG-only function.
775 (Fset_message_beep): Move here
776 (Fx_open_connection): Require that the display name for Windows be
777 "w32" for consistency, emacsclient disambiguation, and maybe, one
778 day, multi-window-system support.
779 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
780 Cygwin files for W32 GUI facilities, since these clearly don't
781 expect Cygwin names.
782 (_DebPrint): Define.
783 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
784 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
785 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
786 (w32_last_error): Remove.
787
788 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
789
790 * w32heap.c (syspage_mask): Declare here.
791 (cache_system_info): Remove.
792
793 * w32inevt.c (faked_key): Define globally, not statically.
794 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
795 (w32_console_toggle_lock_key): Move to w32fns.c.
796
797 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
798
799 * w32proc.c (_DebPrint): Move to w32fns.c.
800 * w32select.c: Include string.h, stdio.h for Cygwin.
801 * w32select.h: New File.
802
803 * w32term.c: Include io.h for non-CYGWIN builds; needed for
804 get_osfhandle.
805 (w32_message_fd): New variable. Under Cygwin, holds the file
806 descriptor the system used to tell us about pending thread
807 messages.
808
809 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
810 that prevented compilation under non-WINDOWSNT systems.
811
812 (w32_initialize): Open /dev/windows and assign it to
813 w32_message_fd. Provide w32 feature.
814
815 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
816 (WM_EMACS_INPUT_READY): add.
817 (prepend_msg, w32_message_fd): Declare globally.
818
819 * w32xfns.c:
820 (keyboard_handle): Use only when WINDOWSNT.
821 (notify_msg_ready): New function. Posts a message to the main
822 thread's message queue under CYGWIN, which wakes up the main
823 thread from select(2) by making the /dev/windows file descriptor
824 ready. Under WINDOWSNT, it sets an event the same way the old
825 code did.
826
827 (post, prepend_msg): Actually call notify_msg_ready instead of
828 setting the input event directly.
829
98daa893
EZ
8302012-10-07 Eli Zaretskii <eliz@gnu.org>
831
832 * ralloc.c (relinquish): If a heap is ready to be relinquished,
833 but it still has blocs in it, don't return it to the system,
834 instead of aborting. (Bug#12402)
835
3bc0a2f7
JD
8362012-10-07 Jan Djärv <jan.h.d@swipnet.se>
837
8ad5b73b 838 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
493b5b1c 839
335f5ae4
JD
840 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
841 MAC_OS_X_VERSION_10_6.
8ad5b73b
JD
842 (syms_of_nsterm): Remove comment about Panther and above for
843 ns-antialias-text.
335f5ae4
JD
844 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
845 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
846 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
847
848 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
849 MAC_OS_X_VERSION_10_4.
850
8ad5b73b
JD
851 * nsmenu.m (fillWithWidgetValue:): Remove code for <
852 MAC_OS_X_VERSION_10_2.
335f5ae4
JD
853
854 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
855
856 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
857 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
858
3bc0a2f7
JD
859 * nsterm.m (ns_in_resize): Remove (Bug#12479).
860 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
8599b23a
SM
861 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
862 Remove ns_in_resize check.
3bc0a2f7
JD
863 (ns_clear_frame_area): Remove resize handle code.
864
865 * nsfns.m (ns_in_resize): Remove.
e483264c
SM
866 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
867 Remove ns_in_resize check.
3bc0a2f7 868
c622b48f
PE
8692012-10-07 Paul Eggert <eggert@cs.ucla.edu>
870
871 Improve sys_siglist detection.
872 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
873 defined as a macro, as is done in Solaris.
874 (sys_siglist_entries): New macro.
875 (save_strsignal): Use it.
876 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
877 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
878
04fafa46
JD
8792012-10-06 Jan Djärv <jan.h.d@swipnet.se>
880
881 * nsfns.m (Fx_create_frame): Call x_default_parameter with
882 fullscreen/Fullscreen.
883
884 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
885 tobar_height is new.
886
887 * nsterm.m (x_make_frame_visible): Check for fullscreen.
888 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
889 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
890 (windowDidResize:): Check for correct window if old style fullscreen.
891 Capitalize word in comment. Remove incorrect comment.
892 (initFrameFromEmacs:): tbar_height renamed tibar_height.
893 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
894 error in drawing background.
1f9f395d 895 (toggleFullScreen:): Remove comment. Rearrange calls.
04fafa46
JD
896 Set toolbar values to zero, save old height in tobar_height.
897 Restore tool bar height when leaving fullscreen.
898 (canBecomeMainWindow): New function.
899
c6e21c03
PE
9002012-10-06 Paul Eggert <eggert@cs.ucla.edu>
901
902 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
903
0d9f584b
EZ
9042012-10-05 Eli Zaretskii <eliz@gnu.org>
905
a65fbb5f
EZ
906 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
907
0d9f584b 908 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
8599b23a
SM
909 that time stamps of directories could also be changed.
910 Don't request the too broad GENERIC_WRITE, only the more restrictive
0d9f584b
EZ
911 FILE_WRITE_ATTRIBUTES access rights.
912
913 * fileio.c (Fset_file_times): Special-case ignoring errors for
914 directories only on MSDOS, not on MS-Windows.
915
e8757f09 9162012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
ca347e3d
IK
917
918 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
919
7604f298
EZ
9202012-10-04 Eli Zaretskii <eliz@gnu.org>
921
922 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
923 see whether CreateFile failed.
924
88d69b7d
PE
9252012-10-04 Paul Eggert <eggert@cs.ucla.edu>
926
927 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
928 to avoid similar races.
929 * keyboard.c (pending_signals): Now bool, not int.
930
7509f454
PE
931 Port timers to OpenBSD, plus check for timer failures.
932 OpenBSD problem reported by Han Boetes.
933 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
934 and/or setitimer.
935 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
936 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
937 like OpenBSD, which has timer_settime but does not declare it.
938 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
939 whether to use itimerspec-related primitives. All uses of
940 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
941
a3c5c0c5
PE
9422012-10-02 Paul Eggert <eggert@cs.ucla.edu>
943
944 * profiler.c (handle_profiler_signal): Fix a malloc race
945 that caused Emacs to hang on Fedora 17 when profiling Lisp.
946
914e743b
JD
9472012-10-02 Jan Djärv <jan.h.d@swipnet.se>
948
949 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
950
d8ab37a8
EZ
9512012-10-02 Eli Zaretskii <eliz@gnu.org>
952
953 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
954 consistent with the change in return value of 'safe_strsignal'.
955
b3ecad33
PE
9562012-10-02 Paul Eggert <eggert@cs.ucla.edu>
957
0a99eee1
PE
958 Prefer plain 'static' to 'static inline' (Bug#12541).
959 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
960 (bidi_set_sor_type, bidi_push_embedding_level)
961 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
962 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
963 (bidi_cache_search, bidi_cache_ensure_space)
964 (bidi_cache_iterator_state, bidi_cache_find)
965 (bidi_peek_at_next_level, bidi_set_paragraph_end)
966 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
967 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
968 Now 'static', not 'static inline'.
969
b3ecad33
PE
970 Count overruns when profiling; change units to ns.
971 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
972 Give extra weight to samples after overruns, to attempt to count
973 the time more accurately.
974 (setup_cpu_timer): Change sampling interval units from ms to ns, since
975 the underlying primitives nominally do ns.
976 (Fprofiler_cpu_start): Document the change. Mention that
977 the sampling intervals are only approximate.
978
090cf9db
SM
9792012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
980
981 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
982
983 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
984 case for the special 0 coding-system.
985
986 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
987 (Fmake_overlay): Remove redundant tests.
64edc777 988 (fix_start_end_in_overlays): Remove redundant recentering.
090cf9db 989
81550bf4
JB
9902012-10-02 Juanma Barranquero <lekktu@gmail.com>
991
992 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
993 Update dependencies.
994
aa1ba90e
PE
9952012-10-01 Paul Eggert <eggert@cs.ucla.edu>
996
997 Fix a malloc race condition involving strsignal.
998 A signal can arrive in the middle of a malloc, and Emacs's signal
999 handler can invoke strsignal, which can invoke malloc, which is
1000 not portable. This race condition bug makes Emacs hang on GNU/Linux.
1001 Fix it by altering the signal handler so that it does not invoke
1002 strsignal.
1003 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
1004 * process.c (status_message): Use const pointer, in case strsignal
1005 is #defined to safe_strsignal.
1006 * sysdep.c (sys_siglist, init_signals): Always define and
1007 initialize a substitute sys_siglist if the system does not define
1008 one, even if HAVE_STRSIGNAL.
1009 (safe_strsignal): Rename from strsignal. Always define,
1010 using sys_siglist. Return a const pointer.
1011 * syssignal.h (safe_strsignal): New decl.
1012 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
1013
ace917bd
EZ
10142012-10-01 Eli Zaretskii <eliz@gnu.org>
1015
1016 * w32proc.c (timer_loop): Fix code that waits for timer
1017 expiration, to avoid high CPU usage.
1018
9eb71b9c
SM
10192012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
1020
1021 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
1022 (sweep_weak_table): Remove redundant prototypes.
1023
b3317662
FP
10242012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
1025
1026 * emacs.c: Move the inclusion of TERM_HEADER after including
1027 windows.h on WINDOWSNT. This avoids compilation problems with
1028 MSVC.
1029
f0e5f225
EZ
10302012-10-01 Eli Zaretskii <eliz@gnu.org>
1031
2d7d1608
EZ
1032 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
1033 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
1034 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
1035 as the previous version used 'void *'.
1036
1037 * ralloc.c (ROUNDUP): Fix last change.
1038 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
1039 'size_t'.
1040
f0e5f225
EZ
1041 * w32proc.c <disable_itimers>: New static flag.
1042 (init_timers): Initialize it to zero, after creating the critical
1043 sections used by the timer threads.
1044 (term_timers): Set to 1 before deleting the critical sections.
1045 (getitimer, setitimer): If disable_itimers is non-zero, return an
1046 error indication without doing anything. Reported by Fabrice
1047 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4cdfbb89
EZ
1048 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
1049 return results.
1050 [!HAVE_SETITIMER]: Behave as the previous version that didn't
1051 support timers.
f0e5f225
EZ
1052
1053 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
1054 term_ntproc after all the other bookkeeping, to get timers working
1055 as long as possible.
1056
82ef37c1
PE
10572012-10-01 Paul Eggert <eggert@cs.ucla.edu>
1058
b3a4c387
PE
1059 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
1060 Suggested by Juri Linkov in
1061 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
1062
b0ab8123
PE
1063 Prefer plain 'static' to 'static inline' (Bug#12541).
1064 With static functions, modern compilers inline pretty well by
1065 themselves; advice from programmers often hurts as much as it helps.
1066 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
1067 this change shrinks the text size of the Emacs executable by 1.1%
1068 without affecting CPU significantly in my benchmark.
1069 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
1070 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
1071 (mark_maybe_object, mark_maybe_pointer, bounded_number):
1072 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
1073 (bset_auto_fill_function, bset_auto_save_file_format)
1074 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
1075 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
1076 (bset_cache_long_line_scans, bset_case_fold_search)
1077 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
1078 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
1079 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
1080 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
1081 (bset_header_line_format, bset_indicate_buffer_boundaries)
1082 (bset_indicate_empty_lines, bset_invisibility_spec)
1083 (bset_left_fringe_width, bset_major_mode, bset_mark)
1084 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
1085 (bset_name, bset_overwrite_mode, bset_pt_marker)
1086 (bset_right_fringe_width, bset_save_length)
1087 (bset_scroll_bar_width, bset_scroll_down_aggressively)
1088 (bset_scroll_up_aggressively, bset_selective_display)
1089 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
1090 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
1091 (set_buffer_overlays_after):
1092 * category.c (bset_category_table):
1093 * charset.c (read_hex):
1094 * coding.c (produce_composition, produce_charset)
1095 (handle_composition_annotation, handle_charset_annotation)
1096 (char_encodable_p):
1097 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
1098 (assign_row, set_frame_matrix_frame, make_current)
1099 (add_row_entry):
1100 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
1101 * fns.c (maybe_resize_hash_table):
1102 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
1103 * gmalloc.c (register_heapinfo):
1104 * image.c (lookup_image_type):
1105 * intervals.c (set_interval_object, set_interval_left)
1106 (set_interval_right, copy_interval_parent, rotate_right)
1107 (rotate_left, balance_possible_root_interval):
1108 * keyboard.c (kset_echo_string, kset_kbd_queue)
1109 (kset_keyboard_translate_table, kset_last_prefix_arg)
1110 (kset_last_repeatable_command, kset_local_function_key_map)
1111 (kset_overriding_terminal_local_map, kset_real_last_command)
1112 (kset_system_key_syms, clear_event, set_prop):
1113 * lread.c (digit_to_number):
1114 * marker.c (attach_marker, live_buffer, set_marker_internal):
1115 * nsterm.m (ns_compute_glyph_string_overhangs):
1116 * process.c (pset_buffer, pset_command)
1117 (pset_decode_coding_system, pset_decoding_buf)
1118 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
1119 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
1120 (pset_status, pset_tty_name, pset_type, pset_write_queue):
1121 * syntax.c (bset_syntax_table, dec_bytepos):
1122 * terminal.c (tset_param_alist):
1123 * textprop.c (interval_has_some_properties)
1124 (interval_has_some_properties_list):
1125 * window.c (wset_combination_limit, wset_dedicated)
1126 (wset_display_table, wset_hchild, wset_left_fringe_width)
1127 (wset_left_margin_cols, wset_new_normal, wset_new_total)
1128 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
1129 (wset_right_fringe_width, wset_right_margin_cols)
1130 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
1131 (wset_vertical_scroll_bar_type, wset_window_parameters):
1132 * xdisp.c (wset_base_line_number, wset_base_line_pos)
1133 (wset_column_number_displayed, wset_region_showing)
1134 (window_box_edges, run_window_scroll_functions)
1135 (append_glyph_string_lists, prepend_glyph_string_lists)
1136 (append_glyph_string, set_glyph_string_background_width)
1137 (append_glyph, append_composite_glyph)
1138 (take_vertical_position_into_account):
1139 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
1140 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
1141 (lface_hash, lface_same_font_attributes_p, lookup_face):
1142 * xml.c (libxml2_loaded_p):
1143 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
1144 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
1145 Now 'static', not 'static inline'.
1146
05584c31
PE
1147 * bidi.c: Tune.
1148 (bidi_copy_it): Do the whole copy with a single memcpy.
1149 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
1150
86ec63ba
PE
1151 Revert the FOLLOW-SYMLINKS change for file-attributes.
1152 Doing it right would require several changes to Tramp, and there's
1153 not enough time to get that tested before the freeze today.
1154 * dired.c (directory_files_internal, Ffile_attributes):
1155 Undo last change.
1156
82ef37c1
PE
1157 * frame.c (x_report_frame_params): Port better to wider ints.
1158 Do not assume that EMACS_UINT is the same width as uprintmax_t,
1159 or that pointers can be printed in 15 decimal digits.
1160 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
1161
62aba0d4
FP
11622012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
1163
1164 Support x64 build on MS-Windows.
1165 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
1166 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
1167 compatibility with x64.
5e4daaf3 1168 (x_get_focus_frame): Add prototype.
62aba0d4
FP
1169
1170 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
1171 defining an XRectangle structure.
1172
1173 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
1174 arithmetics for compatibility with x64.
1175
1176 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
1177 compatibility with x64.
1178
1179 * w32heap.h: Adjust prototypes and declarations.
1180
1181 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
1182 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
1183 DWORD, long, and unsigned long, for compatibility with x64.
1184 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
1185 (sbrk): Argument is now of type ptrdiff_t.
1186
1187 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
1188 less than 0x0500.
1189 (w32_msg_pump): Use WPARAM type for 'result'.
1190
1191 * w32.c (init_environment, get_emacs_configuration): Support AMD64
1192 architecture.
1193 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
1194 compatibility with x64.
1195
1196 * vm-limit.c (lim_data): Now size_t.
1197 (check_memory_limits): Adjust prototypes of real_morecore and
1198 __morecore to receive argument of type ptrdiff_t. Use size_t for
1199 five_percent and data_size.
1200
1201 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
1202 variables, for compatibility with x64.
1203 (rva_to_section, offset_to_section, relocate_offset)
1204 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
1205 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
1206 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
1207 for compatibility with x64.
1208
1209 * sysdep.c (STDERR_FILENO): Define if not already defined.
1210
1211 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
1212 (__morecore): Argument type is now ptrdiff_t.
1213 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
1214 (relinquish): Use ptrdiff_t type for 'excess'.
1215 (r_alloc_sbrk): Argument type is now ptrdiff_t.
1216
1217 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
1218 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
1219 instead of a literal number.
1220
1221 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
1222 (min): Define only if not already defined.
1223
1224 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
1225 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
1226 hosts.
1227
1228 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
1229 'bitmaps' is a pointer.
1230
1231 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
1232
1233 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
1234
e7a2937b
PE
12352012-09-30 Paul Eggert <eggert@cs.ucla.edu>
1236
1237 file-attributes has a new optional arg FOLLOW-SYMLINKS.
1238 * dired.c (directory_files_internal, Ffile_attributes):
1239 New arg follow_symlinks. All uses changed.
1240
b43d62ae
SM
12412012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
1242
1243 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
1244
c06c382a
EZ
12452012-09-30 Eli Zaretskii <eliz@gnu.org>
1246
1247 Support atimers and CPU profiler via profile.c on MS-Windows.
1248 * w32proc.c (sig_mask, crit_sig): New static variables.
1249 (sys_signal): Support SIGALRM and SIGPROF.
1250 (sigemptyset, sigaddset, sigfillset, sigprocmask)
b43d62ae 1251 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
c06c382a
EZ
1252 sigfillset, and sigprocmask are no longer no-ops.
1253 (sigismember): New function.
1254 (struct itimer_data): New definition.
1255 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
1256 (crit_prof): New static variables.
1257 (MAX_SINGLE_SLEEP): New definition.
1258 (timer_loop, stop_timer_thread, term_timers, init_timers)
1259 (start_timer_thread, getitimer, setitimer): New functions.
1260 (alarm): No longer a no-op, calls setitimer.
1261
1262 * w32.c (term_ntproc): Call term_timers.
1263 (init_ntproc): Make sure all signals are unblocked at startup, to
1264 erase any traces of dumping. Call init_timers.
1265
1266 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
1267 Windows-specific code to display the hourglass mouse pointer is no
1268 longer used.
1269 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
1270 to hourglass timer expiration.
1271 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
1272 Remove, no longer used.
b43d62ae
SM
1273 (w32_note_current_window, show_hourglass, hide_hourglass):
1274 New functions, in support of hourglass cursor display similar to other
c06c382a
EZ
1275 window systems.
1276 (syms_of_w32fns): Don't initialize hourglass_timer.
1277
1278 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
1279 WINDOWSNT as well.
1280 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
1281
1282 * w32.h (init_timers, term_timers): Add prototypes.
1283
95402d5f
KH
12842012-09-30 Kenichi Handa <handa@gnu.org>
1285
1286 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
1287 to the buffer relocation which may be caused by ccl_driver.
1288
dd946752
JD
12892012-09-30 Jan Djärv <jan.h.d@swipnet.se>
1290
d7e642cc
JD
1291 * xfns.c (Fx_file_dialog): Update comment.
1292
1293 * w32fns.c (Fx_file_dialog): Update comment.
1294
1295 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
1296 Initialize panel name field if OSX >= 10.6.
1297
1298 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
1299
dd946752
JD
1300 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
1301
1302 * nsterm.m (NEW_STYLE_FS): New define.
1303 (ns_fullscreen_hook, windowWillEnterFullScreen)
1304 (windowDidEnterFullScreen, windowWillExitFullScreen)
1305 (windowDidExitFullScreen, toggleFullScreen, handleFS)
1306 (setFSValue): New functions.
1307 (EmacsFSWindow): New implementation.
1308 (canBecomeKeyWindow): New function for EmacsFSWindow.
1309 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
1310 (dealloc): Release nonfs_window if in fullscreen.
1311 (updateFrameSize:): Call windowDidMove to update top/left.
1312 (windowWillResize:toSize:): Check if frame is still maximized.
1313 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
1314 next_maximized, maximized_width, maximized_height and nonfs_window.
1315 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
1316 tbar_height.
1317 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
1f9f395d 1318 fullscreen. Set maximized_width/height. Act on next_maximized.
dd946752
JD
1319
1320 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
1321 (EmacsView): Add variables for fullscreen.
1322 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
1323 (EmacsFSWindow): New interface for fullscreen.
1324
427730eb
JB
13252012-09-30 Juanma Barranquero <lekktu@gmail.com>
1326
1327 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
1328
48de8b12
CY
13292012-09-30 Chong Yidong <cyd@gnu.org>
1330
1331 * fns.c (Frandom): Doc fix.
1332
5938d519
MR
13332012-09-30 Martin Rudalics <rudalics@gmx.at>
1334
1335 * window.c (Vwindow_combination_limit): New default value.
1336 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
1337
cb5b0266
PE
13382012-09-30 Paul Eggert <eggert@cs.ucla.edu>
1339
1340 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
1341 Suggested by Eli Zaretskii in
1342 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
1343
84f72efd
EZ
13442012-09-30 Eli Zaretskii <eliz@gnu.org>
1345
1346 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
1347 HAVE_TIMER_SETTIME is defined.
1348
9d4dcdc9
PE
13492012-09-30 Paul Eggert <eggert@cs.ucla.edu>
1350
d89460ed
PE
1351 Profiler improvements: more-accurate timers, overflow checks.
1352 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
1353 signal.h, setjmp.h. Include systime.h instead.
1354 (saturated_add): New function.
1355 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
1356 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
1357 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
1358 New static vars.
84f72efd 1359 (enum profiler_cpu_running): New enum.
d89460ed
PE
1360 (profiler_cpu_running): Now of that enum type, not bool.
1361 All uses changed to store the new value.
1362 (handle_profiler_signal): Rename from sigprof_handler_1,
1363 for consistency with other handlers. Do not check whether
1364 cpu_log is a hash-table if garbage collecting, since it
1365 doesn't matter in that case.
1366 (deliver_profiler_signal): Rename from sigprof_handler,
1367 for consistency with other handlers.
1368 (setup_cpu_timer): New function, with much of what used to be in
1369 Fprofiler_cpu_start. Check for out-of-range argument.
1370 Prefer timer_settime if available, and prefer
1371 thread cputime clocks, then process cputime clocks, then
1372 monotonic clocks, to the old realtime clock. Use make_timeval
1373 to round more-correctly when falling back to setitimer.
1374 (Fprofiler_cpu_start): Use it.
1375 (Fprofiler_cpu_stop): Prefer timer_settime if available.
1376 Don't assume that passing NULL as the 2nd argument of setitimer
1377 is the same as passing a pointer to all-zero storage.
1378 Ignore SIGPROF afterwards.
1379 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
1380 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
1381 non-fatal signal handlers. Ignore SIGPROF on startup.
1382 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
1383 in profiler.c, since sysdep.c now uses it.
1384
9d4dcdc9
PE
1385 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
1386 Suggested by Eli Zaretskii in
1387 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
1388
8e5691a0
JB
13892012-09-29 Juanma Barranquero <lekktu@gmail.com>
1390
1391 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
1392
e7c1b6ef
SM
13932012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
1394
1395 * lisp.h (struct backtrace): Remove indirection for `function' field.
1396 * xdisp.c (redisplay_internal):
1397 * profiler.c (record_backtrace, sigprof_handler_1):
1398 * alloc.c (Fgarbage_collect):
1399 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
1400 (Fbacktrace_frame): Adjust accordingly.
1401
e61d39cd 14022012-09-28 Glenn Morris <rgm@gnu.org>
d393cefb
GM
1403
1404 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
1405 (Frun_hook_with_args_until_failure): Doc fixes.
1406
404043ea
EZ
14072012-09-28 Eli Zaretskii <eliz@gnu.org>
1408
1409 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
1410 Qautomatic_redisplay and change the symbol name. All users changed.
1411
704d3f45
TM
14122012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
1413
1414 * profiler.c (sigprof_handler): Fix race condition.
1415
757140ff
GM
14162012-09-28 Glenn Morris <rgm@gnu.org>
1417
1418 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
1419
a615a3ae
PE
14202012-09-27 Paul Eggert <eggert@cs.ucla.edu>
1421
1422 Check more robustly for timer_settime.
89d17fd0
PE
1423 * Makefile.in (LIB_TIMER_TIME): New macro.
1424 (LIBES): Add it.
a615a3ae
PE
1425 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
1426 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
1427 call timer_settime.
1428
3670daf7
TM
14292012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
1430
1431 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
1432
6a586b7f
JB
14332012-09-26 Juanma Barranquero <lekktu@gmail.com>
1434
1435 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
1436
41c8bfcf
PE
14372012-09-26 Paul Eggert <eggert@cs.ucla.edu>
1438
1439 * character.h (MAYBE_UNIFY_CHAR): Remove.
1440 * charset.c, charset.h (maybe_unify_char): Now static.
1441 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
1442 Since this stuff is now private to charset.c, there's no need for
1443 a public macro and no need to inline by hand.
1444
3a880af4
SM
14452012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
1446 Stefan Monnier <monnier@iro.umontreal.ca>
1447 Juanma Barranquero <lekktu@gmail.com>
611b7507 1448
3a880af4
SM
1449 * profiler.c: New file.
1450 * Makefile.in (base_obj): Add profiler.o.
611b7507
JB
1451 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
1452 ($(BLD)/profiler.$(O)): New target.
3a880af4
SM
1453 * emacs.c (main): Call syms_of_profiler.
1454 * alloc.c (Qautomatic_gc): New constant.
1455 (MALLOC_PROBE): New macro.
1456 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
1457 (total_bytes_of_live_objects): New function.
1458 (Fgarbage_collect): Use it. Record itself in backtrace_list.
1459 Call malloc_probe for the memory profiler.
1460 (syms_of_alloc): Define Qautomatic_gc.
1461 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
1462 race condition.
1463 (struct backtrace): Move definition...
1464 * lisp.h (struct backtrace): ..here.
1465 (Qautomatic_gc, profiler_memory_running): Declare vars.
1466 (malloc_probe, syms_of_profiler): Declare functions.
1467 * xdisp.c (Qautomatic_redisplay): New constant.
1468 (redisplay_internal): Record itself in backtrace_list.
1469 (syms_of_xdisp): Define Qautomatic_redisplay.
611b7507 1470
5938d519 14712012-09-25 Eli Zaretskii <eliz@gnu.org>
b67238c2
JB
14722012-09-25 Juanma Barranquero <lekktu@gmail.com>
1473
1474 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
1475
e26fd2e4
PE
14762012-09-25 Paul Eggert <eggert@cs.ucla.edu>
1477
1478 Prefer POSIX timers if available.
1479 They avoid a race if the timer is too close to the current time.
1480 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
1481 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
9180598c 1482 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
e26fd2e4 1483
eedec3ee
EZ
14842012-09-25 Eli Zaretskii <eliz@gnu.org>
1485
1486 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
1487 CHAR_STRING_ADVANCE.
1488 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
1489 STRING_CHAR_ADVANCE.
1490
aa15c6bb
JB
14912012-09-25 Juanma Barranquero <lekktu@gmail.com>
1492
1493 Move Vlibrary_cache to emacs.c and reset before dumping.
1494
1495 * lisp.h (reset_image_types): Declare.
1496 [WINDOWSNT] (Vlibrary_cache): Declare.
1497
1498 * image.c (reset_image_types): New function.
1499
1500 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
1501 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
1502 (Fdump_emacs): Reset Vlibrary_cache and image_types.
1503
1504 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
1505 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
1506
1507 * w32.h (Vlibrary_cache): Do not declare.
1508
54d629be
EZ
15092012-09-25 Eli Zaretskii <eliz@gnu.org>
1510
16b22fef
EZ
1511 * w32proc.c (sys_signal): Handle all signals defined by the
1512 MS-Windows runtime, not just SIGCHLD. Actually install the signal
1513 handlers for signals supported by Windows. Don't override
1514 term_ntproc as the handler for SIGABRT.
1515 (sigaction): Rewrite to call sys_signal instead of duplicating its
1516 code.
1517 (sys_kill): Improve commentary.
1518
1519 * w32.c (term_ntproc): Accept (and ignore) one argument, for
1520 consistency with a signature of a signal handler. All callers
1521 changed.
1522 (init_ntproc): Accept an argument DUMPING. If dumping, don't
1523 install term_ntproc as a signal handler for SIGABRT, as that
1524 should be done by the dumped Emacs.
1525
1526 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
1527
1528 * w32select.c (term_w32select): Protect against repeated
1529 invocation by setting clipboard_owner to NULL after calling
1530 DestroyWindow.
1531
1532 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
1533 and term_ntproc to their modified signatures.
1534
54d629be
EZ
1535 * character.c (char_string, string_char): Remove calls to
1536 MAYBE_UNIFY_CHAR. See the discussion starting at
1537 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
1538 for the details.
1539
59f7af81
CY
15402012-09-25 Chong Yidong <cyd@gnu.org>
1541
1542 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
1543
22e8cf4a
SM
15442012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
1545
1546 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
1547 when encountering an unknown bytecode.
1548
578098f3
PE
15492012-09-24 Paul Eggert <eggert@cs.ucla.edu>
1550
1551 image.c, indent.c: Use bool for booleans.
1552 * dispextern.h (struct image_type): Members valid_p, load, init
1553 now return bool, not int. All uses changed.
1554 * image.c: Omit unnecessary static decls.
1555 (x_create_bitmap_mask, x_build_heuristic_mask):
1556 Return void, not int, since callers don't care about the return value.
1557 (x_create_bitmap_mask, define_image_type, valid_image_p)
1558 (struct image_keyword, parse_image_spec, image_spec_value)
1559 (check_image_size, image_background)
1560 (image_background_transparent, x_clear_image_1)
1561 (postprocess_image, lookup_image, x_check_image_size)
1562 (x_create_x_image_and_pixmap, xbm_image_p)
1563 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
1564 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
1565 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
1566 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
1567 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
1568 (png_image_p, init_png_functions, png_load_body, png_load)
1569 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
1570 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
1571 (init_gif_functions, gif_load, imagemagick_image_p)
1572 (imagemagick_load_image, imagemagick_load, svg_image_p)
1573 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
1574 (gs_load):
1575 * nsimage.m (ns_load_image):
1576 * nsterm.m (ns_defined_color):
1577 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
1578 * xfns.c (x_defined_color):
1579 * xterm.c (x_alloc_lighter_color_for_widget)
1580 (x_alloc_nearest_color_1, x_alloc_nearest_color)
1581 (x_alloc_lighter_color):
1582 * indent.c (disptab_matches_widthtab, current_column)
1583 (scan_for_column, string_display_width, indented_beyond_p)
1584 (compute_motion, vmotion, Fvertical_motion):
1585 Use bool for booleans.
1586
a5f2b6ec
CY
15872012-09-24 Chong Yidong <cyd@gnu.org>
1588
1589 * chartab.c (Fset_char_table_default): Obsolete function removed.
1590
18e27ea8
PE
15912012-09-23 Paul Eggert <eggert@cs.ucla.edu>
1592
afea8a8a
PE
1593 Move pid_t related decls out of lisp.h.
1594 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
1595 (interruptible_wait_for_termination):
1596 Move these decls from lisp.h to syswait.h, since they use pid_t.
1597 Needed on FreeBSD; see Herbert J. Skuhra in
1598 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
1599 * callproc.c: Include syswait.h.
1600
18e27ea8
PE
1601 gnutls.c, gtkutil.c: Use bool for boolean.
1602 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
1603 (emacs_gnutls_handle_error):
1604 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
1605 (xg_hide_tooltip, xg_create_frame_widgets)
1606 (create_dialog, xg_uses_old_file_dialog)
1607 (xg_get_file_with_chooser, xg_get_file_with_selection)
1608 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
1609 (xg_item_label_same_p, xg_update_menubar)
1610 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
1611 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
1612 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
1613 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
1614 (update_frame_tool_bar, free_frame_tool_bar):
1615 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
1616 * nsmenu.m (ns_update_menubar):
1617 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
1618 * xfns.c (Fx_show_tip) [USE_GTK]:
1619 Use bool for boolean.
1620 * gtkutil.c (xg_update_frame_menubar):
1621 * xmenu.c (update_frame_menubar):
1622 Return void, not int, since caller ignores return value.
1623 * gtkutil.c (xg_change_toolbar_position):
1624 Return void, not 1.
1625
af0e9f75
JB
16262012-09-23 Juanma Barranquero <lekktu@gmail.com>
1627
1628 * makefile.w32-in (BLOCKINPUT_H): Remove.
1629 (SYSSIGNAL_H): New macro.
1630 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
1631 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
1632 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
1633 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
1634 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
1635 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
1636 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
1637 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
1638 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
1639 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
1640 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
1641 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
1642 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
1643 ($(BLD)/w32xfns.$(O)): Update dependencies.
1644
5101529e
EZ
16452012-09-23 Eli Zaretskii <eliz@gnu.org>
1646
1647 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
1648 fatal_error_backtrace.
1649
1650 * w32proc.c (sys_kill): Undo last change: don't do anything when
1651 invoked to deliver SIGABRT to our own process. This is now
1652 handled by emacs_raise.
1653
2c3ee0ad
JB
16542012-09-23 Juanma Barranquero <lekktu@gmail.com>
1655
1656 * w32term.c (w32_read_socket): Remove leftover reference to
1657 interrupt_input_pending.
1658
62a1d661
PE
16592012-09-23 Paul Eggert <eggert@cs.ucla.edu>
1660
1661 Do not use SA_NODEFER.
1662 Problem reported by Dani Moncayo in
1663 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
1664 * alloc.c (die):
1665 * sysdep.c (emacs_abort): Do not reset signal handler.
1666 * emacs.c (terminate_due_to_signal): Reset signal handler here.
1667 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
1668 wanted even on POSIXish hosts, and it doesn't work on Windows.
1669
a0942b9a
JD
16702012-09-23 Jan Djärv <jan.h.d@swipnet.se>
1671
1672 * xterm.c (x_term_init): Call fixup_locale before and after calling
1673 gtk_init (Bug#12392).
1674
d07ff9db
CY
16752012-09-23 Chong Yidong <cyd@gnu.org>
1676
1677 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
1678 Vdynamic_library_alist.
1679
1680 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
1681 (Fgnutls_available_p): Caller changed.
1682
1683 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
1684 (Flibxml_parse_xml_region): Likewise.
1685
1686 * dispextern.h (struct image_type): Remove arg from init function.
1687
1688 * image.c (Finit_image_library, lookup_image_type)
1689 (define_image_type): Remove now-unneeded second arg.
1690 (init_xpm_functions, init_png_functions, init_jpeg_functions)
1691 (init_tiff_functions, init_gif_functions, init_svg_functions):
1692 Arglist and w32_delayed_load calling convention changed.
1693 (gs_type): Remove init_gs_functions; there is no such function.
641cfd14 1694 (valid_image_p, make_image): Fix caller to lookup_image_type.
d07ff9db 1695
4d7e6e51
PE
16962012-09-23 Paul Eggert <eggert@cs.ucla.edu>
1697
1698 Simplify and avoid signal-handling races (Bug#12471).
1699 * alloc.c (die):
1700 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
1701 Avoid recursive loop if there's a fatal error in the function itself.
1702 * atimer.c (pending_atimers):
1703 * blockinput.h: Don't include "atimer.h"; no longer needed.
1704 (interrupt_input_pending): Remove. All uses removed.
1705 pending_signals now counts both atimers and ordinary interrupts.
1706 This is less racy than having three separate pending-signal flags.
1707 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
1708 (input_blocked_p):
1709 Rename from their upper-case counterparts BLOCK_INPUT,
1710 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
1711 INPUT_BLOCKED_P, and turn into functions. All uses changed.
1712 This makes it easier to access volatile variables more accurately.
1713 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
1714 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
1715 that's more reliable if the code is buggy and sets
1716 interrupt_input_blocked to a negative value. All uses changed.
1717 * atimer.c (deliver_alarm_signal):
1718 Remove. No need to deliver this to the parent; any thread can
1719 handle this signal now. All uses replaced by underlying handler.
1720 * atimer.c (turn_on_atimers):
1721 * dispnew.c (handle_window_change_signal):
1722 * emacs.c (handle_danger_signal):
1723 * keyboard.c (kbd_buffer_get_event):
1724 Don't reestablish signal handler; not needed with sigaction.
1725 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
1726 (UNBLOCK_INPUT_TO):
1727 Rework to avoid unnecessary accesses to volatile variables.
1728 (UNBLOCK_INPUT_TO): Now a function.
1729 (totally_unblock_input, unblock_input): New decls.
1730 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
1731 (init_data): Remove. Necessary stuff now done in init_signal.
1732 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
1733 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
1734 (fatal_error_code): Remove; no longer needed.
1735 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
1736 it doesn't always backtrace. All uses changed. No need to reset
1737 signal to default, since sigaction and/or die does that for us now.
1738 Use emacs_raise (FOO), not kill (getpid (), FOO).
1739 (main): Check more-accurately whether we're dumping.
1740 Move fatal-error setup to sysdep.c
1741 * floatfns.c: Do not include "syssignal.h"; no longer needed.
1742 * gtkutil.c (xg_get_file_name, xg_get_font):
1743 Remove no-longer-needed signal-mask manipulation.
1744 * keyboard.c, process.c (POLL_FOR_INPUT):
1745 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
1746 * keyboard.c (read_avail_input): Remove.
1747 All uses replaced by gobble_input.
1748 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
1749 (kbd_buffer_store_event_hold, gobble_input):
1750 (record_asynch_buffer_change) [USABLE_SIGIO]:
1751 (store_user_signal_events):
1752 No need to mess with signal mask.
1753 (gobble_input): If blocking input and there are terminals, simply
1754 set pending_signals to 1 and return. All hooks changed to not
1755 worry about whether input is blocked.
1756 (process_pending_signals): Clear pending_signals before processing
1757 them, in case a signal comes in while we're processing.
1758 By convention callers now test pending_signals before calling us.
1759 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
1760 New functions, to support changes to blockinput.h.
1761 (handle_input_available_signal): Now extern.
1762 (reinvoke_input_signal): Remove. All uses replaced by
1763 handle_async_input.
1764 (quit_count): Now volatile, since a signal handler uses it.
3a880af4
SM
1765 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
1766 All callers changed. Block SIGINT only if not already blocked.
4d7e6e51
PE
1767 Clear sigmask reliably, even if Fsignal returns, which it can.
1768 Omit unnecessary accesses to volatile var.
1769 (quit_throw_to_read_char): No need to restore sigmask.
1770 * keyboard.c (gobble_input, handle_user_signal):
1771 * process.c (wait_reading_process_output):
1772 Call signal-handling code rather than killing ourselves.
1773 * lisp.h: Include <float.h>, for...
1774 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
1775 (pending_signals): Now volatile.
1776 (syms_of_data): Now const if IEEE floating point.
1777 (handle_input_available_signal) [USABLE_SIGIO]:
1778 (terminate_due_to_signal, record_child_status_change): New decls.
1779 * process.c (create_process): Avoid disaster if memory is exhausted
1780 while we're processing a vfork, by tightening the critical section
1781 around the vfork.
1782 (send_process_frame, process_sent_to, handle_pipe_signal)
1783 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
1784 ignores SIGPIPE.
1785 (send_process): No need for setjmp/longjmp any more, since the
1786 SIGPIPE stuff is now gone. Instead, report an error if errno
1787 is EPIPE.
1788 (record_child_status_change): Now extern. PID and W are now args.
1789 Return void, not bool. All callers changed.
1790 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
1791 Remove. All uses removed. This bug should be fixed now in a
1792 different way.
1793 (wait_for_termination_1): Use waitpid rather than sigsuspend,
1794 and record the child status change directly. This avoids the
1795 need to futz with the signal mask.
1796 (process_fatal_action): Move here from emacs.c.
1797 (emacs_sigaction_flags): New function, containing
1798 much of what used to be in emacs_sigaction_init.
1799 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
1800 caught by emacs, to make races less likely.
1801 (deliver_process_signal): Rename from handle_on_main_thread.
1802 All uses changed.
1803 (BACKTRACE_LIMIT_MAX): Now at top level.
1804 (thread_backtrace_buffer, threadback_backtrace_pointers):
1805 New static vars.
1806 (deliver_thread_signal, deliver_fatal_thread_signal):
1807 New functions, for more-accurate delivery of thread-specific signals.
1808 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
1809 (deliver_arith_signal): Handle in this thread, not
1810 in the main thread, since it's triggered by this thread.
1811 (maybe_fatal_sig): New function.
1812 (init_signals): New arg DUMPING so that we can be more accurate
1813 about whether we're dumping. Caller changed.
1814 Treat thread-specific signals differently from process-general signals.
1815 Block all signals while handling fatal error; that's safer.
1816 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
1817 on IEEE hosts.
1818 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
1819 Ignore SIGPIPE unless batch.
1820 (emacs_backtrace): Output backtrace for the appropriate thread,
1821 which is not necessarily the main thread.
1822 * syssignal.h: Include <stdbool.h>.
1823 (emacs_raise): New macro.
1824 * xterm.c (x_connection_signal): Remove; no longer needed
1825 now that we use sigaction.
1826 (x_connection_closed): No need to mess with sigmask now.
1827 (x_initialize): No need to reset SIGPIPE handler here, since
1828 init_signals does this for us now.
1829
8f4635e9
JD
18302012-09-23 Jan Djärv <jan.h.d@swipnet.se>
1831
1832 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
fb39b937 1833 background rect may be larger (Bug#12245).
8f4635e9 1834
3296976d
CY
18352012-09-23 Chong Yidong <cyd@gnu.org>
1836
1837 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
1838
d41e491e
PE
18392012-09-22 Paul Eggert <eggert@cs.ucla.edu>
1840
1841 * .gdbinit: Just stop at fatal_error_backtrace.
1842 See Stefan Monnier's request in
1843 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
1844 Remove no-longer-used query of system type.
1845
c88b867f
CY
18462012-09-22 Chong Yidong <cyd@gnu.org>
1847
1848 * search.c (Freplace_match): Doc fix (Bug#12325).
1849
1850 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
1851
1852 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
1853 (Fline_end_position): Doc fix.
1854
1855 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
1856
bb4d86b4
CY
18572012-09-22 Chong Yidong <cyd@gnu.org>
1858
1859 * dispextern.h (struct image_type): Add new slot, storing a type
1860 initialization function.
1861
1862 * image.c (define_image_type): Call the image initializer function
1863 if it is defined. Arguments and return value changed.
1864 (valid_image_p, make_image): Callers changed.
1865 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3a880af4
SM
1866 (gif_type, imagemagick_type, svg_type, gs_type):
1867 Add initialization functions.
bb4d86b4
CY
1868 (Finit_image_library): Call lookup_image_type.
1869 (CHECK_LIB_AVAILABLE): Macro deleted.
1870 (lookup_image_type): Call define_image_type here, rather than via
1871 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
1872 (syms_of_image): Move define_image_type calls for xbm_type and
1873 pbm_type to lookup_image_type.
1874
df9685f3
EZ
18752012-09-22 Eli Zaretskii <eliz@gnu.org>
1876
1877 * keyboard.c (timer_check_2): Move calculation of 'timers' and
1878 'idle_timers' from here ...
1879 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
1880 lists, to avoid infloops when the timer does something stupid,
1881 like reinvoke itself with the same or smaller time-out.
1882 (Bug#12447)
1883
8e17c9ba
MR
18842012-09-22 Martin Rudalics <rudalics@gmx.at>
1885
1886 * window.c (Fsplit_window_internal): Handle only Qt value of
1887 Vwindow_combination_limit separately.
1888 (Qtemp_buffer_resize): New symbol.
3a880af4
SM
1889 (Vwindow_combination_limit): New default value.
1890 Rewrite doc-string.
8e17c9ba 1891
589bd69b
EZ
18922012-09-22 Eli Zaretskii <eliz@gnu.org>
1893
1894 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
1895 the new overlay string. (Bug#10159)
1896
01108e3f
PE
18972012-09-22 Paul Eggert <eggert@cs.ucla.edu>
1898
1899 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
1900 or that fprintf is async-signal-safe. POSIX doesn't require
1901 either assumption.
1902
82f8cd94
CY
19032012-09-22 Chong Yidong <cyd@gnu.org>
1904
1905 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
1906 (Bug#8207).
1907
3cccbd87
KH
19082012-09-22 Kenichi Handa <handa@gnu.org>
1909
1910 * composite.c (composition_reseat_it): Handle the case that a
1911 grapheme cluster is not covered by a single font (Bug#12352).
1912
09c01941
CY
19132012-09-21 Chong Yidong <cyd@gnu.org>
1914
1915 * image.c (define_image_type): Avoid adding duplicate types to
1916 image_types (Bug#12463). Suggested by Jörg Walter.
1917
acfa068f 19182012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
e25c1a30
YM
1919
1920 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
1921 (print_load_command_name): Add case LC_DATA_IN_CODE.
1922 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
1923
acfa068f 19242012-09-21 Glenn Morris <rgm@gnu.org>
1e9bbf47
GM
1925
1926 * eval.c (Frun_hook_with_args_until_success)
1927 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
1928
acfa068f 19292012-09-21 Andreas Schwab <schwab@linux-m68k.org>
c6ba4138
AS
1930
1931 * fileio.c (Ffile_selinux_context): Only call freecon when
1932 lgetfilecon succeeded.
1933 (Fset_file_selinux_context): Likewise. (Bug#12444)
1934
acfa068f 19352012-09-21 Eli Zaretskii <eliz@gnu.org>
aa36e4d2
EZ
1936
1937 * xdisp.c (try_window_reusing_current_matrix): Under bidi
1938 reordering, locate the cursor by calling set_cursor_from_row; if
1939 that fails, clear the desired glyph matrix before returning a
1940 failure indication to the caller. Fixes leaving garbled display
1941 when fast scrolling with a down-key. (Bug#12403)
f2016bea
EZ
1942 (compute_stop_pos_backwards): Fix a typo that caused crashes while
1943 scrolling through multibyte text.
aa36e4d2 1944
e99f70c8
SM
19452012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
1946
1947 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
1948 calling mark_vectorlike since that's the one that marks the window.
1949 (mark_discard_killed_buffers): Mark the final cdr.
1950 * window.h (struct window): Move prev/next_buffers to the
1951 non-standard fields.
1952 * window.c (make_window): Initialize prev/next_buffers manually.
1953
f75beb47
PE
19542012-09-20 Paul Eggert <eggert@cs.ucla.edu>
1955
1956 Omit unused arg EXPECTED from socket hooks.
1957 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
1958 * nsterm.m (ns_term_init):
1959 * termhooks.h (struct terminal.read_socket_hook):
1960 * w32inevt.c (w32_console_read_socket):
1961 * w32term.c (w32_read_socket):
1962 * xterm.c (XTread_socket):
1963 Omit unused arg EXPECTED. All callers changed.
1964 (store_user_signal_events): Return void, not int, since callers no
1965 longer care about the return value. All uses changed.
1966
b019b76a
JB
19672012-09-20 Juanma Barranquero <lekktu@gmail.com>
1968
1969 * w32gui.h (XParseGeometry): Do not declare.
1970
05642592
PE
19712012-09-19 Paul Eggert <eggert@cs.ucla.edu>
1972
e4bce92a 1973 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1f9f395d 1974 Ignore 'expected'. See Eli Zaretskii in
e4bce92a
PE
1975 <http://bugs.gnu.org/12471#8> (last line).
1976
05642592
PE
1977 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
1978 (XParseGeometry): Now static. Substitute extremal values for
1979 values that are out of range.
1980
e543ae91
JD
19812012-09-19 Jan Djärv <jan.h.d@swipnet.se>
1982
1983 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
1984
1985 * nsfns.m (XParseGeometry): Remove.
1986 (Fx_create_frame): Call x_set_offset to correctly interpret
1987 top_pos in geometry.
1988
3a880af4 1989 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
e543ae91
JD
1990 (Fx_parse_geometry): If there is a space in string, call
1991 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
1992
45ba16c7
EZ
19932012-09-17 Eli Zaretskii <eliz@gnu.org>
1994
c8b9f1bc
EZ
1995 * search.c (scan_buffer): Use character positions in calls to
1996 region_cache_forward and region_cache_backward, not byte
1997 positions. (Bug#12196)
1998
b4c932a2
EZ
1999 * w32term.c (w32_read_socket): Set pending_signals to 1, like
2000 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
2001
45ba16c7
EZ
2002 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
2003 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
2004 emacs_blocked_malloc, now deleted.
2005
eeceac93
PE
20062012-09-17 Paul Eggert <eggert@cs.ucla.edu>
2007
2008 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
2009 The workaround was for improving performance on Solaris 2.4, but
2010 is getting in the way now. Emacs will still work if someone is
2011 still running Solaris 2.4 in a museum somewhere; Sun dropped
2012 support for Solaris 2.4 in 2003.
2013 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
2014 * process.c (create_process) [HAVE_WORKING_VFORK]:
2015 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
2016 since Emacs no longer uses vfork on that platform.
2017
78f83752
GM
20182012-09-17 Glenn Morris <rgm@gnu.org>
2019
2020 * emacs.c: Use COPYRIGHT.
2021
634b8cac
PE
20222012-09-16 Paul Eggert <eggert@cs.ucla.edu>
2023
0caaedb1
PE
2024 Remove configure's --without-sync-input option (Bug#12450).
2025 When auditing signal-handling in preparation for cleaning it up,
2026 I found that SYNC_INPUT has race conditions and would be a real
2027 pain to fix. Since it's an undocumented and deprecated
2028 configure-time option, now seems like a good time to remove it.
2029 Also see <http://bugs.gnu.org/11080#16>.
2030 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
2031 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
2032 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
2033 (malloc_hysteresis):
2034 (check_depth) [XMALLOC_OVERRUN_CHECK]:
2035 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
2036 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
2037 (dont_register_blocks, bytes_used_when_reconsidered)
2038 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
2039 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
2040 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1f9f395d 2041 Remove. All uses removed.
0caaedb1
PE
2042 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
2043 implementation, one that depends on whether the new macro
2044 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
2045 is defined.
2046 * atimer.c (run_timers, handle_alarm_signal):
2047 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
2048 (handle_async_input, process_pending_signals)
2049 (handle_input_available_signal, init_keyboard):
2050 * nsterm.m (ns_read_socket):
2051 * process.c (wait_reading_process_output):
2052 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
2053 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
2054 (emacs_write):
2055 * xterm.c (XTread_socket):
2056 Assume SYNC_INPUT.
2057 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
2058 * eval.c (handling_signal): Remove. All uses removed.
2059 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
2060 All uses replaced with the SYNC_INPUT version.
2061 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
2062 Remove decls.
2063 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2064 Now static.
2065
634b8cac
PE
2066 * font.c (Ffont_shape_gstring): Remove unused local.
2067
83da1b55
GM
20682012-09-16 Glenn Morris <rgm@gnu.org>
2069
518650a5
GM
2070 * Makefile.in (clean): No longer run nextstep's clean.
2071
83da1b55
GM
2072 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
2073 (ns_frag): Remove.
2074 (ns-app): Move here from ns.mk, and simplify.
2075 (clean): Simplify nextstep entry.
2076 * ns.mk: Remove file.
2077
85a43e2e
KH
20782012-09-17 Kenichi Handa <handa@gnu.org>
2079
2080 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
2081 not covert the last few charactes.
2082
ba13e616 20832012-09-16 Kenichi Handa <handa@gnu.org>
ea964864
KH
2084
2085 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
2086 here, but just check the validity of glyphs in the glyph-string.
2087
a8c729af
MR
20882012-09-16 Martin Rudalics <rudalics@gmx.at>
2089
3a880af4
SM
2090 * window.c (Fwindow_parameter, Fset_window_parameter):
2091 Accept any window as argument (Bug#12452).
a8c729af 2092
c077c059
JD
20932012-09-16 Jan Djärv <jan.h.d@swipnet.se>
2094
2095 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
2096 to ns_term_init to avoid memory leak.
2097
2098 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
2099 explicit retain/release.
2100 (ns_term_init): Only allow one display. Initialize outerpool and
2101 ns_*_types.
2102
39a57ad0
PE
21032012-09-15 Paul Eggert <eggert@cs.ucla.edu>
2104
2105 Port _setjmp fix to POSIXish hosts as well as Microsoft.
2106 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
2107 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
2108 the Microsoft problem in a different way, by altering ../nt/config.nt.
2109
7105c8cb
EZ
21102012-09-15 Eli Zaretskii <eliz@gnu.org>
2111
2112 * w32xfns.c:
2113 * w32uniscribe.c:
2114 * w32term.c:
2115 * w32select.c:
2116 * w32reg.c:
2117 * w32proc.c:
2118 * w32menu.c:
2119 * w32inevt.c:
2120 * w32heap.c:
2121 * w32font.c:
2122 * w32fns.c:
2123 * w32console.c:
2124 * w32.c:
2125 * w16select.c: Remove inclusion of setjmp.h, as it is now included
2126 by lisp.h. This completes removal of setjmp.h inclusion
2127 erroneously announced in the previous commit. (Bug#12446)
2128
2129 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
2130 more accurate.
2131
2132 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
2133 not defined as a macro. The latter happens on MS-Windows.
2134 (Bug#12446)
2135
0328b6de
PE
21362012-09-15 Paul Eggert <eggert@cs.ucla.edu>
2137
2138 Port better to POSIX hosts lacking _setjmp (Bug#12446).
2139 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
7105c8cb 2140 Some instances of '#include <setjmp.h>' removed, if the
0328b6de
PE
2141 only reason for the instance was because "lisp.h" was included.
2142 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
2143 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
2144 and _longjmp with the new symbols. Emacs already uses _setjmp if
2145 available, so this change affects only POSIXish hosts that have
2146 sigsetjmp but not _setjmp, such as some versions of Solaris and
2147 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
2148 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
2149 (png_load_body) [HAVE_PNG]:
2150 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
2151 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
2152 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
2153 since PNG requires jmp_buf. This is the only exception to the
2154 general rule that we now use sys_setjmp and sys_longjmp.
2155 This exception is OK since this code does not change the signal
2156 mask or longjmp out of a signal handler.
2157
2af03429
PE
21582012-09-14 Paul Eggert <eggert@cs.ucla.edu>
2159
2160 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
2161 Include "syssignal.h", for 'main_thread'.
2162
2f294edf
DA
21632012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
2164
2165 Avoid out-of-range marker position (Bug#12426).
3a880af4
SM
2166 * insdel.c (replace_range, replace_range_2):
2167 Adjust markers before overlays, as suggested by comments.
2f294edf
DA
2168 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
2169 Remove redundant check before calling offset_intervals.
2170
6b533e9c
MR
21712012-09-14 Martin Rudalics <rudalics@gmx.at>
2172
2173 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
2174 current buffer (Bug#12387).
2175
2a7931e3
JB
21762012-09-14 Juanma Barranquero <lekktu@gmail.com>
2177
2178 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
2179
c18e885b
PE
21802012-09-13 Paul Eggert <eggert@cs.ucla.edu>
2181
2182 Use a more backwards-compatible timer format (Bug#12430).
2183 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
2184 vector element, not from the 4th, since PSECS is now at the end.
2185 (Fcurrent_idle_time): Doc fix.
2186
d59a1afb
DA
21872012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
2188
2189 Function to mark objects and remove killed buffers at once.
2190 * alloc.c (discard_killed_buffers): Rename to ...
2191 (mark_discard_killed buffers) ... new name. Add marking
2192 of remaining objects. Fix comment. Adjust users.
2193 (mark_object): Do not touch frame buffer lists here.
2194 * frame.c (delete_frame): Reset frame buffer lists here.
2195
5f0cb45a
PE
21962012-09-13 Paul Eggert <eggert@cs.ucla.edu>
2197
8ea47e3a
PE
2198 Better workaround for GNOME bug when --enable-gcc-warnings.
2199 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
2200 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
2201 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
2202
4a4bbad2
PE
2203 Simplify SIGIO usage (Bug#12408).
2204 The code that dealt with SIGIO was crufty and confusing, e.g., it
2205 played tricks like "#undef SIGIO" but these tricks were not used
2206 consistently. Simplify mostly by not #undeffing standard symbols,
2207 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
2208 or not as we please) rather than "defined SIGIO" (standard symbol
2209 that we probably shouldn't #undef).
2210 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
2211 Modules that need it can include it.
2212 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
2213 * dispextern.h (ignore_sigio): New decl.
2214 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
2215 unconditionally, since it's now a no-op if !USABLE_SIGIO.
2216 * emacs.c (shut_down_emacs):
2217 * keyboard.c (kbd_buffer_store_event_hold):
2218 Use ignore_sigio rather than invoking 'signal' directly.
2219 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
2220 for FIONREAD.
2221 (FIONREAD, SIGIO): Do not #undef.
2222 (tty_read_avail_input): Use #error rather than a syntax error.
2223 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
2224 for I_PIPE, used by SETUP_SLAVE_PTY.
2225 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
2226 * sysdep.c (croak): Remove; no longer needed. This bit of
2227 temporary code, with Fred N. Fish's comment that it's temporary,
2228 has been in Emacs since at least 1992!
2229 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
2230 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
2231 * syssignal.h (croak): Remove decl.
2232 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
2233 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
2234 now that we're termios-only.
2235 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
2236 * term.c (dissociate_if_controlling_tty): Use #error rather than
2237 a run-time error.
2238
5f0cb45a
PE
2239 Work around GCC and GNOME bugs when --enable-gcc-warnings.
2240 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
2241 to work around GNOME bug 683906.
2242 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
2243 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
2244 This works around GCC bug 54561.
2245
40bce90b
PE
22462012-09-12 Paul Eggert <eggert@cs.ucla.edu>
2247
2248 More fixes for 'volatile' and setjmp/longjmp.
2249 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
2250 * image.c (struct png_load_context) [HAVE_PNG]: New type.
2251 (png_load_body) [HAVE_PNG]:
2252 (jpeg_load_body) [HAVE_JPEG]:
2253 New function, with most of the old parent function's body.
2254 (png_load) [HAVE_PNG]:
2255 (jpeg_load) [HAVE_JPEG]:
2256 Invoke the new function, to avoid longjmp munging our locals.
2257 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
2258 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
2259 longjmp is passed 2, as the C standard doesn't guarantee this.
2260 Instead, store the failure code into mgr->failure_code.
2261
bfeae2cf
SM
22622012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
2263
2264 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
2265 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
2266 (syms_of_keyboard): Remove support for unread-command-char.
2267
8099e36b
EZ
22682012-09-12 Eli Zaretskii <eliz@gnu.org>
2269
2270 * w32proc.c (sys_kill): If PID is our process ID and the signal is
2271 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
2272 violation. (Bug#12426)
2273
92547ff9
PE
22742012-09-12 Paul Eggert <eggert@cs.ucla.edu>
2275
2276 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
2277
45b82ad0
SM
22782012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
2279
2280 * eval.c: Add `inhibit-debugger'.
2281 (Qinhibit_debugger): New symbol.
2282 (call_debugger): Bind it instead of Qdebug_on_error.
2283 (maybe_call_debugger): Test Vinhibit_debugger.
2284 (syms_of_eval): Define inhibit-debugger.
2285 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
2286 (syms_of_xdisp): Remove inhibit-debug-on-message.
2287
5779a1dc
PE
22882012-09-11 Paul Eggert <eggert@cs.ucla.edu>
2289
50f2e553
PE
2290 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
2291 If a nonvolatile local variable is written before a _longjmp to
2292 the frame containing the variable, and is read after the _longjmp,
2293 the value read is indeterminate. Some local variables of type
2294 'struct handler' and 'struct catchtag' are used in this way, so
2295 mark each of their slots as volatile if the slot can be set before
2296 _longjmp and read afterwards.
2297 * lisp.h (struct handler): var and chosen_clause are now volatile.
2298 (struct catchtag): val, next, and pdlcount are now volatile.
2299
ae1d87e2
PE
2300 * bidi.c (bidi_push_it, bidi_pop_it):
2301 * fns.c (copy_hash_table):
2302 * image.c (define_image_type):
2303 * keyboard.c (kbd_buffer_store_event_hold):
2304 * process.c (Fprocess_send_eof):
2305 * xfaces.c (x_create_gc) [HAVE_NS]:
2306 * xgselect.c (xg_select):
2307 Prefer assignment to memcpy when either will do.
2308
5779a1dc
PE
2309 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
2310 Use pointer-to-a-pointer to simplify and avoid a NILP check each
2311 time an item is removed. No need to mark this function 'inline';
2312 the compiler knows better than we do.
2313
c4c9756b
JD
23142012-09-11 Jan Djärv <jan.h.d@swipnet.se>
2315
2316 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
2317 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
2318 to change_frame_size (Bug#12388).
2319 (windowDidResize:): Pass YES to updateFrameSize.
2320
2321 * nsterm.h: Add delay parameter to updateFrameSize.
2322
d73e321c
DA
23232012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
2324
2325 Discard killed buffers from deleted window and frame objects.
2326 This reduces an amount of references to killed buffers and
2327 helps GC to reclaim them faster.
2328 * alloc.c (discard_killed_buffers): New function.
2329 (mark_object): Use it for deleted windows and frames.
2330 (mark_object): If symbol's value is set up for a killed buffer
1f9f395d 2331 or deleted frame, restore its global binding.
d73e321c
DA
2332 * data.c (swap_in_global_binding): Add GC notice.
2333 (swap_in_symval_forwarding): Use convenient set_blv_where.
2334 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
2335 * window.h: ... to here.
2336
e578f381
DA
23372012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
2338
2339 Convenient macro to check whether the buffer is live.
2340 * buffer.h (BUFFER_LIVE_P): New macro.
2341 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
2342 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
2343
3057e615
YM
23442012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2345
2346 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
2347 composition cases (Bug#12364).
2348
2349 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
2350 overhang of succeeding glyphs overlapping box cursor.
2351
2352 * w32term.c (x_draw_glyph_string): Likewise.
2353
6fda35f2
PE
23542012-09-11 Paul Eggert <eggert@cs.ucla.edu>
2355
c990426a
PE
2356 Simplify, document, and port floating-point (Bug#12381).
2357 The porting part of this patch fixes bugs on non-IEEE platforms
2358 with frexp, ldexp, logb.
2359 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
2360 Now static.
2361 * floatfns.c: Simplify discussion of functions that Emacs doesn't
2362 support, by removing commented-out code and briefly listing the
2363 C89 functions excluded. The commented-out stuff was confusing
2364 maintenance, e.g., we thought we needed cbrt but it was commented out.
2365 (logb): Remove decl; no longer needed.
2366 (isfinite): New macro, if not already supplied.
2367 (isnan): Don't replace any existing macro.
2368 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
2369 are present on all C89 platforms.
2370 (Ffrexp): Do not special-case zero, as frexp does the right thing
2371 for that case.
2372 (Flogb): Do not use logb, as it doesn't have the desired meaning
2373 on hosts that use non-base-2 floating point. Instead, stick with
2374 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
2375 frexp, to avoid getting an unspecified result.
2376
6fda35f2
PE
2377 * xdisp.c (Qinhibit_debug_on_message): Now static.
2378
16130a58
JD
23792012-09-10 Jan Djärv <jan.h.d@swipnet.se>
2380
2381 * nsterm.m (ns_update_begin): Set clip path to whole view by using
2382 NSBezierPath (Bug#12131).
2383
d105a573
CY
23842012-09-10 Chong Yidong <cyd@gnu.org>
2385
2386 * fns.c (Fdelq, Fdelete): Doc fix.
2387
ff55dfe8
PE
23882012-09-10 Paul Eggert <eggert@cs.ucla.edu>
2389
2390 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
2391 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
2392
e7032e7c
SM
23932012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
2394
2395 * lisp.h (make_lisp_ptr): New macro to replace XSET.
2396 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
2397 Use it.
2398
e9957956
EZ
23992012-09-09 Eli Zaretskii <eliz@gnu.org>
2400
aba05ce9
EZ
2401 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
2402 left fringe if the window has a left margin. This avoids leaving
2403 traces of the cursor because its leftmost pixel is not drawn over.
2404
e9957956
EZ
2405 * dispnew.c (update_window_line): When the left margin area of a
2406 screen line is updated, set the redraw_fringe_bitmaps_p flag of
2407 that screen line. (Bug#12277)
2408
f6196b87
PE
24092012-09-09 Paul Eggert <eggert@cs.ucla.edu>
2410
2411 Assume C89 or later for math functions (Bug#12381).
2412 This simplifies the code, and makes it a bit smaller and faster,
2413 and (most important) makes it easier to clean up signal handling
2414 since we can stop worring about floating-point exceptions in
2415 library code. That was a problem before C89, but the problem
2416 went away many years ago on all practical Emacs targets.
2417 * data.c, image.c, lread.c, print.c:
2418 Don't include <math.h>; no longer needed.
2419 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
2420 might be autoconfigured, as that never happens.
2421 * data.c (fmod):
2422 * doprnt.c (DBL_MAX_10_EXP):
2423 * print.c (DBL_DIG):
2424 Remove. C89 or later always defines these.
2425 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
2426 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
2427 (arith_error, domain_error, domain_error2):
2428 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
2429 no longer needed -- we simply return what C returns. All uses removed.
2430 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
2431 the wrapped code.
2432 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
2433 Remove. All uses expanded, as these macros are no longer used
2434 more than once and are now more trouble than they're worth.
2435 (Ftan): Use tan, not sin / cos.
2436 (Flogb): Assume C89 frexp.
2437 (fmod_float): Assume C89 fmod.
2438 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
2439 (init_floatfns): Remove. All uses removed.
2440
9d7f1863
JD
24412012-09-08 Jan Djärv <jan.h.d@swipnet.se>
2442
2443 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
2444 compositeToPoint for OSX < 10.6 (Bug#12390).
2445
eabf0404
PE
24462012-09-08 Paul Eggert <eggert@cs.ucla.edu>
2447
2448 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
2449 This produces more-accurate results.
2450
0b3b1d23
JD
24512012-09-08 Jan Djärv <jan.h.d@swipnet.se>
2452
2453 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
2454 changes (Bug#12088).
2455
6dcef6ec
CY
24562012-09-08 Chong Yidong <cyd@gnu.org>
2457
2458 * syntax.c (Fstring_to_syntax): Doc fix.
2459
aa7d57c5
JD
24602012-09-08 Jan Djärv <jan.h.d@swipnet.se>
2461
2462 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
2463 in the internal border.
2464 (x_set_window_size): Remove static variables and their usage.
2465 (ns_redraw_scroll_bars): Fix NSTRACE arg.
3a880af4
SM
2466 (ns_after_update_window_line, ns_draw_fringe_bitmap):
2467 Remove fringe/internal border adjustment (Bug#11052).
aa7d57c5
JD
2468 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
2469 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
2470 (ns_fix_rect_ibw): Remove.
2471 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
2472 (ns_dumpglyphs_box_or_relief): Ditto.
2473 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
2474 adjustment.
2475 (ns_dumpglyphs_image): Ditto.
fc0c31f8 2476 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
aa7d57c5
JD
2477 border adjustment.
2478 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
2479 their usage. Add fringe_extended_p and its use as in other terms.
2480 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
2481 scroll bar was removed.
2482 (updateFrameSize): New function.
2483 (windowDidResize): Move code to updateFrameSize and call it.
2484
2485 * nsterm.h (EmacsView): Add updateFrameSize.
2486
1a5432bc
CY
24872012-09-07 Chong Yidong <cyd@gnu.org>
2488
b4f5313e
CY
2489 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
2490
1a5432bc
CY
2491 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
2492
1a4f1e9b
PE
24932012-09-07 Paul Eggert <eggert@cs.ucla.edu>
2494
2495 More signal-handler cleanup (Bug#12327).
eddb36a7
PE
2496 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
2497 Problem introduced when merging patches. Noted by Eli Zaretskii in
2498 <http://bugs.gnu.org/12327#67>.
1a4f1e9b
PE
2499 * floatfns.c: Comment fix.
2500 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
2501 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
2502 and anyway the declaration is harmless even if SIGDANGER is not defined.
2503 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
2504 defined BROKEN_FIONREAD). systty.h formerly did this, but other
2505 source files not surprisingly expected syssignal.h to define, or
2506 not define, SIGIO, and it's cleaner to do it that way, for consistency.
2507 Include <sys/ioctl.h>, for FIONREAD.
2508 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
2509 This eliminates a problem whereby other files mysteriously had
2510 to include "syssignal.h" before including "systty.h" if they
2511 wanted to use "#ifdef SIGIO".
2512
bc8000ff
EZ
25132012-09-07 Eli Zaretskii <eliz@gnu.org>
2514
3e6d6928
EZ
2515 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
2516
2517 * w32.c (sigemptyset): Empty the set.
2518 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
2519
bc8000ff
EZ
2520 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
2521
b4fa72f2
DA
25222012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
2523
2524 * alloc.c (mark_buffer): Revert unsafe marking optimization.
2525 (mark_object): Likewise for frame objects.
2526
30730c93
PE
25272012-09-07 Paul Eggert <eggert@cs.ucla.edu>
2528
2529 * syssignal.h (handle_on_main_thread): Always declare,
2530 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
2531 This ports to platforms without HAVE_PTHREAD.
2532
2fe28299
PE
25332012-09-06 Paul Eggert <eggert@cs.ucla.edu>
2534
2535 Signal-handler cleanup (Bug#12327).
2536 Emacs's signal handlers were written in the old 4.2BSD style with
2537 sigblock and sigmask and so forth, and this led to some
2538 inefficiencies and confusion. Rewrite these to use
2539 pthread_sigmask etc. without copying signal sets around. Also,
2540 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
2541 'signal', and instead use functions that do not attempt to take
2542 over the system name space. This patch causes Emacs's text
2543 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
2544 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
2545 Do not include <signal.h> or "syssignal.h", as these
2546 modules do not use signals.
2547 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
2548 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
2549 Do not include <signal.h>, as "syssignal.h" does that for us now.
2550 * atimer.c (sigmask_atimers): New function.
2551 (block_atimers, unblock_atimers): New functions,
2552 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
2553 All uses replaced.
2554 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
2555 no longer needed here.
2556 * emacs.c (main): Inspect existing signal handler with sigaction,
fc0c31f8 2557 so that there's no need to block and unblock SIGHUP.
2fe28299
PE
2558 * sysdep.c (struct save_signal): New member 'action', replacing
2559 old member 'handler'.
2560 (save_signal_handlers, restore_signal_handlers):
2561 Use sigaction instead of 'signal' to save and restore.
2562 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
2563 New function. All users of 'signal' modified to use set_sighandler
2564 if they're writeonly, and to use sys_signal if they're read+write.
2565 (emacs_sigaction_init, forwarded_signal): New functions.
2566 (sys_signal): Remove. All uses replaced by calls to sigaction
2567 and emacs_sigaction_init, or by direct calls to 'signal'.
2568 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
2569 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
2570 all uses replaced by pthread_sigmask etc. calls.
2571 * syssignal.h: Include <signal.h>.
2572 (emacs_sigaction_init, forwarded_signal): New decls.
2573 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
2574 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
2575 (sigmask, sys_sigmask): Remove; no longer needed.
2576 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
2577 (sigblock, sigunblock, sigfree):
2578 (sigsetmask) [!defined sigsetmask]:
2579 Remove. All uses replaced by pthread_sigmask.
2580 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
2581 no longer need to be replaced, and its typical old uses
2582 are now done via emacs_sigaction_init and sigaction.
2583 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
2584 (sys_sigdel): Remove; unused.
2585 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
2586
0216c128
EZ
25872012-09-06 Eli Zaretskii <eliz@gnu.org>
2588
2589 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
2590 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
2591
c752cfa9
DA
25922012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2593
2594 Explicitly mark buffer_defaults and buffer_local_symbols.
2595 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
2596 mark_local_symbols here.
2597 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
2598 since special buffers aren't marked here any more.
2599 (allocate_buffer): Chain new buffer with all_buffers here...
2600 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
2601 not here.
2602 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
2603 (syms_of_buffer): Remove staticpro of the above.
2604 (init_buffer_once): Set names for buffer_defaults and
2605 buffer_local_symbols.
2606
a864ef14
PE
26072012-09-06 Paul Eggert <eggert@cs.ucla.edu>
2608
2609 Use bool for booleans in font-related modules.
2610 * font.c (font_intern_prop, font_style_to_value)
2611 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
2612 (generate_otf_features, font_check_otf_features, font_check_otf)
2613 (font_match_p, font_list_entities, font_at):
2614 * fontset.c (fontset_id_valid_p, reorder_font_vector
2615 (fontset_find_font, Fset_fontset_font)
2616 (face_suitable_for_char_p) [0]:
2617 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
2618 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
2619 (m17n_flt_initialized, ftfont_shape_by_flt):
2620 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
2621 * nsfont.m (nsfont_draw):
2622 * w32font.c (w32font_draw):
2623 * w32term.c (x_draw_glyphless_glyph_string_foreground):
2624 Use bool for booleans.
2625 * font.h: Adjust to above API changes.
2626 (struct font, struct font_driver, struct font_driver_list):
2627 Use bool for booleans.
2628 (struct font): Remove useless member encoding_type.
2629 All users removed.
2630 * fontset.c, xftfont.c: Omit unnecessary static decls.
2631
0699fc18
DA
26322012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2633
2634 * alloc.c (mark_object): Revert window marking code
2635 since it's unsafe for the Fset_window_configuration.
2636
20ef56db
PE
26372012-09-05 Paul Eggert <eggert@cs.ucla.edu>
2638
2fe28299 2639 Fix race conditions with signal handlers and errno (Bug#12327).
20ef56db
PE
2640 Be more systematic about preserving errno whenever a signal
2641 handler returns, even if it's not in the main thread. Do this by
2642 renaming signal handlers to distinguish between signal delivery
2643 and signal handling. All uses changed.
2644 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
2645 * data.c (deliver_arith_signal): Rename from arith_error.
2646 * dispnew.c (deliver_window_change_signal): Rename from
2647 window_change_signal.
2648 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
2649 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
2650 * keyboard.c (deliver_input_available_signal): Rename from
2651 input_available_signal.
2652 (deliver_user_signal): Rename from handle_user_signal.
2653 (deliver_interrupt_signal): Rename from interrupt_signal.
2654 * process.c (deliver_pipe_signal): Rename from send_process_trap.
2655 (deliver_child_signal): Rename from sigchld_handler.
2656 * atimer.c (handle_alarm_signal):
2657 * data.c (handle_arith_signal):
2658 * dispnew.c (handle_window_change_signal):
2659 * emacs.c (handle_fatal_signal, handle_danger_signal):
2660 * keyboard.c (handle_input_available_signal):
2661 * keyboard.c (handle_user_signal, handle_interrupt_signal):
2662 * process.c (handle_pipe_signal, handle_child_signal):
2663 New functions, with the actual signal-handling code taken from the
2664 original respective signal handlers, sans the sporadic attempts to
2665 preserve errno, since that's now done by handle_on_main_thread.
2666 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
2667 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
2668 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2669 Move to sysdep.c.
2670 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2671 Move initialization of main_thread to sysdep.c's init_signals.
2672 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
2673 our usage, and simplifies the mainline code.
2674 (record_child_status_change): New static function, as a helper
2675 for handle_child_signal, and with most of the old child handler's
2676 contents.
2677 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
2678 (handle_child_signal): Use the above.
2679 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2680 Moved here from emacs.c.
2681 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
2682 code moved here from emacs.c's main function.
2683 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
3a880af4
SM
2684 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
2685 This lets callers save and restore errno properly.
20ef56db 2686
e3ccf108
DA
26872012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2688
2689 Remove redundant or unused things here and there.
2690 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
2691 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
2692 * editfns.c (Fcompare_buffer_substrings): Likewise.
2693 * frame.h (struct terminal, struct font_driver_list):
2694 Remove redundant declarations.
2695 * window.h (Qleft, Qright): Likewise.
2696
697e1e39
DA
26972012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2698
2699 Do not mark objects from deleted buffers, windows and frames.
2700 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
2701 (mark_object): Likewise for windows and frames.
2702
c1ca42ca
DA
27032012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2704
2705 * alloc.c (valid_lisp_object_p): Treat killed buffers,
2706 buffer_defaults and buffer_local_symbols as valid objects.
2707 Return special value to denote them.
2708
014d93be
PE
27092012-09-05 Paul Eggert <eggert@cs.ucla.edu>
2710
f75d7a91
PE
2711 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
2712 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
2713 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
2714 (file_name_absolute_p, Fsubstitute_in_file_name):
2715 (check_executable, check_writable, Ffile_accessible_directory_p)
2716 (Fset_file_selinux_context, Fdefault_file_modes)
2717 (Finsert_file_contents, choose_write_coding_system)
2718 (Fwrite_region, build_annotations, a_write, e_write)
2719 (Fdo_auto_save):
2720 * filelock.c (boot_time_initialized, get_boot_time)
2721 (get_boot_time_1, lock_file_1, within_one_second):
2722 * floatfns.c (in_float):
2723 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
2724 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
2725 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
2726 * lisp.h (struct Lisp_Hash_Table.cmpfn):
2727 * window.c (compare_window_configurations):
2728 Use bool for booleans.
2729 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
2730 (Fdefault_file_modes): Now mode_t, not int, for modes.
2731 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
2732 (internal_delete_file): Now returns void, not a (boolean) int,
2733 since nobody was looking at the return value.
2734 * lisp.h, window.h: Adjust to above API changes.
2735
014d93be
PE
2736 * xdisp.c (set_message): Simplify and reindent last change.
2737
776f29e1
JB
27382012-09-05 Juanma Barranquero <lekktu@gmail.com>
2739
2740 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
2741
7f7e0167
LI
27422012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
2743
2744 * eval.c (call_debugger): Make the function non-static so that we
2745 can call it from set_message.
2746
2747 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
2748 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
2749
cf29dd84
PE
27502012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2751
2752 Give more-useful info on a fatal error (Bug#12328).
2753 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
2754 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
2755 of doing the work ourselves.
2756 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
2757 do most of the work.
2758 (fatal_error_backtrace): New function, taken from the guts
2759 of the old fatal_error_signal, but with a new option to output
2760 a backtrace.
2761 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
2762 info about the signal than just its number.
2763 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
2764 * sysdep.c: Include <execinfo.h>
2765 (emacs_backtrace): New function, taken partly from the previous
2766 code of the 'die' function.
2767 (emacs_abort): Call fatal_error_backtrace rather than abort.
2768
972debf2
SM
27692012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
2770
2771 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
2772 eager (load-time) macro-expansion.
2773 * lisp.mk (lisp): Add macroexp.
2774
1088b922
PE
27752012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2776
2777 Simplify redefinition of 'abort' (Bug#12316).
2778 Do not try to redefine the 'abort' function. Instead, redo
2779 the code so that it calls 'emacs_abort' rather than 'abort'.
2780 This removes the need for the NO_ABORT configure-time macro
2781 and makes it easier to change the abort code to do a backtrace.
2782 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
2783 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
2784 Remove; sysdep.c's emacs_abort now takes its place.
2785 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
2786 'abort' changed to use 'emacs_abort'.
2787 * msdos.c (dos_abort) [defined abort]: Remove; not used.
2788 (abort) [!defined abort]: Rename to ...
2789 (emacs_abort): ... new name.
2790 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
2791 the place of the old 'abort' in emacs.c.
2792 * w32.c, w32fns.c (abort): Do not #undef.
2793 * w32.c (emacs_abort): Rename from w32_abort.
2794
30934d33
EZ
27952012-09-04 Eli Zaretskii <eliz@gnu.org>
2796
2797 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
2798 offsets[j].dv, since the y axis of the screen coordinates points
2799 down, while the y axis of the font definition coordinates points
2800 up. This fixes display of Arabic diacritics such as KASRA and
2801 KASRATAN. (Bug#11860)
2802
af26b72c
PE
28032012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2804
2805 Be more systematic about _setjmp vs setjmp.
2806 * alloc.c (test_setjmp, mark_stack):
2807 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
2808 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
2809 (png_load, my_error_exit, jpeg_load):
2810 * process.c (send_process_trap, send_process):
2811 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
2812 The underscored versions are up to 30x faster on some hosts.
2813 Formerly, the code used setjmp+longjmp sometimes and
2814 _setjmp+_longjmp at other times, with no particular reason to
2815 prefer setjmp+longjmp.
2816
26d4541d
PE
28172012-09-03 Paul Eggert <eggert@cs.ucla.edu>
2818
d42f4f0f 2819 Fix minor problem found by static checking.
26d4541d 2820 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 2821
c5e28e39
MR
28222012-09-03 Martin Rudalics <rudalics@gmx.at>
2823
2824 * buffer.c (Fdelete_all_overlays): New function.
2825
3eab3ca9
CY
28262012-09-03 Chong Yidong <cyd@gnu.org>
2827
2828 * gtkutil.c: Add extern decl for Qxft.
2829
c04889f8
PE
28302012-09-02 Paul Eggert <eggert@cs.ucla.edu>
2831
1882aa38
PE
2832 * emacs.c, eval.c: Use bool for boolean.
2833 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
2834 (malloc_using_checking) [DOUG_LEA_MALLOC]:
2835 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
2836 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
2837 (main, decode_env_path, Fdaemon_initialized):
2838 * eval.c (call_debugger, Finteractive_p, interactive_p):
2839 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
2840 (maybe_call_debugger, Fbacktrace):
2841 * process.c (read_process_output, exec_sentinel):
2842 Use bool for booleans.
2843 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
2844 All callers changed.
2845 * eval.c (interactive_p): Omit always-true boolean argument
2846 EXCLUDE_SUBRS_P. All callers changed.
2847 * dispextern.h, lisp.h: Reflect above API changes.
2848 * firstfile.c (dummy): Use the address of 'main', whose signature
2849 won't change, instead of the address of 'initialize', whose
2850 signature just changed from int to bool.
2851 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
2852 * msdos.c (fatal_error_in_progress): ... from here.
2853 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
2854 of incrementing it.
2855 (redisplay_internal, unwind_redisplay): Simply clear
2856 REDISPLAYING_P when unwinding, instead of saving its previous,
2857 always-false value and then restoring it.
2858
a411ac43
PE
2859 Clean up some extern decls.
2860 Mostly, this hoists extern decls out of .c files and into .h files.
2861 That way, we're more likely to catch errors if the interfaces change.
2862 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
2863 declare xg_mark_data.
2864 * dispextern.h (x_frame_parm_handlers):
2865 * font.h (Qxft):
2866 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
2867 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
2868 (Qultra_bold, Qoblique, Qitalic):
2869 Move extern decl here from .c file.
2870 * alloc.c (xg_mark_data) [USE_GTK]:
2871 * doc.c (Qclosure):
2872 * eval.c (Qlexical_binding):
2873 * fns.c (time) [!HAVE_UNISTD_H]:
2874 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
2875 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
2876 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
2877 * lread.c (Qinternal_interpreter_environment):
2878 * minibuf.c (Qbuffer):
2879 * process.c (QCfamily, QCfilter):
2880 * widget.c (free_frame_faces):
2881 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
2882 * xfont.c (x_clear_errors):
2883 * xterm.c (x_frame_parm_handlers):
2884 Remove now-redundant extern decls.
2885 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
2886 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
2887 Now static.
2888 * xfaces.c: Remove unnecessary static decls.
2889 * xterm.c (updating_frame): Remove decl of nonexistent object.
2890
c04889f8
PE
2891 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
2892 when building globals.h, as the objects that are not built on
2893 this host are not needed to compile C files on this host.
2894
8b339673
JD
28952012-09-02 Jan Djärv <jan.h.d@swipnet.se>
2896
2897 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
2898
2899 * frame.h: Add missing prototype for x_wm_set_size_hint.
2900
a08d4ba7
PE
29012012-09-02 Paul Eggert <eggert@cs.ucla.edu>
2902
2903 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
2904 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
2905 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
2906 (Fsubstitute_command_keys):
2907 * editfns.c (region_limit, find_field, Fconstrain_to_field)
2908 (save_excursion_save, save_excursion_restore)
2909 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
2910 (format_time_string, general_insert_function)
2911 (make_buffer_string, make_buffer_string_both)
2912 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
2913 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
2914 (copy_text, insert_1, insert_1_both, insert_from_string)
2915 (insert_from_string_before_markers, insert_from_string_1)
2916 (insert_from_buffer, insert_from_buffer_1, replace_range)
2917 (replace_range_2, del_range_1, del_range_byte, del_range_both)
2918 (del_range_2, modify_region):
2919 * intervals.c (intervals_equal, balance_possible_root_interval)
2920 (adjust_intervals_for_insertion, merge_properties_sticky)
2921 (graft_intervals_into_buffer, lookup_char_property)
2922 (adjust_for_invis_intang, set_point_both)
2923 (get_property_and_range, compare_string_intervals)
2924 (set_intervals_multibyte_1, set_intervals_multibyte):
2925 * keyboard.c (decode_timer):
2926 Use bool for boolean.
2927 * intervals.h, lisp.h, systime.h: Reflect above API changes.
2928 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
2929
48c948de
CY
29302012-09-02 Chong Yidong <cyd@gnu.org>
2931
2932 * keymap.c (push_key_description): Print M-TAB as C-M-i
2933 (Bug#11758).
2934
6c49a40b
JB
29352012-09-02 Juanma Barranquero <lekktu@gmail.com>
2936
2937 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
2938 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
2939 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
2940 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
2941 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
2942 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
2943 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
2944
4dfbd238
EZ
29452012-09-01 Eli Zaretskii <eliz@gnu.org>
2946
7e510e28
EZ
2947 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
2948 more than one grapheme cluster passed to the shaper: compute the
2949 offset adjustment values separately for each cluster. (Bug#11860)
2950
4dfbd238
EZ
2951 * image.c: Restore mistakenly removed inclusion of w32.h. Without
2952 it, GCC doesn't see prototypes of w32_delayed_load, and complains
2953 about implicit conversions from integer to pointer.
2954
86571ae0
DC
29552012-09-01 Daniel Colascione <dancol@dancol.org>
2956
2957 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
2958 system used too early.
2959
0e23ef9d
PE
29602012-09-01 Paul Eggert <eggert@cs.ucla.edu>
2961
2962 Better seed support for (random).
2963 * emacs.c (main): Call init_random.
2964 * fns.c (Frandom): Set the seed from a string argument, if given.
2965 Remove long-obsolete Gentzel cruft.
2966 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
2967 (init_random): New function.
2968
17a2cbbd
DC
29692012-09-01 Daniel Colascione <dancol@dancol.org>
2970
2971 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
2972 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
2973 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
2974 x_wm_set_size_hint, x_query_colors, x_real_positions,
2975 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
2976 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
2977 all of which have been moved to common code.
2978
2979 * xfaces.c: Include TERM_HEADER instead of listing all possible
2980 window-system headers.
2981
2982 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
2983 to match header.
2984
2985 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
2986 directly accessing frame internals.
2987
f18cbb28 2988 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
2989 globals_of_w32font.
2990
2991 * process.c: Include TERM_HEADER instead of listing all possible
2992 window-system headers.
2993
3a880af4
SM
2994 * nsterm.h: Remove declarations now in frame.h.
2995 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
17a2cbbd
DC
2996
2997 * menu.c: Include TERM_HEADER instead of listing all possible
2998 window-system headers.
2999
3000 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
3001 window system.
3002
3003 * keyboard.c: Include TERM_HEADER instead of listing all possible
3004 window-system headers.
3005
3006 * image.c: Include TERM_HEADER instead of listing all possible
3007 window-system headers. Declare Vlibrary_cache when compiling for
3008 Windows.
3009
3010 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
3011 window system declarations.
3012
3013 * frame.h: Move common functions here: set_frame_menubar,
3014 x_set_window_size, x_sync, x_get_focus_frame,
3015 x_set_mouse_position, x_set_mouse_pixel_position,
3016 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
3017 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
3018 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
3019 x_activate_menubar, x_real_positions, x_bitmap_icon,
3020 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
3021 and x_query_colors.
3022
3023 * frame.c: Include TERM_HEADER instead of listing all possible
3024 window-system headers.
3025
3026 * font.c: Include TERM_HEADER instead of listing all possible
3027 window-system headers.
3028
3029 * emacs.c: Include TERM_HEADER.
3030
f18cbb28
EZ
3031 * dispnew.c: Include TERM_HEADER instead of listing all possible
3032 window-system headers.
17a2cbbd 3033
f18cbb28 3034 * ccl.h: Include character.h.
17a2cbbd
DC
3035
3036 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
3037 the current window system; include in list of objects to link into
3038 Emacs.
3039
c650a5de
DA
30402012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
3041
3042 Remove mark_ttys function and fix tty_display_info initialization.
3043 * lisp.h (mark_ttys): Remove prototype.
3044 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
3045 to mark_ttys because all possible values of 'top_frame' slot are
3046 the frames which are reachable from Vframe_list.
3047 * term.c (mark_ttys): Remove.
3048 (init_tty): Safely initialize 'top_frame' slot with Qnil.
3049
4e0f6479
DA
30502012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
3051
3052 Change struct frame bitfields from unsigned char to unsigned.
3053 * frame.h (struct frame): Change type of 'display_preempted',
3054 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
3055 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
3056 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
3057 bitfields from unsigned char to unsigned.
3058
8b96a52c
DA
30592012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
3060
3061 Remove unused member of struct x_output and struct w32_output.
3062 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
3063 * w32term.h (struct w32_output): Likewise.
3064
b4444c8a
JD
30652012-08-30 Jan Djärv <jan.h.d@swipnet.se>
3066
3067 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
3068 does not become zero (Bug#12234).
3069
b98521db
PE
30702012-08-30 Paul Eggert <eggert@cs.ucla.edu>
3071
3072 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
3073 for GCC 4.7.1 x86-64.
3074
31d02438
GM
30752012-08-30 Glenn Morris <rgm@gnu.org>
3076
3077 * lread.c (init_lread): For out-of-tree builds, only add the
3078 source directory's site-lisp dir to the load-path if it exists,
3079 consistent with in-tree builds. (Bug#12302)
3080
7f8941d8
JD
30812012-08-28 Jan Djärv <jan.h.d@swipnet.se>
3082
3083 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
fc0c31f8 3084 button_values to NULL. Call setStykeMask so dialogs get a close button.
7f8941d8
JD
3085 (windowShouldClose:): Set window_closed.
3086 (dealloc): New member, free button_values.
fc0c31f8
JB
3087 (process_dialog:): Make member function. Remove window argument,
3088 replace window with self. Count buttons and allocate and store values
7f8941d8
JD
3089 in button_values.
3090 (addButton:value:row:): value is int with the name tag. Call setTag
fc0c31f8 3091 with tag. Remove return self, declare return value as void.
7f8941d8
JD
3092 (addString:row:): Remove return self, declare return value as void.
3093 (addSplit): Remove return self, declare return value as void.
3094 (clicked:): Remove return self, declare return value as void.
fc0c31f8 3095 Set dialog_return to button_values[seltag]. Code formatting change.
7f8941d8
JD
3096 (initFromContents:isQuestion:): Adjust call to process_dialog.
3097 Code formatting change.
3098 (timeout_handler:): Set timer_fired to YES.
3099 (runDialogAt:): Set timer_fired to NO.
3100 Handle click on close button as quit.
3101
3102 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
3103 Add window_closed and button_values. Add void as return value for
3104 add(Button|String|Split). addButton takes int instead of Lisp_Object.
3105 Add process_dialog as new member.
3106
eada0861 31072012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 3108
eada0861
GM
3109 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
3110 is not one of the heaps we manage. (Bug#12242)
3111
31122012-08-28 Glenn Morris <rgm@gnu.org>
3113
3114 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
3115
457294dd
MR
31162012-08-28 Martin Rudalics <rudalics@gmx.at>
3117
3118 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
3119 auto-buffer-name window parameter. Install revision of reverted
3120 fix.
457294dd 3121
4f2daf31
DA
31222012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
3123
3124 Do not allow to set major mode for a dead buffer.
3125 * buffer.c (Fset_buffer_major_mode): Signal an error
3126 if the buffer is dead.
3127 (Fother_buffer, other_buffer_safely): Remove redundant
3128 nested declaration.
3129
66322887
DA
31302012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
3131
3132 Always use set_buffer_if_live to restore original buffer at unwind.
3133 * buffer.h (record_unwind_current_buffer): New function.
3134 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
3135 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
3136 * undo.c, window.c: Adjust users.
3137 * buffer.c (set_buffer_if_live): Fix comment.
3138
a3d794a1
DA
31392012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
3140
3141 Fix usage of set_buffer_internal.
3142 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
3143 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
3144 * coding.c (decode_coding): Omit redundant test.
3145 * fileio.c (decide_coding_unwind): Likewise.
3146 * fns.c (secure_hash): Likewise.
3147 * insdel.c (modify_region): Likewise.
3148 * keyboard.c (command_loop_1): Likewise.
3149 * print.c (PRINTFINISH): Likewise.
3150 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
3151
59ea14cd
PE
31522012-08-27 Paul Eggert <eggert@cs.ucla.edu>
3153
3154 * dispnew.c: Use bool for boolean.
3155 (frame_garbaged, display_completed, delayed_size_change)
3156 (fonts_changed_p, add_window_display_history)
3157 (add_frame_display_history, verify_row_hash)
3158 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
3159 (row_equal_p, realloc_glyph_pool)
3160 (allocate_matrices_for_frame_redisplay)
3161 (showing_window_margins_p)
3162 (adjust_frame_glyphs_for_frame_redisplay)
3163 (build_frame_matrix_from_leaf_window, make_current)
3164 (mirrored_line_dance, mirror_line_dance, update_frame)
3165 (update_window_tree, update_single_window)
3166 (check_current_matrix_flags, update_window, update_text_area)
3167 (update_window_line, set_window_update_flags, scrolling_window)
3168 (update_frame_1, scrolling, buffer_posn_from_coords)
3169 (do_pending_window_change, change_frame_size)
3170 (change_frame_size_1, sit_for):
3171 Use bool for boolean.
3172 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
3173 and remove last int (actually boolean) argument, which was always 0.
3174 All callers changed.
3175 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
3176 * dispextern.h (struct composition_it): Use bool for boolean.
3177 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
3178 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
3179 * dired.c (file_name_completion):
3180 Use bool for boolean. (This was missed in an earlier change.)
3181
95072a94
MR
31822012-08-27 Martin Rudalics <rudalics@gmx.at>
3183
3184 * window.c (Fset_window_configuration): Revert first part of
3185 last change.
3186
0f19feff
JD
31872012-08-27 Jan Djärv <jan.h.d@swipnet.se>
3188
3189 * nsterm.h (NSPanel): New class variable dialog_return.
3190
3a880af4
SM
3191 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
3192 Initialize dialog_return.
0f19feff
JD
3193 (windowShouldClose:): Use stop instead of stopModalWithCode.
3194 (clicked:): Ditto, and also set dialog_return (Bug#12258).
3195 (timeout_handler:): Use stop instead of abortModal. Send a dummy
3196 event.
3197 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
3198 modal loop returns.
3199
f10fe38f
PE
32002012-08-27 Paul Eggert <eggert@cs.ucla.edu>
3201
de1339b0
PE
3202 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
3203 * composite.c (find_composition, composition_gstring_p)
3204 (composition_reseat_it, find_automatic_composition):
3205 * data.c (let_shadows_buffer_binding_p)
3206 (let_shadows_global_binding_p, set_internal, make_blv)
3207 (Fmake_variable_buffer_local, Fmake_local_variable)
3208 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
3209 (cons_to_signed, arith_driver):
3210 * dbusbind.c (xd_in_read_queued_messages):
3211 * dired.c (directory_files_internal, file_name_completion):
3212 Use bool for booleans.
3213 * dired.c (file_name_completion):
3214 * process.h (fd_callback):
3215 Omit int (actually boolean) argument. It wasn't being used.
3216 All uses changed.
3217 * composite.h, lisp.h: Reflect above API changes.
3218
f10fe38f
PE
3219 * cmds.c, coding.c: Use bool for booleans.
3220 * cmds.c (move_point, Fself_insert_command):
3221 * coding.h (struct composition status, struct coding_system):
3222 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
3223 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
3224 (emacs_mule_char, decode_coding_emacs_mule)
3225 (encode_coding_emacs_mule, detect_coding_iso_2022)
3226 (decode_coding_iso_2022, encode_invocation_designation)
3227 (encode_designation_at_bol, encode_coding_iso_2022)
3228 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
3229 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
3230 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
3231 (encode_coding_raw_text, detect_coding_charset)
3232 (decode_coding_charset, encode_coding_charset, detect_eol)
3233 (detect_coding, get_translation_table, produce_chars)
3234 (consume_chars, reused_workbuf_in_use)
3235 (make_conversion_work_buffer, code_conversion_save)
3236 (decode_coding_object, encode_coding_object)
3237 (detect_coding_system, char_encodable_p)
3238 (Funencodable_char_position, code_convert_region)
3239 (code_convert_string, code_convert_string_norecord)
3240 (Fset_coding_system_priority):
3241 * fileio.c (Finsert_file_contents):
3242 Use bool for booleans.
3243 * coding.h, lisp.h: Reflect above API changes.
3244 * coding.c: Remove unnecessary static function decls.
3245 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
3246 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
3247 not a boolean 'int', since callers never look at the return value.
3248 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
3249 * coding.h (decoding_buffer_size, encoding_buffer_size)
3250 (emacs_mule_string_char): Remove unused extern decls.
3251 (struct iso_2022_spec, struct coding_system):
3252 Use 'unsigned int : 1' for boolean fields, since there's more than one.
3253 (struct emacs_mule_spec): Remove unused field 'full_support'.
3254 All initializations removed.
3255 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
3256
5474c384
DA
32572012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
3258
f10fe38f 3259 Fix spare memory change (Bug#12286).
5474c384
DA
3260 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
3261 (valid_lisp_object_p): Likewise.
3262
c4b6914d
MR
32632012-08-27 Martin Rudalics <rudalics@gmx.at>
3264
3265 * window.c (Fset_window_configuration): Record any window's old
3266 buffer if it's replaced (see Bug#8789). If the new current
3267 buffer doesn't appear in the selected window, go to its old
3268 point (Bug#12208).
3269
35aaa1ea
DA
32702012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
3271
3272 Special MEM_TYPE_SPARE to denote reserved memory.
3273 * alloc.c (enum mem_type): New memory type.
3274 (refill_memory_reserve): Use new type for spare memory.
3275 This prevents live_cons_p and live_string_p from incorrect
3276 detection of uninitialized objects from spare memory as live.
3277
6af64513
PE
32782012-08-26 Paul Eggert <eggert@cs.ucla.edu>
3279
8b2e00a3
PE
3280 Spelling fixes.
3281 * Makefile.in (.PHONY): versioclean -> versionclean.
3282
b52d6985
PE
3283 Remove unused external symbols.
3284 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
3285 * window.c (Qwindow_valid_p, decode_valid_window):
3286 Now static, not extern.
3287 * data.c (Qinterval): Remove; unused.
3288 (syms_of_data): Do not define 'interval'.
3289 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
3290 * window.h (decode_valid_window):
3291 Remove decls.
3292
d5172d4f
PE
3293 * character.c, charset.c, chartab.c: Use bool for booleans.
3294 * character.c (lisp_string_width, string_count_byte8)
3295 (string_escape_byte8):
3296 * charset.c (charset_map_loaded, load_charset_map, read_hex):
3297 (load_charset_map_from_file, map_charset_chars)
3298 (Fdefine_charset_internal, define_charset_internal)
3299 (Fdeclare_equiv_charset, find_charsets_in_text)
3300 (Ffind_charset_region, char_charset, Fiso_charset):
3301 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
3302 (sub_char_table_set, sub_char_table_set_range)
3303 (char_table_set_range, optimize_sub_char_table)
3304 (map_sub_char_table):
3305 Use bool for boolean.
3306 * character.c (str_to_unibyte): Omit last boolean argument; it was
3307 always 0. All callers changed.
3308 * character.h, charset.h: Adjust to match previous changes.
3309 * character.h (char_printable_p): Remove decl of nonexistent function.
3310 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
3311 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
3312 are all boolean, so make them single-bit bitfields.
3313
6af64513
PE
3314 * lisp.h (ASET): Remove attempt to detect side effects.
3315 It was meant to be temporary and it often doesn't work,
3316 because when IDX has side effects the behavior of IDX==IDX
3317 is undefined. See Stefan Monnier in
3318 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
3319
e1f29348
BR
33202012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
3321
3322 * lisp.h (functionp): New function (extracted from Ffunctionp).
3323 (FUNCTIONP): Use it.
3324 * eval.c (Ffunctionp): Use it.
3325
17c05d74
PE
33262012-08-25 Paul Eggert <eggert@cs.ucla.edu>
3327
0f46bc75
PE
3328 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
3329 as that's faster and simpler than static storage. Don't bother
3330 with the g_main_context_query overhead if g_main_context_pending
3331 says no events are pending.
3332 (gfds, gfds_size): Remove these static vars.
3333 (xgselect_initialize): Remove; no longer needed.
3334 All uses and decls removed.
3335
ee4c0f69
PE
3336 * emacs.c (fatal_error_signal_hook): Remove.
3337 All uses removed. This leftover from old code was always 0.
3338
17c05d74
PE
3339 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
3340 * casefiddle.c (casify_object, casify_region):
3341 * casetab.c (set_case_table):
3342 * category.c, category.h (word_boundary_p):
3343 * category.h (CHAR_HAS_CATEGORY):
3344 Use bool for booleans, instead of int.
3345
391ceac5
EZ
33462012-08-25 Eli Zaretskii <eliz@gnu.org>
3347
3348 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
3349
2f221583
PE
33502012-08-25 Paul Eggert <eggert@cs.ucla.edu>
3351
f4a681b0
PE
3352 On assertion failure, print backtrace if available.
3353 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
3354 (die) [ENABLE_CHECKING]: Print a backtrace if available.
3355 * Makefile.in (LIB_EXECINFO): New macro.
3356 (LIBES): Use it.
3357
2f221583
PE
3358 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
3359 * bytecode.c (exec_byte_code):
3360 * callint.c (check_mark, Fcall_interactively):
3361 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
3362 (getenv_internal, sync_process_alive, call_process_exited):
3363 * lisp.h (USE_SAFE_ALLOCA):
3364 Use bool for booleans, instead of int.
3365 * lisp.h, process.h: Adjust prototypes to match above changes.
3366 * callint.c (Fcall_interactively): Don't assume the mark's
3367 offset fits in 'int'.
3368
37ef52bb
PE
33692012-08-24 Paul Eggert <eggert@cs.ucla.edu>
3370
3371 * buffer.c, buffer.h: Use bool for boolean.
3372 * buffer.c (reset_buffer_local_variables)
3373 (buffer_lisp_local_variables, Fset_buffer_modified_p)
3374 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
3375 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
3376 (overlay_touches_p, overlay_strings, Foverlay_put)
3377 (report_overlay_modification, call_overlay_mod_hooks):
3378 (mmap_enlarge, mmap_set_vars):
3379 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
3380 Use bool for booleans, instead of int.
3381 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
3382 since the 1-or-0 return value is always ignored anyway.
3383 (mmap_initialized_p):
3384 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
3385 * buffer.h, lisp.h: Adjust prototypes to match above changes.
3386
2cc21167
PE
33872012-08-23 Paul Eggert <eggert@cs.ucla.edu>
3388
3389 * bidi.c: Use bool for boolean.
3390 This is a bit more readable, and makes the text segment of bidi.o
3391 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
3392 Presumably it's faster too.
3393 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
3394 Now bool.
3395 (bidi_cache_find_level_change, bidi_cache_iterator_state)
3396 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
3397 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
3398 (bidi_explicit_dir_char, bidi_level_of_next_char)
3399 (bidi_find_other_level_edge, bidi_move_to_visually_next):
3400 Use bool for booleans, instead of int.
3401 * dispextern.h (bidi_init_it, bidi_paragraph_init)
3402 (bidi_unshelve_cache): Adjust decls to match code.
3403
7db4ddf4
MR
34042012-08-23 Martin Rudalics <rudalics@gmx.at>
3405
3406 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
3407 argument.
3408
b1bb8011
PE
34092012-08-23 Paul Eggert <eggert@cs.ucla.edu>
3410
3411 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
3412 * atimer.h: Include <stdbool.h>.
3413
ff687885
DN
34142012-08-22 Dan Nicolaescu <dann@gnu.org>
3415
3416 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
3417 compile time tests instead of run time tests on systems that do
3418 not use them.
3419 (FRAME_MAC_P): Remove leftover from deleted code.
3420 * frame.c (syms_of_frame): Remove leftover from deleted code.
3421
4ce7a138
JD
34222012-08-22 Jan Djärv <jan.h.d@swipnet.se>
3423
3424 * nsterm.m (insertText:): Don't clear modifiers if code is space.
3425
d733ec6d
PE
34262012-08-22 Paul Eggert <eggert@cs.ucla.edu>
3427
3428 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
3429 Otherwise, the compiler complains about (A?B:C) where B is void
fc0c31f8 3430 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
d733ec6d
PE
3431 (fontset_add): Return void, for FONTSET_ADD.
3432
d0d2d26f
PE
34332012-08-21 Paul Eggert <eggert@cs.ucla.edu>
3434
fce31d69
PE
3435 * alloc.c: Use bool for booleans.
3436 (gc_in_progress, abort_on_gc)
3437 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
3438 (dont_register_blocks) [GC_MALLOC_CHECK]:
3439 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
3440 (check_string_bytes, make_specified_string, memory_full)
3441 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3442 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
3443 (mark_stack, valid_pointer_p, make_pure_string)
3444 (Fgarbage_collect, survives_gc_p, gc_sweep):
3445 Use bool for booleans, instead of int.
3446 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
3447 Remove unused local.
3448 * alloc.c (PURE_POINTER_P):
3449 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
3450 * editfns.c (Fformat):
3451 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
3452 (Fdo_auto_save):
3453 * fns.c (sweep_weak_table):
3454 * lisp.h (suppress_checking, push_message, survives_gc_p)
3455 (make_pure_string, gc_in_progress, abort_on_gc):
3456 * lread.c (readchar, read1):
3457 * print.c (Fprin1_to_string):
3458 * xdisp.c (push_message):
3459 Use bool for booleans affected directly or indirectly by
3460 alloc.c's changes.
3461
d0d2d26f
PE
3462 Make recently-introduced setters macros.
3463 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
3464 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
3465 (set_fontset_default, set_fontset_fallback): Rename from their
3466 upper-case counterparts, and make them functions rather than macros.
3467 This is more consistent with the other recently-introduced setters.
3468 These don't need to be inline, since they're local.
3469
d18e2bb6
JD
34702012-08-21 Jan Djärv <jan.h.d@swipnet.se>
3471
3472 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
3473 the loop (Bug#12247).
3474
1b9d9d16
PE
34752012-08-21 Paul Eggert <eggert@cs.ucla.edu>
3476
3477 * lisp.h (vcopy): Use memcpy rather than our own loop.
3478 This fixes a performance regression introduced by the recent
3479 addition of vcopy. This means 'vcopy' will need to be modified
3480 for a copying collector, but that's OK. Also, tighten the
3481 checking in the assertion.
3482
b2f09701
EZ
34832012-08-21 Eli Zaretskii <eliz@gnu.org>
3484
3485 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
3486 components for RTL text (Bug#11860). Adjust X-OFFSET of each
3487 non-base glyph for the width of the base character, according to
e1f29348
BR
3488 what x_draw_composite_glyph_string_foreground expects.
3489 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
3490 expectations, to produce correct width of the composed character.
3491 Reverse the sign of the DU offset produced by ScriptPlace.
3492
9b994fed
PE
34932012-08-21 Paul Eggert <eggert@cs.ucla.edu>
3494
3495 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
3496
086ca913
DA
34972012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
3498
3499 Avoid direct writes to contents member of struct Lisp_Vector.
3500 * lisp.h (vcopy): New function to copy data into vector.
3501 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
3502 * fns.c (Ffillarray): Use ASET.
3503 * keyboard.c (timer_check_2): Use AREF and ASET.
3504 (append_tool_bar_item, Frecent_keys): Use vcopy.
3505 * lread.c (read_vector): Use ASET.
3506 * msdos.c (Frecent_doskeys): Use vcopy.
3507 * xface.c (Finternal_copy_lisp_face): Use vcopy.
3508 (Finternal_merge_in_global_face): Use ASET and vcopy.
3509 * xfont.c (xfont_list_pattern): Likewise.
3510
5481664a
MR
35112012-08-21 Martin Rudalics <rudalics@gmx.at>
3512
3513 * window.c (Fwindow_point): For the selected window always return
3514 the position of its buffer's point.
3515 (Fset_window_point): For the selected window always go in its
3516 buffer to the specified position.
3517
6d470bdd
DA
35182012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
3519
3520 Setter macros for fontsets.
3521 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
3522 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
3523 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
3524 Adjust users.
3525
24564fe1
GM
35262012-08-20 Glenn Morris <rgm@gnu.org>
3527
3528 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
3529 Don't assume that `ln -f' works.
3530
0a05a035
EZ
35312012-08-20 Eli Zaretskii <eliz@gnu.org>
3532
3533 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
3534 and later about non-assignments with no effect. See discussion at
3535 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
3536 details.
3537
e46f2325
DA
35382012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
3539
3540 Inline setter functions for Lisp_Objects slots of struct specbinding.
3541 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
3542 Adjust users.
3543
734fbd86
MR
35442012-08-20 Martin Rudalics <rudalics@gmx.at>
3545
3546 * window.c (select_window): Always make selected window's buffer
3547 current.
3548
f1a95992
DA
35492012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
3550
3551 Use AREF and ASET for docstrings of category tables.
3552 * category.h (CATEGORY_DOCSTRING): Use AREF.
3553 (SET_CATEGORY_DOCSTRING): Use ASET.
3554 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
3555
e83064be
DA
35562012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
3557
3558 Inline setter functions for hash table members.
3559 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
3560 (set_hash_hash, set_hash_index): Rename with _slot suffix.
3561 (set_hash_key_and_value, set_hash_index, set_hash_next)
3562 (set_hash_hash): New functions.
3563 * charset.c, fns.c: Adjust users.
3564
4ce60d2e
DA
35652012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
3566
3567 Inline getter and setter functions for per-buffer values.
3568 * buffer.h (per_buffer_default, set_per_buffer_default)
3569 (per_buffer_value, set_per_buffer_value): New functions.
3570 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
3571 * buffer.c, data.c: Adjust users.
3572
c06c9690
JB
35732012-08-20 Juanma Barranquero <lekktu@gmail.com>
3574
3575 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
3576
32bd4250
PE
35772012-08-19 Paul Eggert <eggert@cs.ucla.edu>
3578
bad03192 3579 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
3580 as gnulib does this if the system doesn't.
3581 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
3582 Remove declaration. MS-Windows declares it on stdlib.h which is
3583 included by conf_post.h.
b69a6d22
PE
3584 * emacs.c (environ) [DOUG_LEA_MALLOC]:
3585 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
3586 * vm-limit.c: Include <unistd.h>, for 'environ'.
3587
22d7feb2
PE
3588 * unexaix.c, unexcoff.c: Include "mem-limits.h".
3589 (start_of_data): Remove decl; mem-limits.h provides it.
3590
32bd4250
PE
3591 * xdisp.c (handle_invisible_prop): Make it a bit faster
3592 and avoid a gcc -Wmaybe-uninitialized diagnostic.
3593
450809af
CY
35942012-08-19 Chong Yidong <cyd@gnu.org>
3595
3596 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
3597 ends (Bug#3874).
3598
9e677988
AS
35992012-08-19 Andreas Schwab <schwab@linux-m68k.org>
3600
6b1319ce
AS
3601 * .gdbinit: Use call instead of set when calling a function in the
3602 inferior.
3603
9e677988
AS
3604 * data.c (set_internal): Don't use set_blv_found.
3605 (Fkill_local_variable): Likewise.
3606
d7191076
AA
36072012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
3608
3609 * nsfont.m (ns_ascii_average_width): Ensure the string
3610 ascii_printable is initialized with a null-terminated character
3611 array. Otherwise, it can contain undesired extra characters.
3612
e757f1c6
PE
36132012-08-18 Paul Eggert <eggert@cs.ucla.edu>
3614
3615 port new setting code to Sun C 5.8 2005/10/13
3616 * chartab.c, lisp.h (char_table_set, char_table_set_range):
3617 Return void, not Lisp_Object. Otherwise, the compiler
3618 complains about (A?B:C) where B is void and C is Lisp_Object
3619 when compiling CHAR_TABLE_SET, due to the recent change to
3620 the API of sub_char_table_set_contents.
3621
a999ce26
CY
36222012-08-18 Chong Yidong <cyd@gnu.org>
3623
3624 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
3625 for the string case (Bug#3874).
3626
3f22b86f
PE
36272012-08-18 Paul Eggert <eggert@cs.ucla.edu>
3628
39eb03f1
PE
3629 * buffer.h (BSET): Remove (Bug#12215).
3630 Replace all uses with calls to new setter functions.
3631 (bset_bidi_paragraph_direction, bset_case_canon_table)
3632 (bset_case_eqv_table, bset_directory, bset_display_count)
3633 (bset_display_time, bset_downcase_table)
3634 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
3635 (bset_last_selected_window, bset_local_var_alist)
3636 (bset_mark_active, bset_point_before_scroll, bset_read_only)
3637 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
3638 (bset_width_table):
3639 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
3640 (bset_auto_fill_function, bset_auto_save_file_format)
3641 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
3642 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
3643 (bset_cache_long_line_scans, bset_case_fold_search)
3644 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
3645 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
3646 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
3647 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
3648 (bset_header_line_format, bset_indicate_buffer_boundaries)
3649 (bset_indicate_empty_lines, bset_invisibility_spec)
3650 (bset_left_fringe_width, bset_major_mode, bset_mark)
3651 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
3652 (bset_name, bset_overwrite_mode, bset_pt_marker)
3653 (bset_right_fringe_width, bset_save_length)
3654 (bset_scroll_bar_width, bset_scroll_down_aggressively)
3655 (bset_scroll_up_aggressively, bset_selective_display)
3656 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
3657 (bset_word_wrap, bset_zv_marker):
3658 * category.c (bset_category_table):
3659 * syntax.c (bset_syntax_table):
3660 New setter functions.
3661
6a09a33b
PE
3662 * process.h (PSET): Remove (Bug#12215).
3663 Replace all uses with calls to new setter functions.
3664 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3665 (PROCESS_INLINE): New macro.
3666 (pset_childp): New setter function.
3667 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
3668 * process.c (PROCESS_INLINE):
3669 Define to EXTERN_INLINE, so that the corresponding functions
3670 are compiled into code.
3671 (pset_buffer, pset_command, pset_decode_coding_system)
3672 (pset_decoding_buf, pset_encode_coding_system)
3673 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
3674 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
3675 (pset_type, pset_write_queue): New setter functions.
3676
e8c17b81
PE
3677 * window.h (WSET): Remove (Bug#12215).
3678 Replace all uses with calls to new setter functions.
3679 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3680 (WINDOW_INLINE): New macro.
3681 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
3682 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
3683 (wset_total_lines, wset_vertical_scroll_bar)
3684 (wset_window_end_pos, wset_window_end_valid)
3685 (wset_window_end_vpos): New setter functions.
3686 * window.c (WINDOW_INLINE):
3687 Define to EXTERN_INLINE, so that the corresponding functions
3688 are compiled into code.
3689 (wset_combination_limit, wset_dedicated, wset_display_table)
3690 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
3691 (wset_new_normal, wset_new_total, wset_next_buffers)
3692 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
3693 (wset_prev_buffers, wset_right_fringe_width)
3694 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
3695 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
3696 (wset_window_parameters):
3697 * xdisp.c (wset_base_line_number, wset_base_line_pos)
3698 (wset_column_number_displayed, wset_region_showing):
3699 New setter functions.
3700
3f22b86f
PE
3701 * termhooks.h (TSET): Remove (Bug#12215).
3702 Replace all uses with calls to new setter functions.
3703 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3704 (TERMHOOKS_INLINE): New macro.
3705 (tset_charset_list, tset_selection_alist): New setter functions.
3706 * terminal.c (TERMHOOKS_INLINE):
3707 Define to EXTERN_INLINE, so that the corresponding functions
3708 are compiled into code.
3709 (tset_param_alist): New setter function.
3710
742af32f
PE
37112012-08-17 Paul Eggert <eggert@cs.ucla.edu>
3712
15dbb4d6
PE
3713 * keyboard.h (KSET): Remove (Bug#12215).
3714 Replace all uses with calls to new setter functions.
3715 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3716 (KEYBOARD_INLINE): New macro.
3717 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
3718 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
3719 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
3720 New setter functions.
3721 * keyboard.c (KEYBOARD_INLINE):
3722 Define to EXTERN_INLINE, so that the corresponding functions
3723 are compiled into code.
3724 (kset_echo_string, kset_kbd_queue)
3725 (kset_keyboard_translate_table, kset_last_prefix_arg)
3726 (kset_last_repeatable_command, kset_local_function_key_map)
3727 (kset_overriding_terminal_local_map, kset_real_last_command)
3728 (kset_system_key_syms): New setter functions.
3729
f00af5b1
PE
3730 * frame.h (FSET): Remove (Bug#12215).
3731 Replace all uses with calls to new setter functions.
3732 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3733 (FRAME_INLINE): New macro.
3734 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
3735 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
3736 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
3737 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
3738 (fset_param_alist, fset_root_window, fset_scroll_bars)
3739 (fset_selected_window, fset_title, fset_tool_bar_items)
3740 (fset_tool_bar_position, fset_tool_bar_window): New functions.
3741 * frame.c (FRAME_INLINE):
3742 Define to EXTERN_INLINE, so that the corresponding functions
3743 are compiled into code.
3744 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
3745
0c94c8d6
PE
3746 A few more naming-convention fixes for getters and setters.
3747 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
3748 and rename from buffer_overlays_set_before.
3749 (set_buffer_overlays_after): Move here from buffer.h, and rename
3750 from buffer_overlays_set_after.
3751 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
3752 All uses changed.
3753 (set_buffer_intervals): Rename from buffer_set_intervals.
3754 * intervals.c (set_interval_object): Move here from intervals.h,
3755 and rename from interval_set_object.
3756 (set_interval_left): Move here from intervals.h, and rename from
3757 interval_set_left.
3758 (set_interval_right): Move here from intervals.h, and rename from
3759 interval_set_right.
3760 (copy_interval_parent): Move here from intervals.h, and rename from
3761 interval_copy_parent.
3762 * intervals.h (set_interval_parent): Rename from interval_set_parent.
3763 (set_interval_plist): Rename from interval_set_plist.
3764 Return void, not Lisp_Object, since no caller uses the result.
3765 * lisp.h (string_intervals): Rename from string_get_intervals.
3766 (set_string_intervals): Rename from string_set_intervals.
3767
34dabdb7
PE
3768 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
3769 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 3770 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
3771 All uses changed. See the end of
3772 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
3773
742af32f
PE
3774 * lisp.h (CSET): Remove (Bug#12215).
3775 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
3776 (set_char_table_purpose): New functions,
3777 replacing CSET. All uses changed. For example, replace
3778 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 3779 "set_char_table_parent (char_table, parent);".
742af32f
PE
3780 The old version was confusing because it used the same name
3781 'parent' for two different things.
3782
a04e2c62
DA
37832012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
3784
3785 Functions to get and set Lisp_Object fields of buffer-local variables.
3786 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
3787 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
3788 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
3789 * data.c, eval.c, frame.c: Adjust users.
3790
383dcbf9
CY
37912012-08-17 Chong Yidong <cyd@gnu.org>
3792
3793 * xfaces.c (merge_face_vectors): If the target font specfies a
3794 font spec, make the font's attributes take precedence over
3795 directly-specified attributes.
3796 (merge_face_ref): Recognize :font.
3797
44386687
DA
37982012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
3799
3800 Do not use memcpy for copying intervals.
3801 * intervals.c (reproduce_interval): New function.
3802 (reproduce_tree, reproduce_tree_obj): Use it.
3803 (reproduce_tree_obj): Remove prototype.
3804
927c7216
PE
38052012-08-17 Paul Eggert <eggert@cs.ucla.edu>
3806
3807 * lisp.h (duration_to_sec_usec): Remove unused decl.
3808
93044f7b
AA
38092012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
3810
3811 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
3812 to an allocated instance of NSString, not to the class itself.
3813
9851e4a5
JB
38142012-08-17 Juanma Barranquero <lekktu@gmail.com>
3815
3816 * makefile.w32-in (C_CTYPE_H): New macro.
3817 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
3818 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
3819 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
3820
620f13b0
PE
38212012-08-16 Paul Eggert <eggert@cs.ucla.edu>
3822
3823 Use ASCII tests for character types.
3824 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
3825 * xfns.c, xterm.c:
3826 Don't include <ctype.h>; was not needed.
3827 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
3828 * sysdep.c, xfaces.c:
3829 Include <c-ctype.h> instead of <ctype.h>.
3830 * nsterm.m: Include <c-ctype.h>.
3831 * charset.c (read_hex):
3832 * doc.c (Fsnarf_documentation):
3833 * fileio.c (IS_DRIVE) [WINDOWSNT]:
3834 (DRIVE_LETTER) [DOS_NT]:
3835 (Ffile_name_directory, Fexpand_file_name)
3836 (Fsubstitute_in_file_name):
3837 * font.c (font_parse_xlfd, font_parse_fcname):
3838 * frame.c (x_set_font_backend):
3839 * gtkutil.c (xg_get_font):
3840 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
3841 * nsimage.m (hexchar):
3842 * nsterm.m (ns_xlfd_to_fontname):
3843 * sysdep.c (system_process_attributes):
3844 * xfaces.c (hash_string_case_insensitive):
3845 Use C-locale tests instead of locale-specific tests for character
3846 types, since we want the ASCII interpretation here, not the
3847 interpretation suitable for whatever happens to be the current locale.
3848
52162052
MR
38492012-08-16 Martin Rudalics <rudalics@gmx.at>
3850
3851 Consistently check windows for validity/liveness
3852 (Bug#11984, Bug#12025, Bug#12026).
3853 * lisp.h (CHECK_VALID_WINDOW): New macro.
3854 * window.c (decode_window): Rename to decode_live_window.
3855 (decode_valid_window, Fwindow_valid_p): New functions.
3856 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
3857 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
3858 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
3859 (Fwindow_prev_sibling, Fwindow_combination_limit)
3860 (Fset_window_combination_limit, Fwindow_use_time)
3861 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
3862 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
3863 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
3864 (Fwindow_hscroll, Fset_window_hscroll)
3865 (Fwindow_redisplay_end_trigger)
3866 (Fset_window_redisplay_end_trigger, Fwindow_edges)
3867 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
3868 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
3869 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
3870 (Fwindow_end, Fset_window_point, Fset_window_start)
3871 (Fpos_visible_in_window_p, Fwindow_line_height)
3872 (Fwindow_dedicated_p, Fset_window_dedicated_p)
3873 (Fwindow_prev_buffers, Fset_window_prev_buffers)
3874 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
3875 (Fset_window_parameter, Fwindow_display_table)
3876 (Fset_window_display_table, Fdelete_other_windows_internal)
3877 (Fset_window_buffer, Fset_window_new_total)
3878 (Fset_window_new_normal, Fdelete_window_internal)
3879 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
3880 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
3881 (Fwindow_scroll_bars): Check whether argument window is a valid or
3882 live window. Update doc-strings.
3883 (syms_of_window): New symbol Qwindow_valid_p.
3884 * keyboard.c (Fposn_at_x_y): Check whether argument
3885 frame_or_window denotes a valid window.
3886
2751c80f
DA
38872012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
3888
3889 Fix previous char table change.
3890 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
3891 * chartab.c (optimize_sub_char_table): Likewise.
3892
032a42c8
CY
38932012-08-16 Chong Yidong <cyd@gnu.org>
3894
a2d19368
CY
3895 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
3896
032a42c8
CY
3897 * xfont.c (xfont_open):
3898 * xftfont.c (xftfont_open): Set the font's max_width field.
3899
3900 * nsfont.m (nsfont_open): Similar to the Xft backend, set
3901 min_width to space_width and average_width to the average over
3902 printable ASCII characters.
3903 (ns_char_width): Code cleanup.
3904 (ns_ascii_average_width): New utility function.
3905
3906 * font.h (struct font): Update comments.
3907
a098c930
DA
39082012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
3909
032a42c8 3910 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
3911 * lisp.h (CSET): New macro.
3912 (char_table_set_extras, char_table_set_contents)
3913 (sub_char_table_set_contents): New function.
3914 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
3915 * syntax.c: Adjust users.
3916
8be3a09c
SM
39172012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
3918
3919 * eval.c (eval_sub): Bind lexical-binding.
3920 * lread.c (Qlexical_binding): Make non-static.
3921
ac4845a6
JD
39222012-08-15 Jan Djärv <jan.h.d@swipnet.se>
3923
ddee6515
JD
3924 * nsmenu.m (popupSession): Remove.
3925 (pop_down_menu): Remove endModalSession.
3926 (timeout_handler:): New method.
3927 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
3928 Call runModalForWindow. Check timer_fired when it returns.
3929 If not set, cancel timer and break out of loop.
3930 Otherwise loop again, with a new timeout.
3931
3932 * nsterm.m: Include fcntl.h if present.
3933 (fd_entry, t_readfds, inNsSelect): Remove.
3934 (select_writefds, select_valid, select_timeout, selfds)
3935 (select_mutex, apploopnr): Add.
3936 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
3937 Otherwise call kbd_buffer_store_event.
3938 (ns_send_appdefined): Remove release of fd_entry.
3939 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
3940 Increment and decrement apploopnr.
3941 (ns_select): If no file descriptors, just do a NSTimer.
3942 Otherwise copy read/write masks and start select thread (fd_handler).
3943 Start main loop and wait for application defined event.
3944 Inform select thread to stop selecting after main loop is exited.
3945 (ns_term_init): Create selfds pipe and set non-blocking.
fc0c31f8 3946 Initialize select_mutex. Start the select thread (fd_handler).
ddee6515
JD
3947 (fd_handler:): Loop forever, wait for info from the main thread
3948 to either start or stop selecting. When select returns, send
3949 and appdefined event.
3950 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
3951 If not call kbd_buffer_store_event.
3952
3953 * nsterm.h (EmacsApp): fd_handler takes id argument.
3954 (EmacsDialogPanel): Add timer_fired and timeout_handler.
3955
ac4845a6
JD
3956 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
3957
eb424fe3
EZ
39582012-08-15 Eli Zaretskii <eliz@gnu.org>
3959
3960 * region-cache.c (move_cache_gap): Update gap_len using the actual
3961 growth of the boundaries array. Do not change cache_len.
3962 (Bug#12196)
3963
4e6a86c6
DA
39642012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3965
3966 Generalize and cleanup font subsystem checks.
3967 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
3968 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
3969 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 3970
5bf192ca
DA
39712012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3972
3973 * gtkutil.c (xg_get_font): Use pango_units_to_double.
3974
f2045622
CY
39752012-08-15 Chong Yidong <cyd@gnu.org>
3976
8be3a09c
SM
3977 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
3978 When using the new font chooser, use gtk_font_chooser_get_font_desc to
3979 extract the font descriptor instead of just the font name.
3980 In that case, return a font spec instead of a string.
f2045622
CY
3981 (x_last_font_name): Move to this file from xfns.c.
3982
3983 * xfns.c (Fx_select_font): The return value can also be a font
3984 spec. Move x_last_font_name management to gtkutil.c.
3985
3986 * xfaces.c: Make font weight and style symbols non-static.
3987
7f6feb56
SM
39882012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
3989
3990 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
3991 (bug#12117).
3992
fecbd8ff
SM
39932012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
3994
3995 * alloc.c (Fgarbage_collect): Use plural form consistently.
3996
9b8d5165
EZ
39972012-08-14 Eli Zaretskii <eliz@gnu.org>
3998
3999 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
4000 iteration through the command loop. Fixes a problem whereby mouse
4001 movements are ignored until the first mouse click.
4002
f5d9e83a
PE
40032012-08-14 Paul Eggert <eggert@cs.ucla.edu>
4004
4005 Use bool, not int, for Lisp booleans.
4006 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
4007 makes Emacs a bit smaller and presumably a bit faster.
4008 * lisp.h: Include <stdbool.h>.
4009 (struct Lisp_Boolfwd, defvar_bool):
4010 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
4011 * regex.c [!emacs]: Include <stdbool.h>.
4012 (false, true): Remove; <stdbool.h> does this for us now.
4013
55802e4a
CY
40142012-08-14 Chong Yidong <cyd@gnu.org>
4015
4abcdac8
CY
4016 * character.c (Fcharacterp): Doc fix (Bug#12076).
4017
4018 * data.c (Findirect_variable): Doc fix (Bug#11040).
4019
55802e4a
CY
4020 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
4021
4022 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 4023 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 4024
8e99d072
BR
40252012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
4026
4027 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
4028 (bug#12022).
4029
08908aca
MR
40302012-08-14 Martin Rudalics <rudalics@gmx.at>
4031
4032 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
4033 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
4034 * minibuf.c (choose_minibuf_frame, read_minibuf):
4035 * w32fns.c (x_create_tip_frame):
4036 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
4037 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
4038
56120d6f
PE
40392012-08-14 Paul Eggert <eggert@cs.ucla.edu>
4040
4041 * intervals.c (offset_intervals): Remove obsolete comment.
4042
67b77c0b
AS
40432012-08-14 Andreas Schwab <schwab@linux-m68k.org>
4044
4045 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
4046
f48b82fd
GR
40472012-08-14 Gergely Risko <gergely@risko.hu>
4048
4049 * coding.c (decode_coding): Record buffer modification before
4050 disabling undo_list (Bug#11773).
4051
fd318b54
DA
40522012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
4053
4054 Revert and cleanup some recent overlay changes.
4055 * buffer.h (enum overlay_type): Remove.
4056 (buffer_get_overlays, buffer_set_overlays): Likewise.
4057 (buffer_set_overlays_before, buffer_set_overlays_after):
4058 New function. Adjust users.
4059 (unchain_both): Add eassert.
4060
41a62dd9
DA
40612012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
4062
4063 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
4064
5884c324
PE
40652012-08-14 Paul Eggert <eggert@cs.ucla.edu>
4066
4067 * gtkutil.c (xg_mark_data): Don't assume C99.
4068
ca06f160
JD
40692012-08-13 Jan Djärv <jan.h.d@swipnet.se>
4070
4071 * gtkutil.c (xg_frame_tb_info): New struct.
4072 (TB_INFO_KEY): New define.
4073 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
4074 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
4075 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
4076 if not present.
4077 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
fc0c31f8 4078 is up to date. Otherwise store new data.
ca06f160
JD
4079 (free_frame_tool_bar): Free xg_frame_tb_info if present.
4080
7864a3f7
DA
40812012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
4082
4083 Use KSET for write access to Lisp_Object members of struct kboard.
4084 * keyboard.h (KSET): New macro.
4085 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
4086 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
4087 * xterm.c: Adjust users.
4088
4c31be61
DA
40892012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
4090
4091 Use BSET for write access to Lisp_Object members of struct buffer.
4092 * buffer.h (BSET): New macro.
4093 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
4094 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
4095 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
4096 * window.c, xdisp.c, xfns.c: Adjust users.
4097
14ae4239
BT
40982012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
4099
4100 * lread.c (syms_of_lread): Initialize Vlexical_binding.
4101
32bcadb4
JD
41022012-08-11 Jan Djärv <jan.h.d@swipnet.se>
4103
3d29b2ce 4104 * nsterm.m (not_in_argv): New function.
fc0c31f8 4105 (application:openFile, application:openTempFile:):
3d29b2ce
JD
4106 (application:openFileWithoutUI:, application:openFiles:): Open file
4107 if not_in_argv returns non-zero (bug#12171).
4108
32bcadb4 4109 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
4110 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
4111 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
4112 (xg_get_font_name): Use those functions/macros here.
4113 Reported by Frans Oilinki <moilinki@gmail.com>.
4114
9ff9402d 41152012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
4116
4117 * unexmacosx.c (copy_data_segment): Copy initialized data in
4118 statically linked libraries from input file rather than memory.
4119
db74a5fc
YM
4120 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
4121 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
4122 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
4123
25e65510
GM
41242012-08-10 Glenn Morris <rgm@gnu.org>
4125
4126 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
4127 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
4128
7961135c
DA
41292012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
4130
4131 Fix last change to allow compilation with low optimization levels.
4132 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
4133 Reported by Jan Djärv <jan.h.d@swipnet.se>.
4134
42b3a444
DA
41352012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
4136
4137 Use common inline syntax in intervals.h.
4138 * intervals.h (INTERVALS_INLINE): New macro.
4139 Change all users from LISP_INLINE.
4140
9fb0c957
DA
41412012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
4142
4143 Define Qnone once for all platforms.
4144 * frame.c (Qnone): Define here.
4145 (syms_of_frame): DEFSYM it.
4146 * lisp.h (Qnone): New declaration.
4147 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
4148 * xfns.c: Remove duplication. Adjust users.
4149
65e8ee52
DA
41502012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
4151
4152 Remove unused macros from intervals.h.
4153 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
4154 * intervals.c: Adjust comment.
4155
9b855fd6
EZ
41562012-08-10 Eli Zaretskii <eliz@gnu.org>
4157
4158 * w32fns.c <w32_unicode_gui>: New static variable.
4159 (globals_of_w32fns): Initialize it according to os_subtype.
4160 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
4161 testing os_subtype.
4162
39cb9e56 41632012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
4164 Eli Zaretskii <eliz@gnu.org>
4165
4166 Fix bug #10299 with Unicode characters sent by customized
4167 keyboards created by MSKLC.
4168 * w32fns.c (INIT_WINDOW_CLASS): New macro.
4169 (w32_init_class): Use it to initialize the Emacs class with either
4170 ANSI or Unicode API calls.
4171 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
4172 later.
4173 (w32_wnd_proc): If the character code sent by WM_CHAR or
4174 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
4175 original message. Call DefWindowProcW on NT and later.
4176
9374581a
GM
41772012-08-10 Glenn Morris <rgm@gnu.org>
4178
4b94e8cf
GM
4179 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
4180
9374581a
GM
4181 * lisp.h (DIRECTORY_SEP): Let configure set it.
4182
a2752828
DA
41832012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
4184
4185 Use TSET for write access to Lisp_Object slots of struct terminal.
4186 * termhooks.h (TSET): New macro.
4187 * coding.c, terminal.c, xselect.c: Adjust users.
4188
cc92c454
SM
41892012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
4190
4191 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
4192 the failing expression, include them in the error message.
4193 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
4194 * lisp.h (internal_condition_case_n): Update declaration.
4195
4cb3e6b3
DA
41962012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
4197
4198 Inline functions to examine and change buffer overlays.
4199 * buffer.c (unchain_both): New function.
4200 * buffer.h (buffer_get_overlays, buffer_set_overlays):
4201 (buffer_has_overlays): New function.
4202 (enum overlay_type): New enum.
4203 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
4204 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
4205
8707c1e5
DA
42062012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
4207
4208 Inline functions to examine and change buffer intervals.
4209 * alloc.c (mark_interval_tree): Remove.
4210 (MARK_INTERVAL_TREE): Simplify.
4211 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
4212 * intervals.c (buffer_balance_intervals): New function.
4213 (graft_intervals_into_buffer): Adjust indentation.
4214 (set_intervals_multibyte): Simplify.
4215 * buffer.h (BUF_INTERVALS): Remove.
4216 (buffer_get_intervals, buffer_set_intervals): New function.
4217 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
4218 * intervals.c, textprop.c: Adjust users.
4219
ad8c997f
DA
42202012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
4221
4222 Inline functions to examine and change string intervals.
4223 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
4224 (string_get_intervals, string_set_intervals): New function.
4225 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
4226 * lread.c, print.c, textprop.c: Adjust users.
4227
32ac3a6b
GM
42282012-08-08 Glenn Morris <rgm@gnu.org>
4229
4230 * lisp.mk (lisp): Remove language/persian.elc.
4231
77c7bcb1
DA
42322012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
4233
4234 Cleanup intervals.
4235 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
4236 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
4237 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
4238 Adjust comment. Move under #if 0.
77c7bcb1
DA
4239 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
4240 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
4241
9c08a8d4
DA
42422012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
4243
4244 Check total length of intervals with eassert.
4245 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
4246 * intervals.c: Change all users to eassert.
4247
26d16b35
EZ
42482012-08-07 Eli Zaretskii <eliz@gnu.org>
4249
14ae4239
BT
4250 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
4251 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
4252 INTERNAL_FIELD in Lisp_Cons.
4253
c644523b
DA
42542012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
4255
4256 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
4257 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
4258 name since all xname users are fixed long time ago. Do not
4259 use INTERNAL_FIELD.
4260 (set_symbol_name, set_symbol_function, set_symbol_plist):
4261 (set_symbol_next, set_overlay_plist): New function.
4262 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
4263 (struct Lisp_Overlay): Likewise.
4264 (CVAR, MVAR, SVAR): Remove.
4265 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
4266 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
4267 * xterm.c: Adjust users.
4268 * .gdbinit: Change to use name field of struct Lisp_Symbol
4269 where appropriate.
4270
6a3d20cc
DA
42712012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
4272
4273 Basic functions to set Lisp_Object and pointer slots of intervals.
4274 * intervals.h (interval_set_parent, interval_set_object):
4275 (interval_set_left, interval_set_right, interval_set_plist):
4276 (interval_copy_parent): New function.
4277 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
4278 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
4279 Adjust indentation.
6a3d20cc
DA
4280 (INTERVAL_SIZE): Remove. Adjust users.
4281 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
4282
4d2b044c
DA
42832012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
4284
4285 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
4286 * process.h (PGET): Remove.
4287 (struct Lisp_Process): Do not use INTERNAL_FIELD.
4288 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
4289
d3d50620
DA
42902012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
4291
4292 Drop WGET and revert read access to Lisp_Objects slots of struct window.
4293 * window.h (WGET): Remove.
4294 (struct window): Do not use INTERNAL_FIELD.
4295 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
4296 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
4297 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
4298 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
4299 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
4300 Adjust users.
4301
d10a51dc
CY
43022012-08-07 Chong Yidong <cyd@gnu.org>
4303
4304 * window.c (Fwindow_edges, Fwindow_pixel_edges)
4305 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
4306 (Fdelete_window_internal): Signal an error if the window is not on
4307 a live frame (Bug#12025).
4308
e69b0960
DA
43092012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
4310
4311 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
4312 * frame.h (FGET): Remove.
4313 (struct frame): Do not use INTERNAL_FIELD.
4314 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
4315 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
4316 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
4317 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
4318
25a20a3a
JB
43192012-08-06 Juanma Barranquero <lekktu@gmail.com>
4320
4321 * w32.c: Silence compiler warnings.
4322 (map_w32_filename): Remove unused variable `is_fat'.
4323 (chase_symlinks): Add parentheses around expression.
4324
1c6f11f4
GM
43252012-08-06 Glenn Morris <rgm@gnu.org>
4326
1db4583a
GM
4327 * sysdep.c: Respect BROKEN_GETWD.
4328
1c6f11f4
GM
4329 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
4330 Let configure handle it.
4331 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
4332
2b90362b
DA
43332012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4334
4335 Use GCALIGNMENT where appropriate.
4336 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
4337 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
4338 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
4339
5f50daf2
EZ
43402012-08-06 Eli Zaretskii <eliz@gnu.org>
4341
14ae4239
BT
4342 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
4343 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 4344
cbcc7007
SM
43452012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
4346
4347 * buffer.h (struct buffer): Revert `indirections' to a simple int;
4348 that should be sufficient for everyone.
4349
4d365fa4
JD
43502012-08-06 Jan Djärv <jan.h.d@swipnet.se>
4351
4352 * keyboard.c (timer_check_2): Add break so timer_check returns next
4353 timeout.
4354
dd86bd82
DA
43552012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4356
4357 Fix Windows build errors introduced after converting to WGET and WSET.
4358 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
4359 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
4360
054e1668
JD
43612012-08-06 Jan Djärv <jan.h.d@swipnet.se>
4362
4363 * nsterm.m (ns_frame_rehighlight): Use FSET.
4364
4365 * nsmenu.m (ns_update_menubar): Use FSET.
4366
21238f11
DA
43672012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4368
4369 Separate read and write access to Lisp_Object slots of Lisp_Process.
4370 * process.h (PGET, PSET): New macros similar to AREF and ASET.
4371 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
4372
077288cf
DA
43732012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4374
4375 Separate read and write access to Lisp_Object slots of struct window.
4376 * window.h (WGET, WSET): New macros similar to AREF and ASET.
4377 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
4378 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
4379 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
4380 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
4381 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
4382 Adjust users.
4383
71688bd7
DA
43842012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4385
4386 Fix Windows build errors introduced after converting to FGET and FSET.
4387 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
4388 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
4389 (w32_judge_scroll_bars): Change to use FSET.
4390 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
4391
f99bac93
DA
43922012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4393
4394 Fix replacement typo.
4395 * window.c (replace_window): Set root_window instead of
4396 selected_window. This fixes a total window subsystem
4397 malfunction reported by Bastien Guerry <bzg@gnu.org>.
4398
8c2a0f2d
GM
43992012-08-06 Glenn Morris <rgm@gnu.org>
4400
4401 * lisp.mk (lisp): Add language/persian.elc.
4402
edd74c35
DA
44032012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4404
4405 Separate read and write access to Lisp_Object slots of struct frame.
4406 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
4407 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
4408 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
4409 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
4410 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
4411
8671676c
AS
44122012-08-05 Andreas Schwab <schwab@linux-m68k.org>
4413
4414 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
4415
663e2b3f
DA
44162012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
4417
4418 Generalize common compile-time constants.
4419 * lisp.h (header_size, bool_header_size, word_size): Now here.
4420 (struct Lisp_Vector): Add comment.
4421 (struct Lisp_Bool_Vector): Move up to define handy constants.
4422 (VECSIZE, PSEUDOVECSIZE): Simplify.
4423 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
4424 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
4425 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
4426 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
4427 * xfont.c, xmenu.c: Use word_size where appropriate.
4428
d32e47af
LM
44292012-08-05 Lawrence Mitchell <wence@gmx.li>
4430
4431 * search.c (Freplace_match): Treat \? in the replacement text
4432 literally (Bug#8161).
4433
e5d9c0d1
CY
44342012-08-05 Chong Yidong <cyd@gnu.org>
4435
4436 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
4437 * frame.c (Vdelete_frame_functions):
4438 * emacs.c (Vkill_emacs_hook): Doc fix.
4439
8da0576b
EZ
44402012-08-04 Eli Zaretskii <eliz@gnu.org>
4441
4442 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
4443 --with-x-toolkit=no builds.
4444 Reported by Carsten Mattner <carstenmattner@gmail.com>.
4445
02676e5d
CY
44462012-08-04 Chong Yidong <cyd@gnu.org>
4447
4448 * syntax.c (Fmodify_syntax_entry): Doc fix.
4449
97147da9
EZ
44502012-08-04 Eli Zaretskii <eliz@gnu.org>
4451
76151e2c
EZ
4452 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
4453 * w32.c (init_environment): Change the default values of many
4454 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
4455 them into environment when they were not already defined.
4456 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 4457 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
4458 (check_windows_init_file): Now external, not static.
4459 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
4460 called when Vload_path is already set up.
4461
4462 * w32.h (check_windows_init_file): Add prototype.
4463
4464 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
4465 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
4466 compatibility with Posix platforms.
4467 (main): Move the call to check_windows_init_file to here from
4468 w32.c.
4469 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
4470 any, in the DEFALT argument into the root of the Emacs build or
4471 installation tree, as appropriate.
4472
4473 * callproc.c (init_callproc_1): Call decode_env_path instead of
4474 doing its equivalent by hand.
4475 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
4476 the code that sets Vexec_path run on MS-Windows.
4477
4478 * lread.c (init_lread): Add comments to #ifdef's.
4479
97147da9
EZ
4480 * msdos.c (dos_set_window_size, IT_update_begin)
4481 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
4482 instead of direct references.
4483
185ee146
PE
44842012-08-04 Paul Eggert <eggert@cs.ucla.edu>
4485
4486 Export DEFAULT_REHASH_* to GDB.
4487 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
4488 Now constants, not macros.
4489
8834c57a
PE
44902012-08-03 Paul Eggert <eggert@cs.ucla.edu>
4491
98c6f1e3
PE
4492 Remove unnecessary casts involving pointers.
4493 These casts are no longer needed now that we assume C89 or later,
4494 since they involve casting to or from void *.
4495 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
4496 (make_pure_float, make_pure_vector):
4497 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
4498 * macros.c (Fstart_kbd_macro):
4499 * menu.c (find_and_return_menu_selection):
4500 * minibuf.c (read_minibuf_noninteractive):
4501 * sysdep.c (closedir):
4502 * xdisp.c (x_produce_glyphs):
4503 * xfaces.c (compare_fonts_by_sort_order):
4504 * xfns.c (x_real_positions, select_visual):
4505 * xselect.c (x_stop_queuing_selection_requests)
4506 (x_get_window_property, x_get_window_property_as_lisp_data):
4507 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
4508 Remove unnecessary pointer casts.
4509 * alloc.c (record_xmalloc): New function.
4510 * lisp.h (record_xmalloc): New decl.
4511 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
4512 more like a function. This is because the pointer cast is not
4513 needed. All uses changed.
4514 * print.c (print_string, print_error_message): Avoid length recalc.
4515
8834c57a
PE
4516 Improve fix for macroexp crash with debugging (Bug#12118).
4517 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
4518 ARRAY_MARK_FLAG when checking subscripts, because ASET is
4519 not supposed to be invoked from the garbage collector.
4520 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
4521 (gc_aset): New function, which is like ASET but can be
4522 used in the garbage collector.
4523 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
4524 (set_hash_index): Use it instead of ASET.
4525
6dad7178
EZ
45262012-08-03 Eli Zaretskii <eliz@gnu.org>
4527
4528 Support symlinks on latest versions of MS-Windows.
4529 * w32.c: Include winioctl.h and aclapi.h.
4530 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
4531 (revert_to_self): Forward declarations of static functions.
4532 <static BOOL g_b_init_get_security_info>:
4533 <g_b_init_create_symbolic_link>: New static flags.
4534 (globals_of_w32): Initialize them to zero.
4535 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
4536 (map_w32_filename): Improve commentary. Simplify switch.
4537 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
4538 headers (most versions of MinGW w32api don't).
4539 (get_security_info, create_symbolic_link)
4540 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
4541 New functions.
4542 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
4543 in the argument file name.
4544 (sys_access): Call unc_volume_file_attributes only if
4545 GetFileAttributes fails with network-related error codes.
4546 (sys_rename): Diagnose renaming of a symlink when the user doesn't
4547 have the required privileges.
14ae4239 4548 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
4549 get_file_security_desc.
4550 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
4551 with addition of handling of symlinks and support for 'lstat'.
4552 If possible, get file's attributes and security information by
6dad7178
EZ
4553 handle, not by name. Produce S_IFLNK bit for symlinks, when
4554 called from 'lstat'.
4555 (stat, lstat): New functions, call 'stat_worker'.
4556 (symlink, readlink, careadlinkat): Rewritten to create and resolve
4557 symlinks when the underlying filesystem supports them.
4558
f162bcc3
PE
45592012-08-02 Paul Eggert <eggert@cs.ucla.edu>
4560
79ea6c20
PE
4561 Fix macroexp crash on Windows with debugging (Bug#12118).
4562 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
4563 checking subscripts; problem introduced with the recent
4564 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
4565 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
4566 since it's used in non-static inline functions now.
4567
c0ce93fd
PE
4568 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
4569 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 4570
f162bcc3
PE
4571 Use C99-style 'extern inline' if available.
4572 * buffer.h (BUFFER_INLINE):
4573 * category.h (CATEGORY_INLINE):
4574 * character.h (CHARACTER_INLINE):
4575 * charset.h (CHARSET_INLINE):
4576 * composite.h (COMPOSITE_INLINE):
4577 * dispextern.h (DISPEXTERN_INLINE):
4578 * lisp.h (LISP_INLINE):
4579 * systime.h (SYSTIME_INLINE):
4580 New macro, replacing 'static inline' in this header.
4581 * buffer.h, category.h, character.h, charset.h, composite.h:
4582 * dispextern.h, lisp.h, systime.h:
4583 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
4584 * alloc.c (LISP_INLINE):
4585 * buffer.c (BUFFER_INLINE):
4586 * category.c (CATEGORY_INLINE):
4587 * character.c (CHARACTER_INLINE):
4588 * charset.c (CHARSET_INLINE):
4589 * composite.c (COMPOSITE_INLINE):
4590 * dispnew.c (DISPEXTERN_INLINE):
4591 * sysdep.c (SYSTIME_INLINE):
4592 Define to EXTERN_INLINE, so that the corresponding functions
4593 are compiled into code.
4594 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
4595 (INLINE_HEADER_END): New macros.
4596 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
4597 since it's used in non-static inline functions now.
a8333d03 4598 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 4599
837b365b
GM
46002012-08-02 Glenn Morris <rgm@gnu.org>
4601
d66b744d
GM
4602 * s/: Remove empty directory.
4603
837b365b
GM
4604 * s/ms-w32.h: Move to ../nt/inc.
4605 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
4606 Update for new ms-w32.h location.
4607
13294f95
PE
46082012-08-02 Paul Eggert <eggert@cs.ucla.edu>
4609
4610 Port to Solaris 8.
4611 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
4612
90df0db3
GM
46132012-08-02 Glenn Morris <rgm@gnu.org>
4614
4615 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
4616 hard-coding the path separator.
4617
4939150c
PE
46182012-08-01 Paul Eggert <eggert@cs.ucla.edu>
4619
4620 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
4621 This how ASET and AREF are supposed to work, and makes
4622 it easier to think about future improvements. See
4623 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
4624 * charset.h (set_charset_attr): New function.
4625 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
4626 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
4627 (aref_addr): New function. All uses of &AREF(...) changed.
4628 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
4629 (set_hash_index): New functions. All lvalue-style uses of
4630 HASH_KEY etc. changed.
4631 * keyboard.c (set_prop): New function. All lvalue-style uses
4632 of PROP changed.
4633
947b2afd
AA
46342012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
4635
4636 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
4637 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1f9f395d 4638 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
947b2afd
AA
4639 * nsfns.m (ns_set_name_as_filename): Likewise.
4640 * nsmenu.m (ns_update_menubar): Likewise.
4641 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
4642
4f5d0325
EZ
46432012-08-01 Eli Zaretskii <eliz@gnu.org>
4644
2008beae
EZ
4645 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
4646 Adapt to latest changes in field names of the corresponding Lisp
288479f6 4647 objects.
2008beae 4648
4f5d0325
EZ
4649 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
4650
fe3cc771
GM
46512012-08-01 Glenn Morris <rgm@gnu.org>
4652
4653 * s/msdos.h: Remove file.
4654 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
4655 * Makefile.in (S_FILE): Remove.
4656 (config_h): Remove S_FILE.
4657
c90acc54
JB
46582012-08-01 Juanma Barranquero <lekktu@gmail.com>
4659
4660 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
4661 Remove; moved to nt/config.nt.
4662
d8a05828
DA
46632012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4664
4665 Use INTERNAL_FIELD for conses and overlays.
4666 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
4667 Remove obsolete comment.
4668 (MVAR): New macro.
4669 (struct Lisp_Overlay): Use INTERNAL_FIELD.
4670 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
4671
8271d590
DA
46722012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4673
4674 Use INTERNAL_FIELD for symbols.
4675 * lisp.h (SVAR): New macro. Adjust users.
4676 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
4677 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
4678
3193acd2
DA
46792012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4680
4681 Use INTERNAL_FIELD for processes.
4682 * process.h (PVAR): New macro. Adjust style.
4683 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
4684 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
4685
3a45383a
DA
46862012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4687
4688 Use INTERNAL_FIELD for windows.
4689 * window.h (WVAR): New macro.
4690 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
4691 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
4692 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
4693 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
4694 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
4695 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
4696
c1dbc63c
PE
46972012-08-01 Paul Eggert <eggert@cs.ucla.edu>
4698
4699 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
4700
5c0c0e8a
GM
47012012-08-01 Glenn Morris <rgm@gnu.org>
4702
4703 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
4704 Move to configure.ac.
4705
552a99b4
JB
47062012-08-01 Juanma Barranquero <lekktu@gmail.com>
4707
4708 * makefile.w32-in (CONFIG_H): Update dependencies.
4709 (CONF_POST_H): New macro.
4710
4711 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
4712
8d8e2dfe
GM
47132012-07-31 Glenn Morris <rgm@gnu.org>
4714
bc96620a
GM
4715 * Makefile.in (S_FILE): No longer set by configure.
4716
476b1b2d
GM
4717 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
4718 is available.
4719 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
4720
b2c7a106
GM
4721 * process.h (NULL_DEVICE):
4722 * emacs.c (SEPCHAR):
4723 * editfns.c (USER_FULL_NAME): Let configure set them.
4724
d53d062a
GM
4725 * s/README, s/template.h: Remove files.
4726
4515017f
GM
4727 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
4728
8d8e2dfe
GM
4729 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
4730 Move to configure.ac.
4731
5b20b3cc
EZ
47322012-07-31 Eli Zaretskii <eliz@gnu.org>
4733
1e0afd9a
EZ
4734 * .gdbinit (xframe): Adapt to introduction of FVAR and the
4735 resulting renaming of 'struct frame' members.
4736
5b20b3cc
EZ
4737 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
4738
4739 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
4740 after introduction of FVAR.
4741
f1310128
JD
47422012-07-31 Jan Djärv <jan.h.d@swipnet.se>
4743
79e721e0
JD
4744 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
4745
4746 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
4747 instead of compositeToPoint.
4748 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
4749
8d7c7eed 4750 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 4751
e34f7f79
DA
47522012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4753
4754 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
4755 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 4756 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
4757 (BVAR): Change to use INTERNAL_FIELD.
4758 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
4759 (KVAR): Change to use INTERNAL_FIELD.
4760 * frame.h (FVAR): New macro.
4761 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
4762 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
4763 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
4764 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
4765 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
4766
c09bfb2f
DA
47672012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4768
4769 Miscellaneous fixes for non-default X toolkits.
4770 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
4771 * xterm.c (x_frame_of_widget): Remove redundant prototype.
4772 Move under #ifdef USE_LUCID.
4773 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
4774 definition and usage to avoid warnings.
4775
14c114ae
JD
47762012-07-31 Jan Djärv <jan.h.d@swipnet.se>
4777
4778 * nsterm.m (openFiles): Fix previous checkin.
4779
3bd21e82
PE
47802012-07-31 Paul Eggert <eggert@cs.ucla.edu>
4781
4782 * indent.c (compute_motion): Remove unused local.
4783
c1529ded
GM
47842012-07-31 Glenn Morris <rgm@gnu.org>
4785
400d5621
GM
4786 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
4787
268e2432
GM
4788 * conf_post.h [USG5_4]:
4789 Move remaining contents of s/usg5-4-common.h here.
4790 * s/usg5-4-common.h: Remove file.
4791
7552f3ee
GM
4792 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
4793 * s/irix6-5.h: Remove file.
4794
6a381852
GM
4795 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
4796 * s/darwin.h: Remove file.
4797
c1529ded
GM
4798 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
4799 * s/hpux10-20.h: Remove file, which is now empty.
4800
b429a4ee
GM
48012012-07-30 Glenn Morris <rgm@gnu.org>
4802
4803 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
4804 * Makefile.in (config_h): Add conf_post.h.
4805 * makefile.w32-in (CONFIG_H): Add conf_post.h.
4806
adff3182
JD
48072012-07-30 Jan Djärv <jan.h.d@swipnet.se>
4808
4809 * nsterm.m (ns_do_open_file): New variable.
b9031d69 4810 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
4811 (openFile, openTempFile, openFileWithoutUI, openFiles):
4812 Open files only if ns_do_open_file.
adff3182 4813
c32af1e4
PE
48142012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4815
7393bcbb
PE
4816 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
4817 This no-op macro hasn't been needed for many years.
4818 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
4819
c32af1e4
PE
4820 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
4821 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
4822 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
4823 gdb_make_enums_visible.
4824 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
4825 (DIRECTORY_SEP): Now a constant, not a macro.
4826
302fc036
EZ
48272012-07-30 Eli Zaretskii <eliz@gnu.org>
4828
4829 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
4830 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
4831
4832 * w32term.c <w32_keyboard_codepage>: Renamed from
4833 keyboard_codepage and now external. All users changed.
4834
4835 * w32term.h: Add declaration of w32_keyboard_codepage.
4836
4837 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
4838 the codepage to translate keys to Unicode. If this argument is
4839 -1, use the value returned by GetConsoleCP. All callers changed.
4840
88fb40b4
PE
48412012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4842
0aee6912
PE
4843 Update .PHONY listings in makefiles.
4844 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
4845 bootstrap-clean, distclean, maintainer-clean, versioclean,
4846 extraclean, frc.
4847
88fb40b4
PE
4848 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
4849 This is a bit clearer. Fix some commentary typos.
4850
0a763bd1
GM
48512012-07-30 Glenn Morris <rgm@gnu.org>
4852
32bac6d6
GM
4853 * s/netbsd.h: Let configure include signal.h if needed.
4854 Remove file, which is now empty.
4855
b65e7c46
GM
4856 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
4857 Let configure set them.
4858 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
4859 No more need to undefine.
0a763bd1 4860
169304bd
AS
48612012-07-30 Andreas Schwab <schwab@linux-m68k.org>
4862
4863 * keymap.c (Fkey_description): Don't remove 0x80 bit from
4864 non-single-byte char when adding meta modifier. (Bug#12090)
4865
6cd7a139
DA
48662012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4867
4868 Convert safe_call to use variable number of arguments.
4869 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
4870 (safe_call2): Fix comment.
4871 * lisp.h (safe_call): Adjust prototype.
4872 * coding.c (encode_coding_object): Change to use safe_call2.
4873 * xfaces.c (merge_face_heights): Change to use safe_call1.
4874
d34d6ffc
GM
48752012-07-30 Glenn Morris <rgm@gnu.org>
4876
7b8a48e4 4877 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 4878 does that unconditionally. Remove file, which is now empty.
7b8a48e4 4879
d34d6ffc
GM
4880 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
4881 Remove empty files.
4882
03a660a6
PE
48832012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4884
4885 Export to GDB most of lisp.h's remaining object-like macros.
4886 * lisp.h (min, max): Move earlier, because they're used earlier now.
4887 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
4888 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
4889 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
4890 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
4891 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
4892 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
4893 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
4894 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
4895 Now constants, for GDB. They need not be macros.
4896 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
4897 Now constants, for GDB, as well as macros, for static initializers.
4898 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
4899 Move to after the definition of struct Lisp_Char_Table,
4900 since the former now needs that type defined.
4901 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
4902 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
4903 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
4904 New enums, for gdb_make_enums_visible.
4905 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 4906 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
4907 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
4908 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
4909 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
4910 enum maxargs, enum MAX_ALLOCA.
4911 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
4912 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
4913 no longer needed, now that they are done in lisp.h.
4914
e499d0ee
DA
49152012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4916
4917 Cleanup string bytes checking.
4918 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
4919 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
4920 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
4921 (check_sblock, compact_small_strings): Simplify.
4922
d5040d2d
PE
49232012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4924
4925 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
4926 These macros are confusing and no longer need to be defined, as
4927 the enum values now suffice. All uses replaced with definiens.
4928 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
4929
7f259ae6
JB
49302012-07-29 Juanma Barranquero <lekktu@gmail.com>
4931
4932 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
4933 ($(BLD)/w32console.$(O)): Update dependencies.
4934
7e63e0c3
DA
49352012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4936
4937 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
4938 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
4939 time. Adjust users.
4940 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
4941
ffd817eb
JD
49422012-07-29 Jan Djärv <jan.h.d@swipnet.se>
4943
4944 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
4945 setting sitelisp (Bug#12010).
4946
417a7a0e
EZ
49472012-07-29 Eli Zaretskii <eliz@gnu.org>
4948
14ae4239 4949 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
4950
4951 * w32heap.c (cache_system_info):
4952 * w32.c (sys_rename):
4953 * w32proc.c (find_child_console, sys_kill): All users changed.
4954
387d4d92
PE
49552012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4956
4957 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
4958
55a6cca6
EZ
49592012-07-29 Eli Zaretskii <eliz@gnu.org>
4960
4961 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
4962
dbcf001c
DA
49632012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4964
4965 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
4966 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
4967 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 4968
e2688e4a
DA
49692012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4970
4971 Generalize marker debugging code under MARKER_DEBUG and use eassert.
4972 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
4973 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
4974 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
4975 (replace_range, replace_range_2, del_range_2): Change to eassert.
4976 * marker.c (byte_char_debug_check): Adjust style.
4977
b46a6a83
PE
49782012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4979
4980 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
4981 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
4982 long-ago-commented-out code that talks about "WIN32".
4983 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
4984 All uses changed.
4985
e32a5799
PE
49862012-07-28 Paul Eggert <eggert@cs.ucla.edu>
4987
4988 Use Gnulib stdalign module (Bug#9772, Bug#9960).
4989 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
4990 Simplify by using alignof.
4991 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
4992 * lisp.h: Include <stdalign.h>.
4993 (GCALIGNMENT): New macro and constant.
4994 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
4995 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
4996 (stdalign): New macro, if not already defined.
4997
df81cd29
EZ
49982012-07-28 Eli Zaretskii <eliz@gnu.org>
4999
01bd1b0d
EZ
5000 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
5001 * w32inevt.c: Include w32inevt.h.
5002 (w32_read_console_input): New inline function, calls either
5003 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
5004 w32_console_unicode_input.
5005 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
5006 (w32_kbd_patch_key, key_event): Use the codepage returned by
5007 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
5008 (key_event): use uChar.UnicodeChar only if
5009 w32_console_unicode_input is non-zero.
5010
5011 * w32console.c: Include w32heap.h.
5012 <w32_console_unicode_input>: New global variable.
5013 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
5014 family of Windows, zero otherwise.
5015
5016 * w32inevt.h: Declare w32_console_unicode_input.
5017
df81cd29
EZ
5018 * xdisp.c (init_iterator): Don't reference tip_frame in a build
5019 --without-x. (Bug#11742)
5020
c20fdd9e
PE
50212012-07-27 Paul Eggert <eggert@cs.ucla.edu>
5022
5023 Adjust GDB to reflect pvec_type changes (Bug#12036).
5024 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
5025 2012-07-04 changes to pseudovector representation.
5026 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 5027
32770973 50282012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
5029
5030 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
5031 bus address.
5032 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
5033
3438fe21
EZ
50342012-07-27 Eli Zaretskii <eliz@gnu.org>
5035
bcfbc9de
EZ
5036 * alloc.c (listn): Fix the order the arguments are consed onto the
5037 list.
5038
3438fe21
EZ
5039 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
5040 enumeration constants, as PURE and HEAP are too general, and clash
5041 with other headers and sources, such as gmalloc.c and the
5042 MS-Windows system headers. All users changed.
5043
eeaea515
DA
50442012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
5045
5046 Revert last save_excursion_save and save_excursion_restore changes.
5047 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
5048 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
5049
073c88c2
DA
50502012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
5051
5052 Fix recently-introduced typos in Windows port.
5053 Reported by Martin Rudalics <rudalics@gmx.at>.
5054 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 5055 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 5056
4706125e
PE
50572012-07-27 Paul Eggert <eggert@cs.ucla.edu>
5058
5059 Improve GDB symbol export (Bug#12036).
5060 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
5061 arms of an 'if', not using conditional expressions; otherwise GDB
5062 complains about the types in the unevaluated arm when the argument
5063 is an integer literal.
5064 (xgetint): Simplify expression.
5065 * alloc.c (gdb_make_enums_visible): New constant. This ports to
5066 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
5067 Zaretskii in <http://bugs.gnu.org/12036#13>.
5068 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
5069 needed now that we have gdb_make_enums_visible.
5070 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
5071 (enum enum_USE_LSB_TAG):
5072 New enum types, packaging up enums that need to be exported to GDB.
5073
694b6c97
DA
50742012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
5075
5076 Utility function to make a list from specified amount of objects.
5077 * lisp.h (enum constype): New datatype.
5078 (listn): New prototype.
5079 * alloc.c (listn): New function.
5080 (Fmemory_use_count, syms_of_alloc): Use it.
5081 * buffer.c (syms_of_buffer): Likewise.
5082 * callint.c (syms_of_callint): Likewise.
5083 * charset.c (define_charset_internal): Likewise.
5084 * coding.c (syms_of_coding): Likewise.
5085 * keymap.c (syms_of_keymap): Likewise.
5086 * search.c (syms_of_search): Likewise.
5087 * syntax.c (syms_of_syntax): Likewise.
5088 * w32.c (init_environment): Likewise.
5089 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
5090 * xdisp.c (syms_of_xdisp): Likewise.
5091 * xfns.c (syms_of_xfns): Likewise.
5092
6195f384
DA
50932012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
5094
5095 Fast save_excursion_save and save_excursion_restore.
5096 * lisp.h (struct Lisp_Excursion): New data type.
5097 (PVEC_EXCURSION): New pseudovector type.
5098 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
5099 to deal with it. Adjust comments.
5100 (init_marker, attach_marker): New prototype.
5101 (unchain_marker): Adjust prototype.
5102 * marker.c (attach_marker): Change to global.
5103 (init_marker): New function.
5104 * alloc.c (Fmake_marker, build_marker): Use it.
5105 (build_marker): More easserts.
5106 (mark_object): Handle struct Lisp_Excursion.
5107 * editfns.c (save_excursion_save, save_excursion_restore):
5108 Reimplement to use struct Lisp_Excursion. Add comments.
5109
5eceb8fb
PE
51102012-07-26 Paul Eggert <eggert@cs.ucla.edu>
5111
5112 Fix export of symbols to GDB (Bug#12036).
5113 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
5114 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
5115 emacs.c, as this is a more-suitable home. Had this been done earlier
5116 the fix for 12036 would have avoided some of the problems noted in
5117 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
5118 would have been more obvious.
562157c8
PE
5119 * emacs.c: Do not include <verify.h>; no longer needed.
5120 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
5121 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
5122 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
5123 Remove; now done in lisp.h.
5124 * lisp.h (PUBLISH_TO_GDB): New macro.
5125 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
5126 (DATA_SEG_BITS): Use it.
5127 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
5128 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
5129 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
5130 not be usable in #if. This simplifies things.
5131
d6749401
JB
51322012-07-26 Juanma Barranquero <lekktu@gmail.com>
5133
5134 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
5135
1781b9e9
PE
51362012-07-26 Paul Eggert <eggert@cs.ucla.edu>
5137
d89518db 5138 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
5139 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
5140 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
5141 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
5142 Adjust to changes in lisp.h and emacs.c, by using
5143 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
5144 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
5145 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
5146 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
5147 instead of gdb_valbits.
5148 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
5149 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
5150 instead of gdb_array_mark_flag.
5151 (xboolvector): Get size from $->size, not $->header.size.
5152 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
5153 (xreload, hook-run, hookpost-run): Remove.
5154 * emacs.c: Include <verify.h>.
5155 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
5156 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
5157 Remove.
5158 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
5159 (gdb_USE_LSB_TAG): New enum constants.
5160 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
5161 Also define these as enum constants, so they're visible to GDB.
5162 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
5163 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
5164 as constants, so they're visible to GDB.
5165 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
5166 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
5167 Now enum constants, not macros, so they're visible to GDB.
5168 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
5169 more convenient now. All uses changed.
5170 (VALMASK) [USE_LSB_TAG]: Also define in this case.
5171 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
5172
3628596a
DA
51732012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
5174
5175 Explicitly free restriction data that are not needed anymore.
5176 * editfns.c (save_restriction_restore): Free restriction data.
5177
7abaf5cc
SM
51782012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
5179
5180 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
5181 add argument, tune behavior, and adjust all callers.
5182
71f88e00
PE
51832012-07-25 Paul Eggert <eggert@cs.ucla.edu>
5184
5185 Use typedef for EMACS_INT, EMACS_UINT.
5186 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
5187 than macros. This simplifies debugging in the usual case, since
5188 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
5189 and it allows expressions involving EMACS_INT casts.
5190 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
5191
57ec3034
JD
51922012-07-25 Jan Djärv <jan.h.d@swipnet.se>
5193
5194 * nsterm.m (ns_read_socket): Return early if there is a modal
5195 window (Bug#12043).
5196
8137e7b3
MR
51972012-07-25 Martin Rudalics <rudalics@gmx.at>
5198
5199 * frame.c (Fredirect_frame_focus): In doc-string don't mention
5200 that FOCUS-FRAME can be omitted.
5201
04e9897c
DA
52022012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
5203
5204 Adjust buffer text indirection counters at the end of Fkill_buffer.
5205 * buffer.c (Fkill_buffer): Adjust indirection counters when the
5206 buffer is definitely dead. This should really fix an issue reported
5207 by Christoph Scholtes again. (Bug#12007).
5208 (init_buffer_once): Initialize indirection counters of
5209 buffer_defaults and buffer_local_symbols (for sanity and safety).
5210
8a0484e1
EZ
52112012-07-24 Eli Zaretskii <eliz@gnu.org>
5212
5213 * xdisp.c (init_iterator): Don't compute dimensions of truncation
5214 and continuation glyphs on tooltip frames, leave them at zero.
5215 Avoids continued lines in tooltips. (Bug#11832)
5216
fa691a83
DA
52172012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
5218
5219 Simplify copy_overlay.
04e9897c 5220 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
5221 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
5222
436bc8e0
EZ
52232012-07-23 Eli Zaretskii <eliz@gnu.org>
5224
5225 * print.c (print_object): Don't crash when a frame's name is nil
5226 or invalid. (Bug#12025)
5227
5228 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
5229 it signals an error when a tooltip frame is being created.
5230
d7a7fda3
DA
52312012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
5232
5233 Cleanup miscellaneous objects allocation and initialization.
5234 * alloc.c (allocate_misc): Change to static. Add argument to
5235 specify the subtype. Adjust comment and users.
5236 (build_overlay): New function.
5237 * buffer.c (copy_overlays, Fmake_overlay): Use it.
5238 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
5239 (allocate_misc): Remove prototype.
5240 (build_overlay): Add prototype.
5241
52422012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
5243
5244 Swap buffer text indirection counters in Fbuffer_swap_text.
5245 * buffer.c (Fbuffer_swap_text): Swap indirections too.
5246 This avoids crash reported by Christoph Scholtes at
5247 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
5248
9d7fa573
JD
52492012-07-22 Jan Djärv <jan.h.d@swipnet.se>
5250
5251 * nsmenu.m (Popdown_data): New struct.
5252 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
5253 free Popdown_data.
5254 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
5255 (initWithContentRect): Make imgView and contentView non-static
5256 and autorelease them. Also autorelease img and matrix (Bug#12005).
5257 (dealloc): Remove (Bug#12005).
5258
0dd6d66d
DA
52592012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
5260
5261 Adjust consing_since_gc when objects are explicitly freed.
5262 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
5263 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
5264 (free_cons, free_misc): Subtract object size from consing_since_gc.
5265
d36d71df
DA
52662012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
5267
5268 Simplify and cleanup markers positioning code.
5269 * marker.c (attach_marker): More useful eassert.
5270 (live_buffer, set_marker_internal): New function.
5271 (Fset_marker, set_marker_restricted): Use set_marker_internal.
5272 (set_marker_both, set_marker_restricted_both): Use live_buffer.
5273
fb9ea40f
PE
52742012-07-22 Paul Eggert <eggert@cs.ucla.edu>
5275
5276 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
5277 as it's limited by the amount of memory, not by INT_MAX.
5278
2d5c5f7d
EZ
52792012-07-21 Eli Zaretskii <eliz@gnu.org>
5280
07fb592e
EZ
5281 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
5282 in special-event-map. See the discussion at
5283 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
5284 for the reasons.
5285
37a9eac8 5286 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
5287 info.dwItemData. Fixes crashes on 64-bit Windows.
5288 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 5289
c4328746
JD
52902012-07-21 Jan Djärv <jan.h.d@swipnet.se>
5291
fc0c31f8 5292 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 5293 (conversationIdentifier): Return value is NSInteger.
784051c4 5294 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 5295
6e5d1c12
CY
52962012-07-21 Chong Yidong <cyd@gnu.org>
5297
5298 * window.c (decode_any_window): Signal an error if the window is
5299 on a dead frame (Bug#11984).
5300
9928463d
DA
53012012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
5302
5303 Add indirection counting to speed up Fkill_buffer.
5304 * buffer.h (struct buffer): New member.
5305 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
5306 (Fmake_indirect_buffer): Set indirection counter to -1, increment
5307 base buffer indirection counter.
5308 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
5309 (Fkill_buffer): Adjust indirection counters as needed, don't walk
5310 through buffer list if indirection counter is 0.
5311
f8643a6b
DA
53122012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
5313
5314 Extend the value returned by Fgarbage_collect with heap statistics.
5315 * alloc.c (Qheap): New symbol.
5316 (syms_of_alloc): DEFSYM it.
5317 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
5318 (Fmemory_free): Remove.
5319 (syms_of_alloc): Don't defsubr it.
5320 * buffer.c (Fcompact_buffer): Remove.
5321 (syms_of_buffer): Don't defsubr it.
5322
dac616ff
DA
53232012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
5324
5325 Make maybe_gc inline.
5326 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
5327 * lisp.h (consing_since_gc, gc_relative_threshold)
5328 (memory_full_cons_threshold): Revert declaration.
5329 (maybe_gc): Remove prototype, define as inline.
5330 * alloc.c: Remove old commented-out code.
5331 (consing_since_gc, gc_relative_threshold)
5332 (memory_full_cons_threshold): Revert to global.
5333 (maybe_gc): Remove.
5334
d7ea76b4
DA
53352012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
5336
5337 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
5338 * lisp.h (build_unibyte_string): New function.
5339 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
5340 * sysdep.c, w32fns.c, xfns.c: Use it.
5341 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
5342 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
5343 Adjust users accordingly.
5344 * font.h (font_open_by_name): Adjust prototype.
5345
765e61e3
DA
53462012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
5347
5348 Cleanup calls to Fgarbage_collect.
5349 * lisp.h (maybe_gc): New prototype.
5350 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
5351 Remove declarations.
5352 * alloc.c (maybe_gc): New function.
5353 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
5354 Make them static.
5355 * bytecode.c (MAYBE_GC): Use maybe_gc.
5356 * eval.c (eval_sub, Ffuncall): Likewise.
5357 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
5358 to avoid dependency from auto-save feature.
5359
52b852c7
PE
53602012-07-19 Paul Eggert <eggert@cs.ucla.edu>
5361
5362 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
5363 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
5364 'for_each_per_buffer_object_at'.
5365 All uses changed. It's better to use upper-case for macros that
5366 cannot be implemented as functions, to give the reader a clue
5367 that they're special.
5368
5db81e33
SM
53692012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
5370
5371 * alloc.c (Fgarbage_collect): Tweak docstring.
5372
5b835e1d
DA
53732012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
5374
5375 Tweak the value returned from Fgarbage_collect again.
5376 * alloc.c (Fgarbage_collect): New return value, as confirmed in
5377 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
5378 Adjust documentation.
5379 (total_vector_bytes): Rename to total_vector_slots, adjust
5380 accounting.
5381 (total_free_vector_bytes): Rename to total_free_vector_slots,
5382 adjust accounting.
5383 (Qstring_bytes, Qvector_slots): New symbols.
5384 (syms_of_alloc): DEFSYM them.
5385
9cd47b72
DA
53862012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
5387
5388 Buffer compaction primitive which may be used from Lisp.
5389 * buffer.c (compact_buffer, Fcompact_buffer): New function.
5390 (syms_of_buffer): Register Fcompact_buffer.
5391 * alloc.c (Fgarbage_collect): Use compact_buffer.
5392 * buffer.h (compact_buffer): New prototype.
5393 (struct buffer_text): New member.
5394
d17337e5
DA
53952012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
5396
5397 New macro to iterate over all buffers, miscellaneous cleanups.
5398 * lisp.h (all_buffers): Remove declaration.
5399 * buffer.h (all_buffers): Add declaration, with comment.
5400 (for_each_buffer): New macro.
5401 * alloc.c (Fgarbage_collect, mark_object): Use it.
5402 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
5403 (init_buffer): Likewise.
5404 * data.c (Fset_default): Likewise.
5405 * coding.c (code_conversion_restore): Remove redundant check
5406 for dead buffer.
5407 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
5408
60cfd278
AS
54092012-07-18 Andreas Schwab <schwab@linux-m68k.org>
5410
5411 Fix bug that created negative-length intervals.
5412 * intervals.c (merge_interval_right, merge_interval_left):
5413 Do not zero out this interval if it is absorbed by its children,
5414 as this interval's total length doesn't change in that case. See
5415 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
5416
d06714cb
PE
54172012-07-18 Paul Eggert <eggert@cs.ucla.edu>
5418
83713154
PE
5419 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
5420 when invoking (make-bool-vector N t) and N is a positive
5421 multiple of 8 -- the last 8 bits were mistakenly cleared.
5422
d06714cb
PE
5423 Remove some struct layout assumptions in bool vectors.
5424 * alloc.c (bool_header_size): New constant.
5425 (header_size, word_size): Move earlier, as they're now used earlier.
5426 Use 'word_size' in a few more places, where it's appropriate.
5427 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
5428 padding before the data member of a bool vector.
5429 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
5430 than doing the check by hand with an abort ().
5431
464d5a5e
SM
54322012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
5433
5fbc0409
SM
5434 * eval.c (Fdefvar): Don't check constants since we only set the var if
5435 it's not yet defined anyway (bug#11904).
5436
464d5a5e
SM
5437 * lisp.h (last_undo_boundary): Declare new var.
5438 * keyboard.c (command_loop_1): Set it.
5439 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
5440 were auto-added by the command loop (bug#11774).
5441
8dc2e44a
AS
54422012-07-18 Andreas Schwab <schwab@linux-m68k.org>
5443
5444 * w32font.c (Qsymbol): Remove local definition.
5445 (syms_of_w32font): Don't DEFSYM it.
5446
169925ec
DA
54472012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
5448
5449 Fix sweep_vectors to handle large bool vectors correctly.
5450 * alloc.c (sweep_vectors): Account total_vector_bytes for
5451 bool vectors larger than VBLOCK_BYTES_MAX.
5452
5fbfb018
CY
54532012-07-18 Chong Yidong <cyd@gnu.org>
5454
5455 * frame.c (x_set_frame_parameters): Revert bogus change introduced
5456 in 2012-05-25 commit by Paul Eggert (Bug#11738).
5457
3ab6e069
DA
54582012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
5459
5460 Return more descriptive data from Fgarbage_collect.
5461 Suggested by Stefan Monnier in
5462 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
5463 * alloc.c (bounded_number): New function.
5464 (total_buffers, total_vectors): New variable.
5465 (total_string_size): Rename to total_string_bytes, adjust users.
5466 (total_vector_size): Rename to total_vector_bytes, adjust users.
5467 (sweep_vectors): Account total_vectors and total_vector_bytes.
5468 (Fgarbage_collect): New return value. Adjust documentation.
5469 (gc_sweep): Account total_buffers.
5470 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
5471 (VECTOR_SIZE): Remove.
5472 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
5473 (Qinterval, Qmisc): New symbols.
5474 (syms_of_data): Initialize them.
5475 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
5476 (Qcons, Qbuffer): New declarations.
5477
6d02fe5b
PE
54782012-07-17 Paul Eggert <eggert@cs.ucla.edu>
5479
5480 * alloc.c (Fmemory_free): Account for memory-free's own storage.
5481 Round up, not down. Improve doc.
5482
b7ffe040
DA
54832012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
5484
5485 Restore old code in allocate_string_data to avoid Faset breakage.
5486 Reported by Julien Danjou <julien@danjou.info> in
5487 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
5488 * alloc.c (allocate_string_data): Restore old code with minor
5489 adjustments, fix comment to explain this subtle issue.
5490
4dc7c8d5
SM
54912012-07-17 Eli Zaretskii <eliz@gnu.org>
5492
5493 Remove FILE_SYSTEM_CASE.
5494 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
5495
5496 * fileio.c (FILE_SYSTEM_CASE): Don't define.
5497 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
5498 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
5499 call-process-region passes it through expand-file-name.
5500
5501 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
5502
55032012-07-17 Andreas Schwab <schwab@linux-m68k.org>
5504
5505 Fix crash when creating indirect buffer (Bug#11917)
5506 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
5507 Don't handle unbound variables specially if non-zero.
5508 (Fbuffer_local_variables): Pass zero.
5509 (clone_per_buffer_values): Pass non-zero.
5510
55112012-07-17 Andreas Schwab <schwab@linux-m68k.org>
5512
5513 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
5514 to make the loop interruptible.
5515
55162012-07-17 Andreas Schwab <schwab@linux-m68k.org>
5517
5518 * gnutls.c (emacs_gnutls_handshake): Only retry if
5519 GNUTLS_E_INTERRUPTED.
5520
cce7fefc
DA
55212012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
5522
5523 Cleanup and convert miscellaneous checks to eassert.
5524 * alloc.c (mark_interval): Fix comment, partially rephrase
5525 old comment from intervals.h (see below).
5526 * intervals.c (find_interval, adjust_intervals_for_insertion)
5527 (delete_interval, adjust_intervals_for_deletion)
5528 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
5529 Convert to eassert.
5530 (adjust_intervals_for_insertion, make_new_interval):
5531 Remove obsolete and unused code.
5532 * intervals.h (struct interval): Remove obsolete comment.
5533 * textprotp.c (erase_properties): Remove unused code.
5534 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
5535 (Fremove_list_of_text_properties): Convert to eassert.
5536
9ea10cc3
CY
55372012-07-17 Chong Yidong <cyd@gnu.org>
5538
5539 * editfns.c (Finsert_char): Doc fix.
5540
3900d5de
DA
55412012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
5542
5543 Fix previous change to make Fmemory_free always accurate.
5544 * alloc.c (make_interval): Update total_free_intervals.
5545 (make_float): Likewise for total_free_floats.
5546 (free_cons, Fcons): Likewise for total_free_conses.
5547 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
5548 Likewise for total_free_vector_bytes.
5549 (Fmake_symbol): Likewise for total_free_symbols.
5550 (bytes_free): Remove.
5551
7098646f
DA
55522012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
5553
5554 Simple free memory accounting feature.
5555 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
5556 (sweep_vectors): Accumulate size of free vectors.
5557 (Fgarbage_collect): Setup bytes_free.
5558 (Fmemory_free): New function.
5559 (syms_of_alloc): Register it.
5560
22657b40
DA
55612012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
5562
5563 Cleanup overlays checking.
5564 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
5565 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
5566 eassert and OVERLAYP.
5567 (sort_overlays): Change to use OVERLAYP.
5568
ddfc8813
RK
55692012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
5570
5571 * editfns.c (Finsert_char): Make it interactive, and make the
5572 second arg optional. Copy interactive spec and docstring from
5573 ucs-insert.
5574
7c26cf3c
PE
55752012-07-17 Paul Eggert <eggert@cs.ucla.edu>
5576
5577 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
5578 Unlike the other wrapped functions, fabs has an unspecified
5579 effect on errno.
5580
5d127af9
JD
55812012-07-16 Jan Djärv <jan.h.d@swipnet.se>
5582
5583 * nsterm.m (keyDown): Interpret flags without left/right bits
5584 as the left key (Bug#11670).
5585
6a0dd1d7
DA
55862012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
5587
5588 Remove empty and useless init functions.
5589 * lisp.h (init_character_once, init_fns, init_image)
5590 (init_filelock, init_sound): Remove prototype.
5591 * character.c (init_character_once): Remove.
5592 * filelock.c (init_filelock): Likewise.
5593 * fns.c (init_fns): Likewise.
5594 * image.c (init_image): Likewise.
5595 * sound.c (init_sound): Likewise.
5596 * emacs.c (main): Adjust accordingly.
5597
7a6136fd
DA
55982012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
5599
5600 * gtkutil.h: Tiny cleanups.
5601 (use_old_gtk_file_dialog): Remove useless declaration.
5602 (xg_uses_old_file_dialog): Add suggested const attribute.
5603
ce811ad9
EZ
56042012-07-15 Eli Zaretskii <eliz@gnu.org>
5605
5606 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
5607 (bidi_paragraph_init): Use it to limit search forward for a strong
5608 directional character in abnormally large paragraphs full of
5609 neutral or weak characters. (Bug#11943)
5610
c9adfeaa
SF
56112012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
5612
5613 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
5614 the toolbar (Bug#9451).
5615 (xg_make_tool_item): Give the widget event box a transparent
5616 background.
5617
fff62aa9
DA
56182012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
5619
5620 Cleanup basic allocation variables and functions.
5621 * alloc.c (ignore_warnings, init_intervals, init_float)
5622 (init_cons, init_symbol, init_marker): Remove.
5623 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
5624 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
5625 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
5626 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
5627 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
5628 (staticidx, init_alloc_once, init_strings, free_ablock):
5629 Remove redundant initialization.
5630 * fns.c (init_weak_hash_tables): Remove.
5631 * lisp.h (init_weak_hash_tables): Remove prototype.
5632
9730daca
DA
56332012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
5634
5635 Use zero_vector where appropriate.
5636 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
5637 accordingly.
5638 * lisp.h (zero_vector): New declaration.
5639 * font.c (null_vector): Remove.
5640 (syms_of_font): Remove initialization and staticpro.
5641 (font_list_entities, font_find_for_lface): Change to use zero_vector.
5642 * keymap.c (Faccessible_keymaps): Likewise.
5643
2e2d2a13
LL
56442012-07-15 Leo Liu <sdl.web@gmail.com>
5645
5646 * fringe.c: Fix typo in comments.
5647
cd276f6e
LL
56482012-07-14 Leo Liu <sdl.web@gmail.com>
5649
5650 * fringe.c: Add a new bitmap exclamation-mark.
5651
5a1131d9
EZ
56522012-07-14 Eli Zaretskii <eliz@gnu.org>
5653
5654 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
5655
5656 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
5657 (HAVE_MENUS): Don't define, defined by editing config.in with
5658 msdos/sed2v2.inp.
5659 (GMALLOC_INHIBIT_VALLOC): Don't define.
5660 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
5661
22e983b7
JB
56622012-07-14 Juanma Barranquero <lekktu@gmail.com>
5663
5664 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
5665
5b3f250f
GM
56662012-07-14 Glenn Morris <rgm@gnu.org>
5667
5668 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
5669 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
5670 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
5671
33d63ff4
GM
56722012-07-13 Glenn Morris <rgm@gnu.org>
5673
5b633342
GM
5674 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
5675
33d63ff4
GM
5676 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
5677 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
5678
b55b9f85
JD
56792012-07-13 Jan Djärv <jan.h.d@swipnet.se>
5680
0dc8cf50
JD
5681 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
5682 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
5683 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
5684 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
5685 where appropriate.
5686 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
5687 as boolean expression.
5688 (x_set_window_size): Remove unused variable toolbar.
5689 (ns_get_color_default, ns_mod_to_lisp): Remove.
5690 (ns_mouse_position): Remove unused variables xchar and ychar.
5691 (ns_compute_glyph_string_overhangs): Remove unused variable face.
5692 (ns_set_vertical_scroll_bar): Remove unused variable count.
5693 (ns_delete_terminal): Remove unused variable i.
5694 (ns_term_init): Remove unused variables r, g and b.
5695 (mouseDown): Remove unused variable window.
5696 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
5697 (initFrameFromEmacs): Remove unused variable vbextra.
5698 (mouseEntered): Remove unused variables p and dpyinfo.
5699 (mouseExited): Remove unused variables p and r.
5700 (ns_define_frame_cursor, ns_clear_frame_area)
5701 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
5702 (menuDown): Assign [sender tag] to variable and cast the variable.
5703
5704 * nsterm.h (menuDown): Add id as type to argument sender.
5705 (ns_display_info_for_name): Add Lisp_Object argument.
5706 (ns_term_init): Add Lisp_Object argument.
5707 (ns_map_event_to_object): Add void argument.
5708 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
5709 prototype with arguments and only declare if __OBJC__.
5710 (nxatoms_of_nsselect): Add void argument.
5711 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
5712 (ns_alloc_autorelease_pool): Add void argument.
5713 (ns_release_autorelease_pool): Add void* argument.
5714 (ns_get_defaults_value): Add const char* argument.
5715
5716 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
5717 (initFromContents): Use SSDATA where appropriate.
5718 (ns_update_menubar): Add braces to ambigous if-else.
5719 (initWithTitle): Put () around assignment in if statement.
5720 (ns_menu_show): Remove unused variables window and keymap.
5721 (update_frame_tool_bar): Remove unused variable selected_p.
5722 (initWithContentRect): Remove unused variable this_cmd_name.
5723
5724 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
5725 appropriate.
5726 (setXBMColor): Remove unused variable len.
5727 (setPixmapData): Put () around assignment in loop statement.
5728
5729 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
5730 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
5731 where appropriate.
5732 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
5733 around assignment in loop statement.
5734 (nsfont_open): Remove unused variable i.
5735 (nsfont_open): Remove unused variable len.
5736 (nsfont_draw): Remove unused variable cs.
5737
5738 * nsfns.m (x_set_icon_name, ns_set_name_internal)
5739 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
5740 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
5741 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
5742 (Fns_font_name, Fns_perform_service)
5743 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
5744 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
5745 (ns_set_name): Remove unused variable view.
5746 (x_set_menu_bar_lines): Remove unused variable olines.
5747 (x_set_tool_bar_lines): Remove unused variable root_window.
5748 (Fns_list_colors): Put () around assignment in while statement.
5749 (Fns_perform_service): Remove unused variable len.
5750 (Fns_display_usable_bounds): Remove unused variable top.
5751 (syms_of_nsfns): Remove unused variable i.
5752
b55b9f85
JD
5753 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
5754 memcpy (Bug#11907).
5755
ed9265fc 57562012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
5757
5758 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
5759 and free it with DestroyExceptionInfo (Bug#11558).
5760
ef099b57
JB
57612012-07-13 Juanma Barranquero <lekktu@gmail.com>
5762
5763 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
5764 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
5765 Set here, not in nt/config.nt.
5766
ea814a5d
EZ
57672012-07-13 Eli Zaretskii <eliz@gnu.org>
5768
5769 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
5770 cursor overflow into the last glyph on display line when the right
5771 fringe is off. (Bug#11832)
5772
1a952767
PE
57732012-07-13 Paul Eggert <eggert@cs.ucla.edu>
5774
5775 * xdisp.c (produce_special_glyphs): Now static.
5776 * dispextern.h (produce_special_glyphs): Remove decl.
5777
983188fd
GM
57782012-07-13 Glenn Morris <rgm@gnu.org>
5779
8d7c7eed 5780 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
5781 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
5782
983188fd
GM
5783 * s/usg5-4-common.h (USG, USG5):
5784 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
5785 * s/sol2-6.h (SOLARIS2):
5786 * s/irix6-5.h (IRIX6_5):
5787 * s/hpux10-20.h (USG, USG5, HPUX):
5788 * s/gnu-linux.h (USG, GNU_LINUX):
5789 * s/freebsd.h (BSD_SYSTEM):
5790 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
5791 * s/cygwin.h (CYGWIN):
5792 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
5793 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
5794
d1e68667 57952012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
5796
5797 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 5798
6de0e799
GM
57992012-07-13 Glenn Morris <rgm@gnu.org>
5800
739ae010
GM
5801 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
5802
dbee5793
GM
5803 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
5804
6de0e799
GM
5805 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
5806 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
5807
b82da769
GM
58082012-07-12 Glenn Morris <rgm@gnu.org>
5809
4fae5a7a 5810 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
5811
5812 * process.c (init_process_emacs): Rename from init_process.
5813 The old name is also the name of a Mach system call.
5814 * lisp.h, emacs.c: Update for this name change.
5815 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
5816 longer needed.
5817
5a979817
EZ
58182012-07-12 Eli Zaretskii <eliz@gnu.org>
5819
5820 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
5821 memmove call that removes glyphs covered by the left truncation
5822 glyph. Improve commentary.
5823 (display_line): Fix display of continuation glyphs on GUI frames
5824 when the right fringe is turned off and variable-size fonts are
5825 used in the window. Move the code that appends a stretch glyph to
5826 produce_special_glyphs, so that it could be used for truncation
5827 and continuation glyphs alike.
5828 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
5829 glyph of a suitably computed width, to align the special glyphs at
5830 the window margin. Code moved from display_line. (Bug#11832)
5831
3e91a053
GM
58322012-07-12 Glenn Morris <rgm@gnu.org>
5833
ba9e4b84
GM
5834 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
5835
5836 * s/gnu-linux.h, s/hpux10-20.h:
5837 Do not unconditionally define HAVE_XRMSETDATABASE.
5838
3e91a053
GM
5839 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
5840
b300b1f4
PE
58412012-07-12 Paul Eggert <eggert@cs.ucla.edu>
5842
5843 Fix typos that broke OS X build.
5844 Reported by Randal L. Schwartz in
5845 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
5846 * nsterm.m (ns_timeout): Add missing local decl.
5847 (ns_get_color): snprintf -> sprintf, to fix typo.
5848
6e777848
GM
58492012-07-12 Glenn Morris <rgm@gnu.org>
5850
3f922c37
GM
5851 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
5852 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
5853 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
5854 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
5855
0ab7b23a
GM
5856 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
5857 Move PTY_OPEN to configure.
5858
6e777848
GM
5859 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
5860 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
5861 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
5862
4a7edc24
DA
58632012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
5864
5865 Use empty_unibyte_string where applicable.
5866 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
5867 * lread.c (read1): Likewise.
5868 * xsettings.c (syms_of_xsettings): Likewise.
5869
308aab79
GM
58702012-07-12 Glenn Morris <rgm@gnu.org>
5871
42bd1719
GM
5872 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
5873 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
5874 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
5875 * s/hpux10-20.h (RUN_TIME_REMAP):
5876 * s/bsd-common.h (TABDLY): Move to configure.
5877
5878 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
5879
5880 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
5881
ea0bbd17 5882 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 5883 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
5884
5885 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 5886
308aab79
GM
5887 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
5888 * s/template.h: Move NARROWPROTO to configure.
5889
ee1cf5cf
GM
58902012-07-11 Glenn Morris <rgm@gnu.org>
5891
30fe9bf4
GM
5892 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
5893 unused since 2011-01-17 change to systty.h.
5894
ee1cf5cf
GM
5895 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
5896 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
5897 Move HAVE_PTYS and HAVE_SOCKETS to configure.
5898
63e47e07
PE
58992012-07-11 Paul Eggert <eggert@cs.ucla.edu>
5900
5901 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
5902
c43fb4c3
GM
59032012-07-11 Glenn Morris <rgm@gnu.org>
5904
5905 * s/darwin.h, s/gnu-linux.h, s/template.h:
5906 Move INTERRUPT_INPUT to configure.
5907
e8df9267
DA
59082012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5909
5910 Minor adjustments to interning code.
5911 * lisp.h (intern, intern_c_string): Redefine as static inline
5912 wrappers for intern_1 and intern_c_string_1, respectively.
5913 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
5914 * lread.c (intern_1, intern_c_string_1, oblookup):
5915 Simplify Vobarray checking.
e8df9267
DA
5916 * font.c (font_intern_prop): Likewise. Adjust comment.
5917 * w32font.c (intern_font_name): Likewise.
5918
34348bd4
AS
59192012-07-11 Andreas Schwab <schwab@linux-m68k.org>
5920
d96a1e0c
AS
5921 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
5922
34348bd4
AS
5923 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
5924 of Fcar/Fcdr if possible.
5925 * font.c (check_otf_features): Likewise.
5926 * fontset.c (Fnew_fontset): Likewise.
5927 * gnutls.c (Fgnutls_boot): Likewise.
5928 * minibuf.c (read_minibuf): Likewise.
5929 * msdos.c (IT_set_frame_parameters): Likewise.
5930 * xmenu.c (Fx_popup_dialog): Likewise.
5931 * w32menu.c (Fx_popup_dialog): Likewise.
5932
c8add24e
GM
59332012-07-11 Glenn Morris <rgm@gnu.org>
5934
4b575b3c
GM
5935 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
5936 since nothing has defined it on these platforms.
5937
09f4e3b0
GM
5938 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
5939 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
5940
172bedef
GM
5941 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
5942 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
5943 Move CLASH_DETECTION to configure.
5944
249685df
GM
5945 * s/gnu.h: Remove file, which is now empty.
5946
c8add24e
GM
5947 * s/gnu.h, s/gnu-linux.h:
5948 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
5949
b41253a3
JW
59502012-07-11 John Wiegley <johnw@newartisans.com>
5951
5952 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
5953 function attribute, so we only use it if it exists in the
5954 compiler.
5955
d923b542
DA
59562012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5957
5958 Avoid call to strlen in fast_c_string_match_ignore_case.
5959 * search.c (fast_c_string_match_ignore_case): Change to use
5960 length argument. Adjust users accordingly.
5961 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
5962
5ebbef1d
PE
59632012-07-11 Paul Eggert <eggert@cs.ucla.edu>
5964
bb352260
PE
5965 Assume mkdir, rmdir.
5966 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
5967 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
5968
57054ddd
PE
5969 Assume rename.
5970 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
5971
b747d3f7
PE
5972 Assume perror.
5973 * s/hpux10-20.h (HAVE_PERROR): Remove.
5974 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
5975 Remove dummy definition, as this problem was obsolete long ago.
5976
5ebbef1d
PE
5977 Assume strerror.
5978 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
5979
984e7f30
DA
59802012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5981
5982 Avoid calls to strlen in font processing functions.
5983 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
5984 (font_open_by_name): Change to use length argument.
5985 Adjust users accordingly.
d923b542
DA
5986 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
5987 Adjust prototypes.
5988 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
5989 Change to return ptrdiff_t.
984e7f30
DA
5990 (xfont_list_pattern, xfont_match): Use length returned by
5991 xfont_decode_coding_xlfd.
5992 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
5993
20e94fdd
GM
59942012-07-11 Glenn Morris <rgm@gnu.org>
5995
9d596af3
GM
5996 * s/darwin.h, s/freebsd.h, s/netbsd.h:
5997 Move DONT_REOPEN_PTY to configure.
5998
20e94fdd
GM
5999 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
6000 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
6001
e99a530f
PE
60022012-07-10 Paul Eggert <eggert@cs.ucla.edu>
6003
22ffb973
PE
6004 Remove "#define unix" that is no longer needed (Bug#11905).
6005 * s/aix4-2.h (unix): Remove; no longer needed.
6006
e9a9ae03
PE
6007 EMACS_TIME simplification (Bug#11875).
6008 This replaces macros (which typically do not work in GDB)
6009 with functions, typedefs and enums, making the code easier to debug.
6010 The functional style also makes code easier to read and maintain.
6011 * systime.h: Include <sys/time.h> on all hosts, not just if
6012 WINDOWSNT, since 'struct timeval' is needed in general.
6013 (EMACS_TIME): Now a typedef, not a macro.
6014 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
6015 not macros.
6016 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
6017 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
6018 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
6019 (EMACS_TIME_LE): Now functions, not macros.
6020 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
6021 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
6022 which are not functions. All uses rewritten to use:
6023 (make_emacs_time): New function.
6024 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
6025 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
6026 not functions. All uses rewritten to use the following, respectively:
6027 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
6028 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 6029 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
6030 * fileio.c (Fcopy_file):
6031 * xterm.c (XTflash): Get the current time closer to when it's used.
6032 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
6033
ffacb126
PE
6034 * bytecode.c (targets): Suppress -Woverride-init warnings.
6035
e99a530f
PE
6036 Simplify by avoiding confusing use of strncpy etc.
6037 * doc.c (Fsnarf_documentation):
6038 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
6039 * frame.c (Fmake_terminal_frame):
6040 * gtkutil.c (get_utf8_string):
6041 * lread.c (openp):
6042 * nsmenu.m (ns_update_menubar):
6043 * regex.c (regerror):
6044 Prefer memcpy to strncpy and strncat when either will do.
6045 * fileio.c (Fsubstitute_in_file_name):
6046 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
6047 (menu_separator_name_p):
6048 * nsmenu.m (ns_update_menubar):
6049 Prefer memcmp to strncmp when either will do.
6050 * nsterm.m: Include <ftoastr.h>.
6051 (ns_get_color):
6052 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
6053 Prefer snprintf to strncpy.
6054 * nsterm.m (ns_term_init):
6055 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
6056 * nsterm.m (ns_term_init):
6057 Avoid the need for strncpy, by using build_string or
6058 make_unibyte_string directly. Use dtoastr, not snprintf.
6059 * process.c (Fmake_network_process): Diagnose service names that
6060 are too long, rather than silently truncating them or creating
6061 non-null-terminated names.
6062 (Fnetwork_interface_info): Likewise, for interface names.
6063 * sysdep.c (system_process_attributes) [GNU_LINUX]:
6064 Prefer sprintf to strncat.
6065 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
6066 Prefer vsnprintf to vsprintf + strncpy.
6067
c59592b3
GM
60682012-07-10 Glenn Morris <rgm@gnu.org>
6069
6070 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
6071 Clarify fallback case.
6072
7d7bbefd
DA
60732012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
6074
6075 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
6076 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
6077 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 6078 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
6079 where argument type is known to be a Lisp_Cons.
6080
3a4c8000
TT
60812012-07-10 Tom Tromey <tromey@redhat.com>
6082
6083 * bytecode.c (BYTE_CODE_THREADED): New macro.
6084 (BYTE_CODES): New macro. Replaces all old byte-code defines.
6085 (enum byte_code_op): New type.
6086 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
6087 (exec_byte_code): Use them. Use token threading when applicable.
6088
2a0213a6
DA
60892012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
6090
6091 Optimize pure C strings initialization.
6092 * lisp.h (make_pure_string): Fix prototype.
6093 (build_pure_c_string): New function, defined as static inline. This
6094 provides a better opportunity to optimize away calls to strlen when
6095 the function is called with compile-time constant argument.
6096 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
6097 argument, adjust users accordingly. Use build_pure_c_string where
6098 appropriate.
6099 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
6100 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
6101 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
6102
cb1caeaf
DA
61032012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
6104
6105 Avoid calls to strlen in miscellaneous functions.
6106 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
6107 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
6108 * lread.c (openp): Likewise.
6109
c293e30c
DA
61102012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
6111
6112 Avoid calls to strlen in path processing functions.
6113 * fileio.c (file_name_as_directory): Add comment. Change to add
6114 srclen argument and return the length of result. Adjust users
6115 accordingly.
6116 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
6117 swap 1st and 2nd arguments to obey the common convention.
6118 Adjust users accordingly.
c293e30c
DA
6119 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
6120
9e059e3f
GM
61212012-07-10 Glenn Morris <rgm@gnu.org>
6122
d02eb359
GM
6123 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
6124 Move PENDING_OUTPUT_COUNT definition to configure.
6125
882cf227
GM
6126 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
6127 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
6128 * s/gnu.h (DATA_START): Move definitions to configure.
6129
af6e839f
GM
6130 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
6131 We include usg5-4-common.h, which defines them both.
6132
40289a12
GM
6133 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
6134 O_RDONLY already includes it).
6135
9e059e3f
GM
6136 Stop ns builds setting the EMACSLOADPATH environment variable.
6137 * nsterm.m (ns_load_path): Rename from ns_init_paths.
6138 Now it does not set EMACSLOADPATH, just returns the load-path string.
6139 * nsterm.h: Update accordingly.
6140 * lread.c [HAVE_NS]: Include nsterm.h.
6141 (init_lread) [HAVE_NS]: Use ns_load_path.
6142 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
6143
7c4e8ec0
GM
61442012-07-09 Glenn Morris <rgm@gnu.org>
6145
d4f600ff
GM
6146 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
6147 since the included bsd-common.h does so.
6148
cbb31951
GM
6149 Stop ns builds setting the EMACSPATH environment variable.
6150 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
6151 (ns_init_paths): Do not set EMACSPATH.
6152 * nsterm.h (ns_exec_path): Add it.
6153 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
6154 Use ns_exec_path.
6155
7c4e8ec0
GM
6156 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
6157
26bccfae
PE
61582012-07-09 Paul Eggert <eggert@cs.ucla.edu>
6159
a0bee46f
PE
6160 * process.c (wait_reading_process_output): 'waitchannels' was unset
6161 when read_kbd || !NILP (wait_for_cell); fix this.
6162
5994c183
PE
6163 Add GCC-style 'const' attribute to functions that can use it.
6164 * character.h (char_resolve_modifier_mask):
6165 * keyboard.h (make_ctrl_char):
6166 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
6167 (init_character_once, next_almost_prime, init_fns, init_image)
6168 (flush_pending_output, init_sound):
6169 * mem-limits.h (start_of_data):
6170 * menu.h (finish_menu_items):
6171 Add ATTRIBUTE_CONST.
6172 * emacs.c (DEFINE_DUMMY_FUNCTION):
6173 Declare the dummy function with ATTRIBUTE_CONST.
6174 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
6175 Add decls with ATTRIBUTE_CONST.
6176
26bccfae
PE
6177 Minor improvements to make_formatted_string.
6178 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
6179 where int is good enough, as vsprintf returns an int.
6180 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
6181
a8290ec3
DA
61822012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
6183
6184 Use make_formatted_string to avoid double length calculation.
6185 * lisp.h (make_formatted_string): New prototype.
6186 * alloc.c (make_formatted_string): New function.
6187 * buffer.c (Fgenerate_new_buffer_name): Use it.
220cb2bd 6188 * dbusbind.c (syms_of_dbusbind): Likewise.
a8290ec3
DA
6189 * editfns.c (Fcurrent_time_zone): Likewise.
6190 * filelock.c (get_boot_time): Likewise.
6191 * frame.c (make_terminal_frame, set_term_frame_name)
6192 (x_report_frame_params): Likewise.
6193 * image.c (gs_load): Likewise.
6194 * minibuf.c (get_minibuffer): Likewise.
6195 * msdos.c (dos_set_window_size): Likewise.
6196 * process.c (make_process): Likewise.
6197 * xdisp.c (ensure_echo_area_buffers): Likewise.
6198 * xsettings.c (apply_xft_settings): Likewise.
6199
d01ba2f1
GM
62002012-07-09 Glenn Morris <rgm@gnu.org>
6201
6202 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
6203 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
6204 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
6205 * nsterm.h (ns_etc_directory): Add it.
6206 * callproc.c [HAVE_NS]: Include nsterm.h.
6207 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
6208
f1f924b6
DA
62092012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
6210
6211 Move marker debugging code under MARKER_DEBUG.
6212 * marker.c (MARKER_DEBUG): Move marker debugging code under
6213 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
6214 for bootstrap with --enable-checking (~3x slowdown reported
6215 by Juanma Barranquero <lekktu@gmail.com>).
6216 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
6217
ab531b66
PE
62182012-07-08 Paul Eggert <eggert@cs.ucla.edu>
6219
6220 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
6221 See <http://bugs.gnu.org/11825#29>.
6222
c4b3bc8a
EZ
62232012-07-08 Eli Zaretskii <eliz@gnu.org>
6224
6225 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
6226 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
6227 (display_line): Add commentary about displaying truncation glyphs
6228 on GUI frames.
6229 (produce_special_glyphs): Move here from term.c.
6230
6231 * term.c (produce_special_glyphs): Move to xdisp.c.
6232
6233 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
6234 section.
c4b3bc8a 6235
b676b881
AS
62362012-07-07 Andreas Schwab <schwab@linux-m68k.org>
6237
f17c5273
AS
6238 * xdisp.c (display_line): Avoid warning about implicit declaration
6239 of FRAME_FONT.
6240
298819b9
AS
6241 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
6242
b676b881
AS
6243 * lisp.h: Remove empty conditional.
6244
6045c4fd
PE
62452012-07-07 Paul Eggert <eggert@cs.ucla.edu>
6246
b3350bf9
PE
6247 * lread.c (load_path_check): Now static.
6248
6045c4fd
PE
6249 Fix some minor --with-ns problems found by static checking.
6250 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
6251 (x_set_font) [!HAVE_X_WINDOWS]:
6252 * image.c (xpm_load_image) [HAVE_NS]:
6253 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
6254 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
6255 Remove unused local.
6256 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
6257 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
6258 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
6259 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
6260 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
6261 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
6262 Fix pointer signedness problem.
6263 * xfaces.c (FRAME_X_FONT_TABLE):
6264 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
6265
929e7845
GM
62662012-07-07 Glenn Morris <rgm@gnu.org>
6267
6268 * lread.c (load_path_check): New function, split from init_lread.
6269 (init_lread): Reorganize. Motivation:
6270 If EMACSLOADPATH is set, check/warn about that rather than the
6271 defaults, which we are not going to use. Hence we can remove
6272 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
6273 Don't warn if site-lisp directories are missing.
6274 If not installed, start from a blank load-path, since
6275 PATH_LOADSEARCH refers to the eventual installation directories.
6276
58dd0aa4
EZ
62772012-07-07 Eli Zaretskii <eliz@gnu.org>
6278
6279 Support truncation and continuation glyphs on GUI frames, when
6280 fringes are disabled. (Bug#11832)
6281 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
6282 continuation glyphs even if on GUI frames.
6283 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
6284 or both, are absent.
6285 (start_display, move_it_in_display_line_to): Handle the case of a
6286 GUI frame without a fringe to display continuation or truncation
6287 glyphs.
6288 (insert_left_trunc_glyphs): Support GUI frames: make sure
6289 truncation glyphs overwrite enough glyphs from the current line to
6290 have sufficient space in pixels.
6291 (display_line): Support truncation and continuation glyphs on GUI
6292 frames. If some spare pixels are left on the line after inserting
6293 the truncation glyphs, fill that space with a stretch glyph of a
6294 suitably computed width.
6295
6296 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
6297 produce_glyphs, to support GUI sessions.
6298
31571fd7
PE
62992012-07-07 Paul Eggert <eggert@cs.ucla.edu>
6300
5a16b9bc
PE
6301 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
6302
f3047c75
PE
6303 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
6304
31571fd7
PE
6305 Do not require float-time's arg to fit in time_t (Bug#11825).
6306 This works better on hosts where time_t is unsigned, and where
6307 float-time is applied to the (negative) difference between two times.
6308 * editfns.c (decode_time_components): Last arg is now double *,
6309 not int *, and means to store all the result as a double, without
6310 worrying about whether the seconds part fits in time_t.
6311 All callers changed.
6312 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
6313 All callers changed.
6314 (Ffloat_time): Do not fail merely because the specified time falls
6315 outside of time_t range.
6316
4516fbef
GM
63172012-07-07 Glenn Morris <rgm@gnu.org>
6318
6319 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
6320 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
6321 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
6322
07adc2c6
JB
63232012-07-07 Juanma Barranquero <lekktu@gmail.com>
6324
6325 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
6326 Update dependencies.
6327
6328 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
6329
fd573f31
PE
63302012-07-06 Paul Eggert <eggert@cs.ucla.edu>
6331
fee5959d
PE
6332 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
6333 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
6334 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
6335 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
6336 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
6337 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
6338
fd573f31
PE
6339 * xfont.c (compare_font_names): Redo to omit the need for casts.
6340
ddadbc0e
AS
63412012-07-06 Andreas Schwab <schwab@linux-m68k.org>
6342
fca8d6b6
AS
6343 * xfns.c (Fx_change_window_property): Doc fix.
6344 * w32fns.c (Fx_change_window_property): Doc fix.
6345
ddadbc0e
AS
6346 * w32fns.c (Fx_window_property): Accept the same arguments as the
6347 X Windows version. Doc fix.
6348 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
6349
ed9265fc 63502012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
6351 Eli Zaretskii <eliz@gnu.org>
6352
6353 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
6354 Windows-specific code from nt/config.nt moved here.
6355 Obsolete settings removed.
6356
216ee680
PE
63572012-07-06 Paul Eggert <eggert@cs.ucla.edu>
6358
6359 * process.c: Avoid unnecessary calls to gettime.
6360 (wait_reading_process_output): Don't get the time of day
6361 when gobbling data immediately and not waiting, as there's no need
6362 for it in that case. This removes a FIXME.
6363
bdd091e4
JD
63642012-07-06 Jan Djärv <jan.h.d@swipnet.se>
6365
6366 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
6367 is defined (Bug#11768).
6368
9d44f8ce
DA
63692012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
6370
6371 Fix marker debugging code.
6372 * marker.c (byte_char_debug_check): Do not perform the check
6373 if buffer is not multibyte.
090bd7cb
JB
6374 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
6375 Call byte_char_debug_check with correct arguments.
9d44f8ce 6376
90fc4786
DA
63772012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
6378
6379 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
6380 * marker.c (byte_char_debug_check, count_markers):
6381 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
6382 (byte_debug_flag): Remove.
6383 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
6384 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
6385
7b7ae965
DA
63862012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
6387
4e57b342
DA
6388 Avoid code repetition in marker-related functions.
6389 * marker.c (attach_marker): New function.
6390 (Fset_marker, set_marker_restricted, set_marker_both)
6391 (set_marker_restricted_both): Use it.
6392 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
6393 Consistently rename charno to charpos.
6394 (marker_position): Add eassert.
6395 (marker_byte_position): Convert to eassert.
6396
63972012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
6398
6399 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 6400 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 6401 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 6402
657924ff
DA
64032012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
6404
6405 Introduce fast path for the widely used marker operation.
6406 * alloc.c (build_marker): New function.
6407 * lisp.h (build_marker): New prototype.
6408 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
6409 * composite.c (autocmp_chars): Likewise.
6410 * editfns.c (buildmark): Remove.
6411 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
6412 (save_restriction_save): Use build_marker.
6413 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
6414 * window.c (save_window_save): Likewise.
6415
041a49a6
DA
64162012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
6417
6418 Do not use Fdelete_overlay in delete_all_overlays
6419 to avoid redundant calls to unchain_overlay.
6420 * buffer.c (drop_overlay): New function.
6421 (delete_all_overlays, Fdelete_overlay): Use it.
6422 * minibuf.c (get_minibuffer): Fix comment.
6423
7dca65a4
PE
64242012-07-06 Paul Eggert <eggert@cs.ucla.edu>
6425
6426 Port to OpenBSD 5.1 amd64.
6427 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
6428 This is needed for OpenBSD, and should be harmless on all BSD systems.
6429 Also, include <sys/sysctl.h>, as it should be available on all
6430 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
6431 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
6432 use p_pid member, not kp_proc.pid.
6433
8eb876e2
GM
64342012-07-06 Glenn Morris <rgm@gnu.org>
6435
6436 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
6437
38182d90
PE
64382012-07-05 Paul Eggert <eggert@cs.ucla.edu>
6439
6440 More xmalloc and related cleanup.
6441 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
6442 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
6443 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
6444 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
6445 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
6446 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
6447 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
6448 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
6449 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
6450 * xterm.c:
6451 Omit needless casts involving void * pointers and allocation.
6452 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
6453 as the former is more robust if P's type is changed.
6454 Prefer xzalloc to xmalloc + memset 0.
6455 Simplify malloc-or-realloc to realloc.
6456 Don't worry about xmalloc returning a null pointer.
6457 Prefer xstrdup to xmalloc + strcpy.
6458 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
6459 growing it.
6460 * keyboard.c (apply_modifiers_uncached): Prefer local array to
6461 alloca of a constant.
6462
6dd5a677
EZ
64632012-07-05 Eli Zaretskii <eliz@gnu.org>
6464
6465 * xdisp.c (display_line): Fix horizontal pixel coordinates when
6466 hscroll is larger than the line width. Fixes long and futile
6467 looping inside extend_face_to_end_of_line (on a TTY) producing
6468 glyphs that are not needed and thrown away.
6469
6b312f0f
DA
64702012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
6471
6472 * marker.c (set_marker_restricted_both): Simplify by using
6473 clip_to_bounds.
6474
f520ef9b
PE
64752012-07-05 Paul Eggert <eggert@cs.ucla.edu>
6476
6477 * editfns.c (region_limit): Simplify by using clip_to_bounds.
6478
383b7c95
JD
64792012-07-05 Jan Djärv <jan.h.d@swipnet.se>
6480
6481 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
6482 not defined (Bug#11768).
6483 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
6484 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
6485 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
6486 followed by gtk_box_set_homogeneous (Bug#11768).
6487 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
6488 (update_theme_scrollbar_width, xg_create_scroll_bar):
6489 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
6490 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
6491 (is_box_type): New function (Bug#11768).
6492 (xg_tool_item_stale_p): Call is_box_type.
5293d758 6493 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
6494 with default display (Bug#11768).
6495
d6e7bf45
EZ
64962012-07-05 Eli Zaretskii <eliz@gnu.org>
6497
6498 * xdisp.c (window_hscroll_limited): New function.
6499 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
6500 coordinates when window's hscroll is set to insanely large
6501 values. (Bug#11857)
6502
431391ec
JB
65032012-07-05 Juanma Barranquero <lekktu@gmail.com>
6504
6505 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
6506 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
6507
23f86fce
DA
65082012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
6509
6510 Cleanup xmalloc.
6511 * lisp.h (xzalloc): New prototype. Omit needless casts.
6512 * alloc.c (xzalloc): New function. Omit needless casts.
6513 * charset.c: Omit needless casts. Convert all calls to
6514 xmalloc with following memset to xzalloc.
6515 * dispnew.c: Likewise.
6516 * fringe.c: Likewise.
6517 * image.c: Likewise.
6518 * sound.c: Likewise.
6519 * term.c: Likewise.
6520 * w32fns.c: Likewise.
6521 * w32font.c: Likewise.
6522 * w32term.c: Likewise.
6523 * xfaces.c: Likewise.
6524 * xfns.c: Likewise.
6525 * xterm.c: Likewise.
6526 * atimer.c: Omit needless casts.
6527 * buffer.c: Likewise.
6528 * callproc.c: Likewise.
6529 * ccl.c: Likewise.
6530 * coding.c: Likewise.
6531 * composite.c: Likewise.
6532 * doc.c: Likewise.
6533 * doprnt.c: Likewise.
6534 * editfns.c: Likewise.
6535 * emacs.c: Likewise.
6536 * eval.c: Likewise.
6537 * filelock.c: Likewise.
6538 * fns.c: Likewise.
6539 * gtkutil.c: Likewise.
6540 * keyboard.c: Likewise.
6541 * lisp.h: Likewise.
6542 * lread.c: Likewise.
6543 * minibuf.c: Likewise.
6544 * msdos.c: Likewise.
6545 * print.c: Likewise.
6546 * process.c: Likewise.
6547 * region-cache.c: Likewise.
6548 * search.c: Likewise.
6549 * sysdep.c: Likewise.
6550 * termcap.c: Likewise.
6551 * terminal.c: Likewise.
6552 * tparam.c: Likewise.
6553 * w16select.c: Likewise.
6554 * w32.c: Likewise.
6555 * w32reg.c: Likewise.
6556 * w32select.c: Likewise.
6557 * w32uniscribe.c: Likewise.
6558 * widget.c: Likewise.
6559 * xdisp.c: Likewise.
6560 * xmenu.c: Likewise.
6561 * xrdb.c: Likewise.
6562 * xselect.c: Likewise.
6563
0497dc44
PE
65642012-07-05 Paul Eggert <eggert@cs.ucla.edu>
6565
6566 * fileio.c (time_error_value): Check the right error number.
6567 Problem reported by Troels Nielsen in
6568 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
6569
356e7178
PE
65702012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6571
4e71fd89
PE
6572 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
6573 This should be fixed in a better way; see Eli Zaretskii in
6574 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
6575 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
6576
f0941253
PE
6577 * fileio.c (time_error_value): Rename from special_mtime.
6578 The old name's problems were noted by Eli Zaretskii in
6579 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
6580
065c9eb4
PE
6581 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
6582 This variable's comment says Emacs needs at least one GDB-visible
6583 symbol of type enum pvec_type, to work around GDB problems.
6584 The symbol's value doesn't matter.
6585
356e7178
PE
6586 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
6587 that causes compilation to fail on pre-C99 compilers.
6588
ed9265fc 65892012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
6590
6591 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
6592 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
6593
3884d954
DA
65942012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
6595
d209e2fb 6596 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
6597 headers for buffer_defaults and buffer_local_symbols.
6598 Reported by Juanma Barranquero <lekktu@gmail.com>.
6599
ee28be33
SM
66002012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
6601
6602 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
6603 * lisp.h (enum pvec_type): Use fewer bits.
6604 (PSEUDOVECTOR_SIZE_BITS): New constant.
6605 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
6606 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
6607 change in pvec_type.
6608 (PSEUDOVECTOR_TYPEP): New macro.
6609 (TYPED_PSEUDOVECTORP): Use it.
6610 * fns.c (internal_equal): Adapt code to extract pvectype.
6611 * emacs.c (gdb_pvec_type): Update type.
6612 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
6613 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
6614 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
6615 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
6616 (sweep_vectors): Use it. Use local var `total_bytes' instead of
6617 abusing vector->header.next.nbytes.
6618 (live_vector_p): Use PVEC_TYPE.
6619 (mark_object): Adapt code to extract pvectype. Use switch.
6620
c7f2cd7f
PE
66212012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6622
6623 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
6624 Tighten new eassert a bit.
6625
8ce70ed2
DA
66262012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
6627
6628 Fix compilation with --enable-gcc-warnings and -O1
6629 optimization level.
6630 * doprnt.c (doprnt): Change type of tem to int, initialize
6631 to avoid compiler warning. Add eassert.
6632 * search.c (simple_search): Initialize match_byte to avoid
6633 compiler warning. Add eassert.
6634
dea7f1e5
PE
66352012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6636
24a212eb
PE
6637 Avoid weird behavior with large horizontal scrolls.
6638 Without this change, for example, large hscroll values would
6639 mess up Emacs's display on Fedora 15 x86, presumably due to
6640 overflows in int calculations in the display code.
6641 Also, if buffers had long lines, Emacs would freeze.
6642 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
6643 (set_window_hscroll): New function, containing the old guts of
6644 Fset_window_hscroll. Return the clipped value.
6645 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
6646 This avoids the need to check against PTRDIFF_MAX.
6647
dea7f1e5
PE
6648 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
6649
76046526
DA
66502012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
6651
6652 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
6653
39adff0d
PE
66542012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6655
63807d47
PE
6656 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
6657 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
6658 since GCC 4.4.6 issues a bogus warning for them.
6659
39adff0d
PE
6660 Fix bugs in file timestamp newness comparisons.
6661 * fileio.c (Ffile_newer_than_file_p):
6662 * lread.c (Fload): Use full timestamp resolution of files,
6663 not just the 1-second resolution, so that files that are only
6664 slightly newer still count as newer.
6665 * fileio.c (Ffile_newer_than_file_p): Don't assume file
6666 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
6667
dbeed9a6
PE
66682012-07-03 Paul Eggert <eggert@cs.ucla.edu>
6669
6670 * fileio.c: Improve handling of file time marker. (Bug#11852)
6671 (special_mtime): New function.
6672 (Finsert_file_contents, Fverify_visited_file_modtime):
6673 Use it to set special mtime values consistently.
6674
636334d6
AS
66752012-07-03 Andreas Schwab <schwab@linux-m68k.org>
6676
6677 * fileio.c (Finsert_file_contents): Properly handle st_mtime
6678 marker for non-existing file. (Bug#11852)
6679
e2017fe2
GM
66802012-07-03 Glenn Morris <rgm@gnu.org>
6681
6682 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
6683 and did not make it into globals.h).
6684
404dbd37
TT
66852012-07-03 Tom Tromey <tromey@redhat.com>
6686
6687 * window.c (Fset_window_margins, Fset_window_fringes)
6688 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
6689 * textprop.c (Fprevious_property_change): No longer static.
6690 * syntax.c (Fsyntax_table_p): No longer static.
6691 * process.c (Fget_process, Fprocess_datagram_address): No longer
6692 static.
6693 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
6694 * keyboard.c (Fcommand_execute): No longer static.
6695 Remove EXFUN.
6696 * insdel.c (Fcombine_after_change_execute): No longer static.
6697 * image.c (Finit_image_library): No longer static.
6698 * fileio.c (Fmake_symbolic_link): No longer static.
6699 * eval.c (Ffetch_bytecode): No longer static.
6700 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
6701 * doc.c (Fdocumentation_property, Fsnarf_documentation):
6702 No longer static.
404dbd37
TT
6703 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
6704 static.
6705 * dired.c (Ffile_attributes): No longer static.
6706 * composite.c (Fcomposition_get_gstring): No longer static.
6707 * callproc.c (Fgetenv_internal): No longer static.
6708
6709 * ccl.h: Remove EXFUNs.
6710 * buffer.h: Remove EXFUNs.
6711 * dispextern.h: Remove EXFUNs.
6712 * intervals.h: Remove EXFUNs.
6713 * fontset.h: Remove EXFUN.
6714 * font.h: Remove EXFUNs.
6715 * dosfns.c (system_process_attributes): Remove EXFUN.
6716 * keymap.h: Remove EXFUNs.
6717 * lisp.h: Remove EXFUNs.
6718 * w32term.h: Remove EXFUNs.
6719 * window.h: Remove EXFUNs.
6720 * xsettings.h: Remove EXFUN.
6721 * xterm.h: Remove EXFUN.
6722
8e4fd1e1
GM
67232012-07-03 Glenn Morris <rgm@gnu.org>
6724
6725 * lisp.h (Frandom): Make it visible to C.
6726 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
6727 buffer for invisible buffers. (Bug#1229)
6728
ca95b3eb
DA
67292012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6730
6731 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
6732 values which aren't power of 2.
14ae4239 6733 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
1f9f395d 6734 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
6735 accordingly.
6736
7555c33f
SM
67372012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
6738
6739 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
6740
6741 * alloc.c (mark_object): Revert part of last patch to use `switch'.
6742
d12e8f5a
DA
67432012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6744
6745 * alloc.c (allocate_vector_block): Remove redundant
6746 calls to mallopt if DOUG_LEA_MALLOC is defined.
6747 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
6748 avoid calls to mallopt if zero_vector is returned.
6749
296094c3
DA
67502012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6751
6752 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
6753 is enabled, avoid dereferencing NULL current_sblock if
6754 running undumped.
6755
36429c89
DA
67562012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6757
6758 Cleanup basic buffer management.
6759 * buffer.h (struct buffer): Change layout to use generic vector
6760 marking code. Fix some comments. Change type of 'clip_changed'
6761 to bitfield. Remove unused #ifndef old.
6762 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
6763 (GET_OVERLAYS_AT): Fix indentation.
6764 (for_each_per_buffer_object_at): New macro.
6765 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
6766 (Fbuffer_local_variables): Use it.
6767 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
6768 * alloc.c (allocate_buffer): Adjust to match new layout of
6769 struct buffer. Fix comment.
6770 (mark_overlay): New function.
6771 (mark_buffer): Use it. Use mark_vectorlike to mark normal
6772 Lisp area of struct buffer.
6773 (mark_object): Use it. Adjust marking of misc objects
6774 and related comments.
6775
3b3e4cac
PE
67762012-07-02 Paul Eggert <eggert@cs.ucla.edu>
6777
6778 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
6779 wrapper that is not needed because the wrapped code is a no-op (zero
6780 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
6781 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
6782
cf5c0175
DA
67832012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
6784
6785 * alloc.c (mark_buffer): Simplify. Remove prototype.
6786 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 6787 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
6788 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
6789 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 6790
ca26824c
GM
67912012-06-30 Glenn Morris <rgm@gnu.org>
6792
2e4c5312
GM
6793 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
6794
ca26824c
GM
6795 * epaths.in (PATH_SITELOADSEARCH): New.
6796 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
6797 This is rather than relying on --enable-locallisppath elements
6798 having "site-lisp" in their names. (Bug#10208#25, 11658)
6799
0d23c240
EZ
68002012-06-30 Eli Zaretskii <eliz@gnu.org>
6801
c9240d7a
EZ
6802 * w32proc.c (sys_select): Accept and ignore one more argument.
6803
6804 * w32.c (emacs_gnutls_pull): Call select with one more argument.
6805
0d23c240 6806 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 6807 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
6808
6809 * sysdep.c: Don't include dos.h and dosfns.h.
6810
6811 * process.c (sys_select):
6812 * msdos.c (sys_select): Accept one more argument and ignore it.
6813
6814 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
6815 adapt data types and code to that.
6816
6817 * dosfns.c:
6818 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
6819 which clashes with the gnulib function of the same name.
6820
af5a5a98
AS
68212012-06-30 Andreas Schwab <schwab@linux-m68k.org>
6822
c5e4379c
AS
6823 * font.c (font_style_to_value, font_style_symbolic)
6824 (font_prop_validate_style): Add type checks for values in
6825 font_style_table.
6826
af5a5a98
AS
6827 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
6828 argument.
6829 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
6830 uses.
6831
8d38f461
EZ
68322012-06-29 Eli Zaretskii <eliz@gnu.org>
6833
2e5a6631
EZ
6834 * xdisp.c (try_window_id): Undo last change.
6835
8d38f461
EZ
6836 * w32.c (getwd): Adjust commentary about startup_dir.
6837 (init_environment): Always call sys_access, even in non-MSVC
6838 builds. Don't chdir to the directory of the Emacs executable.
6839 This undoes code from 1997 which was justified by the need to
6840 "avoid conflicts when removing and renaming directories". But its
6841 downside was that every relative file name was being interpreted
6842 relative to the directory of the Emacs executable, which can never
6843 be TRT. In particular, it broke sys_access when called with
6844 relative file names.
6845 (sys_access): Map GetLastError to errno.
6846
2af3565e
DA
68472012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6848
6849 * window.h (struct window): Change type of 'fringes_outside_margins'
6850 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 6851 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
6852 Adjust comment.
6853 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
6854 to ptrdiff_t.
6855
c8d3a25c 68562012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 6857
c8d3a25c
GM
6858 * gnutls.c (emacs_gnutls_handshake):
6859 Add QUIT to make the loop interruptible.
57570cd3 6860
c8d3a25c 68612012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 6862
c8d3a25c
GM
6863 * charset.c (init_charset): Make lack of etc/charsets fatal.
6864
3e984ee8
DA
68652012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6866
6867 * editfns.c (region_limit): Fix type mismatch.
6868
ef884f23
DA
68692012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6870
6871 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
6872 undefined. Convert from xassert to eassert.
6873 * nsmenu.m: Convert from xassert to eassert.
6874 * nsterm.m: Likewise.
6875
7d7e0027
SM
68762012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
6877
6878 * editfns.c (region_limit): Clip to narrowing (bug#11770).
6879
aa754e6a
PE
68802012-06-28 Paul Eggert <eggert@cs.ucla.edu>
6881
6882 Avoid integer overflow on scroll-left and scroll-right.
6883 * window.c (HSCROLL_MAX): New macro.
6884 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
6885 overflow when requested scroll falls outside ptrdiff_t range.
6886
80b00b08
DA
68872012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6888
6889 * window.h (struct window): Change type of 'hscroll',
6890 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
6891 'last_modified' and 'last_overlay_modified' to EMACS_INT.
6892 Adjust users accordingly.
6893 * xdisp.c (try_cursor_movement): Replace type check with eassert.
6894 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
6895 from EMACS_INT to ptrdiff_t.
6896 (make_window): Omit redundant initialization.
6897
62b2bcf6
JB
68982012-06-28 Juanma Barranquero <lekktu@gmail.com>
6899
6900 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
6901
45942c7d
DA
69022012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6903
6904 * window.h (struct window): Change type of 'use_time' and
6905 'sequence_number' from Lisp_Object to int.
6906 * frame.c (make_frame): Adjust users accordingly.
6907 * print.c (print_object): Likewise.
6908 * window.c (select_window, Fwindow_use_time, make_parent_window)
6909 (make_window): Likewise.
6910
e509cfa6
DA
69112012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6912
6913 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
6914 enabled with --enable-checking=[all,glyphs] configure option.
6915 Fix GLYPH_DEBUG usage assuming that it may be undefined,
6916 adjust comments accordingly.
6917 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
6918 undefined, adjust comments accordingly.
6919 * image.c: Likewise.
6920 * scroll.c: Likewise.
6921 * w32fns.c: Likewise.
6922 * w32term.c: Likewise.
6923 * xdisp.c: Likewise.
6924 * xfaces.c: Likewise.
6925 * xfns.c: Likewise.
6926 * xterm.c: Likewise.
6927
a54e2c05
DA
69282012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6929
6930 Generalize run-time debugging checks.
6931 * dispextern.h (XASSERTS): Remove.
6932 * fontset.c (xassert): Remove.
6933 Convert from xassert to eassert.
6934 * alloc.c: Convert from xassert to eassert.
6935 * bidi.c: Likewise.
6936 * dispnew.c: Likewise.
6937 * fns.c: Likewise.
6938 * fringe.c: Likewise.
6939 * ftfont.c: Likewise.
6940 * gtkutil.c: Likewise.
6941 * image.c: Likewise.
6942 * keyboard.c: Likewise.
6943 * menu.c: Likewise.
6944 * process.c: Likewise.
6945 * scroll.c: Likewise.
6946 * sound.c: Likewise.
6947 * term.c: Likewise.
6948 * w32console.c: Likewise.
6949 * w32fns.c: Likewise.
6950 * w32term.c: Likewise.
6951 * window.c: Likewise.
6952 * xdisp.c: Likewise.
6953 * xfaces.c: Likewise.
6954 * xfns.c: Likewise.
6955 * xselect.c: Likewise.
6956 * xterm.c: Likewise.
6957
1ec4b7b2
SM
69582012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
6959
6960 * fns.c (maybe_resize_hash_table): Output message when growing the
6961 purify-hashtable.
6962
2014308a
DA
69632012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6964
6965 * alloc.c (allocate_string_data): Remove dead code.
6966 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
6967 avoid GCC warning about unused macro.
6968
246155eb
DA
69692012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6970
6971 * alloc.c (allocate_string): Omit intervals initialization.
6972 * alloc.c (make_uninit_multibyte_string): Initialize intervals
6973 as in make_pure_string and make_pure_c_string.
6974
43184b7b
DA
69752012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6976
d209e2fb 6977 * alloc.c (allocate_string): Fix last change.
43184b7b 6978
3fe6dd74
DA
69792012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6980
d209e2fb 6981 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
6982 to memset, add explicit initialization where appropriate.
6983
1ba6038a
GM
69842012-06-27 Glenn Morris <rgm@gnu.org>
6985
6986 * lisp.mk (lisp): Remove paths.elc.
6987
c89926a5
CY
69882012-06-27 Chong Yidong <cyd@gnu.org>
6989
6990 * doc.c (Fsubstitute_command_keys): Fix punctuation.
6991
ed6b3510
JW
69922012-06-26 John Wiegley <johnw@newartisans.com>
6993
1ec4b7b2 6994 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
6995 on Mac OS X Lion: __mod_init_func and __mod_term_func.
6996
ed6b3510
JW
6997 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
6998 when building with Clang.
6999
8edd4a2b
SM
70002012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
7001
7002 * eval.c (Fapply): Allow calling it with a single argument.
7003
f6f62d1b
EZ
70042012-06-26 Eli Zaretskii <eliz@gnu.org>
7005
7006 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
7007 _stricmp and _strnicmp.
7008 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
7009
62efea5e
DA
70102012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
7011
7012 * alloc.c (allocate_window): Zero out non-Lisp part of newly
7013 allocated window.
7014 (allocate_process): Likewise for new process.
8edd4a2b 7015 (allocate_terminal): Change to use offsetof.
62efea5e
DA
7016 (allocate_frame): Likewise.
7017 * frame.c (make_frame): Omit redundant initialization.
7018 * window.c (make_parent_window): Use memset.
7019 (make_window): Omit redundant initialization.
7020 * process.c (make_process): Omit redundant initialization.
7021 * terminal.c (create_terminal): Likewise.
7022
42997f4d
DA
70232012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
7024
7025 * term.c (delete_tty): Remove redundant call to memset.
7026
1130ecfc
DA
70272012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
7028
7029 * alloc.c: Remove build_string.
7030 * lisp.h: Define build_string as static inline. This provides
7031 a better opportunity to optimize away calls to strlen when the
7032 function is called with compile-time constant argument.
7033 * image.c (imagemagick_error): Convert to build_string.
7034 * w32proc.c (sys_spawnve): Likewise.
7035 * xterm.c (x_term_init): Likewise.
7036
cf38a720
PE
70372012-06-26 Paul Eggert <eggert@cs.ucla.edu>
7038
99027bdd
PE
7039 Use sprintf return value instead of invoking strlen on result.
7040 In the old days this wasn't portable, since some sprintf
7041 implementations returned char *. But they died out years ago and
7042 Emacs already assumes sprintf returns int.
7043 Similarly for float_to_string.
7044 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
7045 * ccl.c (ccl_driver):
7046 * character.c (string_escape_byte8):
7047 * data.c (Fnumber_to_string):
7048 * doprnt.c (doprnt):
7049 * print.c (print_object):
7050 * xdisp.c (message_dolog):
7051 * xfns.c (syms_of_xfns):
7052 Use sprintf or float_to_string result to avoid need to call strlen.
7053 * data.c (Fnumber_to_string):
7054 Use make_unibyte_string, since the string must be ASCII.
7055 * lisp.h, print.c (float_to_string): Now returns int length.
7056 * term.c (produce_glyphless_glyph):
7057 Use sprintf result rather than recomputing it.
7058
cf38a720
PE
7059 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
7060 * Makefile.in (ALL_CFLAGS):
7061 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
7062 * gmalloc.c, regex.c: Include <config.h> unconditionally.
7063
3511c784
DA
70642012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
7065
0a08eb21 7066 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
7067 strcasecmp if available.
7068 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
7069
fb7da12e
AS
70702012-06-25 Andreas Schwab <schwab@linux-m68k.org>
7071
7072 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
7073 Avoid comma operator.
7074 * menu.c (push_submenu_start, push_submenu_end)
7075 (push_left_right_boundary, push_menu_pane): Likewise.
7076 * msdos.c (dos_rawgetc): Likewise.
7077
afa2ffd8
DA
70782012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
7079
7080 * xfns.c (xic_create_fontsetname): Remove redundant calls
7081 to memset.
7082
b3b4476b
PE
70832012-06-25 Paul Eggert <eggert@cs.ucla.edu>
7084
4495ff38
PE
7085 * gtkutil.c (get_utf8_string): Remove redundant assignment.
7086 sprintf already null-terminates its output.
7087
b3b4476b
PE
7088 * xfns.c (x_window): Remove redundant cast.
7089
b00876c9
DA
70902012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
7091
7092 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
7093 `const char *' to `char *' to avoid compiler warning.
7094
d188e26b
PE
70952012-06-24 Paul Eggert <eggert@cs.ucla.edu>
7096
885d1d74
PE
7097 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
7098 instead of truncating it to 63 (admittedly a generous limit).
7099
d188e26b
PE
7100 * process.c: Fix spelling and caps in comments.
7101
e2f560b1
DN
71022012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
7103
e86db54b 7104 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
7105 * sysdep.c (setpgrp): Remove definition, not used in this file.
7106
7583a3a1
JB
71072012-06-24 Juanma Barranquero <lekktu@gmail.com>
7108
7109 * makefile.w32-in: Update dependencies.
7110
696056c2
EZ
71112012-06-24 Eli Zaretskii <eliz@gnu.org>
7112
7113 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
7114 (SYSTIME_H): Add nt/inc/sys/time.h.
7115
7116 * systime.h [WINDOWSNT]: Include sys/time.h.
7117
7118 * s/ms-w32.h (struct timespec): Definition moved from
7119 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
7120
845ca893
PE
71212012-06-24 Paul Eggert <eggert@cs.ucla.edu>
7122
7123 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
7124 * buffer.h (buffer_slot_type_mismatch):
7125 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
7126 * eval.c (unwind_to_catch):
7127 * image.c (my_png_error, my_error_exit):
7128 * keyboard.c (quit_throw_to_read_char, user_error)
7129 (Fexit_recursive_edit, Fabort_recursive_edit):
7130 * lisp.h (die, args_out_of_range, args_out_of_range_3)
7131 (wrong_type_argument, buffer_overflow, __executable_start)
7132 (memory_full, buffer_memory_full, string_overflow, Fthrow)
7133 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
7134 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
7135 (fatal):
7136 (child_setup) [!DOS_NT]:
7137 * lread.c (end_of_file_error, invalid_syntax):
7138 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
7139 * puresize.h (pure_write_error):
7140 * search.c (matcher_overflow):
7141 * sound.c (sound_perror, alsa_sound_perror):
7142 * sysdep.c, syssignal.h (croak):
7143 * term.c (maybe_fatal, vfatal):
7144 * textprop.c (text_read_only):
7145 * undo.c (user_error):
7146 * unexmacosx.c (unexec_error):
7147 * xterm.c (x_ins_del_lines, x_delete_glyphs):
7148 Use _Noreturn rather than NO_RETURN.
7149 No need for separate decl merely because of _Noreturn.
7150 * sound.c (sound_warning, parse_sound):
7151 Remove unnecessary forward decls.
7152
f1dd8073
PE
71532012-06-24 Paul Eggert <eggert@cs.ucla.edu>
7154
7155 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
7156 * lisp.h (WAIT_READING_MAX): New macro.
7157 * dispnew.c (Fsleep_for, sit_for):
7158 * keyboard.c (kbd_buffer_get_event):
7159 * process.c (Faccept_process_output):
7160 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
7161 This improves on the previous patch, which introduced a bug
7162 when time_t is unsigned and as wide as intmax_t.
7163 See <http://bugs.gnu.org/9000#51>.
7164
b82c1755
EZ
71652012-06-23 Eli Zaretskii <eliz@gnu.org>
7166
7167 * dispnew.c (sit_for, Fsleep_for):
7168 * keyboard.c (kbd_buffer_get_event):
7169 * process.c (Faccept_process_output): Avoid compiler warnings when
7170 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
7171
ca300656
JB
71722012-06-23 Juanma Barranquero <lekktu@gmail.com>
7173
049ec95b
JB
7174 * makefile.w32-in: Update dependencies.
7175
ca300656
JB
7176 * w32.c (ltime): Add return type and declare static.
7177 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
7178
db7b8d06
PE
71792012-06-23 Paul Eggert <eggert@cs.ucla.edu>
7180
7181 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
7182 Privately reported by Herbert J. Skuhra.
7183 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
7184 All uses changed.
7185 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
7186 not make_lisp_timeval, when the argument is of type EMACS_TIME.
7187
0bd8297f
EZ
71882012-06-23 Eli Zaretskii <eliz@gnu.org>
7189
96512555
EZ
7190 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
7191 last argument of make_unibyte_string.
7192
0bd8297f
EZ
7193 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
7194 language ID in the event parameters.
7195
7196 * w32term.c (w32_read_socket): Put the new keyboard codepage into
7197 event.code, not the obscure "character set ID".
7198
63def6b6
CY
71992012-06-23 Chong Yidong <cyd@gnu.org>
7200
7201 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
7202
e8a02204
EZ
72032012-06-23 Eli Zaretskii <eliz@gnu.org>
7204
388cdec0
EZ
7205 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
7206 * w32.c (fdutimens): New function.
7207
7208 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
7209
7210 * s/ms-w32.h (pselect): Redirect to sys_select.
7211
7212 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
7213
e8a02204
EZ
7214 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
7215 in the logic of incrementing and decrementing the value of
7216 use_relocatable_buffers.
7217
d054f3fb
PE
72182012-06-23 Paul Eggert <eggert@cs.ucla.edu>
7219
7220 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
7221 Privately reported by Herbert J. Skuhra.
7222 [__FreeBSD__]: Remove "*/" typo after "#include".
7223 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
7224 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
7225 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
7226 Don't assume EMACS_TIME and struct timeval are the same type.
7227
d35af63c
PE
72282012-06-22 Paul Eggert <eggert@cs.ucla.edu>
7229
7230 Support higher-resolution time stamps (Bug#9000).
7231 The time stamps are only nanosecond-resolution at the C level,
7232 since that's the best that any real-world system supports now.
7233 But they are picosecond-resolution at the Lisp level, as that's
7234 easy, and leaves room for future OS improvements.
7235
7236 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
7237 (LIBES): Use it.
7238
7239 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
7240 Don't get current time unless it's needed.
7241
7242 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
7243 now provides it if it's absent.
7244 (start_atimer): Port to higher-res time stamps.
7245 Check for time stamp overflow. Don't get current time more
7246 often than is needed.
7247
7248 * buffer.h (struct buffer): Buffer modtime now has high resolution.
7249 Include systime.h, not time.h.
7250 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
7251
7252 * dired.c: Include stat-time.h.
7253 (Ffile-attributes): File times now have higher resolution.
7254
7255 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
7256 (struct image): Timestamp now has higher resolution.
7257
7258 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
7259 has at least microseconds now. All uses removed.
7260 (update_frame, update_single_window, update_window, update_frame_1)
7261 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 7262 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
7263
7264 * editfns.c (time_overflow): Now extern.
7265 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
7266 (float-time, Fformat_time_string, Fcurrent_time_string)
7267 (Fcurrent_time_zone): Accept and generate higher-resolution
7268 time stamps.
7269 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
7270 (decode_time_components, lisp_seconds_argument): New functions.
7271 (make_time): Now static.
7272 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
7273 Report an error if the time is invalid, rather than having the caller
7274 do that.
7275
7276 * fileio.c: Include <stat-time.h>
7277 (Fcopy_file): Copy higher-resolution time stamps.
7278 Prefer to set the time stamp via a file descriptor if that works.
7279 (Fset_file_times, Finsert_file_contents, Fwrite_region)
7280 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
7281 (Fvisited_file_modtime, Fset_visited_file_modtime):
7282 Support higher-resolution time stamps.
7283
7284 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
7285
7286 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
7287
7288 * image.c (prepare_image_for_display, clear_image_cache)
7289 (lookup_image): Port to higer-resolution time stamps.
7290
7291 * keyboard.c (start_polling, bind_polling_period):
7292 Check for time stamp overflow.
7293 (read_char, kbd_buffer_get_event, timer_start_idle)
7294 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
7295 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
7296 Port to higher-resolution time stamps. Do not assume time_t is signed.
7297 (decode_timer): New function. Timers are now vectors of length 9,
7298 not 8, to accommodate the picosecond component.
7299 (timer_check_2): Use it.
7300
7301 * nsterm.m (select_timeout, timeval_subtract): Remove.
7302 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
7303 as they're a bit more accurate and handle overflow better.
7304 (ns_select): Change prototype to be compatible with pselect.
7305 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
7306 * nsterm.h (ns_select): Adjust prototype.
7307
7308 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
7309 us-resolution time stamps.
7310 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
7311
7312 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
7313
7314 * lisp.h (time_overflow): New decl.
7315 (wait_reading_process_output): First arg is now intmax_t, not int,
7316 to accommodate larger waits.
7317
7318 * process.h (struct Lisp_Process.read_output_delay):
7319 Now counts nanoseconds, not microseconds.
7320 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
7321 EMACS_HAS_USECS.
7322 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
7323 (wait_reading_process_output):
7324 Port to ns-resolution time stamps.
7325 (Faccept_process_output, wait_reading_process_output):
7326 Check for time stamp overflow. Do not assume time_t is signed.
7327 (select_wrapper): Remove; we now use pselect.
7328 (Fprocess_attributes): Now generates ns-resolution time stamps.
7329
7330 * sysdep.c: Include utimens.h. Don't include utime.h
7331 or worry about struct utimbuf; gnulib does that for us now.
7332 (gettimeofday): Remove; gnulib provides a substitute.
7333 (make_timeval): New function.
7334 (set_file_times): Now sets ns-resolution time stamps.
7335 New arg FD; all uses changed.
7336 (time_from_jiffies, ltime_from_jiffies, get_up_time)
7337 (system_process_attributes):
7338 Now returns ns-resolution time stamp. All uses changed.
7339 Check for time stamp overflow.
7340
7341 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
7342 provides a substitute now.
7343
7344 * systime.h: Include timespec.h rather than sys/time.h and time.h,
7345 since it guarantees struct timespec.
7346 (EMACS_TIME): Now struct timespec, so that we can support
7347 ns-resolution time stamps.
7348 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
7349 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
7350 (EMACS_USECS): Remove.
7351 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
7352 so multiply the arg by 1000 before storing it.
7353 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
7354 New macros.
7355 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
7356 Port to ns-resolution time stamps.
7357 (EMACS_TIME_NEG_P): Remove; replaced by....
7358 (EMACS_TIME_SIGN): New macro.
7359 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
7360 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
7361 (set_file_times, make_time, lisp_time_argument): Adjust signature.
7362 (make_timeval, make_lisp_time, decode_time_components): New decls.
7363 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
7364 that it mishandled time_t overflow. You can't compare by subtracting!
7365 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
7366 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
7367
7368 * term.c: Include <sys/time.h>.
7369 (timeval_to_Time): New function, for proper overflow wraparound.
7370 (term_mouse_position, term_mouse_click): Use it.
7371
7372 * undo.c (record_first_change): Support higher-resolution time stamps
7373 in the undo buffer.
7374 (Fprimitive_undo): Use them when restoring time stamps.
7375
7376 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
7377 (w32_get_internal_run_time):
7378 Port to higher-resolution Emacs time stamps.
7379 (ltime): Now accepts single 64-bit integer, as that's more convenient
7380 for callers.
7381
7382 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
7383
7384 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
7385 for compatibility with pselect. Support ns-resolution time stamps.
7386
7387 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
7388
7389 * xselect.c (wait_for_property_change, x_get_foreign_selection):
7390 Check for time stamp overflow, and support ns-resolution time stamps.
7391
7392 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
7393 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
7394 (timeval_subtract): Remove; no longer needed.
7395 (XTflash, XTring_bell, x_wait_for_event):
7396 Port to ns-resolution time stamps. Don't assume time_t is signed.
7397
b6a92dfe
CY
73982012-06-22 Chong Yidong <cyd@gnu.org>
7399
7400 * xdisp.c (x_consider_frame_title): Revert last change.
7401
d251c37c
EZ
74022012-06-22 Eli Zaretskii <eliz@gnu.org>
7403
7404 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
7405 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
7406 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
7407 staticidx goes up to 1597 out of 1600 = 0x640.)
7408
f10deafb
PE
74092012-06-20 Paul Eggert <eggert@cs.ucla.edu>
7410
7411 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
7412 Otherwise, the umask might be mistakenly 0 while handling input signals.
7413
ec6de1e2
SM
74142012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
7415
7416 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
7417
28be1ada
DA
74182012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
7419
7420 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
7421 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
7422 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
7423 access to `contents' member of Lisp_Vector objects with AREF and ASET
7424 where appropriate.
7425
c6bf3022
CY
74262012-06-19 Chong Yidong <cyd@gnu.org>
7427
7428 * frame.c (delete_frame): When selecting a frame on a different
7429 text terminal, do not alter the terminal's top-frame.
7430
7431 * xdisp.c (format_mode_line_unwind_data): Record the target
7432 frame's selected window and its terminal's top-frame.
7433 (unwind_format_mode_line): Restore them.
7434 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
7435 Callers changed.
7436 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
7437 since tty frames can be explicitly named.
7438 (prepare_menu_bars): Likewise.
7439
7440 * term.c (Ftty_top_frame): New function.
7441
defd4196
PE
74422012-06-18 Paul Eggert <eggert@cs.ucla.edu>
7443
7444 Port byte-code-meter to modern targets.
7445 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
7446 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 7447 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
7448 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
7449 (METER_1, METER_2): Simplify.
7450
1053a871
SM
74512012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
7452
7453 * data.c (Fdefalias): Return `symbol' (bug#11686).
7454
b7e8d081
MR
74552012-06-18 Martin Rudalics <rudalics@gmx.at>
7456
7457 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
7458 gets killed during executing of this function (Bug#11665).
7459 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
7460 (Vkill_buffer_query_functions): In doc-string say that functions
7461 run by this hook should not change the current buffer.
7462
7ea2b339
PE
74632012-06-18 Paul Eggert <eggert@cs.ucla.edu>
7464
7465 Fix recently-introduced process.c problems found by static checking.
7466 * process.c (write_queue_push, write_queue_pop, send_process):
7467 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
7468 (write_queue_pop): Fix pointer signedness problem.
7469 (send_process): Remove unused local.
7470
96a313a1
CY
74712012-06-17 Chong Yidong <cyd@gnu.org>
7472
7473 * xdisp.c (redisplay_internal): No need to redisplay terminal
7474 frames that are not on top.
7475
20ca2e94
TN
74762012-06-17 Troels Nielsen <bn.troels@gmail.com>
7477
7478 * process.c (make_process): Initialize write_queue.
7479 (write_queue_push, write_queue_pop): New functions.
7480 (send_process): Use them to maintain correct ordering of process
7481 writes (Bug#10815).
7482
9a900ca9
PE
74832012-06-17 Paul Eggert <eggert@cs.ucla.edu>
7484
310fbfa8
PE
7485 * lisp.h (eassert): Assume C89 or later.
7486 This removes the need for CHECK.
7487 (CHECK): Remove. Its comments about always evaluating its
7488 argument were confusing, as 'eassert' typically does not evaluate
7489 its argument.
7490
27bb1ca4
PE
7491 * coding.c (produce_chars): Use ptrdiff_t, not int.
7492
9a900ca9
PE
7493 * xterm.c (x_draw_underwave): Check for integer overflow.
7494 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
7495
41b7f8bc 74962012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
7497
7498 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
7499 referenced (Bug#11583).
7500
9b0e3eba
AA
75012012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
7502
7503 Implement wave-style variant of underlining.
7504 * dispextern.h (face_underline_type): New enum.
7505 (face): Add field for underline type.
7506 * nsterm.m (ns_draw_underwave): New function.
7507 (ns_draw_text_decoration): Use it.
7508 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
7509 New functions.
7510 (x_draw_glyph_string): Use them.
7511 * xfaces.c (Qline, Qwave): New Lisp objects.
7512 (check_lface_attrs, merge_face_ref)
1053a871
SM
7513 (Finternal_set_lisp_face_attribute, realize_x_face):
7514 Handle wave-style underline face attributes.
9b0e3eba
AA
7515 * xterm.c (x_draw_underwave): New function.
7516 (x_draw_glyph_string): Use it.
7517
0fb52f11
JB
75182012-06-16 Juanma Barranquero <lekktu@gmail.com>
7519
7520 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
7521 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
7522 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
7523 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
7524 ($(BLD)/w32select.$(O)): Update dependencies.
7525
e5560ff7
AS
75262012-06-16 Andreas Schwab <schwab@linux-m68k.org>
7527
7528 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
7529 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
7530 * character.c (_fetch_multibyte_char_p): Remove.
7531 * alloc.c: Include "character.h" before "buffer.h".
7532 * bidi.c: Likewise.
7533 * buffer.c: Likewise.
7534 * bytecode.c: Likewise.
7535 * callint.c: Likewise.
7536 * callproc.c: Likewise.
7537 * casefiddle.c: Likewise.
7538 * casetab.c: Likewise.
7539 * category.c: Likewise.
7540 * cmds.c: Likewise.
7541 * coding.c: Likewise.
7542 * composite.c: Likewise.
7543 * dired.c: Likewise.
7544 * dispnew.c: Likewise.
7545 * doc.c: Likewise.
7546 * dosfns.c: Likewise.
7547 * editfns.c: Likewise.
7548 * emacs.c: Likewise.
7549 * fileio.c: Likewise.
7550 * filelock.c: Likewise.
7551 * font.c: Likewise.
7552 * fontset.c: Likewise.
7553 * fringe.c: Likewise.
7554 * indent.c: Likewise.
7555 * insdel.c: Likewise.
7556 * intervals.c: Likewise.
7557 * keyboard.c: Likewise.
7558 * keymap.c: Likewise.
7559 * lread.c: Likewise.
7560 * macros.c: Likewise.
7561 * marker.c: Likewise.
7562 * minibuf.c: Likewise.
7563 * nsfns.m: Likewise.
7564 * nsmenu.m: Likewise.
7565 * print.c: Likewise.
7566 * process.c: Likewise.
7567 * regex.c: Likewise.
7568 * region-cache.c: Likewise.
7569 * search.c: Likewise.
7570 * syntax.c: Likewise.
7571 * term.c: Likewise.
7572 * textprop.c: Likewise.
7573 * undo.c: Likewise.
7574 * unexsol.c: Likewise.
7575 * w16select.c: Likewise.
7576 * w32fns.c: Likewise.
7577 * w32menu.c: Likewise.
7578 * window.c: Likewise.
7579 * xdisp.c: Likewise.
7580 * xfns.c: Likewise.
7581 * xmenu.c: Likewise.
7582 * xml.c: Likewise.
7583 * xselect.c: Likewise.
7584
2f07e6af
EZ
75852012-06-16 Eli Zaretskii <eliz@gnu.org>
7586
1053a871
SM
7587 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
7588 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 7589 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
7590 row.
7591 (handle_face_prop): Use chunk-relative overlay string index when
7592 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
7593 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
7594 the rightmost. (Bug#11720)
2f07e6af 7595
29b83cec
AS
75962012-06-16 Andreas Schwab <schwab@linux-m68k.org>
7597
7598 * category.h (CHAR_HAS_CATEGORY): Define as inline.
7599 (CATEGORY_MEMBER): Enforce 1/0 value.
7600 * category.c (_temp_category_set): Remove.
7601
4c5501e9
EZ
76022012-06-16 Eli Zaretskii <eliz@gnu.org>
7603
7604 * window.c (Fdelete_other_windows_internal)
7605 (Fdelete_window_internal): Don't access frame's mouse highlight
7606 info of the initial frame. (Bug#11677)
7607
2b570124
PE
76082012-06-14 Paul Eggert <eggert@cs.ucla.edu>
7609
e93864f9
PE
7610 * .gdbinit (xgetint): Fix recently-introduced paren typo.
7611 Assume USE_2_TAGS_FOR_INTS.
7612 (xreload): Adjust $tagmask width to match recent lisp.h change.
7613
2b570124
PE
7614 Simplify lisp.h in minor ways that should not affect code.
7615 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
7616 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
7617 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
7618 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
7619 (INTTYPEBITS): New macro, for clarity.
7620 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
7621 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
7622 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
7623 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
7624 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
7625
81755f69
JB
76262012-06-13 Juanma Barranquero <lekktu@gmail.com>
7627
7628 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
7629
16192a57
GM
76302012-06-13 Glenn Morris <rgm@gnu.org>
7631
7632 * s/bsd-common.h (BSD4_3):
7633 * s/usg5-4-common.h (USG5_4): No longer define; unused.
7634
646b5f55
AS
76352012-06-13 Andreas Schwab <schwab@linux-m68k.org>
7636
7637 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
7638 instead of union.
7639 (XLI, XIL): Define.
1053a871
SM
7640 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
7641 Use them.
7642 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 7643 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 7644 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
7645 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
7646 * frame.c (delete_frame): Remove outdated comment.
7647 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
7648 USE_LISP_UNION_TYPE.
7649 (Fw32_unregister_hot_key): Likewise.
7650 (Fw32_toggle_lock_key): Likewise.
7651 * w32menu.c (add_menu_item): Likewise.
7652 (w32_menu_display_help): Use XIL instead of checking
7653 USE_LISP_UNION_TYPE.
7654 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
7655 (init_heap): Likewise.
7656 * w32term.c (w32_read_socket): Update comment.
7657
1d3823c9
GM
76582012-06-13 Glenn Morris <rgm@gnu.org>
7659
c62ff706
GM
7660 * s/usg5-4-common.h, src/s/unixware.h:
7661 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
7662
1d3823c9
GM
7663 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
7664
bfe3e0a2
PE
76652012-06-13 Paul Eggert <eggert@cs.ucla.edu>
7666
7667 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
7668 * alloc.c (make_number) [!defined make_number]:
7669 Remove, as lisp.h always defines this now.
7670 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
7671 (roundup_size): Verify that it is a power of 2.
7672 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
7673 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
7674 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
7675 -DUSE_LSB_TAG=0, to override the automatically-selected default.
7676 USE_LSB_TAG now is always defined to be either 0 or 1.
7677 All uses changed.
7678 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
7679 code works fine either way, and efficiency is not a concern here,
7680 as the union type is for debugging, not for production.
7681 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
7682 Use an inline function on all platforms when using the union type,
7683 since this is simpler and 'static inline' can be used portably
7684 within Emacs now.
7685 (LISP_INITIALLY_ZERO): New macro.
7686 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
7687 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
7688
45fa9c0f
GM
76892012-06-12 Glenn Morris <rgm@gnu.org>
7690
b4492cba
GM
7691 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
7692
7693 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 7694
45fa9c0f
GM
7695 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
7696 Move BROKEN_SIGIO to configure.
7697
7698 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
7699 Move NO_TERMIO to configure.
7700
0e25d334
CY
77012012-06-12 Chong Yidong <cyd@gnu.org>
7702
7703 * image.c (imagemagick_load_image): Use MagickFlattenImage if
7704 MagickMergeImageLayers is undefined. Use pixel pusher loop if
7705 MagickExportImagePixels is undefined.
7706
43682bb6
PE
77072012-06-12 Paul Eggert <eggert@cs.ucla.edu>
7708
7709 * image.c (imagemagick_load_image): Remove unused label.
7710
a9be7d2b
GM
77112012-06-11 Glenn Morris <rgm@gnu.org>
7712
7713 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
7714 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
7715 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
7716 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
7717
3017f87f
SM
77182012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
7719
7720 * alloc.c (make_byte_code): New function.
7721 (Fmake_byte_code): Use it. Don't purify here.
7722 * lread.c (read1): Use it as well to avoid extra allocation.
7723
1b9b4cf4
CY
77242012-06-11 Chong Yidong <cyd@gnu.org>
7725
7726 * image.c (imagemagick_load_image): Implement transparency.
7727
95988fcf
AS
77282012-06-10 Andreas Schwab <schwab@linux-m68k.org>
7729
7730 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
7731 account for preceding backslashes. (Bug#11663)
7732
cd4eb164
CY
77332012-06-09 Chong Yidong <cyd@gnu.org>
7734
7735 * term.c: Support italics in capable terminals (Bug#9652).
7736 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
7737 (turn_on_face): Output using TS_enter_italic_mode if available.
7738 Don't handle unused blinking and alt-charset cases.
7739 (turn_off_face): Handle italic case; discard unused tty_blinking_p
7740 and tty_alt_charset_p cases.
7741 (tty_capable_p, init_tty): Support italics.
7742
7743 * termchar.h (struct tty_display_info): Add field for italics.
7744 Remove unused blink field.
7745
7746 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
7747 Handle slant.
7748
7749 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
7750 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
7751 tty_alt_charset_p. Add tty_italic_p.
7752
ff88beb8
MA
77532012-06-09 Michael Albinus <michael.albinus@gmx.de>
7754
7755 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
7756 dbus_type_is_basic if available.
7757 (xd_extract_signed, xd_extract_unsigned): Rename from
7758 extract_signed and extract_unsigned, respectively. Adapt callers.
7759
44286096
CY
77602012-06-09 Chong Yidong <cyd@gnu.org>
7761
1682701f
CY
7762 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
7763
44286096
CY
7764 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
7765 case (Bug#9752).
7766
d86feb17
PE
77672012-06-08 Paul Eggert <eggert@cs.ucla.edu>
7768
7769 * xdisp.c (vmessage): Treat frame message as multibyte.
7770 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
7771 would generate the diagnostic "Making \302\247 buffer-local while
7772 let-bound!".
7773
d5c20fe8
EZ
77742012-06-08 Eli Zaretskii <eliz@gnu.org>
7775
7776 * dispnew.c (showing_window_margins_p): Undo last change, which
7777 was done due to an inadvertent commit.
7778 (adjust_frame_glyphs_for_frame_redisplay): Do call
7779 showing_window_margins_p.
7780
513749ee
SM
77812012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
7782
7783 * eval.c (Fmake_var_non_special): New primitive.
7784 (syms_of_eval): Defsubr it.
7785 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
7786
d4a8f5c1
JB
77872012-06-08 Juanma Barranquero <lekktu@gmail.com>
7788
7789 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
7790 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
7791
8bbbc977
EZ
77922012-06-08 Eli Zaretskii <eliz@gnu.org>
7793
7794 * alloc.c (allocate_vectorlike): Fix last change.
7795
f3372c87
DA
77962012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
7797
7798 Block-based vector allocation of small vectors.
7799 * lisp.h (struct vectorlike_header): New field `nbytes',
7800 adjust comment accordingly.
7801 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
fc0c31f8 7802 to denote vector blocks. Adjust users (live_vector_p,
f3372c87
DA
7803 mark_maybe_pointer, valid_lisp_object_p) accordingly.
7804 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
7805 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
7806 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
7807 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
7808 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
7809 (roundup_size): New constant.
7810 (struct vector_block): New data type.
7811 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 7812 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
7813 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
7814 (sweep_vectors): New functions.
7815 (allocate_vectorlike): Return `zero_vector' as the only vector of
fc0c31f8 7816 0 items. Allocate new vector from block if vector size is less than
f3372c87
DA
7817 or equal to VBLOCK_BYTES_MAX.
7818 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
7819 (init_alloc_once): Add call to init_vectors.
7820
4f18a4ed
SM
78212012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
7822
7823 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
7824
86f158bc
PE
78252012-06-07 Paul Eggert <eggert@cs.ucla.edu>
7826
7827 * doprnt.c (doprnt): Truncate multibyte char correctly.
7828 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
7829 would mishandle a string argument "Xc" if X was a multibyte
7830 character of length 2: it would truncate after X's first byte
7831 rather than including all of X.
7832
c5cfcbe0
CY
78332012-06-06 Chong Yidong <cyd@gnu.org>
7834
7835 * buffer.c (word_wrap): Doc fix.
7836
c05cf390
PE
78372012-06-04 Paul Eggert <eggert@cs.ucla.edu>
7838
7839 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
7840
0c3461de
GM
78412012-06-03 Glenn Morris <rgm@gnu.org>
7842
7843 * xdisp.c (tool-bar-style): Doc fix.
7844
c71232db
UM
78452012-06-03 Ulrich Müller <ulm@gentoo.org>
7846
7847 * Makefile.in (PAXCTL): Define.
7848 (temacs$(EXEEXT)): Disable memory randomization for the temacs
7849 binary via PaX flags if the paxctl utility is available.
7850 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
7851 Restore PaX flags to their default. (Bug#11398)
7852
383f7350
CY
78532012-06-03 Chong Yidong <cyd@gnu.org>
7854
7855 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
7856 buffer (Bug#11226).
7857
5f2c76c6
CY
78582012-06-03 Chong Yidong <cyd@gnu.org>
7859
7860 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
7861 (note_mode_line_or_margin_highlight): If there is no help echo,
7862 use mode-line-default-help-echo. Handle the case where the mouse
7863 position is past the end of the mode line string.
7864
7865 * buffer.c (buffer_local_value_1): New function, split from
7866 Fbuffer_local_value; can return Qunbound.
7867 (Fbuffer_local_value): Use it.
7868 (Vmode_line_format): Docstring tweaks.
7869
773d47f6
PE
78702012-06-02 Paul Eggert <eggert@cs.ucla.edu>
7871
7872 * sysdep.c (system_process_attributes): Improve comment.
7873
f2d6a3df
SM
78742012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
7875
7876 * keyboard.c: Export real-this-command to Elisp.
7877 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
7878 and DEFVAR it. Update all users.
7879
63810350
PE
78802012-06-02 Paul Eggert <eggert@cs.ucla.edu>
7881
7bd5c1f4
PE
7882 * minibuf.c (Fassoc_string): Remove duplicate declaration.
7883
63810350
PE
7884 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
7885 Convert pctcpu and pctmem to Lisp float properly.
7886 Let the compiler fold better, as 100.0/0x8000 is exact.
7887
a2821611
AS
78882012-06-02 Andreas Schwab <schwab@linux-m68k.org>
7889
7890 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
7891 cons_block.
7892
5fceba1d
PE
78932012-06-01 Paul Eggert <eggert@cs.ucla.edu>
7894
7895 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
7896
c98ff5dd
DA
78972012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
7898
7899 For a 'struct window', replace some Lisp_Object fields to
7900 bitfields where appropriate, remove unused fields.
7901 * window.h (struct window): Remove unused 'last_mark_x' and
7902 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1f9f395d 7903 change its type from Lisp_Object to bitfield.
c98ff5dd
DA
7904 Change type of 'force_start', 'optional_new_start',
7905 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fc0c31f8 7906 fields from Lisp_Object to bitfield. Adjust users accordingly.
c98ff5dd 7907
ca34e0be
PE
79082012-05-31 Paul Eggert <eggert@cs.ucla.edu>
7909
7910 Pacify gcc -Wdouble-precision when using Xaw.
7911 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
7912 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
7913 Use 'float' consistently, rather than 'float' in most places
7914 and 'double' in a couple of places.
7915
efc00ab1 79162012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
7917
7918 * xdisp.c (handle_stop): Detect whether we have overlay strings
7919 loaded by testing it->current.overlay_string_index to be
7920 non-negative, instead of checking whether n_overlay_strings is
7921 positive. (Bug#11587)
7922
efc00ab1 79232012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
7924
7925 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
7926
7927 * doc.c (Fsubstitute_command_keys): Doc fix.
7928
efc00ab1 79292012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
7930
7931 * search.c (search_buffer): Remove calls to
7932 r_alloc_inhibit_buffer_relocation, as it is now called by
7933 maybe_unify_char, which was the cause of relocation of buffer text
7934 in bug#11519.
7935
efc00ab1 79362012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
7937
7938 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
7939 for the duration of call to load_charset, to avoid problems with
7940 callers of maybe_unify_char that access buffer text through C
7941 pointers.
7942
7943 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
7944 decrement the inhibition flag, instead of just setting or
7945 resetting it.
7946
ba93a187
PE
79472012-05-31 Paul Eggert <eggert@cs.ucla.edu>
7948
7949 Remove obsolete '#define static' cruft.
7950 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
7951 This #undef was "temporary" in 2000; it is no longer needed
7952 now that '#define static' has gone away.
7953 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
7954 (gray_bitmap_bits): Remove; no longer needed.
7955 All uses replaced with definiens.
7956 * xterm.c: Include "bitmaps/gray.xbm".
7957
9e4bf381
PE
79582012-05-30 Paul Eggert <eggert@cs.ucla.edu>
7959
7960 Clean up __executable_start, monstartup when --enable-profiling.
7961 The following changes affect the code only when profiling.
7962 * dispnew.c (__executable_start): Rename from safe_bcopy.
7963 Define only on platforms that need it.
7964 * emacs.c: Include <sys/gmon.h> when profiling.
7965 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
7966 (__executable_start): Remove decl, since lisp.h does it now.
7967 (safe_bcopy): Remove decl; no longer has that name.
7968 (main): Coalesce #if into single bit of code, for simplicity.
7969 Cast pointers to uintptr_t, since standard libraries want integers
7970 and not pointers.
7971 * lisp.h (__executable_start): New decl.
7972
32d72c2f
GM
79732012-05-31 Glenn Morris <rgm@gnu.org>
7974
7975 * image.c (Fimagemagick_types): Doc fix.
7976
baac5bc7
JM
79772012-05-30 Jim Meyering <meyering@redhat.com>
7978
7979 * callproc.c (Fcall_process_region): Include directory component
7980 in mkstemp error message (Bug#11586).
7981
72cb32cf
PE
79822012-05-30 Paul Eggert <eggert@cs.ucla.edu>
7983
7984 * alloc.c, lisp.h (make_pure_vector): Now static.
7985
61b108cc
SM
79862012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
7987
7988 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
7989 Move to byte-run.el.
7990 (Fautoload): Do the hash-doc more carefully.
7991 * data.c (Fdefalias): Purify definition, except for keymaps.
7992 (Qdefun): Move from eval.c.
7993 * lisp.h (Qdefun): Remove.
7994 * lread.c (read1): Tiny simplification.
7995
471fe23d
TN
79962012-05-29 Troels Nielsen <bn.troels@gmail.com>
7997
934f3f58 7998 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
7999 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
8000 Bug#9642, but explicitly check that the buffer the overlay would
8001 be moved to is live and rearrange lines to make sure that errors
8002 will not put the overlay in an inconsistent state.
8003 (Fdelete_overlay): Cosmetics.
8004
85d0efd1
EZ
80052012-05-28 Eli Zaretskii <eliz@gnu.org>
8006
8007 * w32term.c (my_bring_window_to_top): New function.
8008 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
8009 could be different from the original one.
8010 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
8011 (Bug#11513)
8012
8013 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
8014 by calling BringWindowToTop.
8015
8016 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
8017 (WM_EMACS_END): Increase by one.
8018
da92a98c
PE
80192012-05-28 Paul Eggert <eggert@cs.ucla.edu>
8020
8021 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
8022 This avoids undefined behavior that might cause the eassert
8023 to not catch an out-of-range value.
8024
74d1f848
JB
80252012-05-28 Juanma Barranquero <lekktu@gmail.com>
8026
8027 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
8028 Update dependencies.
8029
9e1a06fc
EZ
80302012-05-27 Eli Zaretskii <eliz@gnu.org>
8031
8032 * bidi.c (bidi_mirror_char): Fix last change.
8033
f3dd7312
AS
80342012-05-27 Andreas Schwab <schwab@linux-m68k.org>
8035
8036 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
8037 when referring to sectname field in printf format.
8038
81899c91
PE
80392012-05-27 Paul Eggert <eggert@cs.ucla.edu>
8040
57b81a9f
PE
8041 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
8042 Only r_alloc_inhibit_buffer_relocation needed to be added;
8043 the others were already declared.
8044
81899c91
PE
8045 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
8046 before checking whether it's out of range. Put the check inside
8047 eassert. See
8048 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
8049
33017faf 80502012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
8051
8052 * callproc.c (Fcall_process): Restore a line that was accidentally
8053 commented out in the 2011-02-13 change (bug#11547).
8054
33017faf 80552012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
8056
8057 * lisp.h [REL_ALLOC]: Add prototypes for external functions
8058 defined on ralloc.c.
8059
8060 * buffer.c [REL_ALLOC]: Remove prototypes of
8061 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
8062 they are now on lisp.h.
8063
8064 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
8065
8066 * search.c (search_buffer): Use it to inhibit relocation of buffer
8067 text while re_search_2 is doing its job, because re_search_2 is
8068 passed C pointers to buffer text. (Bug#11519)
8069
23415acf
EZ
8070 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
8071 Update value to 24.
8072
44e27368
EZ
8073 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
8074 state after an additional call to move_it_in_display_line_to, keep
8075 the values of it->max_ascent and it->max_descent found for the
8076 entire line.
8077 (pos_visible_p): Revert the comparison against bottom_y to what it
8078 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
8079 (Bug#11464)
8080
c1892f11
PE
80812012-05-26 Paul Eggert <eggert@cs.ucla.edu>
8082
8083 Fix coding-related core dumps with gcc -ftrapv.
8084 The code was computing A - B, where A and B are pointers, and B is
8085 random garbage. This can lead to core dumps on platforms that
8086 have special pointer registers, and it also leads to core dumps on
8087 x86-64 when compiled with gcc -ftrapv. The fix is to compute
8088 A - B only when B is initialized properly.
8089 * coding.c (coding_set_source, coding_set_destination): Return void.
8090 (coding_change_source, coding_change_destinations): New functions,
8091 with the old behaviors of coding_set_source and coding_set_destination.
8092 All callers that need an offset changed to use these new functions.
8093
eb7afdad
GM
80942012-05-26 Glenn Morris <rgm@gnu.org>
8095
8096 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
8097
f12fdf02
EZ
80982012-05-26 Eli Zaretskii <eliz@gnu.org>
8099
53a63be6 8100 Extend mouse support on W32 text-mode console.
61b108cc
SM
8101 * xdisp.c (draw_row_with_mouse_face):
8102 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 8103
eb3f6f01 8104 * w32console.c: Include window.h.
61b108cc
SM
8105 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
8106 New functions.
eb3f6f01
EZ
8107 (initialize_w32_display): Initialize mouse-highlight data.
8108
53a63be6
EZ
8109 * w32inevt.c: Include termchar.h and window.h.
8110 (do_mouse_event): Support mouse-autoselect-window. When the mouse
8111 moves, call note_mouse_highlight. If help_echo changed, call
8112 gen_help_event to produce help-echo message in the echo area.
8113 Call clear_mouse_face if mouse_face_hidden is set in the mouse
8114 highlight info.
8115
4cfd81f6
PE
81162012-05-26 Paul Eggert <eggert@cs.ucla.edu>
8117
8118 * lread.c (read1): Simplify slightly to avoid an overflow warning
8119 with GCC 4.7.0 on x86-64.
8120
4446092a
EZ
81212012-05-26 Eli Zaretskii <eliz@gnu.org>
8122
8123 * bidi.c (bidi_mirror_char): Revert last change: an int is
8124 definitely wide enough here.
8125
42b2a986 81262012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 8127
42b2a986 8128 Fix integer width and related bugs (Bug#9874).
eb106a49 8129 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
8130 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
8131 (string_bytes, check_sblock, allocate_string_data):
8132 (compact_small_strings, Fmake_bool_vector, make_string)
8133 (make_unibyte_string, make_multibyte_string)
8134 (make_string_from_bytes, make_specified_string)
8135 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
8136 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
8137 (mark_vectorlike):
8138 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8139 (allocate_pseudovector):
8140 Use int, not EMACS_INT, where int is wide enough.
8141 (inhibit_garbage_collection, Fgarbage_collect):
8142 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8143 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
8144 int might not be wide enough.
8145 (bidi_cache_search, bidi_cache_find, bidi_init_it)
8146 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
8147 (bidi_at_paragraph_end, bidi_find_paragraph_start)
8148 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
8149 (bidi_level_of_next_char, bidi_move_to_visually_next):
8150 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8151 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
8152 (Fkill_buffer, Fset_buffer_major_mode)
8153 (advance_to_char_boundary, Fbuffer_swap_text)
8154 (Fset_buffer_multibyte, overlays_at, overlays_in)
8155 (overlay_touches_p, struct sortvec, record_overlay_string)
8156 (overlay_strings, recenter_overlay_lists)
8157 (adjust_overlays_for_insert, adjust_overlays_for_delete)
8158 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
8159 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
8160 (Foverlay_recenter, last_overlay_modification_hooks_used)
8161 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
8162 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
8163 (validate_region): Omit unnecessary test for b <= e,
8164 since that's guaranteed by the previous test.
d311d28c
PE
8165 (adjust_overlays_for_delete): Avoid pos + length overflow.
8166 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
8167 (report_overlay_modification):
8168 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8169 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
8170 Omit pointer cast, which isn't needed anyway, and doesn't work
8171 after the EMACS_INT -> ptrdiff_t change.
02481186 8172 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
8173 * buffer.h: Adjust decls to match defn changes elsewhere.
8174 (struct buffer_text, struct buffer):
8175 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8176 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
8177 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
8178 not int, to avoid needless 32-bit limit on 64-bit hosts.
8179 (exec_byte_code): Use tighter memory-full test, one that checks
8180 for alloca overflow. Don't compute the address of the object just
8181 before an array, as that's not portable. Use EMACS_INT, not
8182 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
8183 * callint.c (Fcall_interactively):
8184 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8185 * callproc.c (call_process_kill, Fcall_process):
8186 Don't assume pid_t fits into an Emacs fixnum.
8187 (call_process_cleanup, Fcall_process, child_setup):
8188 Don't assume pid_t fits into int.
8189 (call_process_cleanup, Fcall_process, delete_temp_file)
8190 (Fcall_process_region):
8191 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8192 (Fcall_process): Simplify handling of volatile integers.
8193 Use int, not EMACS_INT, where int will do.
8194 * casefiddle.c (casify_object, casify_region, operate_on_word)
8195 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
8196 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8197 (casify_object): Avoid integer overflow when overallocating buffer.
8198 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 8199 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
8200 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
8201 * category.h (CATEGORYP): Don't assume arg is nonnegative.
8202 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
8203 integers are now checked earlier. All uses replaced with XINT.
8204 (ccl_driver):
8205 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8206 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
8207 (ccl_driver, Fregister_code_conversion_map):
8208 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
8209 (resolve_symbol_ccl_program): Check that vector header is in range.
8210 Always copy the vector, so that we can check its contents reliably
8211 now rather than having to recheck each instruction as it's being
8212 executed. Check that vector words fit in 'int'.
8213 (ccl_get_compiled_code, Fregister_ccl_program)
8214 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
8215 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
8216 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
8217 contents are in range.
8218 (Fccl_execute_on_string): Check that status is in range.
8219 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
8220 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
8221 Accept and return EMACS_INT, not int, because callers can pass values
8222 out of 'int' range.
8223 (c_string_width, strwidth, lisp_string_width, chars_in_text)
8224 (multibyte_chars_in_text, parse_str_as_multibyte)
8225 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
8226 (str_as_unibyte, str_to_unibyte, string_count_byte8)
8227 (string_escape_byte8, Fget_byte):
8228 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 8229 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
8230 avoid mishandling large integers.
8231 * character.h: Adjust decls to match defn changes elsewhere.
8232 * charset.c (load_charset_map_from_file, find_charsets_in_text)
8233 (Ffind_charset_region):
8234 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8235 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
8236 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 8237 Don't assume fixnum fits in int.
d311d28c
PE
8238 (load_charset_map_from_vector, Fmap_charset_chars):
8239 Remove now-unnecessary CHECK_NATNUMs.
8240 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
8241 Don't rely on undefined behavior with signed left shift overflow.
8242 Don't assume unsigned int fits into fixnum, or that fixnum fits
8243 into unsigned int. Don't require max_code to be a valid fixnum;
8244 that's not true for gb10830 4-byte on a 32-bit host. Allow
8245 invalid_code to be a cons, for the same reason. Require code_offset
8246 to be a character. Avoid int overflow if max_char is close
8247 to INT_MAX.
8248 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
8249 this is intended anyway and avoids some undefined behavior.
8250 (load_charset_map): Pass unsigned, not int, as 2nd arg of
8251 INDEX_TO_CODE_POINT, as that's what it expects.
8252 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
8253 * charset.h (DECODE_CHAR): Return int, not unsigned;
8254 this is what was intended anyway, and it avoids undefined behavior.
8255 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
8256 integer-overflow issues.
8257 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
8258 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
8259 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
8260 * chartab.c (Fmake_char_table, Fset_char_table_range)
8261 (uniprop_get_decoder, uniprop_get_encoder):
8262 Don't assume fixnum fits in int.
8263 * cmds.c (move_point): New function, that does the gist of
8264 Fforward_char and Fbackward_char, but does so while checking
8265 for integer overflow more accurately.
c96e5d6a 8266 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
8267 (Fforward_line, Fend_of_line, internal_self_insert)
8268 (internal_self_insert):
8269 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8270 Fix a FIXME, by checking for integer overflow when calculating
8271 target_clm and actual_clm.
8272 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 8273 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
8274 (ASSURE_DESTINATION, coding_alloc_by_realloc)
8275 (coding_alloc_by_making_gap, alloc_destination)
8276 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
8277 (encode_coding_utf_16, detect_coding_emacs_mule)
8278 (decode_coding_emacs_mule, encode_coding_emacs_mule)
8279 (detect_coding_iso_2022, decode_coding_iso_2022)
8280 (encode_invocation_designation, encode_designation_at_bol)
8281 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
8282 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
8283 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
8284 (encode_coding_ccl, encode_coding_raw_text)
8285 (detect_coding_charset, decode_coding_charset)
8286 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
8287 (produce_composition, produce_charset, produce_annotation)
8288 (decode_coding, handle_composition_annotation)
8289 (handle_charset_annotation, consume_chars, decode_coding_gap)
8290 (decode_coding_object, encode_coding_object, detect_coding_system)
8291 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
8292 (code_convert_region, code_convert_string)
8f50130c
PE
8293 (Fdefine_coding_system_internal)
8294 (coding_set_source, coding_set_destination):
d311d28c
PE
8295 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8296 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
8297 (Fdefine_coding_system_internal):
8298 Don't assume fixnums fit in int.
8299 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 8300 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
8301 (Funencodable_char_position, Fcheck_coding_systems_region)
8302 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 8303 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 8304 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 8305 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 8306 Don't access memory outside of the args array.
d311d28c 8307 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
8308 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
8309 result of ENCODE_CHAR.
d311d28c
PE
8310 * coding.h: Adjust decls to match defn changes elsewhere.
8311 (struct coding_system):
8312 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8313 * composite.c (get_composition_id, find_composition)
8314 (run_composition_function, update_compositions)
8315 (compose_text, composition_gstring_put_cache)
8316 (composition_gstring_p, composition_gstring_width)
8317 (fill_gstring_header, fill_gstring_body, autocmp_chars)
8318 (composition_compute_stop_pos, composition_reseat_it)
8319 (composition_update_it, struct position_record)
8320 (find_automatic_composition, composition_adjust_point)
8321 (Fcomposition_get_gstring, Ffind_composition_internal):
8322 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8323 (update_compositions):
8324 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8325 * composite.h: Adjust decls to match defn changes elsewhere.
8326 (struct composition):
8327 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8328 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
8329 Do not attempt to compute the address of the object just before a
8330 buffer; this is not portable.
8331 (Faref, Faset):
8332 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8333 (Faset): Use int, not EMACS_INT, where int is wide enough.
8334 (Fstring_to_number): Don't assume fixnums fit in int.
8335 (Frem): Don't assume arg is nonnegative.
8336 * dbusbind.c (xd_append_arg): Check for integers out of range.
8337 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 8338 (extract_signed, extract_unsigned): New functions.
243e0530
PE
8339 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
8340 (xd_get_connection_references): Return ptrdiff_t, not int.
8341 All uses changed.
8342 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
8343 (xd_read_message_1):
8344 Use int, not unsigned, where the dbus API uses int.
8345 (Fdbus_message_internal): Don't overflow mtype.
8346 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
8347 * dired.c (directory_files_internal, file_name_completion, scmp)
8348 (file_name_completion_stat):
8349 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8350 (file_name_completion): Don't overflow matchcount.
8351 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
8352 * dispextern.h: Adjust decls to match defn changes elsewhere.
8353 (struct text_pos, struct glyph, struct bidi_saved_info)
8354 (struct bidi_string_data, struct bidi_it, struct composition_it)
8355 (struct it):
8356 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8357 (struct display_pos, struct composition_it, struct it):
8358 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8359 * dispnew.c (increment_matrix_positions)
8360 (increment_row_positions, mode_line_string)
8361 (marginal_area_string):
8362 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 8363 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
8364 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8365 (duration_to_sec_usec): New function, to check for overflow better.
8366 (Fsleep_for, sit_for): Use it.
8367 * doc.c (get_doc_string, store_function_docstring):
8368 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8369 (get_doc_string, Fsnarf_documentation):
8370 Use int, not EMACS_INT, where int is wide enough.
8371 (get_doc_string):
8372 Use SAFE_ALLOCA, not alloca.
8373 Check for overflow when converting EMACS_INT to off_t.
8374 * doprnt.c (doprnt):
8375 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8376 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
8377 Don't assume uid_t fits into fixnum.
8378 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
8379 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
8380 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
8381 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
8382 (general_insert_function)
8383 (Finsert_char, make_buffer_string, make_buffer_string_both)
8384 (update_buffer_properties, Fbuffer_substring)
8385 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
8386 (Fsubst_char_in_region, check_translation)
8387 (Ftranslate_region_internal, save_restriction_restore, Fformat)
8388 (transpose_markers, Ftranspose_regions):
8389 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8390 (clip_to_bounds): Move to lisp.h as an inline function).
8391 (Fconstrain_to_field): Don't assume integers are nonnegative.
8392 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
8393 (Fsubst_char_in_region, Fsave_restriction):
8394 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8395 (Femacs_pid): Don't assume pid_t fits into fixnum.
8396 (lo_time): Use int, not EMACS_INT, when int suffices.
8397 (lisp_time_argument): Check for usec out of range.
8398 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
8399 (Fuser_login_name, Fuser_full_name): Signal an error
8400 if a uid argument is out of range, rather than relying on
8401 undefined behavior.
c8d5c857
PE
8402 (Fformat_time_string): Remove now-unnecessary check.
8403 lisp_time_argument checks for out-of-range usec now.
243e0530 8404 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
8405 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
8406 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
8407 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
8408 (init_cmdargs, Fdump_emacs):
8409 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8410 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
8411 the bottom (typically) 32 bits of the fixnum.
8412 * eval.c (specpdl_size, call_debugger):
8413 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8414 (when_entered_debugger, Fbacktrace_debug):
8415 Don't assume fixnum can fit in int.
8416 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
8417 the object just before a buffer; this is not portable.
8418 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
8419 (grow_specpdl, unbind_to):
8420 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8421 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
8422 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 8423 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
8424 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
8425 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
8426 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8427 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
8428 (a_write, e_write):
8429 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8430 (Fcopy_file, non_regular_nbytes, read_non_regular)
8431 (Finsert_file_contents):
8432 Use int, not EMACS_INT, where int is wide enough.
8433 (READ_BUF_SIZE): Verify that it fits in int.
8434 (Finsert_file_contents): Check that counts are in proper range,
8435 rather than assuming fixnums fit into ptrdiff_t etc.
8436 Don't assume fixnums fit into int.
125b3835 8437 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
8438 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
8439 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
8440 (string_char_to_byte, string_byte_to_char)
8441 (string_make_multibyte, string_to_multibyte)
8442 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
8443 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
8444 (substring_both, Fdelete, internal_equal, Ffillarray)
8445 (Fclear_string, mapcar1)
8446 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
8447 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
8448 (larger_vector, make_hash_table, maybe_resize_hash_table)
8449 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
8450 (Fmaphash, secure_hash):
8451 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8452 (concat): Check for string index and length overflow.
8453 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
8454 (Frequire):
8455 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8456 (larger_vector): New API (vec, incr_min, size_max) replaces old
8457 one (vec, new_size, init). This catches size overflow.
8458 INIT was removed because it was always Qnil.
8459 All callers changed.
8460 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
8461 the upper bound on a hash table index size.
8462 (make_hash_table, maybe_resize_hash_table): Use it.
8463 (secure_hash): Computer start_byte and end_byte only after
8464 they're known to be in ptrdiff_t range.
8465 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
8466 (Ffont_get_glyphs, Ffont_at):
8467 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8468 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
8469 (Flist_fonts, Fopen_font):
8470 Don't assume fixnum can fit in int.
8471 (check_gstring): Don't assume index can fit in int.
8472 (font_match_p): Check that fixnum is a character, not a nonnegative
8473 fixnum, since the later code needs to stuff it into an int.
8474 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
8475 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
8476 conversion overflow issues.
8477 (Fopen_font): Check for integer out of range.
8478 (Ffont_get_glyphs): Don't assume index can fit in int.
8479 * font.h: Adjust decls to match defn changes elsewhere.
8480 * fontset.c (reorder_font_vector): Redo score calculation to avoid
8481 integer overflow.
8482 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
8483 printmax_t, where ptrdiff_t is wide enough.
8484 (Finternal_char_font):
8485 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8486 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
8487 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
8488 (Fset_frame_position, x_set_frame_parameters)
8489 (x_set_line_spacing, x_set_border_width)
8490 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
8491 Check that fixnums are in proper range for system types.
8492 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
8493 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8494 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
8495 Use SAFE_ALLOCA_LISP, not alloca.
8496 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
8497 intptr_t is wide enough.
8498 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
8499 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
8500 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
8501 Check for fixnum out of range.
8502 * ftfont.c (ftfont_list): Don't assume index fits in int.
8503 Check that fixnums are in proper range for system types.
8504 (ftfont_shape_by_flt):
8505 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
8506 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
8507 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8508 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
8509 Check that fixnums are in proper range for system types.
8510 * gnutls.h: Adjust decls to match defn changes elsewhere.
8511 * gtkutil.c (xg_dialog_run):
8512 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8513 (update_frame_tool_bar):
8514 Check that fixnums are in proper range for system types.
8515 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 8516 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
8517 * indent.c (last_known_column, last_known_column_point):
8518 (current_column_bol_cache):
8519 (skip_invisible, current_column, check_display_width):
8520 (check_display_width, scan_for_column, current_column_1)
8521 (Findent_to, Fcurrent_indentation, position_indentation)
8522 (indented_beyond_p, Fmove_to_column, compute_motion):
8523 (Fcompute_motion, Fvertical_motion):
8524 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8525 (last_known_column_modified): Use EMACS_INT, not int.
8526 (check_display_width):
8527 (Fcompute_motion):
8528 Check that fixnums and floats are in proper range for system types.
8529 (compute_motion): Don't assume index or fixnum fits in int.
8530 (compute_motion, Fcompute_motion):
8531 Use int, not EMACS_INT, when it is wide enough.
8532 (vmotion): Omit local var start_hpos that is always 0; that way
8533 we don't need to worry about overflow in expressions involving it.
8534 * indent.h: Adjust decls to match defn changes elsewhere.
8535 (struct position):
8536 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8537 Use int, not EMACS_INT, where int is wide enough.
8538 Remove unused members ovstring_chars_done and tab_offset;
8539 all uses removed.
8540 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
8541 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
8542 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
8543 (make_gap, copy_text, insert, insert_and_inherit)
8544 (insert_before_markers, insert_before_markers_and_inherit)
8545 (insert_1, count_combining_before, count_combining_after)
8546 (insert_1_both, insert_from_string)
8547 (insert_from_string_before_markers, insert_from_string_1)
8548 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
8549 (adjust_after_replace, adjust_after_insert, replace_range)
8550 (replace_range_2, del_range, del_range_1, del_range_byte)
8551 (del_range_both, del_range_2, modify_region)
8552 (prepare_to_modify_buffer, signal_before_change)
8553 (signal_after_change, Fcombine_after_change_execute):
8554 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8555 * intervals.c (traverse_intervals, rotate_right, rotate_left)
8556 (balance_an_interval, split_interval_right, split_interval_left)
8557 (find_interval, next_interval, update_interval)
8558 (adjust_intervals_for_insertion, delete_node, delete_interval)
8559 (interval_deletion_adjustment, adjust_intervals_for_deletion)
8560 (static_offset_intervals, offset_intervals)
8561 (merge_interval_right, merge_interval_left, make_new_interval)
8562 (graft_intervals_into_buffer, temp_set_point_both)
8563 (temp_set_point, set_point, adjust_for_invis_intang)
8564 (set_point_both, move_if_not_intangible, get_property_and_range)
8565 (get_local_map, copy_intervals, copy_intervals_to_string)
8566 (compare_string_intervals, set_intervals_multibyte_1):
8567 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8568 * intervals.h: Adjust decls to match defn changes elsewhere.
8569 (struct interval):
8570 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8571 * keyboard.c (this_command_key_count, this_single_command_key_start)
8572 (before_command_key_count, before_command_echo_length, echo_now)
8573 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
8574 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
8575 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
8576 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
8577 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8578 (last_non_minibuf_size, last_point_position, echo_truncate)
8579 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
8580 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
8581 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
8582 (stuff_buffered_input):
8583 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8584 (last_auto_save, command_loop_1, read_char):
8585 Use EMACS_INT, not int, to avoid integer overflow.
8586 (record_char): Avoid overflow in total_keys computation.
8587 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
8588 * keyboard.h: Adjust decls to match defn changes elsewhere.
8589 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
8590 (Fkey_description, Fdescribe_vector, Flookup_key):
8591 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8592 (click_position): New function, to check that positions are in range.
8593 (Fcurrent_active_maps):
8594 (describe_command):
8595 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8596 (Faccessible_keymaps, Fkey_description):
8597 (preferred_sequence_p):
8598 Don't assume fixnum can fit into int.
8599 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
8600 Check for integer overflow in size calculations.
8601 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
8602 avoid mishandling large integers.
8603 * lisp.h: Adjust decls to match defn changes elsewhere.
8604 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
8605 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
8606 (struct Lisp_Marker):
8607 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8608 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
8609 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
8610 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
8611 All callers changed.
8612 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
8613 Assume the arg has valid form, since it always does.
8614 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
8615 unsigned integer system type.
8616 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
8617 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
8618 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8619 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
8620 (duration_to_sec_usec): New decl.
8621 * lread.c (read_from_string_index, read_from_string_index_byte)
8622 (read_from_string_limit, readchar, unreadchar, openp)
8623 (read_internal_start, read1, oblookup):
8624 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8625 (Fload, readevalloop, Feval_buffer, Feval_region):
8626 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8627 (openp): Check for out-of-range argument to 'access'.
8628 (read1): Use int, not EMACS_INT, where int is wide enough.
8629 Don't assume fixnum fits into int.
6efdadfd 8630 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
8631 (read_filtered_event): Use duration_to_sec_usec
8632 to do proper overflow checking on durations.
d311d28c
PE
8633 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
8634 in size calculation.
8635 (Fexecute_kbd_macro):
8636 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8637 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
8638 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
8639 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
8640 (set_marker_both, set_marker_restricted_both, marker_position)
8641 (marker_byte_position, Fbuffer_has_markers_at):
8642 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8643 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 8644 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
8645 It now merely ensures that the menu is large enough, without
8646 necessarily growing it, as this avoids some integer overflow issues.
8647 All callers changed.
8648 (keymap_panes, parse_single_submenu, Fx_popup_menu):
8649 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8650 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
8651 Use SAFE_ALLOCA_LISP, not alloca.
8652 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
8653 to EMACS_INT. Check that fixnums are in proper range for system types.
8654 * minibuf.c (minibuf_prompt_width, string_to_object)
8655 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
8656 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
8657 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8658 (get_minibuffer, read_minibuf_unwind):
8659 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8660 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
8661 this simplifies overflow checking. All callers changed.
8662 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
8663 (Ftest_completion):
8664 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8665 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
8666 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
8667 Check that fixnums are in proper range for system types.
8668 (Fx_create_frame, Fx_show_tip):
8669 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8670 * nsfont.m (ns_findfonts, nsfont_list_family):
8671 Don't assume fixnum fits in long.
8672 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
8673 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8674 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
8675 wide enough.
17fdb222 8676 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
8677 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8678 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
8679 (PRINTDECLARE, PRINTPREPARE):
8680 (strout, print_string):
8681 (print, print_preprocess, print_check_string_charset_prop)
8682 (print_object):
8683 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8684 (PRINTDECLARE):
8685 (temp_output_buffer_setup, Fprin1_to_string, print_object):
8686 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8687 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 8688 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 8689 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
8690 (print_error_message): Use SAFE_ALLOCA, not alloca.
8691 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
8692 (print_depth, new_backquote_output, print_number_index):
8693 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
8694 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
8695 (Fset_process_window_size, Fformat_network_address)
8696 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 8697 (sigchld_handler):
d311d28c 8698 Check that fixnums are in proper range for system types.
d44287d4 8699 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
8700 Check for process-ids out of pid_t range rather than relying on
8701 undefined behavior.
e4d81efc 8702 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
8703 (Fformat_network_address, read_process_output, send_process)
8704 (Fprocess_send_region, status_notify):
8705 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8706 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
8707 (wait_reading_process_output, read_process_output, exec_sentinel):
8708 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8709 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
8710 (Faccept_process_output): Use duration_to_sec_usec to do proper
8711 overflow checking on durations.
dde14581
PE
8712 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
8713 Don't assume pid_t fits in int.
02481186
PE
8714 * process.h (struct Lisp_Process): Members tick and update_tick
8715 are now of type EMACS_INT, not int.
b62b53e8
PE
8716 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
8717 configured --with-wide-int.
d311d28c
PE
8718 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
8719 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
8720 * search.c (looking_at_1, string_match_1):
8721 (fast_string_match, fast_c_string_match_ignore_case)
8722 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
8723 (scan_newline, find_before_next_newline, search_command)
8724 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
8725 (set_search_regs, wordify):
8726 (Freplace_match):
8727 (Fmatch_data):
8728 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8729 (string_match_1, search_buffer, set_search_regs):
8730 (Fmatch_data):
8731 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8732 (wordify): Check for overflow in size calculation.
8733 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
8734 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
8735 Check that fixnums are in proper range for system types.
8736 * sound.c (struct sound_device)
8737 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
8738 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8739 (Fplay_sound_internal):
8740 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 8741 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
8742 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
8743 (Fparse_partial_sexp):
8744 Don't assume fixnums can fit in int.
8745 (struct lisp_parse_state, find_start_pos, find_start_value)
8746 (find_start_value_byte, find_start_begv)
8747 (update_syntax_table, char_quoted, dec_bytepos)
8748 (find_defun_start, prev_char_comend_first, back_comment):
8749 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
8750 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
8751 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8752 (Finternal_describe_syntax_value): Check that match_lisp is a
8753 character, not an integer, since the code stuffs it into int.
8754 (scan_words, scan_sexps_forward):
8755 Check that fixnums are in proper range for system types.
8756 (Fforward_word):
8757 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8758 (scan_sexps_forward):
8759 Use CHARACTERP, not INTEGERP, since the value must fit into int.
8760 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
8761 * syntax.h: Adjust decls to match defn changes elsewhere.
8762 (struct gl_state_s):
8763 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
8764 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
8765 MOST_POSITIVE_FIXNUM.
d311d28c
PE
8766 * sysdep.c (wait_for_termination_1, wait_for_termination)
8767 (interruptible_wait_for_termination, mkdir):
8768 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
8769 (emacs_read, emacs_write):
8770 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
8771 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
8772 and double all fit in int.
d311d28c
PE
8773 * term.c (set_tty_color_mode):
8774 Check that fixnums are in proper range for system types.
8775 * termhooks.h (struct input_event):
8776 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8777 * textprop.c (validate_interval_range, interval_of)
8778 (Fadd_text_properties, set_text_properties_1)
8779 (Fremove_text_properties, Fremove_list_of_text_properties)
8780 (Ftext_property_any, Ftext_property_not_all)
8781 (copy_text_properties, text_property_list, extend_property_ranges)
8782 (verify_interval_modification):
8783 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8784 (Fnext_single_char_property_change)
8785 (Fprevious_single_char_property_change):
8786 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
8787 (copy_text_properties):
8788 Check for integer overflow in index calculation.
d311d28c
PE
8789 * undo.c (last_boundary_position, record_point, record_insert)
8790 (record_delete, record_marker_adjustment, record_change)
8791 (record_property_change):
8792 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8793 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
8794 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8795 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
8796 (Fx_hide_tip, Fx_file_dialog):
8797 * w32menu.c (set_frame_menubar):
8798 Use ptrdiff_t, not int, for consistency with rest of code.
8799 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
8800 (select_window, Fdelete_other_windows_internal)
8801 (window_scroll_pixel_based, window_scroll_line_based)
8802 (Frecenter, Fset_window_configuration):
8803 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8804 (Fset_window_hscroll, run_window_configuration_change_hook)
8805 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 8806 (Fscroll_other_window, Frecenter):
d311d28c
PE
8807 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8808 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
8809 Don't assume fixnum fits in int.
8810 (Fset_window_scroll_bars):
8811 Check that fixnums are in proper range for system types.
8812 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
8813 (string_pos, c_string_pos, number_of_chars, init_iterator)
8814 (in_ellipses_for_invisible_text_p, init_from_display_pos)
8815 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
8816 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
8817 (face_before_or_after_it_pos, handle_invisible_prop)
8818 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
8819 (display_prop_intangible_p, string_buffer_position_lim)
8820 (string_buffer_position, handle_composition_prop, load_overlay_strings)
8821 (get_overlay_strings_1, get_overlay_strings)
8822 (iterate_out_of_display_property, forward_to_next_line_start)
8823 (back_to_previous_visible_line_start, reseat, reseat_to_string)
8824 (get_next_display_element, set_iterator_to_next)
8825 (get_visually_first_element, compute_stop_pos_backwards)
8826 (handle_stop_backwards, next_element_from_buffer)
8827 (move_it_in_display_line_to, move_it_in_display_line)
8828 (move_it_to, move_it_vertically_backward, move_it_by_lines)
8829 (add_to_log, message_dolog, message_log_check_duplicate)
8830 (message2, message2_nolog, message3, message3_nolog
8831 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
8832 (current_message_1, truncate_echo_area, truncate_message_1)
8833 (set_message, set_message_1, store_mode_line_noprop)
8834 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
8835 (text_outside_line_unchanged_p, check_point_in_composition)
8836 (reconsider_clip_changes)
8837 (redisplay_internal, set_cursor_from_row, try_scrolling)
8838 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
8839 (redisplay_window, find_last_unchanged_at_beg_row)
8840 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
8841 (trailing_whitespace_p, find_row_edges, display_line)
8842 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
8843 (display_mode_element, store_mode_line_string)
8844 (pint2str, pint2hrstr, decode_mode_spec)
8845 (display_count_lines, display_string, draw_glyphs)
8846 (x_produce_glyphs, x_insert_glyphs)
8847 (rows_from_pos_range, mouse_face_from_buffer_pos)
8848 (fast_find_string_pos, mouse_face_from_string_pos)
8849 (note_mode_line_or_margin_highlight, note_mouse_highlight):
8850 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8851 (safe_call, init_from_display_pos, handle_fontified_prop)
8852 (handle_single_display_spec, load_overlay_strings)
8853 (with_echo_area_buffer, setup_echo_area_for_printing)
8854 (display_echo_area, echo_area_display)
8855 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
8856 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
8857 (redisplay_window, dump_glyph_row, display_mode_line)
8858 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 8859 (handle_display_spec, display_prop_string_p):
d311d28c
PE
8860 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8861 (handle_single_display_spec, build_desired_tool_bar_string)
8862 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
8863 (get_specified_cursor_type):
8864 Check that fixnums are in proper range for system types.
8865 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
8866 (Flookup_image_map):
8867 Don't assume fixnums fit in int.
8868 (compare_overlay_entries):
8869 Avoid mishandling comparisons due to subtraction overflow.
8870 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
8871 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
8872 (handle_tool_bar_click):
8873 Use int, not unsigned, since we prefer signed and the signedness
8874 doesn't matter here.
8875 (get_next_display_element, next_element_from_display_vector):
8876 Use int, not EMACS_INT, when int is wide enough.
8877 (start_hourglass): Use duration_to_sec_usec to do proper
8878 overflow checking on durations.
8879 * xfaces.c (Fbitmap_spec_p):
8880 Check that fixnums are in proper range for system types.
8881 (compare_fonts_by_sort_order):
8882 Avoid mishandling comparisons due to subtraction overflow.
8883 (Fx_family_fonts, realize_basic_faces):
8884 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8885 (Fx_family_fonts):
8886 Don't assume fixnum fits in int.
8887 Use SAFE_ALLOCA_LISP, not alloca.
8888 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
8889 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
8890 (face_at_buffer_position, face_for_overlay_string)
8891 (face_at_string_position):
8892 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8893 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
8894 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
8895 (Fx_show_tip):
8896 Check that fixnums are in proper range for system types.
8897 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
8898 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
8899 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8900 (Fx_change_window_property): Don't assume fixnums fit in int.
8901 * xfont.c (xfont_chars_supported):
8902 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8903 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
8904 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
8905 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8906 * xml.c (parse_region):
8907 * xrdb.c (magic_file_p):
8908 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8909 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
8910 (x_get_local_selection, x_reply_selection_request)
8911 (x_handle_selection_request, wait_for_property_change):
8912 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8913 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
8914 short is wide enough.
8915 (x_send_client_event): Don't assume fixnum fits in int.
8916 * xterm.c (x_x_to_emacs_modifiers):
8917 Don't assume EMACS_INT overflows nicely into int.
8918 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
8919 may come from Lisp.
8920 (handle_one_xevent): NATNUMP can eval its arg twice.
8921 (x_connection_closed):
8922 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8923 * xterm.h: Adjust decls to match defn changes elsewhere.
8924 (struct scroll_bar): Use struct vectorlike_header
8925 rather than rolling our own approximation.
8926 (SCROLL_BAR_VEC_SIZE): Remove; not used.
8927
c6574eb5
GM
89282012-05-25 Glenn Morris <rgm@gnu.org>
8929
8930 * lisp.mk (lisp): Update for more files being compiled now.
8931
e8d32c7e
SM
89322012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
8933
48def666
SM
8934 * lread.c: Remove `read_pure' which makes no difference.
8935 (read_pure): Remove var.
8936 (unreadpure): Remove function.
8937 (readevalloop): Don't call read_list with -1 flag.
8938 (read1, read_vector): Don't test read_pure any more.
8939 (read_list): Simplify.
8940
e8d32c7e
SM
8941 * fileio.c, character.h: Minor style tweaks.
8942
4b2addb7
DA
89432012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
8944
8945 * window.h (clip_changed): Remove useless declaration.
8946
584461b2
JB
89472012-05-22 Juanma Barranquero <lekktu@gmail.com>
8948
8949 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
8950 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
8951
34374650
PE
89522012-05-22 Paul Eggert <eggert@cs.ucla.edu>
8953
8954 Remove src/m/*.
8955 This directory predates autoconf and is no longer needed nowadays.
8956 Move its few remaining bits of functionality to where they're needed.
8957 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
8958 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
8959 * m/template.h: Remove.
8960 * Makefile.in (M_FILE): Remove. All uses removed.
8961 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
8962 * lisp.h (USE_LSB_TAG):
8963 * mem-limits.h (EXCEEDS_LISP_PTR):
8964 Use VAL_MAX, not VALBITS, in #if.
8965 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
8966 (EMACS_UINT): Define unconditionally now.
8967 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
8968 (BITS_PER_EMACS_INT): New constants, replacing
8969 what used to be in config.h, but not useful in #if.
8970 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
8971 define them any more.
8972 (VAL_MAX): New macro.
8973 (VALMASK): Use it.
8974 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
8975 BITS_PER_EMACS_INT, in #if.
8976 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
8977 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
8978 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
8979 * s/ms-w32.h (DATA_START):
8980 Move here from removed file m/intel386.h.
8981 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
8982 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
8983
261cb4bb
PE
89842012-05-21 Paul Eggert <eggert@cs.ucla.edu>
8985
8986 Assume C89 or later.
8987 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
8988 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
8989 (xrealloc):
8990 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
8991 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
8992 * textprop.c, tparam.c (NULL): Remove.
8993 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
8994 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
8995 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
8996 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
8997 * xterm.c (input_signal_count): Assume volatile works.
8998
ff23cd9f
KB
89992012-05-21 Ken Brown <kbrown@cornell.edu>
9000
9001 * xgselect.c (xg_select): Fix first argument in call to 'select'
9002 (bug#11508).
9003
1b170bc6
KB
90042012-05-20 Ken Brown <kbrown@cornell.edu>
9005
9006 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 9007 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 9008
b2f4d39f
KB
90092012-05-19 Ken Brown <kbrown@cornell.edu>
9010
9011 * xfns.c (x_in_use): Remove `static' qualifier.
9012 * xterm.h (x_in_use): Declare.
9013 * xgselect.c: Include xterm.h.
9014 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
9015 and `display_arg' (bug#9754).
9016
003fdae2
PE
90172012-05-19 Paul Eggert <eggert@cs.ucla.edu>
9018
9232a6d9
PE
9019 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
9020
003fdae2
PE
9021 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
9022 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
9023
784b56e2
EZ
90242012-05-18 Eli Zaretskii <eliz@gnu.org>
9025
9026 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
9027
9028 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 9029 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
9030
9031 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
9032 reference to image_cache->refcount.
9033 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
9034
a0a79cde
JL
90352012-05-17 Juri Linkov <juri@jurta.org>
9036
9037 * search.c (Fword_search_regexp, Fword_search_backward)
9038 (Fword_search_forward, Fword_search_backward_lax)
9039 (Fword_search_forward_lax): Move functions to isearch.el
9040 (bug#10145, bug#11381).
9041
b0572523
PE
90422012-05-16 Paul Eggert <eggert@cs.ucla.edu>
9043
9044 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
9045
9660f5fc
SM
90462012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
9047
9048 * lread.c (init_obarray): Declare Qt and Qnil as special.
9049
4374de83
GM
90502012-05-14 Glenn Morris <rgm@gnu.org>
9051
9052 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 9053 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 9054
dc44c39a
PE
90552012-05-14 Paul Eggert <eggert@cs.ucla.edu>
9056
078c97cb
PE
9057 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
9058
dc44c39a
PE
9059 * unexaix.c: Port to more-recent AIX compilers.
9060 (report_error, report_error_1, make_hdr, copy_sym)
9061 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
9062 Make arguments const char *, not char *, to avoid violations of C
9063 standard and to fix some AIX warnings reported by Gilles Pion.
9064
e18afed7 90652012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
9066
9067 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
9068 already have overlays loaded.
9069 (handle_single_display_spec): Before returning without displaying
9070 fringe bitmap, synchronize the bidi iterator with the main display
9071 iterator, by calling iterate_out_of_display_property.
9072 (iterate_out_of_display_property): Detect buffer iteration by
9073 testing that it->string is a Lisp string.
9074 (get_next_display_element): When the current object is exhausted,
9075 and there's something on it->stack, call set_iterator_to_next to
9076 proceed with what's on the stack, instead of returning zero.
9077 (set_iterator_to_next): If called at the end of a Lisp string,
9078 proceed to consider_string_end without incrementing string
9079 position. Don't increment display vector index past the end of
9080 the display vector. (Bug#11417)
c8fb9dc6
EZ
9081 (pos_visible_p): Don't report a position visible when move_it_to
9082 stopped at the last line of window, which happens to be scanned
9083 backwards by the bidi iteration. (Bug#11464)
ac268e67 9084
e18afed7 90852012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
9086
9087 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
9088 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
9089 are on a TTY, and thus unable to display on the fringes.
9090 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
9091 so we need to signal to the caller that this is a "replacing"
9092 display spec. This fixes display when the spec is invalid or we
9093 are on a TTY.
9094
e18afed7 90952012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
9096
9097 * unexaix.c (make_hdr): Fix typo in prototype.
9098 This bug broke the build on AIX. Problem reported by Gilles Pion.
9099
9d0a235a
MA
91002012-05-14 Michael Albinus <michael.albinus@gmx.de>
9101
9102 * keyboard.c (kbd_buffer_get_event): Read special events also in
9103 batch mode. (Bug#11415)
9104
9e6b06ed
GM
91052012-05-12 Glenn Morris <rgm@gnu.org>
9106
9107 * ns.mk: Update for ns_appbindir no longer having trailing "/".
9108
c1a1d7a3
EZ
91092012-05-12 Eli Zaretskii <eliz@gnu.org>
9110
9111 * lisp.mk (lisp): Add newcomment.elc.
9112
3fe7cdc8
GM
91132012-05-12 Glenn Morris <rgm@gnu.org>
9114
9115 * Makefile.in (MKDIR_P): New, set by configure.
9116 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
9117
53f7d2c0
PE
91182012-05-11 Paul Eggert <eggert@cs.ucla.edu>
9119
9120 Remove unused function hourglass_started.
9121 * dispextern.h (hourglass_started):
9122 * w32fns.c (hourglass_started):
9123 * xdisp.c (hourglass_started): Remove.
9124
75aafb17
JB
91252012-05-10 Juanma Barranquero <lekktu@gmail.com>
9126
9127 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
9128 Update dependencies.
9129
12959e8e
PE
91302012-05-10 Paul Eggert <eggert@cs.ucla.edu>
9131
97107e2e
PE
9132 * xgselect.c (xg_select): Put maxfds+1 into a var.
9133 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
9134
12959e8e
PE
9135 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
9136
836d29b3
DA
91372012-05-10 Dave Abrahams <dave@boostpro.com>
9138
9139 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
9140 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
9141
5cb67954
MA
91422012-05-09 Michael Albinus <michael.albinus@gmx.de>
9143
9144 * dbusbind.c (xd_registered_buses): New internal Lisp object.
9145 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
9146 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
9147 Initialize xd_registered_buses.
9148
3478ec45
PE
91492012-05-09 Paul Eggert <eggert@cs.ucla.edu>
9150
b263a6b0
PE
9151 Untag more efficiently if USE_LSB_TAG.
9152 This is based on a proposal by YAMAMOTO Mitsuharu in
9153 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
9154 For an admittedly artificial (nth 8000 longlist) benchmark on
9155 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
9156 Emacs's overall text size by 1%.
9157 * lisp.h (XUNTAG): New macro.
9158 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
9159 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
9160 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
9161 * eval.c (Fautoload):
9162 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
9163 * frame.h (XFRAME): Use XUNTAG.
9164
3478ec45
PE
9165 Port recent dbusbind.c changes to 32-bit --with-wide-int.
9166 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
9167 Remove unportable assumptions about print widths of types like
9168 dbus_uint32_t.
9169 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
9170 intptr_t when converting between pointer and integer, to avoid GCC
9171 warnings about wrong width.
9172
666b903b 91732012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
9174
9175 * w32proc.c (new_child): Force Windows to reserve only 64KB of
9176 stack for each reader_thread, instead of defaulting to 8MB
9177 determined by the linker. This avoids failures in creating
9178 subprocesses on Windows 7, see the discussion in this thread:
9179 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
9180
b120cc17
JC
91812012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
9182
9183 Fix up display of the *Minibuf-0* buffer in the mini window.
9184 * keyboard.c (read_char): Don't clear the echo area if there's no
9185 message to clear.
9186 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 9187 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 9188
9a4b36f8
MA
91892012-05-07 Michael Albinus <michael.albinus@gmx.de>
9190
9191 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
9192 batch mode.
9193
e5f9458f
CY
91942012-05-06 Chong Yidong <cyd@gnu.org>
9195
9196 * lisp.mk (lisp): Update.
9197
eceeb5fc 91982012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
9199
9200 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
9201
71873e2b
SM
92022012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
9203
9204 * data.c (PUT_ERROR): New macro.
9205 (syms_of_data): Use it. Add new error type `user-error'.
9206 * undo.c (user_error): New function.
9207 (Fprimitive_undo): Use it.
9208 * print.c (print_error_message): Adjust print style for `user-error'.
9209 * keyboard.c (user_error): New function.
9210 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
9211
ab0fa4e4
PE
92122012-05-03 Paul Eggert <eggert@cs.ucla.edu>
9213
9214 Do not limit current-time-string to years 1000..9999.
9215 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
9216 (Fcurrent_time_string): Support any year that is supported by the
9217 underlying localtime representation. Don't use asctime, as it
9218 has undefined behavior for years outside the range -999..9999.
9219
7ed806a7
PE
92202012-05-02 Paul Eggert <eggert@cs.ucla.edu>
9221
9222 Fix race conditions involving setenv, gmtime, localtime, asctime.
9223 Without this fix, interrupts could mess up code that uses these
9224 nonreentrant functions, since setting TZ invalidates existing
9225 tm_zone or tzname values, and since most of these functions return
9226 pointers to static storage.
9227 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
9228 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
9229 Grow the critical sections to include not just invoking
9230 localtime/gmtime, but also accessing these functions' results
9231 including their tm_zone values if any, and any related TZ setting.
9232 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
9233 so that the struct tm is saved in the critical section.
9234 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
9235 motivated by the fact that memory allocation needs to be outside
9236 the critical section.
9237
0c16dfed
DA
92382012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
9239
9240 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
9241 with RESET_INTERVAL.
9242
9243 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
9244 Remove duplicated buffer name initialization.
9245
3f83ace8
JM
92462012-05-02 Jim Meyering <jim@meyering.net>
9247
9248 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
9249
c7b8541e
JM
9250 * xfns.c (x_window): Use xstrdup (Bug#11375).
9251
90207a15 92522012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
9253
9254 * xdisp.c (pos_visible_p): If already at a newline from the
9255 display string before the 'while' loop, don't walk back the glyphs
9256 from it3.glyph_row. Solves assertion violation when the display
9257 string begins with a newline (egg.el). (Bug#11367)
9258
b593d6a9
AH
92592012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
9260
9261 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
9262 Move to simple.el.
9263
4737362e
GM
92642012-05-01 Glenn Morris <rgm@gnu.org>
9265
99cf43f9
GM
9266 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
9267 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
9268 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
9269 All were removed before 23.1.
9270
9311dcff
GM
9271 * dispnew.c: Remove HAVE_LIBNCURSES test;
9272 it is always true on relevant platforms.
9273
4d5c6349
GM
9274 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
9275 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
9276
4737362e
GM
9277 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
9278
74dd3a6b
AS
92792012-04-30 Andreas Schwab <schwab@linux-m68k.org>
9280
9281 * .gdbinit (xpr): Remove checks for no longer existing misc types.
9282 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
9283 Remove.
9284
13c379ee
PE
92852012-04-28 Paul Eggert <eggert@cs.ucla.edu>
9286
9287 Do not avoid creating empty evaporating overlays (Bug#9642).
9288 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
9289 That is, do not delete an evaporating overlay if it becomes
9290 empty after its bounds are adjusted to fit within its buffer.
9291 This fix caused other problems, and I'm reverting it until we get
9292 to the bottom of them.
9293
a8e7d6d7 92942012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
9295
9296 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
9297
a8e7d6d7 92982012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
9299
9300 * xdisp.c (pos_visible_p): If the window start position is beyond
9301 ZV, start the display from buffer beginning. Prevents assertion
9302 violation in init_iterator when the minibuffer window is scrolled
9303 via the scroll bar.
9304
9305 * window.c (window_scroll_pixel_based): Likewise.
9306
a8e7d6d7 93072012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
9308
9309 * keymap.c (where_is_internal): Doc fix (Bug#10872).
9310
a8e7d6d7 93112012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
9312
9313 * fileio.c (Fcopy_file, Fset_file_selinux_context):
9314 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
9315
a8e7d6d7 93162012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 9317
b593d6a9
AH
9318 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
9319 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 9320
1c6900d9
EZ
93212012-04-26 Eli Zaretskii <eliz@gnu.org>
9322
4c3fa1d9
EZ
9323 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
9324 display element, check also the underlying string or buffer
9325 character. (Bug#11341)
9326
1c6900d9
EZ
9327 * w32menu.c: Include w32heap.h.
9328 (add_menu_item): If the call to AppendMenuW (via
9329 unicode_append_menu) fails, disable Unicode menus only if we are
9330 running on Windows 9X/Me.
9331
42bf8205
AS
93322012-04-24 Andreas Schwab <schwab@linux-m68k.org>
9333
9334 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
9335 (xgetint): Add missing shift for LSB tags.
9336
b1bac16e
MR
93372012-04-24 Martin Rudalics <rudalics@gmx.at>
9338
9339 * keyboard.c (read_char): Don't wipe echo area for select window
9340 events: These might get delayed via `mouse-autoselect-window'
9341 (Bug#11304).
9342
d69621cc
JB
93432012-04-24 Juanma Barranquero <lekktu@gmail.com>
9344
9345 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
9346 manipulation of :loaded-from data.
9347
02fd101b
JB
93482012-04-23 Juanma Barranquero <lekktu@gmail.com>
9349
9350 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
9351 now a cons (bug#11311).
9352
888bec30
PE
93532012-04-23 Paul Eggert <eggert@cs.ucla.edu>
9354
89a438bd
PE
9355 Do not create empty overlays with the evaporate property (Bug#9642).
9356 * buffer.c (Fmove_overlay): Delete an evaporating overlay
9357 if it becomes empty after its bounds are adjusted to fit within
9358 its buffer. Without this fix, in a nonempty buffer (let ((o
9359 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
9360 yields an empty overlay that has the evaporate property, which is
9361 not supposed to happen.
9362
1068fe4d
PE
9363 Fix minor GTK3 problems found by static checking.
9364 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
9365 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
9366 (struct _EmacsFixedClass, emacs_fixed_get_type):
9367 Move decls here from emacsgtkfixed.h, since they needn't be public.
9368 (emacs_fixed_get_type): Now static.
9369 (emacs_fixed_class_init): Omit unused local.
9370 (emacs_fixed_child_type): Remove; unused.
9371 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
9372 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
9373 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
9374 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
9375 (EMACS_FIXED_GET_CLASS): Remove; unused.
9376 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
9377
888bec30
PE
9378 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
9379 Problem reported by Juanma Barranquero for Windows -Wunused-function.
9380
de85e130
PE
93812012-04-22 Paul Eggert <eggert@cs.ucla.edu>
9382
d0baac98 9383 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 9384 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
9385 (__malloc_size_t, __malloc_ptrdiff_t):
9386 Remove. All uses removed, replaced by the definiens if needed,
9387 since we can assume C89 or better now.
9388 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
9389 (protect_malloc_state, align, get_contiguous_space)
9390 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
9391 (malloc_atfork_handler_child, malloc_enable_thread)
9392 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
9393 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
9394 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
9395 (special_realloc, _realloc_internal_nolock, _realloc_internal)
9396 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
9397 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
9398 Define using prototypes, not old style.
9399 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
9400 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
9401 (align): Don't assume that signed integer overflow wraps around.
9402 Omit unused local var.
9403 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
9404 (_free_internal_nolock, memalign, mallochook, reallochook):
9405 Omit no-longer-needed casts.
9406 (valloc): Use getpagesize, not __getpagesize.
9407 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
9408 (struct hdr): The 'magic' member is now size_t, not unsigned long.
9409
de85e130
PE
9410 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
9411
dcbf5805
MA
94122012-04-22 Michael Albinus <michael.albinus@gmx.de>
9413
9414 Move functions from C to Lisp. Make non-blocking method calls
9415 the default. Implement further D-Bus standard interfaces.
9416
9417 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
9418 (QCdbus_request_name_allow_replacement)
9419 (QCdbus_request_name_replace_existing)
9420 (QCdbus_request_name_do_not_queue)
9421 (QCdbus_request_name_reply_primary_owner)
9422 (QCdbus_request_name_reply_in_queue)
9423 (QCdbus_request_name_reply_exists)
9424 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
9425 (QCdbus_registered_serial, QCdbus_registered_method)
9426 (QCdbus_registered_signal): New Lisp objects.
9427 (XD_DEBUG_MESSAGE): Use sizeof.
9428 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
9429 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
9430 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
9431 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
9432 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
9433 (xd_signature, xd_append_arg): Allow float for integer types.
9434 (xd_get_connection_references): New function.
b593d6a9
AH
9435 (xd_get_connection_address): Rename from xd_initialize.
9436 Return cached address.
dcbf5805
MA
9437 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
9438 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
9439 level.
9440 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 9441 Return number of refcounts.
dcbf5805
MA
9442 (Fdbus_get_unique_name): Make stronger parameter check.
9443 (Fdbus_message_internal): New defun.
9444 (Fdbus_call_method, Fdbus_call_method_asynchronously)
9445 (Fdbus_method_return_internal, Fdbus_method_error_internal)
9446 (Fdbus_send_signal, Fdbus_register_service)
9447 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
9448 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
9449 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
9450 (Vdbus_compiled_version, Vdbus_runtime_version)
9451 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
9452 (Vdbus_message_type_method_return, Vdbus_message_type_error)
9453 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
9454 (Vdbus_registered_buses, Vdbus_registered_objects_table):
9455 Adapt docstring.
dcbf5805 9456
52828e02
PE
94572012-04-22 Paul Eggert <eggert@cs.ucla.edu>
9458
da05bc4c
PE
9459 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
9460 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
9461 Do not assume ptrdiff_t is the same width as 'int'.
9462
52828e02
PE
9463 * alloc.c: Handle unusual debugging option combinations.
9464 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
9465 since the two debugging options are incompatible.
9466 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
9467 is defined.
9468 (mem_init, mem_insert, mem_insert_fixup):
9469 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
9470 (NEED_MEM_INSERT): Remove; no longer needed.
9471
f01769f9
LL
94722012-04-22 Leo Liu <sdl.web@gmail.com>
9473
9474 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
9475
5790543d
PE
94762012-04-22 Paul Eggert <eggert@cs.ucla.edu>
9477
9478 * sysdep.c [__FreeBSD__]: Minor cleanups.
9479 (list_system_processes, system_process_attributes) [__FreeBSD__]:
9480 Use Emacs indenting style more consistently. Avoid some casts.
9481 Use 'double' consistently rather than mixing 'float' and 'double'.
9482
b91b7e4d
EW
94832012-04-21 Eduard Wiebe <usenet@pusto.de>
9484
b593d6a9
AH
9485 * sysdep.c (list_system_processes, system_process_attributes):
9486 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 9487
6114eb15
AS
94882012-04-21 Andreas Schwab <schwab@linux-m68k.org>
9489
9490 * lisp.mk (lisp): Update.
9491
2f38dff7
PE
94922012-04-20 Paul Eggert <eggert@cs.ucla.edu>
9493
9494 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
9495 It is never used otherwise.
9496
4ae29f89
SM
94972012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
9498
9499 * print.c (print_preprocess): Only check print_depth if print-circle
9500 is nil.
9501 (print_object): Check for cycles even when print-circle is nil and
9502 print-gensym is t, but only check print_depth if print-circle is nil.
9503
f30d612a
CY
95042012-04-20 Chong Yidong <cyd@gnu.org>
9505
9506 * process.c (wait_reading_process_output): If EIO occurs on a pty,
9507 set the status to "failed" and ensure that sentinel is run.
9508
c07a4c0b 95092012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
9510
9511 * process.c (Fset_process_inherit_coding_system_flag)
9512 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 9513 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 9514
c07a4c0b 95152012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
9516
9517 * xdisp.c (string_buffer_position_lim): Limit starting position to
9518 BEGV.
9519 (set_cursor_from_row): If called for a mode-line or header-line
9520 row, return zero immediately.
9521 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
9522 farther than the first row after the header line, if any.
9523 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
9524 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
9525
c07a4c0b 95262012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 9527
4ae29f89
SM
9528 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
9529 (bug#11238).
ad3a2b41 9530
c07a4c0b 95312012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 95322012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
9533
9534 configure: new option --enable-gcc-warnings (Bug#11207)
9535 * Makefile.in (C_WARNINGS_SWITCH): Remove.
9536 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
9537 (ALL_CFLAGS): Use new macros rather than old.
9538 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
9539 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
9540 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
9541 -Wunused-result, -Wunused-variable. This should go away once
9542 the Emacs and Gnulib regex code is merged.
9543 (xmalloc, xrealloc): Now static.
9544
aba027e8
PE
95452012-04-17 Paul Eggert <eggert@cs.ucla.edu>
9546
9547 * dired.c (Fsystem_groups): Remove unused local.
9548
e5a36063
GM
95492012-04-17 Glenn Morris <rgm@gnu.org>
9550
9551 * dired.c (Fsystem_users): Doc fix.
9552
316411f0
DA
95532012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
9554
9555 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
9556 (syms_of_dired): Add them.
9557
9426aba4
PE
95582012-04-16 Paul Eggert <eggert@cs.ucla.edu>
9559
b62a57be
PE
9560 Fix minor alloc.c problems found by static checking.
9561 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
9562 New extern decls, to avoid calling undeclared functions.
9563 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
9564 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
9565 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
9566 (NEED_MEM_INSERT): New macro.
9567 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 9568 Remove one incorrect comment and fix another.
b62a57be 9569
3539f31f
PE
9570 Fix minor ralloc.c problems found by static checking.
9571 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
9572 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
9573 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
9574 (r_alloc_sbrk): Now static.
9575
a041960a
PE
9576 Improve ralloc.c interface checking.
9577 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
9578 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
9579 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
9580 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
9581 [REL_ALLOC]: ... to here, to check interface.
9582 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
9583 Remove decls. This fixes an "It stinks!".
9584
9426aba4
PE
9585 * alloc.c (which_symbols): Fix alignment issue / type clash.
9586
d55c12ed
AS
95872012-04-15 Andreas Schwab <schwab@linux-m68k.org>
9588
9589 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
9590 (struct Lisp_Misc_Any): Likewise.
9591 (struct Lisp_Free): Likewise.
9592 * alloc.c (union aligned_Lisp_Symbol): Define.
9593 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
9594 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
9595 (union aligned_Lisp_Misc): Define.
9596 (MARKER_BLOCK_SIZE, struct marker_block): Use union
9597 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 9598 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 9599
b948ce8b
PE
96002012-04-14 Paul Eggert <eggert@cs.ucla.edu>
9601
9602 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
9603 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
9604 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
9605 * s/netbsd.h, s/sol2-6.h:
9606 Remove definition of GC_MARK_STACK, since the default now works.
9607 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
9608 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
9609 no longer the default.
9610 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
9611
35dc09a1 96122012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 9613
35dc09a1
GM
9614 * lread.c (lisp_file_lexically_bound_p):
9615 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 9616
35dc09a1
GM
96172012-04-14 Eli Zaretskii <eliz@gnu.org>
9618
9619 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
9620 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
9621
96222012-04-14 Jan Djärv <jan.h.d@swipnet.se>
9623
9624 * nsterm.m (constrainFrameRect): Always constrain when there is only
9625 one screen (Bug#10962).
9626
bcd86815
KB
96272012-04-13 Ken Brown <kbrown@cornell.edu>
9628
9629 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
9630
c25df26e
RT
96312012-04-13 Reuben Thomas <rrt@sc3d.org>
9632
9633 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
9634
0fc59f1e
DC
96352012-04-11 Daniel Colascione <dancol@dancol.org>
9636
9637 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
9638 against is gone. It's better to use vfork now so that when Cygwin
9639 gains a new, working vfork, we use it automatically (bug#10398).
9640
de8c03dc
SM
96412012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
9642
9643 * window.c (save_window_save): Obey window-point-insertion-type.
9644
2f097256
GM
96452012-04-11 Glenn Morris <rgm@gnu.org>
9646
9647 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
9648
453b951e
SM
96492012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
9650
9651 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
9652
75f1671a 96532012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
9654
9655 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
9656 (force_quit_count): New var.
9657 (handle_interrupt): Use it.
9658
2a8ce227
JB
96592012-04-10 Juanma Barranquero <lekktu@gmail.com>
9660
9661 * w32.c (w32_delayed_load): Record the full path of the library
9662 being loaded (bug#10424).
9663
935396c0
GM
96642012-04-09 Glenn Morris <rgm@gnu.org>
9665
05920a43
GM
9666 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
9667 not just in the obarray, before snarfing them. (Bug#11036)
9668
935396c0
GM
9669 * Makefile.in ($(leimdir)/leim-list.el):
9670 Pass EMACS rather than BUILT_EMACS.
9671
a18ecafa
TZ
96722012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
9673
9674 * process.c (make_process):
9675 * process.h: Add integer `gnutls_handshakes_tried' member to
9676 process struct.
9677
6bbef4e5
JC
9678 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
9679 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
9680
9681 * gnutls.c (gnutls_log_function2i): Convenience log function.
9682 (emacs_gnutls_read): Use new log functions,
9683 `gnutls_handshakes_tried' process member, and
9684 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
9685 attempts per process (connection).
9686
b4d3bc10
CY
96872012-04-09 Chong Yidong <cyd@gnu.org>
9688
9689 * eval.c (Fuser_variable_p, user_variable_p_eh)
9690 (lisp_indirect_variable): Functions deleted.
9691 (Fdefvar): Caller changed.
9692
9693 * callint.c (Finteractive, Fcall_interactively):
9694 * minibuf.c (Fread_variable): Callers changed.
9695
70f4d973
EZ
96962012-04-09 Eli Zaretskii <eliz@gnu.org>
9697
9698 * xdisp.c (set_cursor_from_row): If the display string appears in
9699 the buffer at position that is closer to point than the position
9700 after the display string, display the cursor on the first glyph of
9701 the display string. Fixes cursor display when a 'display' text
9702 property immediately follows invisible text. (Bug#11094)
9703
cb3c2e3e
PE
97042012-04-09 Paul Eggert <eggert@cs.ucla.edu>
9705
9706 composite.c: use 'double' consistently
9707 * composite.c (get_composition_id): Use 'double' consistently
9708 instead of converting 'float' to 'double' and vice versa; this is
9709 easier to understand and avoids a GCC warning.
9710
fd06db5d
GM
97112012-04-09 Glenn Morris <rgm@gnu.org>
9712
50fe702a
GM
9713 * Makefile.in: Generate leim-list with bootstrap-emacs, in
9714 preparation for dumping it with emacs. (Bug#4789)
9715 (leimdir): New variable.
9716 ($(leimdir)/leim-list.el): New rule.
9717 (emacs$(EXEEXT)): Depend on leim-list.el.
9718
fd06db5d
GM
9719 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
9720 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
9721 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
9722
55c131ee
AS
97232012-04-08 Andreas Schwab <schwab@linux-m68k.org>
9724
9725 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
9726 proper alignment.
9727
9209588f
JB
97282012-04-07 Juanma Barranquero <lekktu@gmail.com>
9729
9730 * xml.c (init_libxml2_functions) [WINDOWSNT]:
9731 Remove unused local variable.
9732
e3fb2efb
PE
97332012-04-07 Paul Eggert <eggert@cs.ucla.edu>
9734
9735 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
9736 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
9737 (mark_memory): Mark Lisp_Objects only if pointers might hide in
9738 objects, as mark_maybe_pointer will catch them otherwise.
9739 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
9740 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
9741
b5385551
PE
97422012-04-07 Paul Eggert <eggert@cs.ucla.edu>
9743
9744 Fix typo that broke non-Windows builds.
9745 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
9746
9078ead6
EZ
97472012-04-07 Eli Zaretskii <eliz@gnu.org>
9748
9749 Support building on MS-Windows with libxml2.
9750
9751 * makefile.w32-in (OBJ2): Add xml.$(O).
9752 (GLOBAL_SOURCES): Add xml.c.
9753 ($(BLD)/xml.$(O)): New dependency list.
9754
9755 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
9756 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
9757 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
9758 [!WINDOWSNT]: New macros.
9759 (init_libxml2_functions, libxml2_loaded_p): New functions.
9760 (parse_region): Call fn_xmlCheckVersion instead of using the macro
9761 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
9762 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
9763 Calls xmlCleanupParser only if libxml2 was loaded (or statically
9764 linked in).
6bbef4e5
JC
9765 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
9766 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
9767 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
9768
9769 * emacs.c: Don't include libxml/parser.h.
9770 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
9771 xmlCleanupParser directly.
9772
9773 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
9774
3811fdf3
EZ
97752012-04-07 Eli Zaretskii <eliz@gnu.org>
9776
9777 * indent.c (Fvertical_motion): If there is a display string at
9778 point, use it.vpos to compute how many lines to backtrack after
9779 move_it_to point. (Bug#11133)
9780
2f8e16b2
EZ
97812012-04-06 Eli Zaretskii <eliz@gnu.org>
9782
9783 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
9784 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
9785 about subtle differences between FETCH_CHAR* and STRING_CHAR*
9786 macros related to unification of CJK characters. For the details,
9787 see the discussion following the message here:
9788 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
9789
3d439cd1
CY
97902012-04-04 Chong Yidong <cyd@gnu.org>
9791
9792 * keyboard.c (Vdelayed_warnings_list): Doc fix.
9793
8bc53d00
EZ
97942012-04-01 Eli Zaretskii <eliz@gnu.org>
9795
9796 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
9797 instead of alloca. (Bug#11138)
9798
3b0512a3
AS
97992012-04-01 Andreas Schwab <schwab@linux-m68k.org>
9800
9801 * w32menu.c (is_simple_dialog): Properly check lisp types.
9802 (Bug#11141)
9803
8427ddd2
EZ
98042012-03-31 Eli Zaretskii <eliz@gnu.org>
9805
979022ef
EZ
9806 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
9807 position we get to after a call to move_it_to fails the
9808 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
9809 only if we wind up in a string from display property. (Bug#11063)
9810
a6b1c7cc
EZ
9811 * window.c (Fdelete_other_windows_internal): Invalidate the row
9812 and column information about mouse highlight, so that redisplay
9813 restores it after reallocating the glyph matrices. (Bug#7464)
9814
8427ddd2
EZ
9815 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
9816 string comes from a `display' text property, use the buffer
9817 position of that property as if we actually saw that position in
9818 the row's glyphs.
697ba24b
EZ
9819 (move_it_by_lines): Remove the assertion that
9820 "it->current_x == 0 && it->hpos == 0" which can be legitimately
9821 violated when there's a before-string at the beginning of a line.
9822 (Bug#11063)
8427ddd2 9823
65a0a738
EZ
98242012-03-30 Eli Zaretskii <eliz@gnu.org>
9825
9826 * xdisp.c (append_space_for_newline): If the default face was
9827 remapped, use the remapped face for the appended newline.
9828 (extend_face_to_end_of_line): Use the remapped default face for
9829 extending the face to the end of the line.
9830 (display_line): Call extend_face_to_end_of_line when the default
9831 face was remapped. (Bug#11068)
9832
581355cc
EZ
98332012-03-29 Eli Zaretskii <eliz@gnu.org>
9834
9835 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
9836
e8fc049f
SM
98372012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
9838
9839 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
9840
4fb9a543
GM
98412012-03-27 Glenn Morris <rgm@gnu.org>
9842
9843 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
9844 Doc fixes.
9845
679910f1
KH
98462012-03-26 Kenichi Handa <handa@m17n.org>
9847
9848 * dispextern.h (struct glyph): Fix previous change. Change the
9849 bit length of glyphless.ch to 25 (Bug#11082).
9850
90d49b7f
CY
98512012-03-26 Chong Yidong <cyd@gnu.org>
9852
9853 * keyboard.c (Vselection_inhibit_update_commands): New variable.
9854 (command_loop_1): Use it; inhibit selection update for
9855 handle-select-window too (Bug#8996).
9856
f514f6f0
FP
98572012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
9858
e8fc049f 9859 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 9860
bf43fa51
KH
98612012-03-25 Kenichi Handa <handa@m17n.org>
9862
9863 * dispextern.h (struct glyph): Change the bit length of
9864 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
9865
8a0c01dd
EZ
98662012-03-24 Eli Zaretskii <eliz@gnu.org>
9867
9868 * s/ms-w32.h (tzname): Include time.h before redirecting to
9869 _tzname. Fixes the MSVC build. (Bug#9960)
9870
7d1c3a76
AS
98712012-03-24 Andreas Schwab <schwab@linux-m68k.org>
9872
8ed79523
AS
9873 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
9874 characters.
9875
7d1c3a76
AS
9876 * xterm.c (XTread_socket): Only modify handling_signal if
9877 !SYNC_INPUT. (Bug#11080)
9878
e99a9b8b
EZ
98792012-03-23 Eli Zaretskii <eliz@gnu.org>
9880
9881 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
9882 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
9883 when fetching a multibyte character consumes more bytes than
9884 CHAR_BYTES returns, due to unification of CJK characters in
9885 string_char. (Bug#11073)
9886
5063c0e1
TN
98872012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
9888
9889 * process.c (wait_reading_process_output): Handle pty disconnect
9890 by refraining from sending oneself a SIGCHLD (bug#10933).
9891
9f851fbd
CY
98922012-03-22 Chong Yidong <cyd@gnu.org>
9893
9894 * dispextern.h (struct it): New member string_from_prefix_prop_p.
9895
5063c0e1 9896 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
9897 Mark string as coming from a prefix property.
9898 (handle_face_prop): Use default face for prefix strings (Bug#4281).
9899 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
9900
fb5b8aca
CY
99012012-03-21 Chong Yidong <cyd@gnu.org>
9902
9903 * xfaces.c (Vface_remapping_alist): Doc fix.
9904
62356a1b
EZ
99052012-03-20 Eli Zaretskii <eliz@gnu.org>
9906
9907 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
9908 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
9909 Doc fixes.
62356a1b 9910
025de85b
CY
99112012-03-20 Chong Yidong <cyd@gnu.org>
9912
9913 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
9914 to reflect default non-nil value of redisplay-dont-pause.
9915
4827f94e
KH
99162012-03-19 Kenichi Handa <handa@m17n.org>
9917
9918 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
9919 it fit in a valid range (Bug#11003).
9920
e50a24a2
EZ
99212012-03-18 Eli Zaretskii <eliz@gnu.org>
9922
9923 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
9924 that is not from display property, accept the row as a "cursor
9925 row" if one of the string's character has a non-nil `cursor'
9926 property. Fixes cursor positioning when there are newlines in
9927 overlay strings, e.g. in icomplete.el. (Bug#11035)
9928
9af5ed87
PE
99292012-03-12 Paul Eggert <eggert@cs.ucla.edu>
9930
9931 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
9932
d1f55f16
CY
99332012-03-12 Chong Yidong <cyd@gnu.org>
9934
9935 * eval.c (inhibit_lisp_code): Rename from
9936 inhibit_window_configuration_change_hook; move from window.c.
9937
9938 * xfns.c (unwind_create_frame_1, Fx_create_frame):
9939 * window.c (run_window_configuration_change_hook)
9940 (syms_of_window): Callers changed.
9941
66c5eebd
CY
99422012-03-11 Chong Yidong <cyd@gnu.org>
9943
413df973
CY
9944 * keymap.c (Fkey_description): Doc fix (Bug#9700).
9945
66c5eebd
CY
9946 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
9947
1de11f56
CY
99482012-03-10 Chong Yidong <cyd@gnu.org>
9949
9950 * frame.c (other_visible_frames): Don't assume the selected frame
9951 is visible (Bug#10955).
9952
cae07000
SM
99532012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
9954
9955 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
9956
89c94350
JD
99572012-03-08 Jan Djärv <jan.h.d@swipnet.se>
9958
9959 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
9960 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
9961 zero (Bug#10954).
9962
999dd333
GM
99632012-03-03 Glenn Morris <rgm@gnu.org>
9964
01a6dcc8 9965 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 9966
de0100f2
EZ
99672012-03-02 Eli Zaretskii <eliz@gnu.org>
9968
9969 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
9970 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
9971 (redisplay_window, next_element_from_string): Fix typos in
9972 comments.
3e441275
EZ
9973 (redisplay_window): Pass to move_it_vertically the margin in
9974 pixels, not in screen lines.
de0100f2 9975
96a72ee9
GM
99762012-03-02 Glenn Morris <rgm@gnu.org>
9977
9978 * buffer.c (buffer-list-update-hook): Doc fix.
9979
312508d7
EZ
99802012-02-29 Eli Zaretskii <eliz@gnu.org>
9981
9982 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
9983 push_it before setting up the iterator for the first overlay
9984 string, even if we have an empty string loaded.
9985 (next_overlay_string): If there's an empty string on the iterator
9986 stack, pop the stack. (Bug#10903)
9987
27f3c637
PE
99882012-02-25 Paul Eggert <eggert@cs.ucla.edu>
9989
9990 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
9991 Suggested by Stefan Monnier in
9992 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
9993 * alloc.c (widen_to_Lisp_Object): New static function.
9994 (mark_memory): Also mark Lisp_Objects by fetching pointer words
9995 and widening them to Lisp_Objects. This would work even if
9996 USE_LSB_TAG is defined and wide integers are used, which might
9997 happen in a future version of Emacs.
9998
3c9dfce6
CY
99992012-02-25 Chong Yidong <cyd@gnu.org>
10000
fa74b241
CY
10001 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
10002 Doc fix.
10003
3c9dfce6
CY
10004 * xselect.c (Fx_selection_exists_p): Doc fix.
10005 (x_clipboard_manager_save_all): Print an informative message
10006 before saving to clipboard manager.
10007
9486df08
CY
100082012-02-24 Chong Yidong <cyd@gnu.org>
10009
10010 * keyboard.c (process_special_events): Handle all X selection
10011 requests in kbd_buffer, not just the next one (Bug#8869).
10012
f01d3321
CY
100132012-02-23 Chong Yidong <cyd@gnu.org>
10014
10015 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
10016 call when setting menu-bar-lines and tool-bar-lines parameters.
10017 (unwind_create_frame_1): New helper function.
10018
10019 * window.c (inhibit_window_configuration_change_hook): New var.
10020 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 10021 (syms_of_window): Initialize it.
f01d3321 10022
86b847b6
CY
100232012-02-22 Chong Yidong <cyd@gnu.org>
10024
10025 * xterm.c (x_draw_image_relief): Add missing type check for
10026 Vtool_bar_button_margin (Bug#10743).
10027
a59225b1
CY
100282012-02-21 Chong Yidong <cyd@gnu.org>
10029
10030 * fileio.c (Vfile_name_handler_alist): Doc fix.
10031
10032 * buffer.c (Fget_file_buffer): Protect against invalid file
10033 handler return value.
10034
310f5bd4
PE
100352012-02-20 Paul Eggert <eggert@cs.ucla.edu>
10036
cb3a28cc
PE
10037 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
10038 when computing $valmask.
10039
310f5bd4
PE
10040 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
10041 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
10042 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
10043 It's useless in that case, and it can cause problems on hosts
10044 that allocate halves of EMACS_INT values separately.
10045 Reported by Dan Horák. Diagnosed by Andreas Schwab in
10046 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
10047 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
10048 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
10049 it avoids undefined behavior on hosts where shifting right by more
10050 than the word width has undefined behavior.
10051
2375c96a
CY
100522012-02-19 Chong Yidong <cyd@gnu.org>
10053
10054 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
10055 (Funhandled_file_name_directory, Ffile_name_as_directory)
10056 (Fdirectory_file_name, Fexpand_file_name)
10057 (Fsubstitute_in_file_name): Protect against invalid file handler
10058 return values (Bug#10845).
10059
3eb49e71
EZ
100602012-02-18 Eli Zaretskii <eliz@gnu.org>
10061
10062 * .gdbinit (pitx): Fix incorrect references to fields of the
10063 iterator stack.
10064
7b926f3f
CY
100652012-02-17 Chong Yidong <cyd@gnu.org>
10066
10067 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
10068
11273115
PE
100692012-02-15 Paul Eggert <eggert@cs.ucla.edu>
10070
10071 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
10072 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
10073
c3a70e2b
CY
100742012-02-15 Chong Yidong <cyd@gnu.org>
10075
10076 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
10077 marked as special. Also, starting docstrings with * is obsolete.
10078
0ca43699
AS
100792012-02-13 Andreas Schwab <schwab@linux-m68k.org>
10080
10081 * gnutls.c (emacs_gnutls_write): Fix last change.
10082
2e8f3c56
LI
100832012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
10084
10085 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
10086 send_process.
10087
af70074f
SM
100882012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
10089
10090 * keymap.c (Fsingle_key_description): Handle char ranges.
10091
95986d52
CY
100922012-02-12 Chong Yidong <cyd@gnu.org>
10093
afd83bd1
CY
10094 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
10095 as that creates a dangerous corner case.
10096
95986d52
CY
10097 * window.c (Fdelete_window_internal): Invalidate the mouse
10098 highlight (Bug#9904).
10099
bd7da63e
GM
101002012-02-12 Glenn Morris <rgm@gnu.org>
10101
10102 * xselect.c (Fx_own_selection_internal)
10103 (Fx_get_selection_internal, Fx_disown_selection_internal)
10104 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
10105 * nsselect.m (Fx_own_selection_internal)
10106 (Fx_disown_selection_internal, Fx_selection_exists_p)
10107 (Fx_selection_owner_p, Fx_get_selection_internal):
10108 Sync docs and argument specs with the xselect.c versions.
10109
77abcbc2
LI
101102012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
10111
10112 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
10113
90b671e2
EZ
101142012-02-11 Eli Zaretskii <eliz@gnu.org>
10115
1c0ca0b7
EZ
10116 * w32select.c (Fx_selection_exists_p): Sync doc string and
10117 argument list with xselect.c. (Bug#10783)
10118
10119 * w16select.c (Fx_selection_exists_p): Sync doc string and
10120 argument list with xselect.c. (Bug#10783)
90b671e2 10121
49241268
GM
101222012-02-10 Glenn Morris <rgm@gnu.org>
10123
10124 * fns.c (Fsecure_hash): Doc fix.
10125
f998bbe7 101262012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
10127
10128 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
10129
0992bd9c
CY
101302012-02-07 Chong Yidong <cyd@gnu.org>
10131
10132 * buffer.c (Fbuffer_local_variables)
10133 (buffer_lisp_local_variables): Handle unbound vars correctly;
10134 don't let Qunbound leak into Lisp.
10135
af008560
GM
101362012-02-07 Glenn Morris <rgm@gnu.org>
10137
dd605cc4
GM
10138 * image.c (Fimagemagick_types): Doc fix.
10139
af008560
GM
10140 * image.c (imagemagick-render-type): Change it from a lisp object
10141 to an integer. Move the doc here from the lisp manual.
10142 Treat all values not equal to 0 the same.
10143
1449fa1d
CY
101442012-02-06 Chong Yidong <cyd@gnu.org>
10145
10146 * doc.c (store_function_docstring): Avoid applying docstring of
10147 alias to base function (Bug#2603).
10148
3723ec07
AS
101492012-02-04 Andreas Schwab <schwab@linux-m68k.org>
10150
10151 * .gdbinit (pp1, pv1): Remove redundant defines.
10152 (pr): Use pp.
10153
79c1cc1e
CY
101542012-02-04 Chong Yidong <cyd@gnu.org>
10155
10156 * nsterm.m: Declare a global (Bug#10694).
10157
d7f29f8e
EZ
101582012-02-04 Eli Zaretskii <eliz@gnu.org>
10159
cae07000
SM
10160 * w32.c (get_emacs_configuration_options):
10161 Include --enable-checking, if specified, in the return value.
d7f29f8e 10162
3b95a6f9
MR
101632012-02-04 Martin Rudalics <rudalics@gmx.at>
10164
10165 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
10166 after rounding frame sizes. (Bug#9723)
10167
d6fa96a6
EZ
101682012-02-04 Eli Zaretskii <eliz@gnu.org>
10169
10170 * keyboard.c (adjust_point_for_property): Don't position point
10171 before BEGV. (Bug#10696)
10172
df0b2940
PE
101732012-02-03 Paul Eggert <eggert@cs.ucla.edu>
10174
10175 Handle overflow when computing char display width (Bug#9496).
10176 * character.c (char_width): Return EMACS_INT, not int.
10177 (char_width, c_string_width): Check for overflow when
10178 computing the width; this is possible now that individual
10179 characters can have unbounded width. Problem introduced
10180 by merge from Emacs 23 on 2012-01-19.
10181
6bee44d6
MA
101822012-02-02 Michael Albinus <michael.albinus@gmx.de>
10183
10184 * dbusbind.c (Fdbus_register_method): Mention the return value
10185 :ignore in the docstring.
10186
44f92739
GM
101872012-02-02 Glenn Morris <rgm@gnu.org>
10188
1b9f60cc
GM
10189 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
10190
44f92739
GM
10191 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
10192 Unconditionally set to t. (Bug#10673)
10193 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
10194 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
10195 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
10196
c5d3843c
KH
101972012-02-02 Kenichi Handa <handa@m17n.org>
10198
10199 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
10200 0, do not call append_composite_glyph.
10201
159462d4 102022012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
10203
10204 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
10205 NULL (Bug#6988).
10206 (x_produce_glyphs): If the component of a composition is a null
10207 string, set it->pixel_width to 1 to avoid zero-width glyph.
10208
78cef877
EZ
102092012-02-01 Eli Zaretskii <eliz@gnu.org>
10210
10211 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
10212 first 2 arguments are identical. This makes inserting large
10213 output from a subprocess an order of magnitude faster on
10214 MS-Windows, where all sbrk'ed memory is always contiguous.
10215
97897668
GM
102162012-01-31 Glenn Morris <rgm@gnu.org>
10217
10218 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 10219 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
10220 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
10221
31fd3586
GM
102222012-01-29 Glenn Morris <rgm@gnu.org>
10223
10224 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
10225
0e24a8b2
CY
102262012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
10227
10228 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
10229
cc0adcb0
CY
102302012-01-28 Chong Yidong <cyd@gnu.org>
10231
10232 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
10233
acc28cb9
CY
102342012-01-26 Chong Yidong <cyd@gnu.org>
10235
9c69cfb7
CY
10236 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
10237
acc28cb9
CY
10238 * search.c (Fsearch_forward, Fsearch_backward): Document negative
10239 repeat counts (Bug#10507).
10240
48da7392
GM
102412012-01-26 Glenn Morris <rgm@gnu.org>
10242
10243 * lread.c (syms_of_lread): Doc fix.
10244
14af5f7f
CY
102452012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
10246
10247 * coding.c (encode_designation_at_bol): Change return value to
10248 EMACS_INT.
10249
0b21c100
CY
102502012-01-25 Chong Yidong <cyd@gnu.org>
10251
10252 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
10253
3c2907f7
CY
102542012-01-21 Chong Yidong <cyd@gnu.org>
10255
10256 * floatfns.c (Fcopysign): Make the second argument non-optional,
10257 since nil is not allowed anyway.
10258
959ad23f
AS
102592012-01-21 Andreas Schwab <schwab@linux-m68k.org>
10260
10261 * process.c (read_process_output): Use p instead of XPROCESS (proc).
10262 (send_process): Likewise.
10263
34a02f46
MR
102642012-01-19 Martin Rudalics <rudalics@gmx.at>
10265
10266 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
10267 (Vwindow_persistent_parameters): Do not use Qstate.
10268 Rewrite doc-strings.
34a02f46 10269
1259009a 102702012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
10271
10272 * character.c (char_width): New function.
70d4fdf6
GM
10273 (Fchar_width, c_string_width, lisp_string_width):
10274 Use char_width (Bug#9496).
25ed9e61 10275
6a6ee00d
MR
102762012-01-16 Martin Rudalics <rudalics@gmx.at>
10277
10278 * window.c (Vwindow_persistent_parameters): New variable.
10279 (Fset_window_configuration, save_window_save): Handle persistent
10280 window parameters.
10281
c85efaf7
EZ
102822012-01-14 Eli Zaretskii <eliz@gnu.org>
10283
10284 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
10285 thrashing the stack of the thread. (Bug#9087)
10286
5944709e
PE
102872012-01-12 Paul Eggert <eggert@cs.ucla.edu>
10288
10289 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
10290
e71f5d99
EZ
102912012-01-11 Eli Zaretskii <eliz@gnu.org>
10292
10293 * xdisp.c (rows_from_pos_range): Handle the case where the
10294 highlight ends on a newline. (Bug#10464)
10295 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
10296 he end column for display of highlight that ends on a newline
10297 before a R2L line.
10298
ce316182
GM
102992012-01-11 Glenn Morris <rgm@gnu.org>
10300
10301 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
10302 from load-path also when installation-directory is nil. (Bug#10208)
10303
5b43da69
GM
103042012-01-10 Glenn Morris <rgm@gnu.org>
10305
74cc8ff9
GM
10306 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
10307
7d8d6e4e
GM
10308 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
10309 Update template values to be closer to their typical values these days.
5b43da69 10310
a0db8d43
EZ
103112012-01-09 Eli Zaretskii <eliz@gnu.org>
10312
10313 * xdisp.c (rows_from_pos_range): Accept additional argument
10314 DISP_STRING, and accept any glyph in a row whose object is that
10315 string as eligible for mouse highlight. Fixes mouse highlight of
10316 display strings from overlays. (Bug#10464)
10317
9a0115ab 103182012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 10319
b9110d6a 10320 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
10321 * fileio.c (auto_saving_dir_umask): New static var.
10322 (Fmake_directory_internal): Use it.
10323 (do_auto_save_make_dir): Set it, instead of invoking chmod after
10324 creating the directory. The old code temporarily assigns
10325 too-generous permissions to the directory.
10326 (do_auto_save_eh): Clear it.
b9110d6a 10327 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
10328 that the var is always cleared.
10329
6c1bd3f3
EZ
103302012-01-07 Eli Zaretskii <eliz@gnu.org>
10331
10332 * search.c (scan_buffer): Pass character positions to
10333 know_region_cache, not byte positions. (Bug#6540)
10334
069d2b50
L
103352012-01-07 LynX <_LynX@bk.ru> (tiny change)
10336
10337 * w32.c (sys_rename): Report EXDEV when rename of a directory
10338 fails because the target is on another logical disk. (Bug#10284)
10339
75bf0d33
DB
103402012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
10341
10342 * xterm.c (x_embed_request_focus): New function.
10343
10344 * xterm.h: Add prototype.
10345
10346 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
10347
1c6e5a32
GM
103482012-01-05 Glenn Morris <rgm@gnu.org>
10349
10350 * emacs.c (emacs_copyright): Update short copyright year to 2012.
10351
651e947e
EZ
103522012-01-01 Eli Zaretskii <eliz@gnu.org>
10353
10354 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
10355 Load gnutls_transport_set_lowat only if GnuTLS version is below
10356 2.11.1.
10357 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
10358 GnuTLS versions below 2.11.1.
10359
3778cdd8
AL
103602011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
10361
10362 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
10363 to the doc string advising against its use for altering the way
10364 windows are scrolled.
10365
0e5317f7
KH
103662011-12-28 Kenichi Handa <handa@m17n.org>
10367
10368 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
10369 coding-system ASCII compatible only when it does not produce BOM
10370 on encoding (Bug#10383).
10371
93d5ca1f
JD
103722011-12-26 Jan Djärv <jan.h.d@swipnet.se>
10373
10374 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
10375 can scroll.
10376 (create_and_show_popup_menu): Always use menu_position_func for
10377 Gtk3 (Bug#10361).
10378
ca22b785
AS
103792011-12-24 Andreas Schwab <schwab@linux-m68k.org>
10380
10381 * callint.c (Fcall_interactively): Don't truncate prompt string.
10382
d048e1e6
EZ
103832011-12-23 Eli Zaretskii <eliz@gnu.org>
10384
10385 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
10386 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 10387 resumed from there (after widening). (Bug#10360)
d048e1e6 10388
5ccaba1f
JD
103892011-12-22 Jan Djärv <jan.h.d@swipnet.se>
10390
10391 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
10392
204ee57f
JD
103932011-12-21 Jan Djärv <jan.h.d@swipnet.se>
10394
b81d40f0
JB
10395 * nsterm.m (x_free_frame_resources):
10396 Release f->output_data.ns->miniimage.
204ee57f
JD
10397 (ns_index_color): Fix indentation. Do not retain
10398 color_table->colors[i].
10399
10400 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
10401 before returning.
10402
10403 * nsfns.m (x_set_background_color): Assign return value from
10404 ns_index_color to face-background instead of NSColor*.
10405 (ns_implicitly_set_icon_type): Fix indentation.
10406 Change assignment in for loop to comparison.
10407
10408 * emacs.c (ns_pool): New variable.
10409 (main): Assign ns_pool.
10410 (Fkill_emacs): Call ns_release_autorelease_pool.
10411
10412 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
10413 autorelease fdesc, release fdAttrs and tdict.
10414 (ns_get_covering_families): Release charset.
10415 (ns_findfonts): Release NSFontDescriptor created with new.
10416 (ns_uni_to_glyphs): Fix indentation.
10417 (setString): Release attrStr before assigning new value.
10418
c803b2b7
JD
104192011-12-18 Jan Djärv <jan.h.d@swipnet.se>
10420
678f4426
JD
10421 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
10422 and NS_IMPL_COCOA.
10423 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
10424 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
10425
cd394be1 104262011-12-18 David Reitter <reitter@cmu.edu>
678f4426 10427
5fecd5fc
JD
10428 * nsterm.m (ns_term_init): Subscribe for notifications
10429 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
10430 to method trackingNotification in EmacsMenu.
10431
10432 * nsmenu.m (trackingMenu): New variable.
3771cb17 10433 (trackingNotification): New method (from Aquamacs).
5fecd5fc 10434 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 10435 from Aquamacs (Bug#7030).
678f4426
JD
10436
104372011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 10438
c803b2b7
JD
10439 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
10440 (symbol_to_nsstring): Fix indentation.
10441 (ns_symbol_to_pb): New function.
cae07000
SM
10442 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
10443 (Fns_rotate_cut_buffers_internal): Remove.
10444 (Fns_store_selection_internal): Rename from
c803b2b7
JD
10445 Fns_store_cut_buffer_internal.
10446 (ns_get_foreign_selection, Fx_own_selection_internal)
10447 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
10448 (Fns_get_selection_internal, Fns_store_selection_internal):
10449 Use ns_symbol_to_pb and check if return value is nil.
10450 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
10451 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
10452 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
10453 renamed to Sns_store_selection_internal.
10454 (ns_handle_selection_request): Move code to Fx_own_selection_internal
10455 and remove this function.
10456 (ns_handle_selection_clear): Remove, never used.
10457 (Fx_own_selection_internal): Move code from ns_handle_selection_request
10458 here.
10459
e1b01a3a
KB
104602011-12-17 Ken Brown <kbrown@cornell.edu>
10461
10462 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
10463 GID is unknown (Bug#10257).
10464
2adb6e85
PE
104652011-12-17 Paul Eggert <eggert@cs.ucla.edu>
10466
10467 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
10468 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
10469 which caused a build failure on GNU/Linux IA-64. This problem was
10470 introduced by my 2011-10-07 patch.
10471
d1d7b339
JL
104722011-12-15 Juri Linkov <juri@jurta.org>
10473
10474 * image.c (imagemagick_error): New function. (Bug#10112)
10475 (imagemagick_load_image): Comment out `MagickSetResolution' call.
10476 Use `imagemagick_error' where ImageMagick functions return
10477 `MagickFalse'.
10478 (Fimagemagick_types): Add `Fnreverse' to return the list in the
10479 proper order.
10480
100d5755
KH
104812011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10482
10483 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
10484 fill background (Bug#8992).
10485
454592a6
MR
104862011-12-13 Martin Rudalics <rudalics@gmx.at>
10487
10488 * window.c (Vwindow_combination_resize)
10489 (Vwindow_combination_limit): Use t instead of non-nil in
10490 doc-strings.
61d4b438
MR
10491 (Vrecenter_redisplay): Add first sentence of doc-string on
10492 separate line.
53524d93 10493 (Frecenter): Fix doc-string typo.
454592a6 10494
3633e3aa
KH
104952011-12-11 Kenichi Handa <handa@m17n.org>
10496
10497 * coding.c (Funencodable_char_position): Pay attention to the
10498 buffer text relocation (Bug#9389).
10499
7b9d523a 105002011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 10501
7b9d523a
JD
10502 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
10503 gtk_init (Bug#10100).
10504
b73189c6
EZ
105052011-12-10 Eli Zaretskii <eliz@gnu.org>
10506
10507 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
10508 IT->string is nil. (Bug#10263)
10509
f7dfe5d6
JD
105102011-12-10 Jan Djärv <jan.h.d@swipnet.se>
10511
83faebb4
JD
10512 * nsterm.h (x_free_frame_resources): Declare.
10513
f7dfe5d6
JD
10514 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
10515 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
10516
10517 * nsterm.h (ns_get_defaults_value): Declare.
10518
10519 * nsterm.m (ns_default): Call ns_get_defaults_value.
10520
7cd4e72c
EZ
105212011-12-09 Eli Zaretskii <eliz@gnu.org>
10522
10523 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
10524 (Bug#10170)
10525
b34d7317
YM
105262011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10527
10528 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
10529 that where the value of an _OBJC_* symbol points to is in the .bss
10530 section (Bug#10240).
10531
76470ad1
KH
105322011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
10533
10534 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 10535 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 10536
745fff94
KH
105372011-12-08 Kenichi Handa <handa@m17n.org>
10538
10539 * ftfont.c (get_adstyle_property): Fix previous change
10540 (Bug#10233).
10541
6e44397c
JB
105422011-12-07 Juanma Barranquero <lekktu@gmail.com>
10543
10544 * w32.c (init_environment): If no_site_lisp, remove site-lisp
10545 dirs from the default value of EMACSLOADPATH (bug#10208).
10546
7efa6272
GM
105472011-12-07 Glenn Morris <rgm@gnu.org>
10548
10549 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
10550 installation and source directories as well. (Bug#10208)
10551
f6fc4d87
CY
105522011-12-06 Chong Yidong <cyd@gnu.org>
10553
10554 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
10555
2bf26180
GM
105562011-12-06 Glenn Morris <rgm@gnu.org>
10557
10558 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
10559 as an error, not just -1. (Bug#10217)
10560
3a6ad4f0
CY
105612011-12-05 Chong Yidong <cyd@gnu.org>
10562
10563 * keyboard.c (process_special_events): New function.
10564 (swallow_events, Finput_pending_p): Use it (Bug#10195).
10565
75a3b399
PE
105662011-12-05 Paul Eggert <eggert@cs.ucla.edu>
10567
10568 * coding.c (encode_designation_at_bol): Don't use uninitialized
10569 local variable (Bug#9318).
10570
c3c9e25e
KH
105712011-12-05 Kenichi Handa <handa@m17n.org>
10572
10573 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
10574 return Qnil (Bug#8046, Bug#10193).
10575
5eb05ea3
KH
105762011-12-05 Kenichi Handa <handa@m17n.org>
10577
10578 * coding.c (encode_designation_at_bol): New args charbuf_end and
10579 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
10580 (coding_set_source): Return how many bytes coding->source was
10581 relocated.
10582 (coding_set_destination): Return how many bytes
10583 coding->destination was relocated.
10584 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 10585 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
10586
105872011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
10588
10589 * coding.c (CODING_CHAR_CHARSET_P): New macro.
10590 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
10591 macro (Bug#9318).
10592
105932011-12-05 Andreas Schwab <schwab@linux-m68k.org>
10594
10595 The following changes are to fix Bug#9318.
10596
a79703f5 10597 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
10598 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
10599 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 10600 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 10601
7dbda6df
JB
106022011-12-05 Juanma Barranquero <lekktu@gmail.com>
10603
10604 * lisp.h (process_quit_flag): Fix external declaration.
10605
6d5eb5b0
SM
106062011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
10607
10608 Don't macro-inline non-performance-critical code.
10609 * eval.c (process_quit_flag): New function.
10610 * lisp.h (QUIT): Use it.
10611
a0c3fad0
JD
106122011-12-04 Jan Djärv <jan.h.d@swipnet.se>
10613
10614 * nsfns.m (get_geometry_from_preferences): New function.
10615 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
10616
6c07aac2
AS
106172011-12-04 Andreas Schwab <schwab@linux-m68k.org>
10618
10619 * emacs.c (Qkill_emacs): Define.
10620 (syms_of_emacs): Initialize it.
10621 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
10622 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
10623 (quit_throw_to_read_char): Add parameter `from_signal'.
10624 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
10625 * lisp.h (QUIT): Call Fkill_emacs if requested.
10626
c052ead4
JD
106272011-12-03 Jan Djärv <jan.h.d@swipnet.se>
10628
10629 * widget.c (update_wm_hints): Return if wmshell is null.
10630 (widget_update_wm_size_hints): New function.
10631
10632 * widget.h (widget_update_wm_size_hints): Declare.
10633
10634 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
10635 widget_update_wm_size_hints (Bug#10104).
10636
9e49252b
EZ
106372011-12-03 Eli Zaretskii <eliz@gnu.org>
10638
10639 * xdisp.c (handle_invisible_prop): If the invisible text ends just
10640 before a newline, prepare the bidi iterator for consuming the
10641 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 10642 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 10643
02b16839
JL
106442011-12-02 Juri Linkov <juri@jurta.org>
10645
10646 * search.c (Fword_search_regexp): New Lisp function created from
10647 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
10648 (Fword_search_backward, Fword_search_forward)
10649 (Fword_search_backward_lax, Fword_search_forward_lax):
10650 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
10651 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
10652
0068070e
SM
106532011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
10654
10655 * fileio.c (Finsert_file_contents): Move after-change-function call
10656 to before the "handled:" label, since all "goto handled" appear in
10657 cases where the *-change-functions have already been properly called
10658 (bug#10117).
10659
3360a3fc
AS
106602011-12-01 Andreas Schwab <schwab@linux-m68k.org>
10661
10662 * keyboard.c (interrupt_signal): Don't call kill-emacs when
10663 waiting for input. (Bug#10169)
10664
73d6c093
EZ
106652011-11-30 Eli Zaretskii <eliz@gnu.org>
10666
10667 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
10668 verifies glyph row's hash code--we have just reallocated the
10669 glyphs, so their contents can be complete garbage. (Bug#10164)
10670
febe6bea
JB
106712011-11-30 Juanma Barranquero <lekktu@gmail.com>
10672
10673 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
10674
801a4313
EZ
106752011-11-30 Eli Zaretskii <eliz@gnu.org>
10676
10677 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
10678 attributes are tested _before_ calling verify_row_hash, to protect
10679 against GCC re-ordering of the tests. (Bug#10164)
10680
2b56b87e
JD
106812011-11-29 Jan Djärv <jan.h.d@swipnet.se>
10682
10683 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
10684
10685 * xterm.c (handle_one_xevent): Only set async_visible and friends
10686 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 10687 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
10688 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
10689
dbf31225
PE
106902011-11-28 Paul Eggert <eggert@cs.ucla.edu>
10691
10692 Remove GCPRO-related macros that exist only to avoid shadowing locals.
10693 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
10694 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
10695 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
10696 All uses changed to use GCPRO1 etc.
10697 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
10698 Revert to old implementation (i.e., before 2011-03-11).
10699
1305621b
YM
107002011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10701
10702 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
10703 of scroll runs so as to avoid assigning disabled bogus rows and
10704 unnecessary graphics copy operations.
10705
8c9afb46
EZ
107062011-11-27 Eli Zaretskii <eliz@gnu.org>
10707
10708 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
10709 (snprintf) [_MSC_VER]: Redirect to _snprintf.
10710 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
10711 (malloc, free, realloc, calloc): Redirect to e_* only when
10712 compiling Emacs.
10713
10714 * lisp.h (GCTYPEBITS): Move before first use.
10715 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
10716 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
10717 this macro definition.
10718
10719 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
10720 _MSC_VER.
10721
54e9e3bf
JD
107222011-11-27 Jan Djärv <jan.h.d@swipnet.se>
10723
6d5eb5b0
SM
10724 * gtkutil.c (xg_create_frame_widgets):
10725 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
10726 present with Gtk+ 2.0.
10727
83aca1cb
PE
107282011-11-26 Paul Eggert <eggert@cs.ucla.edu>
10729
10730 * fileio.c (Finsert_file_contents): Undo previous change; see
10731 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
10732
5b76caa4
PE
107332011-11-26 Paul Eggert <eggert@cs.ucla.edu>
10734
10735 Rename locals to avoid shadowing.
10736 * fileio.c (Finsert_file_contents):
10737 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
10738 * process.c (wait_reading_process_output):
10739 Rename inner 'proc' to 'p' to avoid shadowing.
10740 Indent for consistency with usual Emacs style.
10741
8c535114
EZ
107422011-11-25 Eli Zaretskii <eliz@gnu.org>
10743
10744 * xdisp.c (redisplay_window): If cursor row is not fully visible
10745 after recentering, and scroll-conservatively is set to a large
10746 number, scroll window by a few more lines to make the cursor fully
10747 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
10748 (start_display): Don't move to the next line if the display should
10749 start at a newline that is part of a display vector or an overlay
10750 string. (Bug#10119)
8c535114 10751
fa4fdb5c
JL
107522011-11-24 Juri Linkov <juri@jurta.org>
10753
10754 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
10755 after the `MagickPingImage' call. (Bug#10112)
10756
90ec88df
CY
107572011-11-23 Chong Yidong <cyd@gnu.org>
10758
10759 * window.c (Fcoordinates_in_window_p): Accept only live windows.
10760
56e2e794
MR
107612011-11-23 Martin Rudalics <rudalics@gmx.at>
10762
10763 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
10764 making another buffer current. (Bug#10114)
10765
b6e64c41
GM
107662011-11-23 Glenn Morris <rgm@gnu.org>
10767
10768 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
10769
6b21de18
CY
107702011-11-23 Chong Yidong <cyd@gnu.org>
10771
10772 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
10773 using it (Bug#5984).
10774
b12cd789
EZ
107752011-11-22 Eli Zaretskii <eliz@gnu.org>
10776
10777 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
10778 and header-lines, as they don't have one computed for them.
10779 (Bug#10098)
10780
10781 * .gdbinit (prow): Make displayed values more self-explaining.
10782 Add row's hash code.
10783
261b6fd4
LMI
107842011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
10785
10786 * process.c (wait_reading_process_output): Fix asynchrounous
10787 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 10788 (wait_reading_process_output): Add comment and URL.
261b6fd4 10789
e7cfd277
JD
107902011-11-21 Jan Djärv <jan.h.d@swipnet.se>
10791
10792 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
10793
a9b9b7f5
CY
107942011-11-21 Chong Yidong <cyd@gnu.org>
10795
10796 * window.c (Fnext_window, Fprevious_window): Doc fix.
10797
b0d15b4f
SM
107982011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
10799
10800 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
10801
fe7a3057
JB
108022011-11-20 Juanma Barranquero <lekktu@gmail.com>
10803
10804 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
10805
d2999b1a
MR
108062011-11-20 Martin Rudalics <rudalics@gmx.at>
10807
10808 * window.c (Fset_window_combination_limit): Rename argument
10809 STATUS to LIMIT.
10810 (Vwindow_combination_limit): Remove "status" from doc-string.
10811
d5ff9cd0
AS
108122011-11-20 Andreas Schwab <schwab@linux-m68k.org>
10813
10814 * m/ibms390.h: Remove.
10815 * m/ibms390x.h: Don't include "ibms390.h".
10816
a5bb9bd3
SM
108172011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
10818
10819 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
10820 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
10821
cd1181db
JB
108222011-11-20 Juanma Barranquero <lekktu@gmail.com>
10823
10824 * casetab.c (Fset_case_table):
10825 * charset.c (Fcharset_after): Fix typos.
10826
615a3b8d 108272011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 10828
17e845af
PE
10829 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
10830 Otherwise, valgrind does not work on some platforms.
10831 Problem reported by Andreas Schwab in
6a0bf43d
PE
10832 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
10833 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
10834 is set, removing the need for VIRT_ADDRESS_VARIES.
10835 (PURE_P): Use a more-efficient implementation that needs just one
10836 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
10837 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
10838 to 4 (xorl, subq, cmpq, setbe).
10839 * alloc.c (pure): Always extern now, since that's the
10840 VIRT_ADDR_VARIES behavior.
10841 (PURE_POINTER_P): Use a single comparison, not two, for
10842 consistency with the new puresize.h.
10843 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
10844 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
10845 Remove VIRT_ADDR_VARIES no longer needed.
10846
f8fe6f96
EZ
108472011-11-19 Eli Zaretskii <eliz@gnu.org>
10848
10849 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
10850 (erase_phys_cursor, update_window_cursor, show_mouse_face)
10851 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
10852 behave as if the cursor position were at the window margin.
10853
10854 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
10855 and the cursor position is out of bounds, behave as if the cursor
10856 position were at the window margin. (Bug#10075)
10857
df05a53c
CY
108582011-11-18 Chong Yidong <cyd@gnu.org>
10859
10860 * window.c (Fwindow_combination_limit): Make first argument
10861 non-optional, since it is meaningless for live windows like the
10862 selected window.
61ccba97 10863
2071918e
DA
108642011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
10865
10866 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
10867
b50a28de
SM
108682011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
10869
10870 * intervals.c: Fix grafting over the whole buffer (bug#10071).
10871 (graft_intervals_into_buffer): Simplify.
10872
015137db
EZ
108732011-11-18 Eli Zaretskii <eliz@gnu.org>
10874
10875 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
10876 hash values of the two rows.
10877 (copy_row_except_pointers): Preserve the used[] arrays and the
10878 hash values of the two rows. (Bug#10035)
68c95424 10879 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
10880
10881 * xdisp.c (row_hash): New function, body extracted from
10882 compute_line_metrics.
10883 (compute_line_metrics): Call row_hash, instead of computing the
10884 hash code inline.
10885
10886 * dispnew.c (verify_row_hash): Call row_hash for computing the
10887 hash code of a row, instead of duplicating code from xdisp.c.
10888
10889 * dispextern.h (row_hash): Add prototype.
10890
a2addb04
TH
108912011-11-18 Tassilo Horn <tassilo@member.fsf.org>
10892
10893 * frame.c (delete_frame): Don't delete the terminal when the last
10894 X frame is closed if emacs is built with GTK toolkit.
10895
df85d315
JB
108962011-11-17 Juanma Barranquero <lekktu@gmail.com>
10897
10898 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
10899
a0c2d0ae
MR
109002011-11-17 Martin Rudalics <rudalics@gmx.at>
10901
10902 * window.c (Vwindow_splits): Rename to
10903 Vwindow_combination_resize. Suggested by Juri Linkov.
10904 (Fsplit_window_internal): Use Vwindow_combination_resize instead
10905 of Vwindow_splits.
10906
58179cce
JB
109072011-11-16 Juanma Barranquero <lekktu@gmail.com>
10908
7877f373
JB
10909 * nsfns.m (Fns_font_name):
10910 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 10911
b6f67890
MR
109122011-11-16 Martin Rudalics <rudalics@gmx.at>
10913
10914 * window.h (window): Rename slot "nest" to "combination_limit".
10915 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
10916 (Fset_window_nest): Rename to Fset_window_combination_limit.
10917 (Vwindow_nest): Rename to Vwindow_combination_limit.
10918 (recombine_windows, make_parent_window, make_window)
10919 (Fsplit_window_internal, saved_window)
10920 (Fset_window_configuration, save_window_save): Rename all
10921 occurrences of window_nest to window_combination_limit.
10922
c7015153
JB
109232011-11-15 Juanma Barranquero <lekktu@gmail.com>
10924
10925 * image.c (imagemagick_load_image): Fix typo.
10926
322ad6ec
EZ
109272011-11-14 Eli Zaretskii <eliz@gnu.org>
10928
10929 * xdisp.c (display_line): Move the call to
10930 highlight_trailing_whitespace before the call to
10931 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
10932 faces of all the glyphs to compute ROW's hash value.
10933 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 10934
f067b8ec
JB
109352011-11-14 Juanma Barranquero <lekktu@gmail.com>
10936
10937 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
10938 just return (bug#10044).
10939
1e5b2111
EZ
109402011-11-12 Eli Zaretskii <eliz@gnu.org>
10941
7ef3cbd5
EZ
10942 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
10943 with user-defined heap size. Bump the default size of the temacs
10944 heap to 27MB, to avoid memory warning when running temacs.
10945 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
10946
1e5b2111
EZ
10947 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
10948 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
10949 (verify_row_hash) [XASSERTS]: New function.
10950 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
10951 that the hash value of glyph rows is correct.
1e5b2111 10952
89d61221
MR
109532011-11-12 Martin Rudalics <rudalics@gmx.at>
10954
10955 * window.h (window): Remove splits slot.
10956 * window.c (Fwindow_splits, Fset_window_splits): Remove.
10957 (Fdelete_other_windows_internal, make_parent_window)
10958 (make_window, Fsplit_window_internal, Fdelete_window_internal)
10959 (Fset_window_configuration, save_window_save): Don't deal with
10960 split status of windows.
10961 (saved_window): Remove splits slot.
10962 (Vwindow_splits): Rewrite doc-string.
10963
97f18cc8
JD
109642011-11-11 Jan Djärv <jan.h.d@swipnet.se>
10965
10966 * xfns.c (unwind_create_frame):
10967 * nsfns.m (unwind_create_frame):
10968 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
10969 Vframe_list (Bug#9999).
10970
22a648b4
DA
109712011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
10972
0b381c7e 10973 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 10974
659afede
KH
109752011-11-11 Kenichi Handa <handa@m17n.org>
10976
10977 * callproc.c (Fcall_process): Set the member dst_multibyte of
10978 process_coding.
10979
9ac0394b
KH
109802011-11-11 Johan Bockgård <bojohan@gnu.org>
10981
10982 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
10983 avoid a crash (bug#9496).
10984
2fbdc249
CY
109852011-11-09 Chong Yidong <cyd@gnu.org>
10986
10987 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
10988 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
10989
ac6b1f81
PE
109902011-11-08 Paul Eggert <eggert@cs.ucla.edu>
10991
10992 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
10993
09db192c
PE
109942011-11-08 Paul Eggert <eggert@cs.ucla.edu>
10995
10996 Avoid some portability problems by eschewing 'extern inline' functions.
10997 The trivial performance wins aren't worth the portability hassles; see
10998 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
10999 et seq.
11000 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
11001 (window_box_width, window_box_left, window_box_left_offset)
11002 (window_box_right, window_box_right_offset): Undo previous change,
11003 by removing the "extern"s.
11004 * intervals.c (adjust_intervals_for_insertion)
11005 (adjust_intervals_for_deletion): Undo previous change,
11006 making these static again.
11007 (offset_intervals, temp_set_point_both, temp_set_point)
11008 (copy_intervals_to_string): No longer inline.
11009 * xdisp.c (window_text_bottom_y, window_box_width)
11010 (window_box_height, window_box_left_offset)
11011 (window_box_right_offset, window_box_left, window_box_right)
11012 (window_box): No longer inline.
11013
105216ed
CY
110142011-11-08 Chong Yidong <cyd@gnu.org>
11015
11016 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
11017 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
11018 Signal an error if not a live window.
105216ed
CY
11019 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
11020 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
11021
ae9e237f
JB
110222011-11-07 Juanma Barranquero <lekktu@gmail.com>
11023
11024 * lisp.h (syms_of_abbrev): Remove declaration.
11025 Reported by CHENG Gao <chenggao@royau.me>.
11026
c7aa8333
EZ
110272011-11-07 Eli Zaretskii <eliz@gnu.org>
11028
11029 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
11030 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
11031 of temacs in GUI mode.
11032
be7f5545
MR
110332011-11-07 Martin Rudalics <rudalics@gmx.at>
11034
11035 * window.h: Declare delete_all_child_windows instead of
11036 delete_all_subwindows.
11037 * window.c (Fwindow_nest, Fset_window_nest)
11038 (Fset_window_new_total, Fset_window_new_normal)
11039 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
11040 (delete_all_subwindows): Rename to delete_all_child_windows.
11041 (Fdelete_other_windows_internal, Fset_window_configuration):
11042 Call delete_all_child_windows instead of delete_all_subwindows.
11043 * frame.c (delete_frame): Call delete_all_child_windows instead
11044 of delete_all_subwindows.
11045
ca78dc43
PE
110462011-11-07 Paul Eggert <eggert@cs.ucla.edu>
11047
11048 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
11049 This is also needed for porting to any host where GC_MARK_STACK is
11050 not GC_MAKE_GCPROS_NOOPS.
11051 (which_symbols): Use it.
11052
a0241d01
KH
110532011-11-07 Kenichi Handa <handa@m17n.org>
11054
11055 * coding.c (coding_set_destination): Check coding->src_pos only
11056 when coding->src_object is a buffer (bug#9910).
11057
11058 * process.c (send_process): Set the member src_multibyte of coding
11059 to 0 (bug#9911) when sending a unibyte text.
11060
11061 * callproc.c (Fcall_process): Set the member src_multibyte of
11062 process_coding to 0 (bug#9912).
11063
a64bfdfa 110642011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
11065
11066 * xmenu.c (cleanup_widget_value_tree): New function.
11067 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
11068 calling free_menubar_widget_value_tree directly (Bug#9830).
11069
cb41b32a
PE
110702011-11-06 Paul Eggert <eggert@cs.ucla.edu>
11071
11072 Fix some portability problems with 'inline'.
11073 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
11074 (window_box_width, window_box_left, window_box_left_offset)
11075 (window_box_right, window_box_right_offset): Declare extern.
11076 Otherwise, these inline functions do not conform to C99 and
11077 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
11078 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
11079 * intervals.c (adjust_intervals_for_insertion)
11080 (adjust_intervals_for_deletion): Now extern, because otherwise the
11081 extern inline functions 'offset_intervals' couldn't refer to it.
11082 (static_offset_intervals): Remove.
11083 (offset_intervals): Rewrite using the old contents of
11084 static_offset_intervals. The old version didn't conform to C99
11085 because an extern inline function contained a reference to an
11086 identifier with static linkage.
11087
b7041366
AS
110882011-11-06 Andreas Schwab <schwab@linux-m68k.org>
11089
11090 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
11091 GC.
11092
88a37c4d
EZ
110932011-11-06 Eli Zaretskii <eliz@gnu.org>
11094
11095 * xdisp.c (init_iterator, reseat_to_string): Don't set the
11096 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
11097 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
11098 return Qleft_to_right.
11099
49745b39
CY
111002011-11-06 Chong Yidong <cyd@gnu.org>
11101
11102 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
11103 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
11104 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
11105 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
11106 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
11107 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
11108 (Fwindow_vscroll): Doc fix.
11109 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
11110 argument, since it makes no sense to pass a live window and for
11111 consistency with window-child.
11112
1f05cd82
CS
111132011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
11114
11115 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
11116 support MSVC.
11117
22610910
JR
111182011-11-05 Jason Rumney <jasonr@gnu.org>
11119
11120 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
11121 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
11122 fonts (Bug#6029).
11123 (add_font_entity_to_list): Fix logic errors in mixed boolean and
11124 bitwise arithmetic preventing use of unicode-sip and non-truetype
11125 opentype fonts.
11126
a06776b2
EZ
111272011-11-05 Eli Zaretskii <eliz@gnu.org>
11128
3ad924ba
EZ
11129 * s/ms-w32.h (fstat, stat, utime): Move redirections to
11130 "emacs"-only part.
11131
a06776b2
EZ
11132 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
11133 initialization code to keep similarity to xfns.c after changes
11134 from 2011-11-05.
11135
c9e7db78
JD
111362011-11-05 Jan Djärv <jan.h.d@swipnet.se>
11137
a97f8f3f
JD
11138 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
11139 (unwind_create_frame): New function (Bug#9943).
11140 (Fx_create_frame): Restructure code to be more similar to the one in
11141 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
11142 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
11143 Move terminal->reference_count++ just before making the frame official
11144 (Bug#9943).
11145
11146 * nsterm.m (x_free_frame_resources): New function.
11147 (x_destroy_window): Move code to x_free_frame_resources.
11148
c9e7db78 11149 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
11150 (Fx_create_frame, x_create_tip_frame):
11151 Move terminal->reference_count++ just before making the frame
75f1671a 11152 official. Move initialization of image_cache_refcount and
c9e7db78
JD
11153 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
11154
a6fc3b5c
EZ
111552011-11-05 Eli Zaretskii <eliz@gnu.org>
11156
11157 Support MSVC build with newer versions of Visual Studio.
11158 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
11159 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
11160 nt/gmake.defs.
11161
11162 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
11163 which are not supported by MSVC.
11164 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
11165 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
11166 bitfields.
11167 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
11168 types in bitfields.
11169 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
11170
11171 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
11172
58179cce 111732011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
11174
11175 Support MSVC build with newer versions of Visual Studio.
11176 * w32.c: Don't include w32api.h for MSVC.
11177 (init_environment) [_MSC_VER]: Call sys_access, not _access.
11178
11179 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
11180 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
11181 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
11182 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
11183 e_* cousins.
11184 (alloca) [_MSC_VER]: Define to _alloca.
11185
11186 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
11187
11188 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
11189
a58c13ed
EZ
111902011-11-04 Eli Zaretskii <eliz@gnu.org>
11191
11192 * xdisp.c (note_mouse_highlight): If either of
11193 previous/next-single-property-change returns nil, treat that as
11194 the beginning or the end of the buffer. (Bug#9955)
11195
fe0b6370
JD
111962011-11-04 Jan Djärv <jan.h.d@swipnet.se>
11197
a58c13ed 11198 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
11199 label is not null (Bug#9951).
11200 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
11201 may be NULL.
11202
89bd5ee1
EZ
112032011-11-04 Eli Zaretskii <eliz@gnu.org>
11204
11205 * window.c (Fwindow_body_size): Mention in the doc string that the
11206 return value is in frame's canonical units. (Bug#9949)
11207
84c3edb9
EZ
112082011-11-03 Eli Zaretskii <eliz@gnu.org>
11209
4e2fb5c7
EZ
11210 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
11211
84c3edb9 11212 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 11213 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 11214 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 11215
bc17a887
EZ
112162011-11-01 Eli Zaretskii <eliz@gnu.org>
11217
11218 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
11219 Don't stop backward scan on the continuation glyph, even though
11220 its CHARPOS is positive.
6d5eb5b0
SM
11221 (mouse_face_from_buffer_pos, note_mouse_highlight):
11222 Rename cover_string to disp_string.
bc17a887 11223
4ee88440
MR
112242011-11-01 Martin Rudalics <rudalics@gmx.at>
11225
11226 * window.c (temp_output_buffer_show): Don't use
11227 Vtemp_buffer_show_specifiers.
11228 (Vtemp_buffer_show_specifiers): Remove unused variable.
11229
c2ff3c02
EZ
112302011-10-30 Eli Zaretskii <eliz@gnu.org>
11231
11232 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
11233 past the beginning of the current glyph matrix.
11234
58179cce 112352011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
11236
11237 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
11238 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
11239 HAVE_GTK3 (Bug#9869).
b77a6a7f 11240
3b574623
JD
11241 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
11242 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
11243
b77a6a7f
JD
11244 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
11245
11246 * xterm.c: Declare x_handle_net_wm_state to return int.
11247 (handle_one_xevent): Check if we are iconified but don't have
11248 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
11249 (get_current_wm_state): Return non-zero if not hidden,
11250 check for _NET_WM_STATE_HIDDEN (Bug#9893).
11251 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
11252 (x_handle_net_wm_state): Return what get_current_wm_state returns.
11253 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
11254
196e41e4
PE
112552011-10-29 Paul Eggert <eggert@cs.ucla.edu>
11256
11257 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
11258 so that this new function doesn't get optimized away by a
11259 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
11260
021f2e1a
AS
112612011-10-29 Andreas Schwab <schwab@linux-m68k.org>
11262
11263 * frame.h (MOUSE_HL_INFO): Remove excess parens.
11264
8b058d44
EZ
112652011-10-29 Eli Zaretskii <eliz@gnu.org>
11266
11267 Fix the `xbytecode' command.
11268 * .gdbinit (xprintbytestr): New command.
b50a28de 11269 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
11270 (xbytecode): Print the byte-code string as well.
11271
4452fb80
EZ
112722011-10-29 Kim Storm <storm@cua.dk>
11273
8b058d44
EZ
11274 * alloc.c (which_symbols): New function.
11275
21b72067
AS
112762011-10-29 Andreas Schwab <schwab@linux-m68k.org>
11277
11278 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
11279 line. (Bug#9903)
11280
83ed7b5c
GM
112812011-10-29 Glenn Morris <rgm@gnu.org>
11282
11283 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
11284 Not clear what it was for, and it causes various bugs. (Bug#9839)
11285
5a7a728b
EZ
112862011-10-28 Eli Zaretskii <eliz@gnu.org>
11287
11288 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
11289 possible random value that matches one of those tested as
11290 condition to clear the mouse face.
11291
d3d0842f
CY
112922011-10-28 Chong Yidong <cyd@gnu.org>
11293
11294 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
11295
31b39d13
DN
112962011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
11297
11298 * window.c (make_window): Initialize phys_cursor_on_p.
11299
9aba6043
SM
113002011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
11301
11302 * lisp.h (struct Lisp_Symbol): Update comments.
11303
c20992f4
JB
113042011-10-28 Juanma Barranquero <lekktu@gmail.com>
11305
11306 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
11307
db4f02f2
EZ
113082011-10-28 Eli Zaretskii <eliz@gnu.org>
11309
11310 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
11311 <oslsachem@gmail.com> for helping to debug this.
11312
11313 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
11314 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
11315 (g_b_init_get_glyph_outline_w): New static variables.
11316 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
11317 (GetGlyphOutlineW_Proc): New typedefs.
11318 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
11319 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
11320 New functions.
11321 (w32font_open_internal, compute_metrics):
11322 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
11323 instead of calling the "wide" APIs directly.
11324
11325 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
11326
11327 * w32.h (syms_of_w32font): Add prototype.
11328
87e68db4
JB
113292011-10-27 Juanma Barranquero <lekktu@gmail.com>
11330
11331 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
11332 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
11333 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
11334 (Fmove_to_window_line): Doc fix.
11335
435c1d67
CY
113362011-10-27 Chong Yidong <cyd@gnu.org>
11337
11338 * process.c (make_process): Set gnutls_state to NULL.
11339
11340 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
11341 non-NULL, regardless of GNUTLS_INITSTAGE.
11342 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
11343 an error. Set process slots as soon as we allocate them.
11344
11345 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
11346
9c6c6f49
CY
113472011-10-27 Chong Yidong <cyd@gnu.org>
11348
9aba6043
SM
11349 * gnutls.c (emacs_gnutls_deinit): New function.
11350 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
11351 (Fgnutls_deinit, Fgnutls_boot): Use it.
11352
11353 * process.c (make_process): Initialize GnuTLS credentials to NULL.
11354 (deactivate_process): Call emacs_gnutls_deinit.
11355
657d08d3
JB
113562011-10-27 Juanma Barranquero <lekktu@gmail.com>
11357
11358 * image.c (x_create_x_image_and_pixmap):
11359 * w32.c (sys_rename, w32_delayed_load):
11360 * w32font.c (fill_in_logfont):
11361 * w32reg.c (x_get_string_resource): Silence compiler warnings.
11362
5430d399
JB
113632011-10-26 Juanma Barranquero <lekktu@gmail.com>
11364
11365 * w32fns.c (w32_default_color_map): New function,
11366 extracted from Fw32_default_color_map.
a7ef684b 11367 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 11368
fe0055fa
PE
113692011-10-25 Paul Eggert <eggert@cs.ucla.edu>
11370
11371 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
11372
e6346438
SM
113732011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
11374
11375 * keyboard.c (test_undefined): New function (bug#9751).
11376 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
11377
e112cc37
ET
113782011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
11379
11380 * sysdep.c (init_sys_modes): Fix the check for the controlling
11381 terminal (Bug#6649).
11382
7b5d6677
EZ
113832011-10-20 Eli Zaretskii <eliz@gnu.org>
11384
11385 * dispextern.h (struct bidi_it): New member next_en_type.
11386
11387 * bidi.c (bidi_line_init): Initialize the next_en_type member.
11388 (bidi_resolve_explicit_1): When next_en_pos is valid for the
11389 current character, check also for next_en_type being WEAK_EN.
11390 (bidi_resolve_weak): Don't enter the expensive loop if the current
11391 position is before next_en_pos. Record the bidi type of the first
11392 non-ET, non-BN character we find, in addition to its position.
11393 (bidi_level_of_next_char): Invalidate next_en_type when
11394 next_en_pos is over-stepped.
11395
7da0b018
PE
113962011-10-20 Paul Eggert <eggert@cs.ucla.edu>
11397
11398 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
11399 * editfns.c: Rewrite current-time-zone so that it invokes
11400 the equivalent of (format-time-string "%Z") to get the time zone name.
11401 This fixes a bug when the time zone name contains characters that
11402 need converting from the system time locale to Emacs internal format.
11403 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
11404 that patch fixed format-time-string to do the conversion, but
11405 I forgot to fix current-time-zone.
11406 (format_time_string): New function, containing most of
11407 what Fformat_time_string used to contain.
11408 (Fformat_time_string): Rewrite in terms of format_time_string.
11409 This doesn't change this function's behavior.
11410 (current-time-zone): Rewrite to use format_time_string.
11411 This fixes the bug reported by Michael Schierl in
11412 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
11413 Jason Rumney's 2007-06-07 change worked around this bug, but
11414 didn't fix it.
11415 * systime.h (tzname, timezone): Remove no-longer-used declarations.
11416
8547b010
EZ
114172011-10-19 Eli Zaretskii <eliz@gnu.org>
11418
11419 * xdisp.c (start_display): If the character at POS is displayed
11420 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
11421 (try_window_reusing_current_matrix): If a line ends in a display
11422 vector or the next line starts in a display vector, continue
11423 redrawing the window even though the character position of
11424 start_row was reached.
8547b010
EZ
11425 (Bug#9771, part 2)
11426
4e948d15
CY
114272011-10-18 Chong Yidong <cyd@gnu.org>
11428
11429 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
11430 with nobreak-char-display too.
11431
4787455f
EZ
114322011-10-18 Eli Zaretskii <eliz@gnu.org>
11433
11434 Fix part 3 of bug#9771.
11435 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
11436 (bidi_resolve_neutral): Don't enter the expensive loop looking for
11437 non-neutral characters if the current character is a paragraph
11438 separator (a.k.a. Newline). This avoids running the same
11439 expensive loop twice, once when we consume the preceding newline
11440 and the other time when the line actually needs to be displayed.
11441 Avoid the loop when we see neutrals on the base embedding level
11442 following a character whose directionality is the same as the
11443 paragraph's. This avoids running the expensive loop when a line
11444 ends in a long sequence of neutrals, like control characters.
11445 Add assertion against STRONG_AL type. Slightly rearrange code
11446 that determines the type of a neutral given the first non-neutral
11447 that follows it.
11448 (bidi_level_of_next_char): Set next_en_pos to zero when
11449 invalidating its info.
11450
2c91f553
EZ
114512011-10-17 Eli Zaretskii <eliz@gnu.org>
11452
11453 * xdisp.c (push_display_prop): Determine whether to record string
11454 or buffer position by IT->string, not by IT->method. Allow
11455 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
11456 (move_it_vertically_backward): Don't look for character position
11457 immediately after the newline when in a continuation line.
11458 (Bug#9771, part 1)
2c91f553 11459
c7b08b0d
MR
114602011-10-15 Martin Rudalics <rudalics@gmx.at>
11461
11462 * window.c (coordinates_in_window): Rewrite and delabelize
11463 vertical border check. (Bug#5357) (Bug#9618)
11464
6b02f655
SM
114652011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
11466
11467 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
11468 errors in XSetWindowBorder (bug#9310).
11469
81d40c92
DA
114702011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
11471
11472 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
11473 avoid crash when xmalloc overrun checking is enabled.
11474
d4172c3b
EZ
114752011-10-13 Eli Zaretskii <eliz@gnu.org>
11476
11477 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
11478 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
11479 cursor motion with <left> and <right> arrow keys.
11480
11481 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
11482 some callers set that themselves.
11483
b00eea75
EZ
114842011-10-12 Eli Zaretskii <eliz@gnu.org>
11485
11486 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
11487 display string and the previous row comes from the same string and
11488 is empty. (Bug#9739) (Bug#9738)
11489
8fe012c4
SM
114902011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
11491
11492 * doc.c (get_doc_string): Encode file name (bug#9735).
11493
0074aef2
EZ
114942011-10-12 Eli Zaretskii <eliz@gnu.org>
11495
79beb178
EZ
11496 * bidi.c (bidi_level_of_next_char):
11497 * xdisp.c (get_visually_first_element): Remove old incorrect
11498 comments regarding the Unicode Line Separator character.
11499
0074aef2
EZ
11500 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
11501
6e4b3fbe
DA
115022011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
11503
11504 * alloc.c (Fgc_status): Do not access beyond zombies array
11505 boundary if nzombies > MAX_ZOMBIES.
11506 * alloc.c (dump_zombies): Add missing format specifier.
11507
0324f3af
PE
115082011-10-12 Paul Eggert <eggert@cs.ucla.edu>
11509
b5525cac
PE
11510 * xdisp.c (set_cursor_from_row): Simplify conditionals,
11511 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
11512
0324f3af
PE
11513 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
11514 Some packages use them to denote characters with modifiers.
11515
e9b5f888
AS
115162011-10-11 Andreas Schwab <schwab@linux-m68k.org>
11517
11518 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
11519 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
11520 matching a pp-number. Rename parameter var to var1.
11521
127827c0
SM
115222011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
11523
11524 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
11525
c8fd3bd0
GM
115262011-10-08 Glenn Morris <rgm@gnu.org>
11527
11528 * callint.c (Fcall_interactively): Give a more explicit error for the
11529 'c' case with a non-character input. (Bug#8479)
11530
352ec8ff
EZ
115312011-10-08 Eli Zaretskii <eliz@gnu.org>
11532
03669ccb
EZ
11533 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
11534 lines.
7061c986
EZ
11535 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
11536 lines that are hscrolled on the left.
03669ccb 11537
352ec8ff
EZ
11538 * dispnew.c (buffer_posn_from_coords): Account for a possible
11539 presence of header-line. (Bug#4426)
11540
a66cfb1c
SM
115412011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
11542
6b02f655
SM
11543 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
11544 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 11545
7c5ee88e
PE
115462011-10-07 Paul Eggert <eggert@cs.ucla.edu>
11547
11548 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
11549 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
11550 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
11551 this makes Emacs dump core during garbage collection on rare
11552 occasions. sizeof is obviously inferior to offsetof here, so
11553 stick with offsetof.
11554 (GC_POINTER_ALIGNMENT): New macro.
11555 (mark_memory): Omit 3rd (offset) arg; caller changed.
11556 Don't assume EMACS_INT alignment is the same as pointer alignment.
11557
df1bbe5b
SM
115582011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
11559
11560 * keyboard.c (read_key_sequence_remapped): New var.
11561 (read_key_sequence): Compute remapping in the right buffer.
11562 (command_loop_1): Use read_key_sequence's remapping directly.
11563
51553db6
SM
115642011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
11565
32c1fffd
SM
11566 * dired.c (file_name_completion): Don't expand file name.
11567 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
11568 before checking file name handler.
11569
51553db6
SM
11570 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
11571 they've been requested explicitly (bug#9591).
11572
b6bd1599 115732011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
11574
11575 * keymap.c (Fsingle_key_description): Use make_specified_string
11576 instead of build_string to build string from push_key_description.
11577 (Bug#5193)
11578
f701dc2a
PE
115792011-09-30 Paul Eggert <eggert@cs.ucla.edu>
11580
4222c55d
PE
11581 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
11582 This fixes a Y2038 bug on 64-bit hosts.
11583 * buffer.c (reset_buffer):
11584 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
11585 (Fclear_buffer_auto_save_failure):
11586 Use 0, not -1, to represent an unset failure time, since time_t
11587 might not be signed.
11588
f701dc2a
PE
11589 Remove dependency on glibc malloc internals.
11590 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11591 Move back here from lisp.h, but with their new implementations.
11592 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
11593 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
11594 * charset.c (charset_table_init): New static var.
11595 (syms_of_charset): Use it instead of xmalloc. This removes a
11596 dependency on glibc malloc internals. See Eli Zaretskii's comment in
11597 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
11598 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11599 Move back to alloc.c.
11600 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
11601 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
11602
9ceebf39
JD
116032011-09-30 Jan Djärv <jan.h.d@swipnet.se>
11604
11605 * nsterm.m (windowDidResize): Call x_set_window_size only when
11606 ns_in_resize is true. Otherwise set pixelwidth/height and
11607 call change_frame_size (Bug#9628).
11608
cb993c58
PE
116092011-09-30 Paul Eggert <eggert@cs.ucla.edu>
11610
3930c88b
PE
11611 Port --enable-checking=all to Fedora 14 x86-64.
11612 * charset.c (syms_of_charset): Also account for glibc malloc's
11613 internal overhead when calculating the initial malloc maximum.
11614
cb993c58
PE
11615 Port --enable-checking=all to Fedora 14 x86.
11616 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11617 Move to lisp.h.
11618 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
11619 (overrun_check_realloc, overrun_check_free):
11620 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
11621 That way, xmalloc returns a properly-aligned pointer even if
11622 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
11623 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
11624 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
11625 into account when calculating the initial malloc maximum.
11626 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11627 Move here from alloc.c, so that charset.c can use it too.
11628 Properly align; the old code wasn't right for common 32-bit hosts
11629 when configured with --enable-checking=all.
11630 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
11631 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
11632
31bed486
EZ
116332011-09-29 Eli Zaretskii <eliz@gnu.org>
11634
04c70788 11635 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
11636 use EDOM.
11637
fbcaa2f3
EZ
116382011-09-28 Eli Zaretskii <eliz@gnu.org>
11639
11640 * xdisp.c (compute_display_string_end): If there's no display
11641 string at CHARPOS, return -1.
11642
11643 * bidi.c (bidi_fetch_char): When compute_display_string_end
11644 returns a negative value, treat the character as a normal
11645 character not covered by a display string. (Bug#9624)
11646
a239d4e9
JB
116472011-09-28 Juanma Barranquero <lekktu@gmail.com>
11648
11649 * lread.c (Fread_from_string): Fix typo in docstring.
11650
88652fd5
EZ
116512011-09-27 Eli Zaretskii <eliz@gnu.org>
11652
11653 * xdisp.c (handle_invisible_prop): If invisible text ends on a
11654 newline, reseat the iterator instead of bidi-iterating there one
11655 character at a time. (Bug#9610)
32c1fffd
SM
11656 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
11657 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 11658
ed497dd4
AS
116592011-09-27 Andreas Schwab <schwab@linux-m68k.org>
11660
11661 * lread.c (readevalloop): Use correct code for NBSP.
11662 (read1): Likewise. (Bug#9608)
11663
b2bf61aa
MA
116642011-09-25 Michael Albinus <michael.albinus@gmx.de>
11665
11666 * dbusbind.c (Fdbus_register_signal): When service is not
11667 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
11668
32bbb17c
GM
116692011-09-25 Glenn Morris <rgm@gnu.org>
11670
11671 * buffer.c (truncate-lines): Doc fix.
11672
94e0933e
CY
116732011-09-24 Chong Yidong <cyd@stupidchicken.com>
11674
11675 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
11676 (Fset_window_next_buffers): Doc fix.
11677
cddde921
GM
116782011-09-24 Glenn Morris <rgm@gnu.org>
11679
11680 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
11681
1260aef1
PE
116822011-09-24 Paul Eggert <eggert@cs.ucla.edu>
11683
25b4bfa0
PE
11684 Fix minor problems found by static checking.
11685 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
11686 * indent.c (Fvertical_motion): Fix == vs = typo.
11687
e3cbd34b
EZ
116882011-09-24 Eli Zaretskii <eliz@gnu.org>
11689
a66cfb1c
SM
11690 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
11691 Default value is now t. Doc fix.
6bf7006f 11692
e3cbd34b 11693 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 11694 logic when moving up, not only when moving down. Fix the
e3cbd34b 11695 confusing name and values of the it_overshoot_expected variable;
32c1fffd 11696 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
11697
11698 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
11699 CHARPOS is covered by a display string which includes newlines.
11700 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
11701 is covered by a display string with embedded newlines.
11702
a3de0cbd
MA
117032011-09-24 Michael Albinus <michael.albinus@gmx.de>
11704
11705 * dbusbind.c (Fdbus_register_signal): Add match rule to
11706 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
11707 (Fdbus_register_method, Vdbus_registered_objects_table):
11708 Fix docstring.
a3de0cbd 11709
b260039d
JM
117102011-09-24 Jim Meyering <meyering@redhat.com>
11711
32c1fffd 11712 do not ignore write error for any output size
b260039d
JM
11713 The previous change was incomplete.
11714 While it makes emacs --batch detect the vast majority of stdout
11715 write failures, errors were still ignored whenever the output size is
11716 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
11717 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
11718 && echo FAIL: ignored write error
11719 FAIL: ignored write error
11720 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
11721 && echo FAIL: ignored write error
11722 FAIL: ignored write error
11723 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
11724
8eca8a7c
AS
117252011-09-23 Andreas Schwab <schwab@linux-m68k.org>
11726
11727 * emacs.c (Fkill_emacs): In noninteractive mode exit
11728 non-successfully if a write error occurred on stdout. (Bug#9574)
11729
3341db62
EZ
117302011-09-21 Eli Zaretskii <eliz@gnu.org>
11731
11732 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
11733 the xassert test.
11734
11735 * dispextern.h (struct it): Update the comment documenting what
11736 can it->OBJECT be.
11737
8c203dbf
EZ
117382011-09-20 Eli Zaretskii <eliz@gnu.org>
11739
11740 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
11741 a display string, extend search for cursor position to end of row.
11742 (find_row_edges): If the row ends in a newline from a display
11743 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
11744 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
11745 (Fcurrent_bidi_paragraph_direction): Fix search for previous
11746 non-empty line. Fixes confusing cursor motion with arrow keys at
11747 the beginning of a line that starts with whitespace.
8c203dbf 11748
a4824228
LMI
117492011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
11750
11751 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
11752 (bug#9493).
11753
33ed493b
CY
117542011-09-18 Chong Yidong <cyd@stupidchicken.com>
11755
11756 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
11757 boolean (Bug#9154).
11758
56cd55c8
EZ
117592011-09-18 Eli Zaretskii <eliz@gnu.org>
11760
11761 * xdisp.c (display_line): Record maximum and minimum buffer
11762 positions even if no glyphs were produced (e.g., by a zero-width
11763 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
11764 buffer positions that will be removed from the glyph row because
11765 they don't fit.
c02dcedf
EZ
11766 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
11767 column is beyond frame width: don't subtract 1 "pixel" when
11768 computing width of the stretch.
3e62b7e0
EZ
11769 (reseat_at_next_visible_line_start): Undo the change made on
11770 2011-09-17 that saved paragraph information and restored it after
11771 the call to `reseat'. (Bug#9545)
56cd55c8 11772
5ed99d36 117732011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
11774
11775 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
11776 and turn window cursor on if cleared (Bug#9415).
11777
5ed99d36 117782011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
11779
11780 * search.c (boyer_moore): Take unibyte characters from pattern
11781 literally. (Bug#9458)
11782
9bade7b2
EZ
117832011-09-18 Eli Zaretskii <eliz@gnu.org>
11784
11785 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
11786
e5e9d610
PE
117872011-09-18 Paul Eggert <eggert@cs.ucla.edu>
11788
87e4427a
PE
11789 Fix minor problem found by static checking.
11790 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
11791 initialized, to pacify gcc -Wuninitialized.
11792
e5e9d610
PE
11793 * fileio.c: Report proper errno when syscall falls.
11794 (Finsert_file_contents): Save and restore errno,
11795 so that report_file_error outputs the correct diagnostic.
11796 (Fwrite_region) [CLASH_DETECTION]: Likewise.
11797
a1674f0b
EZ
117982011-09-18 Eli Zaretskii <eliz@gnu.org>
11799
11800 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
11801
fbfb6dd4
EZ
118022011-09-17 Eli Zaretskii <eliz@gnu.org>
11803
11804 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
11805 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
11806
bb187662
EZ
118072011-09-17 Eli Zaretskii <eliz@gnu.org>
11808
1137e8b8 11809 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 11810 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
11811
11812 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
11813 (bidi_find_paragraph_start): Search back for paragraph beginning
11814 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
11815 (bidi_move_to_visually_next): Only trigger paragraph-related
11816 computations when the last character is a newline or at EOB, not
11817 just any NEUTRAL_B. (Bug#9470)
11818
bb187662
EZ
11819 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
11820 truncated lines if point is covered by a display string. (Bug#9524)
11821
2e621251
PE
118222011-09-16 Paul Eggert <eggert@cs.ucla.edu>
11823
11824 * xselect.c: Relax test for outgoing X longs (Bug#9498).
11825 (cons_to_x_long): New function.
11826 (lisp_data_to_selection_data): Use it. Correct the test for
11827 short-versus-long data; it was negated. Break out of vector
11828 loop, for efficiency, when a long datum is discovered.
11829
91a15bc6
SM
118302011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
11831
11832 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
11833
b41c3a35
EZ
118342011-09-16 Eli Zaretskii <eliz@gnu.org>
11835
11836 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
11837 GCC PR/17406) by declaring this function with external scope.
11838
7812ba2d
PE
118392011-09-15 Paul Eggert <eggert@cs.ucla.edu>
11840
11841 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
11842 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
11843
cf7edc2a
AS
118442011-09-15 Andreas Schwab <schwab@linux-m68k.org>
11845
11846 * editfns.c (Fformat): Correctly handle text properties on "%%".
11847
bd01620e
EZ
118482011-09-15 Eli Zaretskii <eliz@gnu.org>
11849
11850 * xterm.c (x_draw_composite_glyph_string_foreground):
11851 * w32term.c (x_draw_composite_glyph_string_foreground):
11852 * term.c (encode_terminal_code):
11853 * composite.c (composition_update_it, get_composition_id):
11854 * xdisp.c (get_next_display_element)
11855 (fill_composite_glyph_string): Add comments about special meaning
11856 of TAB characters in a composition.
11857
a02719a3
PE
118582011-09-15 Paul Eggert <eggert@cs.ucla.edu>
11859
11860 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
11861 This occurs when processing a multibyte format.
11862 Problem reported by Wolfgang Jenker.
a02719a3 11863
72589a3c
JB
118642011-09-15 Johan Bockgård <bojohan@gnu.org>
11865
11866 * xdisp.c (try_cursor_movement): Only check for exact match if
11867 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
11868
1c14176c
PE
118692011-09-14 Paul Eggert <eggert@cs.ucla.edu>
11870
11871 Remove unused external symbols.
11872 * dispextern.h (calc_pixel_width_or_height): Remove decl.
11873 * xdisp.c (calc_pixel_width_or_height): Now static.
11874 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
11875 * indent.c (check_display_width):
11876 * w32term.c: Fix comment to match code.
11877 * xterm.c, xterm.h (x_catching_errors): Remove.
11878
d2eea5b5
PE
118792011-09-14 Paul Eggert <eggert@cs.ucla.edu>
11880
11881 * xselect.c: Use signed conversions more consistently (Bug#9498).
11882 (selection_data_to_lisp_data): Assume incoming selection data are
11883 signed integers, not unsigned. This is to be consistent with
11884 outgoing selection data, which was modified to use signed integers
11885 in as part of the fix to Bug#9196 in response to Jan D.'s comment
11886 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
11887 expects long, not unsigned long.
11888
46888499
EZ
118892011-09-14 Eli Zaretskii <eliz@gnu.org>
11890
11891 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
11892 computation of loop end. Reported by Johan Bockgård
11893 <bojohan@gnu.org>.
11894
ef8ef9fb
CY
118952011-09-13 Chong Yidong <cyd@stupidchicken.com>
11896
11897 * frame.c (Fother_visible_frames_p): Function deleted.
11898
fa819fed
EZ
118992011-09-12 Eli Zaretskii <eliz@gnu.org>
11900
11901 * indent.c (compute_motion): Process display vector front to back
11902 rather than the other way around. (Bug#2496)
11903
2ba8e008
SM
119042011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
11905
11906 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
11907
20f53c69
CY
119082011-09-11 Chong Yidong <cyd@stupidchicken.com>
11909
11910 * minibuf.c (Fread_from_minibuffer): Doc fix.
11911
d562d7a4
EZ
119122011-09-11 Eli Zaretskii <eliz@gnu.org>
11913
11914 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
11915 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
11916
1c4d7f3d
LMI
119172011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
11918
11919 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
11920 value for non-existent files.
11921
b885bf36
EZ
119222011-09-11 Eli Zaretskii <eliz@gnu.org>
11923
11924 * fileio.c (Finsert_file_contents): If the file cannot be opened,
11925 set its "size" to -1. This will set the modtime_size field of
11926 the corresponding buffer to -1, which is what
11927 verify-visited-file-modtime expects for files that do not exist.
11928 (Bug#9139)
11929
6612f0bf
PE
119302011-09-11 Paul Eggert <eggert@cs.ucla.edu>
11931
11932 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
11933 here ...
11934 * lisp.h: ... from here. push_key_description is no longer
11935 defined in keyboard.c, so its declaration should not be in
11936 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
11937 logically belongs with push_key_description.
11938
dfb3f755
PE
119392011-09-10 Paul Eggert <eggert@cs.ucla.edu>
11940
11941 * buffer.h: Include <sys/types.h> instead of <time.h>.
11942 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
11943 Problem reported by Herbert J. Skuhra.
11944
3134906c
LMI
119452011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
11946
11947 * xml.c (parse_region): Make the parsing work for
11948 non-comment-starting XML files again (bug#9144).
11949
8d903f4e
AS
119502011-09-10 Andreas Schwab <schwab@linux-m68k.org>
11951
11952 * image.c (gif_load): Fix calculation of bottom and right corner.
11953 (Bug#9468)
11954
80ad64f4
EZ
119552011-09-10 Eli Zaretskii <eliz@gnu.org>
11956
11957 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
11958 redisplay in small windows.
11959
208a048d
EZ
119602011-09-09 Eli Zaretskii <eliz@gnu.org>
11961
11962 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
11963
9b1c252e
MR
119642011-09-08 Martin Rudalics <rudalics@gmx.at>
11965
11966 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
11967 Operate on live windows only.
11968
2949f33b
JB
119692011-09-08 Juanma Barranquero <lekktu@gmail.com>
11970
11971 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
11972
e08dcafd
EZ
119732011-09-07 Eli Zaretskii <eliz@gnu.org>
11974
11975 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
11976 only under bidi iteration.
11977
115b96bd
JD
119782011-09-07 Jan Djärv <jan.h.d@swipnet.se>
11979
11980 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
11981
c8199d0f
PE
119822011-09-06 Paul Eggert <eggert@cs.ucla.edu>
11983
11984 isnan: Fix porting problem to Solaris 10 with bundled gcc.
11985 Without this fix, the command to link temacs failed due to an
11986 undefined symbol __builtin_isnan. This is because
11987 /usr/include/iso/math_c99.h #defines isnan(x) to
11988 __builtin_isnan(x), but the bundled gcc, which identifies itself
11989 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
11990 a __builtin_isnan.
11991 * floatfns.c (isnan): #undef, and then #define to a clone of
11992 what's in data.c.
11993 (Fisnan): Always define, since it's always available now.
11994 (syms_of_floatfns): Always define isnan at the Lisp level.
11995
e39b275c 119962011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
11997
11998 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
11999
b2db44d9 120002011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 12001
f4af5137 12002 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
12003 The previous code assumed that file offsets (off_t values) fit in
12004 EMACS_INT variables, which is not true on typical 32-bit hosts.
12005 The code messed up by falsely reporting buffer overflow in cases
12006 such as (insert-file-contents "big" nil 1 2) into an empty buffer
12007 when "big" contains more than 2**29 bytes, even though this
12008 inserts just one byte and does not overflow the buffer.
12009 (Finsert_file_contents): Store file offsets as off_t
12010 values, not as EMACS_INT values. Check for overflow when
12011 converting between EMACS_INT and off_t. When checking for
12012 buffer overflow or for overlap, take the offsets into account.
12013 Don't use EMACS_INT for small values where int suffices.
12014 When checking for overlap, fix a typo: ZV was used where
12015 ZV_BYTE was intended.
12016 (Fwrite_region): Don't assume off_t fits into 'long'.
12017 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
12018
ecfc0a49
MA
120192011-09-05 Michael Albinus <michael.albinus@gmx.de>
12020
12021 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
12022
6511acf2 120232011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 12024
0999621a 12025 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
12026
12027 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 12028 (esprintf, exprintf, evxprintf): New functions.
62f19c19 12029 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 12030 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
12031 (modify_event_symbol): Do not assume that the length of
12032 name_alist_or_stem is safe to alloca and fits in int.
12033 (Fexecute_extended_command): Likewise for function name and binding.
12034 (Frecursion_depth): Wrap around reliably on integer overflow.
12035 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
12036 since some callers pass EMACS_INT values.
12037 (Fsingle_key_description): Don't crash if symbol name contains more
12038 than MAX_ALLOCA bytes.
12039 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
12040 (get_minibuffer): Arg is now EMACS_INT, not int.
12041 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 12042 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
12043 * window.h (command_loop_level, minibuf_level): Reflect API changes.
12044
2be7d702
PE
12045 * dbusbind.c (signature_cat): New function.
12046 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
12047 Do not overrun buffer; instead, report string overflow.
12048
9d1df220
PE
12049 * dispnew.c (add_window_display_history): Don't overrun buffer.
12050 Truncate instead; this is OK since it's just a log.
12051
33ef5c64
PE
12052 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
12053 even if the time zone offset is outlandishly large.
12054 Don't mishandle offset == INT_MIN.
12055
66c6fdd5
PE
12056 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
12057 when creating daemon; the previous buffer-overflow check was incorrect.
12058
d749b01b
PE
12059 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
12060 which has the guts of the old verror function.
12061
b5cd1905
PE
12062 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
12063 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
12064
6e1a67fb
PE
12065 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
12066 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 12067 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 12068 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
12069 length of string rather than counting it via multiple sprintfs;
12070 that's simpler and more reliable.
c21721cc
PE
12071 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
12072 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
12073 sprintf, in case result does not fit in int.
12074
c57b67fc
PE
12075 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
12076 (fontset_from_font): Print it.
12077
8a401434
PE
12078 * frame.c (tty_frame_count): Now printmax_t, not int.
12079 (make_terminal_frame, set_term_frame_name): Print it.
12080 (x_report_frame_params): In X, window IDs are unsigned long,
12081 not signed long, so print them as unsigned.
12082 (validate_x_resource_name): Check for implausibly long names,
12083 and don't assume name length fits in 'int'.
12084 (x_get_resource_string): Don't blindly alloca invocation name;
12085 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
12086 not fit in int.
12087
6e1a67fb
PE
12088 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
12089 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
12090 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
12091
0df02bf3
PE
12092 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
12093 Use esprintf, not sprintf, in case result does not fit in int.
12094
48e30793
PE
12095 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
12096 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
12097 it as a large positive number.
12098 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
12099 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
12100
a66ff6d8
PE
12101 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
12102 in case result does not fit in int.
12103
aca216ff
PE
12104 * print.c (float_to_string): Detect width overflow more reliably.
12105 (print_object): Make sprintf buffer a bit bigger, to avoid potential
12106 buffer overrun. Don't assume list length fits in 'int'. Treat
12107 print length of 0 as 0, not as infinity; to be consistent with other
12108 uses of print length in this function. Don't overflow print length
12109 index. Don't assume hash table size fits in 'long', or that
12110 vectorlike size fits in 'unsigned long'.
12111
31c286f7
PE
12112 * process.c (make_process): Use printmax_t, not int, to format
12113 process-name gensyms.
12114
55e5faa1
PE
12115 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
12116
80f2e268
PE
12117 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
12118 to avoid potential buffer overrun.
12119
670741ab
PE
12120 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
12121 if X resource line is longer than 512 bytes.
12122
b7163a50
PE
12123 * xfns.c (x_window): Make sprintf buffer a bit bigger
12124 to avoid potential buffer overrun.
12125
ae58ff1f
PE
12126 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
12127
c43c8a6a
PE
12128 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
12129
3f8236f4
PE
121302011-09-04 Paul Eggert <eggert@cs.ucla.edu>
12131
53e9fe90 12132 Integer overflow fixes for scrolling, etc.
6511acf2
PE
12133 Without these, Emacs silently mishandles large integers sometimes.
12134 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
12135 it were "C-u 1 M-x recenter" on a typical 64-bit host.
12136
6511acf2
PE
12137 * xdisp.c (try_window_id): Check Emacs fixnum range before
12138 converting to 'int'.
806add1d 12139
6511acf2 12140 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
12141 Check that an Emacs fixnum is in range before assigning it to 'int'.
12142 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
12143 values converted from Emacs fixnums.
12144 (Frecenter): Don't wrap around a line count if it is out of 'int'
12145 range; instead, treat it as an extreme value.
12146 (Fset_window_configuration, compare_window_configurations):
12147 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
12148
6511acf2
PE
12149 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
12150 that can exceed INT_MAX. Check that EMACS_INT value is in range
12151 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
12152 (match_limit): Don't assume that a fixnum can fit in 'int'.
12153
6511acf2 12154 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
12155 exceed INT_MAX.
12156
6511acf2 12157 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
12158 (Fvertical_motion): Don't wrap around LINES values that don't fit
12159 in 'int'. Instead, treat them as extreme values. This is good
12160 enough for windows, which can't have more than INT_MAX lines anyway.
12161
fcb901a7
LMI
121622011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
12163
0f2f6b6d
LMI
12164 * Require libxml/parser.h to avoid compilation warning.
12165
fcb901a7
LMI
12166 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
12167
12168 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
12169 since this reportedly can destroy thread storage.
12170
6e20a0d4
CY
121712011-08-30 Chong Yidong <cyd@stupidchicken.com>
12172
12173 * syntax.c (find_defun_start): Update all cache variables if
12174 exiting early (Bug#9401).
12175
148ae00e
EZ
121762011-08-30 Eli Zaretskii <eliz@gnu.org>
12177
f6cfbd8f
EZ
12178 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
12179
148ae00e
EZ
12180 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
12181 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
12182 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
12183
12184 * term.c (tty_append_glyph): New function.
12185 (produce_stretch_glyph): Static function and its prototype deleted.
12186
a66cfb1c
SM
12187 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
12188 Add prototypes.
148ae00e 12189
c4a07a4c
PE
121902011-08-29 Paul Eggert <eggert@cs.ucla.edu>
12191
12192 * image.c (parse_image_spec): Check for nonnegative, not for positive,
12193 when checking :margin (Bug#9390).
12194 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 12195 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
12196 so that the name doesn't mislead. All uses changed.
12197
6bc8cd65
JB
121982011-08-28 Johan Bockgård <bojohan@gnu.org>
12199
12200 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
12201 set_tty_hooks.
12202
dca4927e
EZ
122032011-08-27 Eli Zaretskii <eliz@gnu.org>
12204
12205 * xdisp.c (move_it_to): Don't bail out early when reaching
12206 position beyond to_charpos, if we are scanning backwards.
12207 (move_it_vertically_backward): When DY == 0, make sure we get to
12208 the first character in the line after the newline.
12209
f2cad773
PE
122102011-08-27 Paul Eggert <eggert@cs.ucla.edu>
12211
12212 * ccl.c: Improve and simplify overflow checking (Bug#9196).
12213 (ccl_driver): Do not generate an out-of-range pointer.
12214 (Fccl_execute_on_string): Remove unnecessary check for
12215 integer overflow, noted by Stefan Monnier in
12216 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
12217 Remove a FIXME that didn't need fixing.
12218 Simplify the newly-introduced buffer reallocation code.
12219
0cae2cdb
JB
122202011-08-27 Juanma Barranquero <lekktu@gmail.com>
12221
12222 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
12223
5fc295a4 122242011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 12225
70c60eb2 12226 Integer and memory overflow issues (Bug#9196).
726e0ab1 12227
d31850da
PE
12228 * doc.c (get_doc_string): Rework so that
12229 get_doc_string_buffer_size is the actual buffer size, rather than
12230 being 1 less than the actual buffer size; this makes xpalloc more
12231 convenient.
12232
a69fbedb
PE
12233 * image.c (x_allocate_bitmap_record, cache_image):
12234 * xselect.c (Fx_register_dnd_atom):
12235 Simplify previous changes by using xpalloc.
12236
fe5c5d37
PE
12237 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
12238 since either will do and ptrdiff_t is convenient with xpalloc.
12239
0065d054
PE
12240 * charset.c (charset_table_size)
12241 (struct charset_sort_data.priority): Now ptrdiff_t.
12242 (charset_compare): Don't overflow if priorities differ greatly.
12243 (Fsort_charsets): Don't assume list length fits in int.
12244 Check for size-calculation overflow when allocating sort data.
12245 (syms_of_charset): Allocate an initial charset table that is
12246 just under 64 KiB, to avoid problems with glibc malloc and mmap.
12247
12248 * cmds.c (internal_self_insert): Check for size-calculation overflow.
12249
12250 * composite.h (struct composition.glyph_len): Now int, not unsigned.
12251 The actual value is always <= INT_MAX, and leaving it unsigned made
12252 overflow checking harder.
12253
12254 * dispextern.h (struct glyph_matrix.rows_allocated)
12255 (struct face_cache.size): Now ptrdiff_t, for convenience in use
12256 with xpalloc. The values are still always <= INT_MAX.
12257
12258 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
12259
12260 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
12261 (SAFE_NALLOCA): New macro.
12262
12263 * region-cache.c (struct boundary.pos, find_cache_boundary)
12264 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
12265 (set_cache_region, invalidate_region_cache)
12266 (revalidate_region_cache, know_region_cache, region_cache_forward)
12267 (region_cache_backward, pp_cache):
12268 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
12269 so that ptrdiff_t * can be passed to xpalloc.
12270 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
12271 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
12272 (pp_cache): Don't assume cache_len fits in int.
12273 * region-cache.h: Adjust extern decls to match.
12274
12275 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
12276 EMACS_INT, since either will do, for xpalloc.
12277
12278 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
12279 (xnmalloc, xnrealloc, xpalloc): New functions.
12280
726e0ab1
PE
12281 * bidi.c (bidi_shelve_header_size): New constant.
12282 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
12283 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
12284
51f30bc5 12285 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
12286 * buffer.c (overlays_at, overlays_in, record_overlay_string)
12287 (overlay_strings):
12288 Don't update size of array until after memory allocation succeeds,
12289 because xmalloc/xrealloc may not return.
0065d054
PE
12290 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
12291 now that we have proper integer overflow checking.
12292 (record_overlay_string, overlay_strings): Catch overflows when
12293 calculating size of overlay_str_buf.
726e0ab1 12294
0065d054
PE
12295 * callproc.c (Fcall_process): Check for size overflow when
12296 calculating size of args2.
12297 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
12298 Normally we prefer signed values, but sticking with ptrdiff_t would
12299 require adding more-complicated checks.
726e0ab1
PE
12300
12301 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
12302 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
12303 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 12304 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
12305
12306 * character.c (Fstring): Check for size-calculation overflow.
12307
12308 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
12309 unnecessary integer overflow. Check for size overflow.
12310 (encode_coding_object): Don't update size until xmalloc succeeds.
12311
12312 * composite.c (get_composition_id): Check for overflow in glyph
12313 length calculations.
12314
12315 Integer and memory overflow fixes for display code.
12316 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
12317 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
12318 (scrolling_window): Check for overflow in size calculations.
12319 (line_draw_cost, realloc_glyph_pool, add_row_entry):
12320 Don't assume glyph table len fits in int.
12321 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
12322 (row_table_size): Now ptrdiff_t, not int.
12323 (scrolling_window): Avoid overflow in size calculations.
12324 Don't update size until allocation succeeds.
12325 * fns.c (concat): Check for overflow in size calculations.
12326 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
12327 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
12328 (NEXT_ALMOST_PRIME_LIMIT): New constant.
12329
12330 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
12331 (get_doc_string): Check for size calculation overflow.
12332 Don't update size until allocation succeeds.
12333 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
12334 EMACS_INT, where ptrdiff_t will do.
12335 (Fsubstitute_command_keys): Check for string overflow.
12336
12337 * editfns.c (set_time_zone_rule): Don't assume environment length
12338 fits in int.
12339 (message_length): Now ptrdiff_t, not int.
12340 (Fmessage_box): Don't update size until allocation succeeds.
12341 Don't assume message length fits in int.
12342 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
12343
0065d054
PE
12344 * emacs.c (main): Do not reallocate argv, since there is a null at
12345 the end that can be overwritten, and this way there's no need to
12346 worry about size-calculation overflow.
12347 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
12348
12349 * eval.c (init_eval_once, grow_specpdl): Don't update size until
12350 alloc succeeds.
12351 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
12352
12353 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
12354 (x_set_scroll_bar_width, x_figure_window_size):
12355 Check for integer overflow.
12356 (x_set_alpha): Do not assume XINT fits in int.
12357
12358 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
12359 This is for the members text_lines, text_cols, total_lines, total_cols,
12360 where the system imposes an 'int' limit.
12361
12362 * fringe.c (Fdefine_fringe_bitmap):
12363 Don't update size until alloc works.
12364
12365 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
12366 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
12367
12368 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
12369 Check for size-calculation overflow.
12370 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
12371 do, as we prefer signed integers.
12372 (id_to_widget.max_size, id_to_widget.used)
12373 (xg_store_widget_in_map, xg_remove_widget_from_map)
12374 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
12375 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
12376 Use and return ptrdiff_t, not int.
12377 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
12378 * gtkutil.h: Change prototypes to match the above.
12379
12380 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
12381 are duplicate now that they've been promoted to lisp.h.
12382 (x_allocate_bitmap_record, x_alloc_image_color)
12383 (make_image_cache, cache_image, xpm_load):
12384 Don't update size until alloc is done.
12385 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
12386 (x_detect_edges):
3256efce 12387 Check for size calculation overflow.
726e0ab1
PE
12388 (ct_colors_allocated_max): New constant.
12389 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
12390 overflow.
3256efce 12391
726e0ab1
PE
12392 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
12393 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
12394 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
12395 Use ptrdiff_t, not int, to count maps.
12396 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
12397 calculations. Don't update size until allocation succeeds.
12398 Redo calculations to avoid overflow.
726e0ab1
PE
12399 * keyboard.h: Change prototypes to match the above.
12400
12401 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
12402 to count maps.
12403 (current_minor_maps): Check for size calculation overflow.
12404 * keymap.h: Change prototypes to match the above.
12405
12406 * lread.c (read1, init_obarray): Don't update size until alloc done.
12407
12408 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
12409 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
12410
726e0ab1
PE
12411 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
12412 Now ptrdiff_t, not int.
12413 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
12414 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
12415
12416 * process.c (Fnetwork_interface_list): Check for overflow
12417 in size calculation.
12418
12419 * region-cache.c (move_cache_gap): Check for size calculation overflow.
12420
12421 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
12422 overflow. Don't bother calling xmalloc when xrealloc will do.
12423
12424 * search.c (Freplace_match): Check for size calculation overflow.
12425 (Fset_match_data): Don't assume list lengths fit in 'int'.
12426
12427 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
12428 for command line length. Do not attempt to address one before the
12429 beginning of an array, as that's not portable.
12430
12431 * term.c (max_frame_lines): Remove; unused.
12432 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
12433 not int.
12434 (encode_terminal_code, calculate_costs): Check for size
12435 calculation overflow.
12436 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
12437 table lengths and related sizes. Don't update size until alloc
12438 done. Redo calculations to avoid overflow.
12439 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
12440
12441 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
12442 subtracting pointers.
12443 (gobble_line): Check for overflow more carefully. Don't update size
12444 until alloc done.
12445
12446 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
12447 Don't update size until alloc done.
12448 Redo size calculations to avoid overflow.
12449 Check for size calculation overflow.
0065d054 12450 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
12451
12452 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
12453 Use ptrdiff_t, not int, for sizes.
12454 (store_mode_line_noprop_char): Don't update size until alloc done.
12455
0065d054
PE
12456 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
12457 Use ptrdiff_t, not int, for sizes.
12458 (Finternal_make_lisp_face, cache_face):
12459 Check for size calculation overflow.
12460 (cache_face): Treat size calculation overflows as if they were
12461 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
12462
12463 * xfns.c (x_encode_text, x_set_name_internal)
12464 (Fx_change_window_property): Use ptrdiff_t, not int, to count
12465 sizes, since they can exceed INT_MAX in size. Check for size
12466 calculation overflow.
12467
0065d054
PE
12468 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
12469 (xg_select): Check for size calculation overflow.
726e0ab1
PE
12470 Don't update size until alloc done.
12471
0065d054 12472 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 12473 as sprintf is limited to int lengths.
1d526e2f 12474
252c5ee1
PE
12475 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
12476 (X_LONG_MIN): New macros.
864d7ce7
PE
12477 Use them to make the following changes clearer.
12478 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
12479 This change doesn't affect the value now, but it may help remind
12480 future maintainers not to raise the value too much later.
12481 (SELECTION_QUANTUM): Remove, replacing with ...
12482 (selection_quantum): ... new function, which avoids overflow.
12483 All uses changed.
12484 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
12485 assumption that selection length fits in 'int'.
12486 (x_reply_selection_request, x_handle_selection_request)
12487 (x_get_window_property, receive_incremental_selection)
12488 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
12489 (lisp_data_to_selection_data, clean_local_selection_data):
12490 Use ptrdiff_t, not int, to record length of selection.
12491 (x_reply_selection_request, x_get_window_property)
12492 (receive_incremental_selection, x_property_data_to_lisp):
12493 Redo calculations to avoid overflow.
12494 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 12495 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
12496 something.
12497 (x_get_window_property, receive_incremental_selection)
12498 (lisp_data_to_selection_data, x_property_data_to_lisp):
12499 Check for size-calculation overflow.
12500 (x_get_window_property, receive_incremental_selection)
12501 (lisp_data_to_selection_data, Fx_register_dnd_atom):
12502 Don't store size until memory allocation succeeds.
12503 (x_get_window_property): Plug memory leak on memory exhaustion.
12504 Don't double-block input; malloc is safe here. Don't assume 2**34
12505 - 4 fits in unsigned long. Add an xassert to check
12506 XGetWindowProperty overflow. Be more careful about overflow
12507 calculations, and distinguish size from memory overflow better.
12508 (receive_incremental_selection): When tracing, don't assume
12509 unsigned int is less than INT_MAX.
12510 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
12511 harmful) conversions of unsigned short to int.
12512 (lisp_data_to_selection_data): Don't assume that integers
12513 in the range -65535 through -1 fit in an X unsigned short.
12514 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
12515 result parameters unless successful. Rely on cons_to_unsigned
12516 to report problems with elements; the old code wasn't right anyway.
12517 (x_check_property_data): Check for int overflow; we cannot use
12518 a wider type due to X limits.
12519 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
12520
726e0ab1 12521 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 12522
0065d054
PE
12523 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
12524 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
12525 (x_color_cells): Don't store size until memory allocation succeeds.
12526 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 12527 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
12528 (x_term_init): Don't assume length fits in int (sprintf is limited
12529 to int size).
bc18e09d 12530
ebfa62c0
PE
12531 Use ptrdiff_t for composition IDs.
12532 * character.c (lisp_string_width):
12533 * composite.c (composition_table_size, n_compositions)
12534 (get_composition_id, composition_gstring_from_id):
12535 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
12536 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
12537 * window.c (Frecenter):
12538 Use ptrdiff_t, not int, for composition IDs.
12539 * composite.c (get_composition_id): Check for integer overflow.
12540 * composite.h: Adjust prototypes to match the above changes.
12541
d3411f89
PE
12542 Use ptrdiff_t for hash table indexes.
12543 * category.c (hash_get_category_set):
12544 * ccl.c (ccl_driver):
12545 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
12546 * coding.c (coding_system_charset_list, detect_coding_system):
12547 * coding.h (struct coding_system.id):
12548 * composite.c (get_composition_id, gstring_lookup_cache):
12549 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
12550 * image.c (xpm_get_color_table_h):
12551 * lisp.h (hash_lookup, hash_put):
12552 * minibuf.c (Ftest_completion):
12553 Use ptrdiff_t for hash table indexes, not int (which is too
12554 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
12555 32-bit --with-wide-int hosts).
12556
e097a6fa
PE
12557 * charset.c (Fdefine_charset_internal): Check for integer overflow.
12558 Add a FIXME comment about memory leaks.
12559 (syms_of_charset): Don't assume xmalloc returns.
12560
5637687f
PE
12561 Don't assume that stated character widths fit in int.
12562 * character.c (Fchar_width, c_string_width, lisp_string_width):
12563 * character.h (CHAR_WIDTH):
12564 * indent.c (MULTIBYTE_BYTES_WIDTH):
12565 Use sanitize_char_width to avoid undefined and/or bad behavior
12566 with outlandish widths.
a66cfb1c 12567 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
12568 now that we have two such functions. All uses changed.
12569 (sanitize_char_width): New inline function.
12570
a2271ba2
PE
12571 Don't assume that tab-width fits in int.
12572 * character.h (sanitize_width): New inline function.
12573 (SANE_TAB_WIDTH): New macro.
12574 (ASCII_CHAR_WIDTH): Use it.
12575 * indent.c (sane_tab_width): Remove. All uses replaced by
12576 SANE_TAB_WIDTH (current_buffer).
12577 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
12578
18c52557
PE
12579 * fileio.c: Integer overflow issues with file modes.
12580 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
12581
caeeedc1
PE
12582 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
12583 Remove unreachable code.
12584 (read_hex, load_charset_map_from_file): Check for integer overflow.
12585
6df6ae42 12586 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
12587 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
12588 (x_send_scroll_bar_event): Likewise. Check that the size does not
12589 exceed limits imposed by XClientMessageEvent, as well as the usual
12590 ptrdiff_t and size_t limits.
12591
b13995db
PE
12592 * keyboard.c: Overflow, signedness and related fixes.
12593 (make_lispy_movement): Use same integer type in forward decl
12594 that is used in the definition.
12595 (read_key_sequence, keyremap_step):
12596 Change bufsize argument back to int, undoing my 2011-03-30 change.
12597 We prefer signed types, and int is wide enough here.
12598 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
12599 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
12600 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
12601 length, not size_t. Use ptrdiff_t for index, not int.
12602 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
12603 possibility of integer overflow.
12604
13464394
PE
12605 Overflow, signedness and related fixes for images.
12606
12607 * dispextern.h (struct it.stack[0].u.image.image_id)
12608 (struct_it.image_id, struct image.id, struct image_cache.size)
12609 (struct image_cache.used, struct image_cache.ref_count):
12610 * gtkutil.c (update_frame_tool_bar):
12611 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
12612 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
12613 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
12614 * nsmenu.m (update_frame_tool_bar):
12615 * xdisp.c (calc_pixel_width_or_height):
12616 * xfns.c (image_cache_refcount):
12617 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
12618 on typical 64-bit hosts.
12619
12620 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
12621 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
12622 Omit unnecessary casts to int.
12623 (parse_image_spec): Check that integers fall into 'int' range
12624 when the callers expect that.
12625 (image_ascent): Redo ascent calculation to avoid int overflow.
12626 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
12627 (lookup_image): Remove unnecessary tests.
12628 (xbm_image_p): Locals are now of int, not EMACS_INT,
12629 since parse_image_check makes sure they fit into int.
12630 (png_load, gif_load, svg_load_image):
12631 Prefer int to unsigned where either will do.
12632 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
12633 old tiff_error_handler and tiff_warning_handler.
12634 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
12635 stack buffer overflows. It uses only the features of vsnprintf
12636 that are common to both POSIX and native Microsoft.
12637 (tiff_error_handler, tiff_warning_handler): Use it.
12638 (tiff_load, gif_load, imagemagick_load_image):
12639 Don't assume :index value fits in 'int'.
12640 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
12641 (imagemagick_load_image): Check that crop parameters fit into
12642 the integer types that MagickCropImage accepts. Don't assume
12643 Vimagemagick_render_type has a nonnegative value. Don't assume
12644 size_t fits in 'long'.
12645 (gs_load): Use printmax_t to print the widest integers possible.
12646 Check for integer overflow when computing image height and width.
12647
c11821d4
EZ
126482011-08-26 Eli Zaretskii <eliz@gnu.org>
12649
12650 * xdisp.c (redisplay_window): Don't force window start if point
12651 will be invisible in the resulting window. (Bug#9324)
12652
0c95fcf7
EZ
126532011-08-25 Eli Zaretskii <eliz@gnu.org>
12654
12655 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
12656 the display spec is of the form `(space ...)'.
12657 (handle_display_spec): Return the value returned by
12658 handle_single_display_spec, not just 1 or zero.
12659 (handle_single_display_spec): If the display spec is of the form
12660 `(space ...)', and specifies display in the text area, return 2
12661 rather than 1.
fee65a97 12662 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
12663 accurately, and prefer exact match for point under bidi.
12664 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
12665
12666 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
12667 into disp_prop; all users changed.
12668
12669 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
12670 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
12671 for the text covered by the display property.
12672
e4ed06f1
CY
126732011-08-25 Chong Yidong <cyd@stupidchicken.com>
12674
12675 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
12676 Change return value to nil.
12677 (Frecord_buffer): Delete unused function.
12678
f67cdd7f
EZ
126792011-08-24 Eli Zaretskii <eliz@gnu.org>
12680
5980d4c6
EZ
12681 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
12682 buffers, return left-to-right.
8610fe8b
EZ
12683 (set_cursor_from_row): Consider candidate row a win if its glyph
12684 represents a newline and point is on that newline. Fixes cursor
12685 positioning on the newline at EOL of R2L text within L2R
12686 paragraph, and vice versa.
12687 (try_cursor_movement): Check continued rows, in addition to
12688 continuation rows. Fixes unwarranted scroll when point enters a
12689 continued line of R2L text within an L2R paragraph, or vice versa.
12690 (cursor_row_p): Consider the case of point being equal to
12691 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
12692 from the end of a short line to the beginning of a continued line
12693 of R2L text within L2R paragraph.
12694 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
12695 composed characters.
5980d4c6 12696
f67cdd7f
EZ
12697 * bidi.c (bidi_check_type): Use xassert.
12698 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
12699 members.
12700
bca633fb
EZ
127012011-08-23 Eli Zaretskii <eliz@gnu.org>
12702
12703 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
12704 a character.
12705
4a5885a7
CY
127062011-08-23 Chong Yidong <cyd@stupidchicken.com>
12707
12708 * nsfont.m (ns_otf_to_script): Fix typo.
12709
0902a04e
KH
127102011-08-22 Kenichi Handa <handa@m17n.org>
12711
12712 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
12713 extra slot even if the purpose is char-code-property-table.
12714
1a2e6670
EZ
127152011-08-23 Eli Zaretskii <eliz@gnu.org>
12716
8ddde651
EZ
12717 * xdisp.c (redisplay_window): When computing centering_position,
12718 account for the height of the header line. (Bug#8874)
12719
425cc014
EZ
12720 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
12721 instead of CHAR_TO_BYTE. Fixes a crash when a completion
12722 candidate is selected by the mouse, and that candidate has a
12723 composed character under the mouse.
12724
1a2e6670
EZ
12725 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
12726 coordinates reported by pos-visible-in-window-p for a composed
12727 character in column zero.
12728
8b76d6f8
SM
127292011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
12730
12731 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
12732
dac347dd
EZ
127332011-08-22 Eli Zaretskii <eliz@gnu.org>
12734
12735 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
12736 consider it a hit if to_charpos is anywhere in the range of the
12737 composed buffer positions.
12738
e013fb34
CY
127392011-08-22 Chong Yidong <cyd@stupidchicken.com>
12740
12741 * image.c (gif_load): Don't assume that each subimage has the same
12742 dimensions as the base image. Handle disposal method that is
12743 "undefined" by the gif spec (Bug#9335).
12744
bd1ba3e8
CY
127452011-08-20 Chong Yidong <cyd@stupidchicken.com>
12746
12747 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 12748 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 12749
54a1215b
EZ
127502011-08-19 Eli Zaretskii <eliz@gnu.org>
12751
823564e5
EZ
12752 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
12753 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
12754 from an Org mode buffer to a Speedbar frame.
12755
54a1215b
EZ
12756 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
12757 a composition, take its buffer position from IT->cmp_it.charpos.
12758 Fixes cursor positioning at the beginning of a line that begins
12759 with a composed character.
12760
9778ebcc
EZ
127612011-08-18 Eli Zaretskii <eliz@gnu.org>
12762
0be6ee06
EZ
12763 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
12764 character bidirectional type, use STRONG_L instead. Fixes crashes
12765 in a buffer produced by `describe-categories'.
12766
9778ebcc
EZ
12767 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
12768 members before the level stack, so they would be saved and
12769 restored when copying iterator state. Fixes incorrect reordering
12770 around TABs covered by display properties.
12771
156bffbe
AS
127722011-08-18 Andreas Schwab <schwab@linux-m68k.org>
12773
6b02f655 12774 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 12775
72ad093b
CY
127762011-08-17 Chong Yidong <cyd@stupidchicken.com>
12777
12778 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
12779 (internal_condition_case_2, internal_condition_case_n):
12780 Remove unnecessary aborts (Bug#9081).
72ad093b 12781
35774242
EZ
127822011-08-17 Eli Zaretskii <eliz@gnu.org>
12783
12784 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
12785 has no `load' handler, try opening the file locally. (Bug#9311)
12786
db76dd85
KB
127872011-08-16 Ken Brown <kbrown@cornell.edu>
12788
12789 * gmalloc.c: Expand comment.
12790
b215eee5
EZ
127912011-08-16 Eli Zaretskii <eliz@gnu.org>
12792
12793 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
12794 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
12795
a4579d33
KB
127962011-08-16 Ken Brown <kbrown@cornell.edu>
12797
12798 Fix memory allocation problems in Cygwin build (Bug#9273).
12799
12800 * unexcw.c ( __malloc_initialized): Declare external variable.
12801 (fixup_executable): Force the dumped emacs to reinitialize malloc.
12802
8b76d6f8
SM
12803 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
12804 New variables.
a4579d33
KB
12805 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
12806 dumped emacs.
12807 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
12808 in the static heap.
12809 [CYGWIN] (special_realloc): New function.
12810 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
12811 requests to realloc storage in the static heap.
12812
3ebec551
PE
128132011-08-15 Paul Eggert <eggert@cs.ucla.edu>
12814
12815 * bidi.c (bidi_initialize): Remove unused local.
12816
9fd8be00
EZ
128172011-08-15 Eli Zaretskii <eliz@gnu.org>
12818
6b02f655
SM
12819 * bidimirror.h:
12820 * biditype.h: Remove file.
12821 * makefile.w32-in ($(BLD)/bidi.$(O)):
12822 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
12823
12824 * dispextern.h: Fix a typo in the comment to bidi_type_t.
12825
12826 * chartab.c: Improve commentary for the uniprop_table API.
12827
32413314
EZ
12828 * bidi.c (bidi_paragraph_init): Support zero value of
12829 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
12830 (bidi_initialize): Use uniprop_table instead of including
12831 biditype.h and bidimirror.h.
32413314 12832
9fd8be00
EZ
12833 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
12834 coordinates of the iterator when restoring from ppos_it.
12835 (Bug#9296)
12836
5cf2b69b
KH
128372011-08-14 Kenichi Handa <handa@m17n.org>
12838
12839 * process.c (create_process): Call setup_process_coding_systems
72ad093b 12840 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 12841
daf17d00
EZ
128422011-08-14 Eli Zaretskii <eliz@gnu.org>
12843
12844 * xdisp.c (move_it_in_display_line_to): Don't invoke
12845 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
12846 ppos_it. Fixes vertical cursor motion when line beginning is
12847 covered by an image. (Bug#9296)
12848
08e3161a
JD
128492011-08-14 Jan Djärv <jan.h.d@swipnet.se>
12850
12851 * nsterm.h (ns_run_ascript): Declare.
12852 (NSAPP_DATA2_RUNASSCRIPT): Define.
12853
12854 * nsfns.m (as_script, as_result, as_status): New static variables.
12855 (ns_run_ascript): New function.
5e617bc2 12856 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
12857 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
12858 the event loop. Get status from as_status (Bug#7276).
12859
12860 * nsterm.m (sendEvent): If event is NSApplicationDefined and
12861 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
12862 the event loop (Bug#7276).
12863
a3720aa2
AS
128642011-08-14 Andreas Schwab <schwab@linux-m68k.org>
12865
12866 * gnutls.c (QCgnutls_bootprop_priority)
12867 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
12868 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
12869 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
12870 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
12871 (QCgnutls_bootprop_verify_hostname_error)
12872 (QCgnutls_bootprop_callbacks_verify): Rename from
12873 Qgnutls_bootprop_..., all uses changed.
12874
12875 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
12876 uses changed.
12877
0a0d27fb
PE
128782011-08-14 Paul Eggert <eggert@cs.ucla.edu>
12879
19d5c50c
PE
12880 * xfaces.c (Qframe_set_background_mode): Now static.
12881 * dispextern.h (Qframe_set_background_mode): Remove decl.
12882
0a0d27fb
PE
12883 * process.c (Fnetwork_interface_info): Declare local only if needed.
12884
377538cb
JD
128852011-08-13 Jan Djärv <jan.h.d@swipnet.se>
12886
12887 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
12888 (Fnetwork_interface_list): Allocate in increments of bytes instead
12889 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
12890 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
12891 sockaddr.
12892 (struct ifflag_def): notrailers is smart on OSX.
12893 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
12894 Get hardware address with getifaddrs if available.
12895
08fff70c
EZ
128962011-08-12 Eli Zaretskii <eliz@gnu.org>
12897
12898 * xdisp.c (iterate_out_of_display_property): xassert that
12899 IT->position is set to within IT->object's boundaries. Break from
12900 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
12901 when IT->position is set up wrongly due to some bug.
12902 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
12903 (push_display_prop): Allow GET_FROM_STRING as IT->method on
12904 entry. Force push_it to save on the stack the current
12905 buffer/string position, to be restored by pop_it. Fix flags in
12906 the iterator structure wrt the object coming from a display
12907 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
12908 properties. (Bug#9284)
12909
7be1c708 129102011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 12911
7be1c708
CY
12912 * fontset.c (fontset_get_font_group): Add proper type checks.
12913 (Bug#9172)
aac0c6e3 12914
7be1c708 129152011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 12916
7be1c708
CY
12917 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
12918 and LC_VERSION_MIN_MACOSX.
12919 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
12920 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 12921
97bb72a6
EZ
129222011-08-08 Eli Zaretskii <eliz@gnu.org>
12923
12924 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
12925 no-display-properties-and-no-overlays under bidi display.
12926 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 12927 properties and overlays.
97bb72a6 12928
d5617611
CY
129292011-08-08 Chong Yidong <cyd@stupidchicken.com>
12930
37e11a63
CY
12931 * editfns.c (Fset_time_zone_rule): Document relationship with the
12932 setenv function.
12933
d5617611
CY
12934 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
12935 the font entity extracted from the cache (Bug#8109).
12936
58872834
CY
129372011-08-07 Chong Yidong <cyd@stupidchicken.com>
12938
12939 * composite.c (autocmp_chars): Don't reset point. That is done by
12940 restore_point_unwind (Bug#5984).
12941
75bfc667
JL
129422011-08-07 Juri Linkov <juri@jurta.org>
12943
12944 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
12945 to show the arg `TIME' instead of `TIMEVAL'.
12946
d1410150
EZ
129472011-08-06 Eli Zaretskii <eliz@gnu.org>
12948
12949 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
12950 display property strides EOL and includes a newline, as in
12951 longlines-mode. (Bug#9254)
75b771e4
EZ
12952 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
12953 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
12954
12955 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
12956 is non-zero, even if the data buffer is NULL. Fixes a crash in
12957 vertical-motion with longlines-mode. (Bug#9254)
12958
35928349
EZ
129592011-08-05 Eli Zaretskii <eliz@gnu.org>
12960
ec7cc85b
EZ
12961 * bidi.c <bidi_cache_total_alloc>: Now static.
12962 (bidi_initialize): Initialize bidi_cache_total_alloc.
12963
8b76d6f8 12964 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
12965 cache. (Bug#9221)
12966
12967 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
12968 amount allocated this far in `bidi_cache_total_alloc'.
12969 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
12970 non-zero, only free the data buffer without restoring the cache
12971 contents. All callers changed.
12972
12973 * dispextern.h (bidi_unshelve_cache): Update prototype.
12974
12975 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
12976 (move_it_in_display_line, move_it_to)
12977 (move_it_vertically_backward, move_it_by_lines): Replace the call
12978 to xfree to an equivalent call to bidi_unshelve_cache.
12979 (move_it_in_display_line_to): Fix logic of returning
412b6358 12980 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 12981
e2e2423b
EZ
129822011-08-05 Eli Zaretskii <eliz@gnu.org>
12983
12984 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
12985 came from a string character with a `cursor' property. (Bug#9229)
12986
ae9e757a
JD
129872011-08-04 Jan Djärv <jan.h.d@swipnet.se>
12988
12989 * Makefile.in (LIB_PTHREAD): New variable.
12990 (LIBES): Add LIB_PTHREAD (Bug#9216).
12991
12992 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
12993 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
12994
213bd7f2
AS
129952011-08-04 Andreas Schwab <schwab@linux-m68k.org>
12996
6b02f655 12997 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 12998
99aaf75f
JD
129992011-08-04 Jan Djärv <jan.h.d@swipnet.se>
13000
13001 * xterm.c (x_find_topmost_parent): New function.
13002 (x_set_frame_alpha): Find topmost parent window with
13003 x_find_topmost_parent and set the property there also (bug#9181).
13004 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
13005
c74e9d86
PE
130062011-08-04 Paul Eggert <eggert@cs.ucla.edu>
13007
13008 * callproc.c (Fcall_process): Avoid vfork clobbering
13009 the local vars buffer, coding_systems, current_dir.
13010
640c8776
SM
130112011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
13012
13013 * keymap.c (Fmake_composed_keymap): Move to subr.el.
13014
f26d0e4c
PE
130152011-08-03 Paul Eggert <eggert@cs.ucla.edu>
13016
8a10d76c
PE
13017 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
13018 so that it is not optimized away.
13019
f26d0e4c
PE
13020 * xdisp.c (compute_display_string_pos): Remove unused local.
13021
55439c61
EZ
130222011-08-02 Eli Zaretskii <eliz@gnu.org>
13023
13024 Fix slow cursor motion and scrolling in large buffers with
13025 selective display, like Org Mode buffers. (Bug#9218)
13026
13027 * dispextern.h (struct bidi_it): New member disp_prop_p.
13028
13029 * xdisp.c: Remove one-slot cache of display string positions.
13030 (compute_display_string_pos): Accept an additional argument
5e617bc2 13031 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
13032 for a display string or property. If found, set DISP_PROP_P
13033 non-zero.
13034
13035 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
13036 DISP_PROP_P, and pass it to compute_display_string_pos.
13037 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
13038 non-zero. All callers of bidi_fetch_char changed.
13039
fb33fa43
SM
130402011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
13041
13042 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
13043
b099e063
DM
130442010-12-03 Don March <don@ohspite.net>
13045
13046 * keymap.c (Fdefine_key): Fix non-prefix key error message when
13047 last character M-[char] is translated to ESC [char] (bug#7541).
13048
5cc7f7af
KH
130492011-08-02 Kenichi Handa <handa@m17n.org>
13050
d0fffa3f 13051 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
13052
13053 * chartab.c (uniprop_table): Make it non-static.
13054
525d5e6e
EZ
130552011-08-01 Eli Zaretskii <eliz@gnu.org>
13056
13057 * xdisp.c (forward_to_next_line_start): Accept additional argument
13058 BIDI_IT_PREV, and store into it the state of the bidi iterator had
13059 on the newline.
13060 (reseat_at_next_visible_line_start): Use the bidi iterator state
13061 returned by forward_to_next_line_start to restore the state of
13062 it->bidi_it after backing up to previous newline. (Bug#9212)
13063
31011111
AS
130642011-07-30 Andreas Schwab <schwab@linux-m68k.org>
13065
13066 * regex.c (re_comp): Protoize.
13067 (re_exec): Fix return type.
13068 (regexec): Fix type of `ret'. (Bug#9203)
13069
476371c4
PE
130702011-07-28 Paul Eggert <eggert@cs.ucla.edu>
13071
e5d76069
PE
13072 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
13073 This is needed if max-image-size is a floating-point number.
13074
9a79b20c
AS
130752011-07-28 Andreas Schwab <schwab@linux-m68k.org>
13076
13077 * print.c (print_object): Print empty symbol as ##.
13078
13079 * lread.c (read1): Read ## as empty symbol.
13080
d8c2fa78
AA
130812011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
13082
13083 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
13084 setting frame foreground color (Bug#9175).
13085 (x_set_background_color): Likewise.
13086
ffe57a7a
AA
13087 * nsmenu.m (-setText): Size tooltip dimensions precisely to
13088 contents (Bug#9176).
13089 (EmacsTooltip -init): Remove bezels and add shadows to
13090 tooltip windows.
13091
bf3492a5
AA
13092 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
13093 or scroll bar (Bug#8470).
13094
d55e9c53
AA
13095 * nsfont.m (nsfont_open): Remove assignment to voffset and
13096 unnecessary vars hshink, expand, hd, full_height, min_height.
13097 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
13098
13099 * nsterm.h (nsfont_info): Remove voffset field.
13100
d8c2fa78 131012011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
13102
13103 Implement strike-through and overline on NextStep (Bug#8863).
13104
13105 * nsfont.m (nsfont_open): Use underline position provided by font,
13106 instead of hard-coded value of 2.
13107 (nsfont_draw): Call ns_draw_text_decoration instead.
13108
13109 * nsterm.h: Add declaration for ns_draw_text_decoration.
13110
13111 * nsterm.m (ns_draw_text_decoration): New function for drawing
13112 underline, overline, and strike-through.
13113 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
13114 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 13115 accommodate underlining, etc.
4843aac3 13116
4cc60b9b
EZ
131172011-07-28 Eli Zaretskii <eliz@gnu.org>
13118
bc7ece87
EZ
13119 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
13120 default.
4cc60b9b 13121
476371c4
PE
131222011-07-28 Paul Eggert <eggert@cs.ucla.edu>
13123
66606eea
PE
13124 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
13125 Without this fix, if a signal arrives just after memory fills up,
13126 'malloc' might be invoked reentrantly.
13127
476371c4
PE
13128 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
13129 In other words, assume that every image size is allowed, on non-X
13130 hosts. This assumption is probably wrong, but it lets Emacs compile.
13131
f3fcc40d
AS
131322011-07-28 Andreas Schwab <schwab@linux-m68k.org>
13133
13134 * regex.c (re_iswctype): Convert return values to boolean.
13135
350c992f
EZ
131362011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
13137
13138 * xdisp.c (compute_display_string_pos): Don't use cached display
13139 string position if the buffer had its restriction changed.
13140 (Bug#9184)
13141
5266b4bb
PE
131422011-07-28 Paul Eggert <eggert@cs.ucla.edu>
13143
13144 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
13145
2573a837 131462011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 13147
41f55ccd 13148 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 13149
39e378da
PE
13150 * bidi.c: Integer size and overflow fixes.
13151 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
13152 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
13153 (bidi_cache_find_level_change, bidi_cache_ensure_space)
13154 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
13155 (bidi_find_other_level_edge):
13156 Use ptrdiff_t instead of EMACS_INT where either will do.
13157 This works better on 32-bit hosts configured --with-wide-int.
13158 (bidi_cache_ensure_space): Check for size-calculation overflow.
13159 Use % rather than repeated addition, for better worst-case speed.
13160 Don't set bidi_cache_size until after xrealloc returns, because it
13161 might not return.
13162 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
13163 (bidi_cache_ensure_space): Also check that the bidi cache size
13164 does not exceed that of the largest Lisp string or buffer. See Eli
13165 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 13166
5e927815
PE
13167 * alloc.c (__malloc_size_t): Remove.
13168 All uses replaced by size_t. See Andreas Schwab's note
13169 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
13170
ca4aa935
PE
13171 * image.c: Improve checking for integer overflow.
13172 (check_image_size): Assume that f is nonnull, since
13173 it is always nonnull in practice. This is one less thing to
13174 worry about when checking for integer overflow later.
13175 (x_check_image_size): New function, which checks for integer
13176 overflow issues inside X.
13177 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
13178 This removes the need for a memory_full check.
13179 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
13180 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
13181 (xbm_read_bitmap_data): Change locals back to 'int', since
13182 their values must fit in 'int'.
13183 (xpm_load_image, png_load, tiff_load):
13184 Invoke x_create_x_image_and_pixmap earlier,
13185 to avoid much needless work if the image is too large.
13186 (tiff_load): Treat overly large images as if
13187 x_create_x_image_and_pixmap failed, not as malloc failures.
13188 (gs_load): Use x_check_image_size.
13189
5f8f9cc2
PE
13190 * gtkutil.c: Omit integer casts.
13191 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
13192 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
13193
5adf60bc
PE
13194 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
13195
c8907a93
PE
13196 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
13197 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
13198 would wrongly return t on a 64-bit host.
13199
e3c25c68
PE
13200 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
13201 The plain *_OVERFLOW macros run afoul of GCC bug 49705
13202 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
13203 and therefore cause GCC to emit a bogus diagnostic in some cases.
13204
3f791afe
PE
13205 * image.c: Integer signedness and overflow and related fixes.
13206 This is not an exhaustive set of fixes, but it's time to
13207 record what I've got.
13208 (lookup_pixel_color, check_image_size): Remove redundant decls.
13209 (check_image_size): Don't assume that arbitrary EMACS_INT values
13210 fit in 'int', or that arbitrary 'double' values fit in 'int'.
13211 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
13212 (tiff_load, imagemagick_load_image):
13213 Check for overflow in size calculations.
13214 (x_create_x_image_and_pixmap): Remove unnecessary test for
13215 xmalloc returning NULL; that can't happen.
13216 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
13217 (xpm_color_bucket): Use better integer hashing function.
13218 (xpm_cache_color): Don't possibly over-allocate memory.
13219 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
13220 (gif_memory_source):
13221 Use ptrdiff_t, not int or size_t, to record sizes.
13222 (png_load): Don't assume values greater than 2**31 fit in 'int'.
13223 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
13224 either works, as we prefer signed integers.
13225 (tiff_read_from_memory, tiff_write_from_memory):
13226 Return tsize_t, not size_t, since that's what the TIFF API wants.
13227 (tiff_read_from_memory): Don't fail simply because the read would
13228 go past EOF; instead, return a short read.
13229 (tiff_load): Omit no-longer-needed casts.
13230 (Fimagemagick_types): Don't assume size fits into 'int'.
13231
3cc5a532
PE
13232 Improve hashing quality when configured --with-wide-int.
13233 * fns.c (hash_string): New function, taken from sxhash_string.
13234 Do not discard information about ASCII character case; this
13235 discarding is no longer needed.
13236 (sxhash-string): Use it. Change sig to match it. Caller changed.
13237 * lisp.h: Declare it.
13238 * lread.c (hash_string): Remove, since we now use fns.c's version.
13239 The fns.c version returns a wider integer if --with-wide-int is
13240 specified, so this should help the quality of the hashing a bit.
13241
b312a492
PE
13242 * emacs.c: Integer overflow minor fix.
13243 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
13244 Define only if GNU_LINUX.
13245 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
13246
dfd153ae
PE
13247 * dispnew.c: Integer signedness and overflow fixes.
13248 Remove unnecessary forward decls, that were a maintenance hassle.
13249 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
13250 All uses changed.
13251 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
13252 (scrolling_window): Use ptrdiff_t, not int, for byte count.
13253 (prepare_desired_row, line_draw_cost):
13254 Use int, not unsigned, where either works.
13255 (save_current_matrix, restore_current_matrix):
13256 Use ptrdiff_t, not size_t, where either works.
13257 (init_display): Check for overflow more accurately, and without
13258 relying on undefined behavior.
13259
a81d11a3
PE
13260 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
13261 Remove, replacing with the new symbols in lisp.h. All uses changed.
13262 * fileio.c (make_temp_name):
13263 * filelock.c (lock_file_1, lock_file):
13264 * xdisp.c (message_dolog):
13265 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
13266 Use pMd etc. instead.
13267 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
13268 replacing the pWIDE etc. symbols removed from editfns.c.
13269
3300e6fd
PE
13270 * keyboard.h (num_input_events): Now uintmax_t.
13271 This is (very slightly) less likely to mess up due to wraparound.
13272 All uses changed.
13273
fd05c7e9
PE
13274 * buffer.c: Integer signedness fixes.
13275 (alloc_buffer_text, enlarge_buffer_text):
13276 Use ptrdiff_t rather than size_t when either will do, as we prefer
13277 signed integers.
13278
903fe15d
PE
13279 * alloc.c: Integer signedness and overflow fixes.
13280 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
13281 (__malloc_size_t): Default to size_t, not to int.
13282 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
13283 (Fgarbage_collect, mark_object_loop_halt, mark_object):
13284 Prefer ptrdiff_t to size_t when either would do, as we prefer
13285 signed integers.
13286 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
13287 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
13288 Now const. Initialize with values that are in range even if char
13289 is signed.
13290 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
13291 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
13292 These functions do the right thing with sizes > 2**32.
13293 (check_depth): Now ptrdiff_t, not int.
13294 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
13295 Adjust to new way of storing sizes. Check for size overflow bugs
13296 in rest of code.
13297 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
13298 slightly wrong anyway, as it missed one instance of
13299 XMALLOC_OVERRUN_CHECK_OVERHEAD.
13300 (refill_memory_reserve): Omit needless cast to size_t.
13301 (mark_object_loop_halt): Mark as externally visible.
13302
ac82cc6a
PE
13303 * xselect.c: Integer signedness and overflow fixes.
13304 (Fx_register_dnd_atom, x_handle_dnd_message):
13305 Use ptrdiff_t, not size_t, since we prefer signed.
13306 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
13307 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
13308 x_dnd_atoms_size and x_dnd_atoms_length.
13309
c2d1e36d
PE
13310 * doprnt.c: Prefer signed to unsigned when either works.
13311 * eval.c (verror):
13312 * doprnt.c (doprnt):
13313 * lisp.h (doprnt):
13314 * xdisp.c (vmessage):
13315 Use ptrdiff_t, not size_t, when using or implementing doprnt,
13316 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
13317 prefer signed arithmetic to avoid comparison confusion.
13318 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
13319 but is a bit tricky.
13320
0e926e56
PE
13321 Assume freestanding C89 headers, string.h, stdlib.h.
13322 * data.c, doprnt.c, floatfns.c, print.c:
13323 Include float.h unconditionally.
13324 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
13325 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
13326 * regex.c: Likewise for stddef.h, string.h.
13327 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
13328 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
13329 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
13330 (STDC_HEADERS): Remove obsolete defines.
13331 * sysdep.c: Include limits.h unconditionally.
13332
9cfdb3ec
PE
13333 Assume support for memcmp, memcpy, memmove, memset.
13334 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
13335 * regex.c (memcmp, memcpy):
13336 Remove; we assume C89 now.
13337
13338 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
13339 (__malloc_safe_bcopy): Remove; no longer needed.
13340
cf950e6b 13341 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
13342 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
13343 well either way, and we prefer signed to unsigned.
13344
dbf38e02
LMI
133452011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
13346
13347 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
13348 closes the connection while we're reading (bug#9182).
13349
d6f0886c 133502011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 13351
d6f0886c
JD
13352 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
13353 are specified (Bug#9168).
24e0f6b1 13354
2eb1f9e6
PE
133552011-07-25 Paul Eggert <eggert@cs.ucla.edu>
13356
13357 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
13358 Found by GCC static checking and --with-wide-int on a 32-bit host.
13359
22381272 133602011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
13361
13362 * xdisp.c (compute_display_string_pos): Fix logic of caching
13363 previous display string position. Initialize cached_prev_pos to
13364 -1. Fixes slow-down at the beginning of a buffer.
13365
f25e39b4
EZ
133662011-07-24 Eli Zaretskii <eliz@gnu.org>
13367
13368 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
13369 for attrs[LFACE_FONTSET_INDEX].
13370
04c4b52e
PE
133712011-07-23 Paul Eggert <eggert@cs.ucla.edu>
13372
13373 * xml.c (parse_region): Remove unused local
13374 that was recently introduced.
13375
c1734fbd
EZ
133762011-07-23 Eli Zaretskii <eliz@gnu.org>
13377
be18c5a5
EZ
13378 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
13379 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
13380
c1734fbd
EZ
13381 * xdisp.c (move_it_in_display_line_to): Record the best matching
13382 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
13383 exit if none of the characters scanned was an exact match.
13384 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
13385 when exact match is impossible due to invisible text, and the
13386 lines are truncated.
13387
a258d627
JD
133882011-07-23 Jan Djärv <jan.h.d@swipnet.se>
13389
13390 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
13391 for OSX >= 10.7.
13392
b6d5a689
EZ
133932011-07-22 Eli Zaretskii <eliz@gnu.org>
13394
0f74f785
EZ
13395 Fix a significant slow-down of cursor motion with C-n, C-p,
13396 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
13397 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 13398 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
13399 (next_element_from_buffer): Call compute_stop_pos_backwards to
13400 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
13401 base_level_stop.
13402 (reseat): Don't look for prev_stop, as that could mean a very long
13403 run.
13404 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
13405 <cached_disp_overlay_modiff>: Cache for last found display string
13406 position.
551918c1 13407 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
13408 about the same buffer in the same area of character positions, and
13409 the buffer wasn't changed since the time the display string
13410 position was cached.
551918c1 13411
b2d0c91a
EZ
134122011-07-22 Eli Zaretskii <eliz@gnu.org>
13413
13414 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
13415 is an integer, which is important for empty lines. (Bug#9149)
13416
043604ee
CY
134172011-07-22 Chong Yidong <cyd@stupidchicken.com>
13418
13419 * frame.c (Fmodify_frame_parameters): In tty case, update the
13420 default face if necessary (Bug#4238).
13421
da4adb04
CY
134222011-07-21 Chong Yidong <cyd@stupidchicken.com>
13423
13424 * editfns.c (Fstring_to_char): No need to explain what a character
13425 is in the docstring (Bug#6576).
13426
9abd0532
LMI
134272011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
13428
13429 * xml.c (parse_region): Make sure we always return a tree.
13430
36881d16
HK
134312011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
13432
13433 * xml.c (parse_region): If a document contains only comments,
13434 return that, too.
13435
1e98674d
LMI
134362011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
13437
13438 * xml.c (make_dom): Return comments, too.
13439
590bd467
PE
134402011-07-19 Paul Eggert <eggert@cs.ucla.edu>
13441
13442 Port to OpenBSD.
13443 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
13444 and the surrounding thread.
13445 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
13446 rather than fgets, and retry after EINTR. Otherwise, 'emacs
13447 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
13448 timer goes off.
13449 * s/openbsd.h (BROKEN_SIGIO): Define.
13450 * unexelf.c (unexec) [__OpenBSD__]:
13451 Don't update the .mdebug section of the Alpha COFF symbol table.
13452
f41628b2
LMI
134532011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
13454
13455 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
13456 (bug#8460).
13457
b59b67c5
PE
134582011-07-18 Paul Eggert <eggert@cs.ucla.edu>
13459
15e3a074
PE
13460 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
13461 This fixes some race conditions on the permissions of any newly
13462 created file.
13463
41bed37d
PE
13464 * alloc.c (valid_pointer_p): Use pipe, not open.
13465 This fixes some permissions issues when debugging.
13466
b59b67c5
PE
13467 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
13468 If fchown fails to set both uid and gid, try to set just gid,
13469 as that is sometimes allowed. Adjust the file's mode to eliminate
13470 setuid or setgid bits that are inappropriate if fchown fails.
13471
925a6be7
SM
134722011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
13473
13474 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
13475 to compare Lisp_Objects.
13476 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
13477 global_gnutls_log_level, don't mistake it for a Lisp_Object.
13478 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
13479
52968808
AS
134802011-07-17 Andreas Schwab <schwab@linux-m68k.org>
13481
0a6a104b
AS
13482 * lread.c (read_integer): Unread even EOF character.
13483 (read1): Likewise. Properly record start position of symbol.
13484
52968808
AS
13485 * lread.c (read1): Read `#:' as empty uninterned symbol if no
13486 symbol character follows.
13487
9e381cdd
PE
134882011-07-17 Paul Eggert <eggert@cs.ucla.edu>
13489
13490 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
13491 This works around a problem with the previous change to Fcopy_file.
13492 Recent glibc declares fchown with __attribute__((warn_unused_result)),
13493 and without this change, GCC might complain about discarding
13494 fchown's return value.
13495
b5641435
JB
134962011-07-16 Juanma Barranquero <lekktu@gmail.com>
13497
13498 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
13499
a8031457
PE
135002011-07-16 Paul Eggert <eggert@cs.ucla.edu>
13501
13502 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
13503
dd889327
LMI
135042011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
13505
750c33f7
LMI
13506 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
13507 it's used from the C level.
13508
dd889327
LMI
13509 * process.c: Use the same condition for POLL_FOR_INPUT in both
13510 keyboard.c and process.c (bug#1858).
13511
87e86684
LM
135122011-07-09 Lawrence Mitchell <wence@gmx.li>
13513
13514 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
13515 (Fgnutls_boot): Use it.
13516
64348f40
AS
135172011-07-15 Andreas Schwab <schwab@linux-m68k.org>
13518
13519 * doc.c (Fsubstitute_command_keys): Revert last change.
13520
1d698799
LMI
135212011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
13522
f863868c
LMI
13523 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
13524 quotes the next character, and doesn't affect other longer
13525 sequences (bug#8935).
13526
1d698799
LMI
13527 * lread.c (syms_of_lread): Clarify that is isn't only
13528 `eval-buffer' and `eval-defun' that's affected by
13529 `lexical-binding' (bug#8460).
13530
aa4b6df6
EZ
135312011-07-15 Eli Zaretskii <eliz@gnu.org>
13532
13533 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 13534 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 13535
5d856da6
PE
135362011-07-14 Paul Eggert <eggert@cs.ucla.edu>
13537
ad6042bb
PE
13538 Fix minor problems found by static checking.
13539 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
13540 (elsz): Now a signed constant, not a size_t var. We prefer signed
13541 types to unsigned, to avoid integer comparison confusion. Without
13542 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
13543 "cannot optimize loop, the loop counter may overflow", a symptom
13544 of the confusion.
f00bbb22 13545 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
13546 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
13547
6468f31c
LMI
135482011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
13549
49080b10
LMI
13550 * search.c (Fre_search_backward): Mention `case-fold-search' in
13551 all the re_search_* functions (bug#8138).
13552
6468f31c
LMI
13553 * keyboard.c (Fopen_dribble_file): Document when the file is
13554 closed (bug#8056).
13555
c965adc5
EZ
135562011-07-14 Eli Zaretskii <eliz@gnu.org>
13557
df9733bf
EZ
13558 * bidi.c (bidi_dump_cached_states): Fix format of displaying
13559 bidi_cache_idx.
13560
0bb23927
EZ
13561 Support bidi reordering of display and overlay strings.
13562 * xdisp.c (compute_display_string_pos)
13563 (compute_display_string_end): Accept additional argument STRING.
13564 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
13565 (reseat_to_string): Initialize bidi_it->string.s and
13566 bidi_it->string.schars.
13567 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
13568 NULL (avoids a crash in bidi_paragraph_init).
13569 Initialize itb.string.lstring.
0bb23927
EZ
13570 (init_iterator): Call bidi_init_it only of a valid
13571 buffer position was specified. Initialize paragraph_embedding to
13572 L2R.
13573 (reseat_to_string): Initialize the bidi iterator.
13574 (display_string): If we need to ignore text properties of
13575 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
13576 original value of -1 will not work with bidi.)
13577 (compute_display_string_pos): First arg is now struct
13578 `text_pos *'; all callers changed. Support display properties on
13579 Lisp strings.
13580 (compute_display_string_end): Support display properties on Lisp
13581 strings.
13582 (init_iterator, reseat_1, reseat_to_string): Initialize the
13583 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
13584 when iterating on a string not from display properties).
640c8776
SM
13585 (compute_display_string_pos, compute_display_string_end):
13586 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
13587 arrow keys.
13588 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
13589 base_level_stop; instead, set base_level_stop to BEGV.
13590 Fixes crashes in vertical-motion.
0bb23927
EZ
13591 (next_element_from_buffer): Improve commentary for when
13592 the iterator is before prev_stop.
13593 (init_iterator): Initialize bidi_p from the default value of
13594 bidi-display-reordering, not from buffer-local value. Use the
13595 buffer-local value only if initializing for buffer iteration.
13596 (handle_invisible_prop): Support invisible properties on strings
13597 that are being bidi-reordered.
13598 (set_iterator_to_next): Support bidi reordering of C strings and
13599 Lisp strings.
13600 (next_element_from_string): Support bidi reordering of Lisp
13601 strings.
13602 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
13603 (display_string): Support display of R2L glyph rows.
13604 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
13605 (init_iterator): Don't initialize it->bidi_p for strings
13606 here.
13607 (reseat_to_string): Initialize it->bidi_p for strings here.
13608 (next_element_from_string, next_element_from_c_string)
13609 (next_element_from_buffer): Add xassert's for correspondence
13610 between IT's object being iterated and it->bidi_it.string
13611 structure.
13612 (face_before_or_after_it_pos): Support bidi iteration.
13613 (next_element_from_c_string): Handle the case of the first string
13614 character that is not the first one in the visual order.
13615 (get_visually_first_element): New function, refactored from common
13616 parts of next_element_from_buffer, next_element_from_string, and
13617 next_element_from_c_string.
13618 (tool_bar_lines_needed, redisplay_tool_bar)
13619 (display_menu_bar): Force left-to-right direction. Add a FIXME
13620 comment for making that be controlled by a user option.
13621 (push_it, pop_it): Save and restore the state of the
13622 bidi iterator. Save and restore the bidi_p flag.
13623 (pop_it): Iterate out of display property for string iteration as
13624 well.
13625 (iterate_out_of_display_property): Support iteration over strings.
13626 (handle_single_display_spec): Set up it->bidi_it for iteration
13627 over a display string, and call bidi_init_it.
13628 (handle_single_display_spec, next_overlay_string)
13629 (get_overlay_strings_1, push_display_prop): Set up the bidi
13630 iterator for displaying display or overlay strings.
13631 (forward_to_next_line_start): Don't use the shortcut if
13632 bidi-iterating.
13633 (back_to_previous_visible_line_start): If handle_display_prop
13634 pushed the iterator stack, restore the internal state of the bidi
13635 iterator by calling bidi_pop_it same number of times.
13636 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
13637 and we are bidi-iterating, don't decrement the iterator position;
13638 instead, set the first_elt flag in the bidi iterator, to produce
13639 the same effect.
13640 (reseat_1): Remove redundant setting of string_from_display_prop_p.
13641 (push_display_prop): xassert that we are iterating a buffer.
13642 (push_it, pop_it): Save and restore paragraph_embedding member.
13643 (handle_single_display_spec, next_overlay_string)
13644 (get_overlay_strings_1, reseat_1, reseat_to_string)
13645 (push_display_prop): Set up the `unibyte' member of bidi_it.string
13646 correctly. Don't assume unibyte strings are not bidi-reordered.
13647 (compute_display_string_pos)
13648 (compute_display_string_end): Fix handling the case of C string.
13649 (push_it, pop_it): Save and restore from_disp_prop_p.
13650 (handle_single_display_spec, push_display_prop): Set the
13651 from_disp_prop_p flag.
13652 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
13653 (pop_it): Call iterate_out_of_display_property only if we are
13654 popping after iteration over a string that came from a display
13655 property. Fix a typo in popping stretch info. Add an assertion
13656 for verifying that the iterator position is in sync with the bidi
13657 iterator.
13658 (handle_single_display_spec, get_overlay_strings_1)
13659 (push_display_prop): Fix initialization of paragraph direction for
13660 string when that of the parent object is not yet determined.
13661 (reseat_1): Call bidi_init_it to resync the bidi
13662 iterator with IT's position. (Bug#7616)
13663 (find_row_edges): If ROW->start.pos gives position
13664 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
13665 (handle_stop, back_to_previous_visible_line_start, reseat_1):
13666 Reset the from_disp_prop_p flag.
13667 (SAVE_IT, RESTORE_IT): New macros.
13668 (pos_visible_p, face_before_or_after_it_pos)
13669 (back_to_previous_visible_line_start)
13670 (move_it_in_display_line_to, move_it_in_display_line)
13671 (move_it_to, move_it_vertically_backward, move_it_by_lines)
13672 (try_scrolling, redisplay_window, display_line): Use them when
13673 saving a temporary copy of the iterator and restoring it back.
13674 (back_to_previous_visible_line_start, reseat_1)
13675 (init_iterator): Empty the bidi cache "stack".
13676 (move_it_in_display_line_to): If iterator ended up at
13677 EOL, but we never saw any buffer positions smaller than
13678 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
13679 motion in bidi-reordered lines.
13680 (move_it_in_display_line_to): Record prev_method and prev_pos
13681 immediately before the call to set_iterator_to_next. Fixes cursor
13682 motion in bidi-reordered lines with stretch glyphs and strings
13683 displayed in margins. (Bug#8133) (Bug#8867)
13684 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
13685 TO_CHARPOS.
640c8776
SM
13686 (pos_visible_p): Support positions in bidi-reordered lines.
13687 Save and restore bidi cache.
0bb23927
EZ
13688
13689 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
13690 (bidi_paragraph_info): Delete unused struct.
13691 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
13692 (bidi_cache_start): New variable.
13693 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
13694 to zero.
13695 (bidi_cache_fetch_state, bidi_cache_search)
13696 (bidi_cache_find_level_change, bidi_cache_iterator_state)
13697 (bidi_cache_find, bidi_peek_at_next_level)
13698 (bidi_level_of_next_char, bidi_find_other_level_edge)
13699 (bidi_move_to_visually_next): Compare cache index with
13700 bidi_cache_start rather than with zero.
13701 (bidi_fetch_char): Accept new argument STRING; all callers
13702 changed. Support iteration over a string. Support strings with
13703 display properties. Support unibyte strings. Fix the type of
13704 `len' according to what STRING_CHAR_AND_LENGTH expects.
13705 (bidi_paragraph_init, bidi_resolve_explicit_1)
13706 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
13707 (bidi_level_of_next_char, bidi_move_to_visually_next):
13708 Support iteration over a string.
0bb23927
EZ
13709 (bidi_set_sor_type, bidi_resolve_explicit_1)
13710 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
13711 can now be zero (for strings); special values 0 and -1 were
13712 changed to -1 and -2, respectively.
13713 (bidi_char_at_pos): New function.
13714 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
13715 Call it instead of FETCH_MULTIBYTE_CHAR.
13716 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
13717 initialized to valid values.
13718 (bidi_init_it): Don't initialize charpos and bytepos with invalid
13719 values.
13720 (bidi_level_of_next_char): Allow the sentinel "position" to pass
13721 the test for valid cached positions. Fix the logic for looking up
13722 the sentinel state in the cache. GCPRO the Lisp string we are
13723 iterating.
13724 (bidi_push_it, bidi_pop_it): New functions.
13725 (bidi_initialize): Initialize the bidi cache start stack pointer.
13726 (bidi_cache_ensure_space): New function, refactored from part of
13727 bidi_cache_iterator_state. Don't assume the required size is just
13728 one BIDI_CACHE_CHUNK away.
13729 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
13730 (bidi_count_bytes, bidi_char_at_pos): New functions.
13731 (bidi_cache_search): Don't assume bidi_cache_last_idx is
13732 always valid if bidi_cache_idx is valid.
13733 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
13734 is valid if it's going to be used.
13735 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
13736 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
13737 (bidi_cache_find_level_change, bidi_cache_ensure_space)
13738 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
13739 (bidi_find_other_level_edge, bidi_cache_start_stack):
13740 All variables related to cache indices are now EMACS_INT.
c965adc5 13741
0bb23927
EZ
13742 * dispextern.h (struct bidi_string_data): New structure.
13743 (struct bidi_it): New member `string'. Make flag members be 1-bit
13744 fields, and put them last in the struct.
640c8776
SM
13745 (compute_display_string_pos, compute_display_string_end):
13746 Update prototypes.
0bb23927
EZ
13747 (bidi_push_it, bidi_pop_it): Add prototypes.
13748 (struct iterator_stack_entry): New members bidi_p,
13749 paragraph_embedding, and from_disp_prop_p.
13750 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
13751 (bidi_shelve_cache, bidi_unshelve_cache):
13752 Declare prototypes.
0bb23927
EZ
13753
13754 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
13755 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
13756 and vector-like objects.
13757
13758 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
13759 cache around display iteration.
13760
13761 * window.c (Fwindow_end, window_scroll_pixel_based)
13762 (displayed_window_lines, Frecenter): Save and restore the bidi
13763 cache around display iteration.
13764
3bbd2265
LMI
137652011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
13766
13767 * editfns.c (Fdelete_region): Clarify the use of the named
13768 parameters (bug#6788).
13769
adc47434
MR
137702011-07-14 Martin Rudalics <rudalics@gmx.at>
13771
13772 * indent.c (Fvertical_motion): Set and restore w->pointm when
13773 saving and restoring the window's buffer (Bug#9006).
13774
837c31f8
LMI
137752011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
13776
13777 * editfns.c (Fstring_to_char): Clarify just what is returned
13778 (bug#6576). Text by Eli Zaretskii.
13779
ac389d0c
JB
137802011-07-13 Juanma Barranquero <lekktu@gmail.com>
13781
13782 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
13783
0be0ce47
EZ
137842011-07-13 Eli Zaretskii <eliz@gnu.org>
13785
13786 * buffer.c (mmap_find): Fix a typo.
13787
cd18e7e3
JB
137882011-07-13 Johan Bockgård <bojohan@gnu.org>
13789
13790 Fix execution of x selection hooks.
13791 * xselect.c (Qx_lost_selection_functions)
13792 (Qx_sent_selection_functions): New vars.
13793 (syms_of_xselect): DEFSYM them.
13794 (x_handle_selection_request): Pass Qx_sent_selection_functions
13795 rather than Vx_sent_selection_functions to Frun_hook_with_args.
13796 (x_handle_selection_clear,x_clear_frame_selections):
13797 Pass Qx_lost_selection_functions rather than
13798 Vx_lost_selection_functions to Frun_hook_with_args.
13799
47ea7f44
PE
138002011-07-13 Paul Eggert <eggert@cs.ucla.edu>
13801
ac389d0c 13802 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
13803 The old code sometimes used this field without initializing it.
13804
47ea7f44
PE
13805 * alloc.c (gc_sweep): Don't read past end of array.
13806 In theory, the old code could also have corrupted Emacs internals,
13807 though it'd be very unlikely.
13808
bc985c87
AS
138092011-07-12 Andreas Schwab <schwab@linux-m68k.org>
13810
13811 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 13812 argument. (Bug#4026)
bc985c87 13813
0cf34688
LMI
138142011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
13815
b3dadd76
LMI
13816 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
13817 key" (bug#4257).
13818
0cf34688
LMI
13819 * window.c (Fset_window_start): Doc fix (bug#4199).
13820 (Fset_window_hscroll): Ditto.
13821
270768cd
PE
138222011-07-12 Paul Eggert <eggert@cs.ucla.edu>
13823
077e3dda 13824 Fix minor new problems caught by GCC 4.6.1.
270768cd 13825 * term.c (init_tty): Remove unused local.
490011a6 13826 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 13827 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 13828 not used otherwise.
270768cd 13829
b1f58454
CY
138302011-07-12 Chong Yidong <cyd@stupidchicken.com>
13831
13832 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
13833
22b9578d
LMI
138342011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
13835
6e70ab07
LMI
13836 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
13837 are the mini-buffer and the echo area (bug#3320).
13838
22b9578d
LMI
13839 * term.c (init_tty): Remove support for supdup, c10 and perq
13840 terminals, which are no longer supported (bug#1482).
13841
8974cc9f
JB
138422011-07-10 Johan Bockgård <bojohan@gnu.org>
13843
13844 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
13845
a560d974
JD
138462011-07-10 Jan Djärv <jan.h.d@swipnet.se>
13847
13848 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
13849 for non-popups (Bug#3642).
13850
1dae0f0a
AS
138512011-07-10 Andreas Schwab <schwab@linux-m68k.org>
13852
268c2c36 13853 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 13854 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
13855 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
13856 * cm.c (losecursor): Likewise.
1dae0f0a
AS
13857 * data.c (fmod): Likewise.
13858 * dispnew.c (swap_glyphs_in_rows): Likewise.
13859 * emacs.c (memory_warning_signal): Likewise.
13860 * floatfns.c (float_error): Likewise.
13861 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
13862 (otf_open, font_otf_capability, generate_otf_features)
13863 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
13864 Likewise.
13865 * image.c (pbm_read_file): Likewise.
13866 * indent.c (string_display_width): Likewise.
13867 * intervals.c (check_for_interval, search_for_interval)
13868 (inc_interval_count, count_intervals, root_interval)
13869 (adjust_intervals_for_insertion, make_new_interval): Likewise.
13870 * lread.c (defalias): Likewise.
268c2c36 13871 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
13872 * regex.c (set_image_of_range_1, set_image_of_range)
13873 (regex_grow_registers): Likewise.
13874 * sysdep.c (strerror): Likewise.
13875 * termcap.c (valid_filename_p, tprint, main): Likewise.
13876 * tparam.c (main): Likewise.
13877 * unexhp9k800.c (run_time_remap, save_data_space)
13878 (update_file_ptrs, read_header, write_header, calculate_checksum)
13879 (copy_file, copy_rest, display_header): Likewise.
13880 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
13881 Likewise.
13882 * xdisp.c (check_it): Likewise.
13883 * xfaces.c (register_color, unregister_color, unregister_colors):
13884 Likewise.
13885 * xfns.c (print_fontset_result): Likewise.
13886 * xrdb.c (member, fatal, main): Likewise.
13887
99033785
PE
138882011-07-10 Paul Eggert <eggert@cs.ucla.edu>
13889
13890 Fix minor problems found by static checking (Bug#9031).
13891 * chartab.c (char_table_set_range, map_sub_char_table):
13892 Remove unused locals.
13893 (uniprop_table): Now static.
13894 * composite.c (_work_char): Remove unused static var.
13895
9cb2ac56
JB
138962011-07-09 Juanma Barranquero <lekktu@gmail.com>
13897
13898 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
13899
f25661f0
JD
139002011-07-09 Jan Djärv <jan.h.d@swipnet.se>
13901
13902 * gtkutil.c (qttip_cb): Remove code without function.
13903
8278c4fe
EZ
139042011-07-09 Eli Zaretskii <eliz@gnu.org>
13905
13906 * w32.c (pthread_sigmask): New stub.
13907
1692ae2d 139082011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 13909
8a6ebd58 13910 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
13911 sigprocmask is portable only for single-threaded applications, and
13912 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
13913 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
13914 (LIBES): Use it.
13915 * callproc.c (Fcall_process):
13916 * process.c (create_process):
13917 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
13918 Use pthread_sigmask, not sigprocmask.
123403e4 13919
1b854618
JD
139202011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13921
13922 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
13923 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
13924 wrong (Bug#8591).
13925
3fe4b549
JD
139262011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13927
0ce7e563
JD
13928 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
13929 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
13930 (xg_hide_tooltip): Fix comment.
13931
3fe4b549
JD
13932 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
13933 in registerServicesMenuSendTypes.
13934 (validRequestorForSendType): Don't check ns_return_types.
13935
13936 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
13937 ns_return_type.
13938
5df75e47
JR
139392011-07-08 Jason Rumney <jasonr@gnu.org>
13940
22610910
JR
13941 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
13942 SH_SHOW for hidden windows (Bug#5482).
13943
5df75e47
JR
13944 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
13945 frame struct members of non-existent frames (Bug#6284).
13946
699c10bd
JD
139472011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13948
4393663b
JD
13949 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
13950 variable firstTime not needed on OSX >= 10.6.
13951 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
13952 >= 10.5. Use setKnobProportion, setDoubleValue.
13953
13954 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
13955 (MAC_OS_X_VERSION_10_5): Define if not defined.
13956 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
13957 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
13958 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
13959
13960 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 13961 cString and lossyCString on OSX >= 10.4.
4393663b 13962
58179cce 13963 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
13964 sizeToFit on OSX >= 10.2.
13965
13966 * nsimage.m (allocInitFromFile): Don't use deprecated method
13967 bestRepresentationForDevice on OSX >= 10.6.
13968
13969 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
13970 to avoid warning.
13971
13972 * emacs.c: Declare unexec_init_emacs_zone.
13973
a63e0781
JD
13974 * nsgui.h: Fix compiler warning about gnulib redefining verify.
13975
699c10bd
JD
13976 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
13977
13978 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
13979 on svcsMenu (Bug#8842).
13980
13981 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
13982 ns_return_types.
13983 (Fns_list_services): Just return Qnil on 10.6, code not working there.
13984
13985 * nsterm.m (QUTF8_STRING): Declare.
13986 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
13987 (validRequestorForSendType): Return type is (id).
13988 Change indexOfObjectIdenticalTo to indexOfObject.
13989 Check if we have local selection before returning self (Bug#8842).
13990 (writeSelectionToPasteboard): Put local selection into paste board
13991 if we have a local selection (Bug#8842).
13992 (syms_of_nsterm): DEFSYM QUTF8_STRING.
13993
13994 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
13995 (ns_get_local_selection): Declare.
13996
54e10184
LMI
139972011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
13998
9888ff71
LMI
13999 * keymap.c (describe_map_tree): Don't insert a double newline at
14000 the end of the buffer (bug#1169) and return whether we inserted
14001 something.
14002
54e10184
LMI
14003 * callint.c (Fcall_interactively): Change "reading args" to
14004 "providing args" to try to clarify what it does (bug#1010).
14005
15fa4783
KH
140062011-07-07 Kenichi Handa <handa@m17n.org>
14007
14008 * composite.c (composition_compute_stop_pos): Ignore a static
14009 composition starting before CHARPOS (Bug#8915).
14010
14011 * xdisp.c (handle_composition_prop): Likewise.
14012
a8815b00
EZ
140132011-07-07 Eli Zaretskii <eliz@gnu.org>
14014
14015 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
14016 (Bug#9015)
14017
ef7b981d 140182011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
14019
14020 * character.h (unicode_category_t): New enum type.
14021
14022 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
14023 (Qchar_code_property_table): New variable.
14024 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
14025 (UNIPROP_COMPRESSED_FORM_P): New macros.
14026 (char_table_ascii): Uncompress the compressed values.
14027 (sub_char_table_ref): New arg is_uniprop. Callers changed.
14028 Uncompress the compressed values.
ac389d0c 14029 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
14030 (char_table_ref_and_range): Uncompress the compressed values.
14031 (sub_char_table_set): New arg is_uniprop. Callers changed.
14032 Uncompress the compressed values.
14033 (sub_char_table_set_range): Args changed. Callers changed.
14034 (char_table_set_range): Adjuted for the above change.
14035 (map_sub_char_table): Delete args default_val and parent. Add arg
14036 top. Give decoded values to a Lisp function.
640c8776 14037 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
14038 values to a Lisp function. Gcpro more variables.
14039 (uniprop_table_uncompress)
14040 (uniprop_decode_value_run_length): New functions.
14041 (uniprop_decoder, uniprop_decoder_count): New variables.
14042 (uniprop_get_decoder, uniprop_encode_value_character)
14043 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
14044 New functions.
14045 (uniprop_encoder, uniprop_encoder_count): New variables.
14046 (uniprop_get_encoder, uniprop_table)
14047 (Funicode_property_table_internal, Fget_unicode_property_internal)
14048 (Fput_unicode_property_internal): New functions.
14049 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
14050 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 14051 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
14052 char-code-property-alist.
14053
640c8776 14054 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
14055 Vunicode_category_table.
14056
640c8776 14057 * font.c (font_range): Adjust for the change of
c805dec0
KH
14058 Vunicode_category_table.
14059
76b397fb
DN
140602011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
14061
14062 * m/iris4d.h: Remove file, move contents ...
14063 * s/irix6-5.h: ... here.
14064
22b4128e
PE
140652011-07-06 Paul Eggert <eggert@cs.ucla.edu>
14066
14067 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
14068 * alloc.c (mark_buffer):
14069 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
14070 (clone_per_buffer_values): Don't assume that
22b4128e
PE
14071 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
14072 This isn't true in general, and it's particularly not true
14073 if Emacs is configured with --with-wide-int.
14074 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
14075 New macros, used in the buffer.c change.
14076
869795d6
JD
140772011-07-05 Jan Djärv <jan.h.d@swipnet.se>
14078
14079 * xsettings.c: Use both GConf and GSettings if both are available.
14080 (store_config_changed_event): Add comment.
14081 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
14082 (store_tool_bar_style_changed): New functions.
5e617bc2 14083 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
14084 (struct xsettings): Move font inside HAVE_XFT.
14085 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 14086 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 14087 Move inside HAVE_XFT.
640c8776 14088 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
14089 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
14090 also.
14091 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 14092 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 14093 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
14094 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
14095 (parse_settings): Move check for font inside HAVE_XFT.
14096 (read_settings, apply_xft_settings): Add comment.
14097 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
14098 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
14099 call store_font_name_changed.
14100 (xft_settings_event): Add comment.
14101 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
14102 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
14103 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
14104 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
14105 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
14106 (xsettings_get_system_font, xsettings_get_system_normal_font):
14107 Add comment.
869795d6 14108
d8ed26bd
PE
141092011-07-05 Paul Eggert <eggert@cs.ucla.edu>
14110
14111 Random fixes. E.g., (random) never returned negative values.
14112 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
14113 subseconds part to the entropy, as that's a bit more random.
14114 Prefer signed to unsigned, since the signedness doesn't matter and
14115 in general we prefer signed. When given a limit, use a
14116 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
14117 latter isn't right if USE_2_TAGS_FOR_INTS.
14118 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
14119 not 0..VALMASK. Don't discard "excess" bits that random () returns.
14120
cabf1cac
SM
141212011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
14122
14123 * textprop.c (text_property_stickiness):
14124 Obey Vtext_property_default_nonsticky.
14125 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
14126 * w32fns.c (syms_of_w32fns):
14127 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
14128
6e9b2be9
PE
141292011-07-04 Paul Eggert <eggert@cs.ucla.edu>
14130
14131 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
14132 This is more efficient than Ffile_directory_p and avoids a minor race.
14133
90186c68
LMI
141342011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
14135
7c301272
LMI
14136 * buffer.c (Foverlay_put): Say what the return value is
14137 (bug#7835).
14138
c4f2d8d4
LMI
14139 * fileio.c (barf_or_query_if_file_exists): Check first if the file
14140 is a directory before asking whether to use the file name
14141 (bug#7564).
ad637907
LMI
14142 (barf_or_query_if_file_exists): Make the "File is a directory"
14143 error be more correct.
c4f2d8d4 14144
90186c68
LMI
14145 * fns.c (Frequire): Remove the mention of the .gz files, since
14146 that's installation-specific, but keep the mention of
14147 `get-load-suffixes'.
14148
da64016e
PE
141492011-07-04 Paul Eggert <eggert@cs.ucla.edu>
14150
14151 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
14152 Report string overflow if the output is too long.
14153
7d47b580
JB
141542011-07-04 Juanma Barranquero <lekktu@gmail.com>
14155
a555cb87
JB
14156 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
14157 (syms_of_gnutls): Remove duplicate DEFSYM for
14158 Qgnutls_bootprop_verify_hostname_error, an error for
14159 Qgnutls_bootprop_verify_error (which is no longer used).
14160
7d47b580
JB
14161 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
14162 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
14163 Also (re)move comments that are misplaced or no longer relevant.
14164
1e49bfab
LMI
141652011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
14166
14167 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
14168
1485f4c0
CY
141692011-07-03 Chong Yidong <cyd@stupidchicken.com>
14170
14171 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
14172 and background color parameters if they have been changed.
14173
a9ab721e
LMI
141742011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
14175
14176 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
14177
cf7cff57
PE
141782011-07-03 Paul Eggert <eggert@cs.ucla.edu>
14179
2e13213d
PE
14180 * xsettings.c (SYSTEM_FONT): Define only when used.
14181 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
14182
cf7cff57
PE
14183 * keymap.c (access_keymap_1): Now static.
14184
7a8e04f7
CY
141852011-07-02 Chong Yidong <cyd@stupidchicken.com>
14186
14187 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
14188 leave any prefix arg for the up event (Bug#1586).
14189
61352f62
LMI
141902011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
14191
69bb1ef7
LMI
14192 * lread.c (syms_of_lread): Mention single symbols defined by
14193 `defvar' or `defconst' (bug#7154).
14194
61352f62 14195 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 14196 (Frequire): Mention get-load-suffixes.
61352f62 14197
28545e04
MR
141982011-07-02 Martin Rudalics <rudalics@gmx.at>
14199
14200 * window.h (window): Remove clone_number slot.
14201 * window.c (Fwindow_clone_number, Fset_window_clone_number):
14202 Remove.
14203 (make_parent_window, make_window, saved_window)
14204 (Fset_window_configuration, save_window_save): Don't deal with
14205 clone numbers.
14206 * buffer.c (Qclone_number): Remove declaration.
14207 (sort_overlays, overlay_strings): Don't deal with clone numbers.
14208
3349e122
SM
142092011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
14210
14211 Add multiple inheritance to keymaps.
14212 * keymap.c (Fmake_composed_keymap): New function.
14213 (Fset_keymap_parent): Simplify.
14214 (fix_submap_inheritance): Remove.
14215 (access_keymap_1): New function extracted from access_keymap to handle
14216 embedded parents and handle lists of maps.
14217 (access_keymap): Use it.
14218 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
14219 (Fcopy_keymap): Handle embedded parents.
14220 (Fcommand_remapping, define_as_prefix): Simplify.
14221 (Fkey_binding): Simplify.
14222 (syms_of_keymap): Move minibuffer-local-completion-map,
14223 minibuffer-local-filename-completion-map,
14224 minibuffer-local-must-match-map, and
14225 minibuffer-local-filename-must-match-map to Elisp.
14226 (syms_of_keymap): Defsubr make-composed-keymap.
14227 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
14228 (parse_menu_item): Trivial simplification.
14229
3279eb87
GM
142302011-07-01 Glenn Morris <rgm@gnu.org>
14231
14232 * Makefile.in (SETTINGS_LIBS): Fix typo.
14233
39cb9e56 142342011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
14235
14236 * coding.c (Fencode_coding_string): Record the last coding system
14237 used, as the function doc string says (bug#8738).
14238
0949d2b6
JD
142392011-07-01 Jan Djärv <jan.h.d@swipnet.se>
14240
14241 * xsettings.c (store_monospaced_changed): Take new font as arg and
14242 check for change against current_mono_font.
14243 (EMACS_TYPE_SETTINGS): Remove this and related defines.
14244 (emacs_settings_constructor, emacs_settings_get_property)
14245 (emacs_settings_set_property, emacs_settings_class_init)
14246 (emacs_settings_init, gsettings_obj): Remove.
14247 (something_changedCB): New function for HAVE_GSETTINGS.
14248 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
14249 with value as argument.
14250 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
14251 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 14252 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
14253 "changed".
14254
14255 * xgselect.c: Add defined (HAVE_GSETTINGS).
14256 (xgselect_initialize): Ditto.
14257
14258 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
14259 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
14260 xg_select.
14261
bbc6b304
PE
142622011-07-01 Paul Eggert <eggert@cs.ucla.edu>
14263
14264 * eval.c (struct backtrace): Simplify and port the data structure.
14265 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
14266 signed bit field, as this assumption is not portable and it makes
14267 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
14268 "char debug_on_exit : 1" as this is not portable either; instead,
14269 use the portable "unsigned int debug_on_exit : 1". Remove unused
14270 member evalargs. Remove obsolete comments about cc bombing out.
14271
9851bfc5
JD
142722011-06-30 Jan Djärv <jan.h.d@swipnet.se>
14273
51bb811f 14274 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
14275 Let HAVE_GSETTINGS override HAVE_GCONF.
14276 (store_monospaced_changed): New function.
14277 (EMACS_SETTINGS): A new type derived from GObject to handle
14278 GSettings notifications.
14279 (emacs_settings_constructor, emacs_settings_get_property)
14280 (emacs_settings_set_property, emacs_settings_class_init):
14281 New functions.
14282 (gsettings_client, gsettings_obj): New variables.
14283 (GSETTINGS_SCHEMA): New define.
14284 (something_changedCB): Call store_monospaced_changed.
14285 (init_gsettings): New function.
14286 (xsettings_initialize): Call init_gsettings.
14287 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
14288 to NULL.
14289
640c8776 14290 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
14291 GCONF_CFLAGS/LIBS.
14292
5386012d
MR
142932011-06-29 Martin Rudalics <rudalics@gmx.at>
14294
14295 * window.c (resize_root_window, grow_mini_window)
14296 (shrink_mini_window): Rename Qresize_root_window to
14297 Qwindow_resize_root_window and Qresize_root_window_vertically to
14298 Qwindow_resize_root_window_vertically.
14299
f13e0b08
PE
143002011-06-28 Paul Eggert <eggert@cs.ucla.edu>
14301
14302 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
14303
94515237
JB
143042011-06-27 Juanma Barranquero <lekktu@gmail.com>
14305
14306 * makefile.w32-in: Redesign dependencies so they reflect more
14307 clearly which files are directly included by each source file,
14308 and not through other includes.
14309
e43b6e43
MR
143102011-06-27 Martin Rudalics <rudalics@gmx.at>
14311
14312 * buffer.c (Qclone_number): Declare static and DEFSYM it.
14313 (sort_overlays, overlay_strings): When an overlay's clone number
14314 matches the window's clone number process the overlay even if
14315 the overlay's window property doesn't match the current window.
14316
d68443dc
MR
14317 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
14318 (Fwindow_hchild): Rename to Fwindow_left_child.
14319 (Fwindow_next): Rename to Fwindow_next_sibling.
14320 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
14321 (resize_window_check): Rename to window_resize_check.
14322 (resize_window_apply): Rename to window_resize_apply.
14323 (Fresize_window_apply): Rename to Fwindow_resize_apply.
14324 (Fdelete_other_windows_internal, resize_frame_windows)
14325 (Fsplit_window_internal, Fdelete_window_internal)
14326 (grow_mini_window, shrink_mini_window)
14327 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 14328
c7e73be5
JD
143292011-06-26 Jan Djärv <jan.h.d@swipnet.se>
14330
14331 * emacsgtkfixed.h: State that this is only used with Gtk+3.
14332 (emacs_fixed_set_min_size): Remove.
14333 (emacs_fixed_new): Take frame as argument.
14334
14335 * emacsgtkfixed.c: State that this is only used with Gtk+3.
14336 (_EmacsFixedPrivate): Remove minwidth/height.
14337 Add struct frame *f.
14338 (emacs_fixed_init): Initialize priv->f.
14339 (get_parent_class, emacs_fixed_set_min_size): Remove.
14340 (emacs_fixed_new): Set priv->f to argument.
14341 (emacs_fixed_get_preferred_width)
14342 (emacs_fixed_get_preferred_height): Use min_width/height from
14343 frames size_hint to set minimum and natural (Bug#8919).
14344 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
14345 and use min_width/height from frames size_hint to set
14346 min_width/height (Bug#8919).
14347
14348 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
14349 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
14350 Fix indentation.
c7e73be5 14351
cf99dcf8
EZ
143522011-06-26 Eli Zaretskii <eliz@gnu.org>
14353
14354 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
14355 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
14356 called at ZV.
14357
029529ac
CY
143582011-06-26 Chong Yidong <cyd@stupidchicken.com>
14359
14360 * process.c (wait_reading_process_output): Bypass select if
14361 waiting for a cell while ignoring keyboard input, and input is
14362 pending. Suggested by Jan Djärv (Bug#8869).
14363
7a7ef429
PE
143642011-06-25 Paul Eggert <eggert@cs.ucla.edu>
14365
14366 Use gnulib's dup2 module instead of rolling our own.
14367 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
14368
11fdef7d 143692011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
14370
14371 * dispnew.c (scrolling_window): Before scrolling, turn off a
14372 mouse-highlight in the window being scrolled.
14373
cd3520a4
JB
143742011-06-24 Juanma Barranquero <lekktu@gmail.com>
14375
14376 Move DEFSYM to lisp.h and use everywhere.
14377
14378 * character.h (DEFSYM): Move declaration...
14379 * lisp.h (DEFSYM): ...here.
14380
14381 * gnutls.c:
14382 * minibuf.c:
14383 * w32menu.c:
14384 * w32proc.c:
14385 * w32select.c: Don't include character.h.
14386
14387 * alloc.c (syms_of_alloc):
14388 * buffer.c (syms_of_buffer):
14389 * bytecode.c (syms_of_bytecode):
14390 * callint.c (syms_of_callint):
14391 * casefiddle.c (syms_of_casefiddle):
14392 * casetab.c (init_casetab_once):
14393 * category.c (init_category_once, syms_of_category):
14394 * ccl.c (syms_of_ccl):
14395 * cmds.c (syms_of_cmds):
14396 * composite.c (syms_of_composite):
14397 * dbusbind.c (syms_of_dbusbind):
14398 * dired.c (syms_of_dired):
14399 * dispnew.c (syms_of_display):
14400 * doc.c (syms_of_doc):
14401 * editfns.c (syms_of_editfns):
14402 * emacs.c (syms_of_emacs):
14403 * eval.c (syms_of_eval):
14404 * fileio.c (syms_of_fileio):
14405 * fns.c (syms_of_fns):
14406 * frame.c (syms_of_frame):
14407 * fringe.c (syms_of_fringe):
14408 * insdel.c (syms_of_insdel):
14409 * keymap.c (syms_of_keymap):
14410 * lread.c (init_obarray, syms_of_lread):
14411 * macros.c (syms_of_macros):
14412 * msdos.c (syms_of_msdos):
14413 * print.c (syms_of_print):
14414 * process.c (syms_of_process):
14415 * search.c (syms_of_search):
14416 * sound.c (syms_of_sound):
14417 * syntax.c (init_syntax_once, syms_of_syntax):
14418 * terminal.c (syms_of_terminal):
14419 * textprop.c (syms_of_textprop):
14420 * undo.c (syms_of_undo):
14421 * w32.c (globals_of_w32):
14422 * window.c (syms_of_window):
14423 * xdisp.c (syms_of_xdisp):
14424 * xfaces.c (syms_of_xfaces):
14425 * xfns.c (syms_of_xfns):
14426 * xmenu.c (syms_of_xmenu):
14427 * xsettings.c (syms_of_xsettings):
14428 * xterm.c (syms_of_xterm): Use DEFSYM.
14429
4228cf16
TZ
144302011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
14431
cd3520a4 14432 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 14433
7fcccf1e
PE
144342011-06-23 Paul Eggert <eggert@cs.ucla.edu>
14435
7efb4e0e
PE
14436 Integer and buffer overflow fixes (Bug#8873).
14437
ff5844ad
PE
14438 * print.c (printchar, strout): Check for string overflow.
14439 (PRINTPREPARE, printchar, strout):
14440 Don't set size unless allocation succeeds.
14441
90532f02
PE
14442 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
14443 for sizes. Check for string overflow more accurately.
14444 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
14445
6d84508d
PE
14446 * macros.c: Integer and buffer overflow fixes.
14447 * keyboard.h (struct keyboard.kbd_macro_bufsize):
14448 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
14449 Use ptrdiff_t, not int, for sizes.
14450 Don't increment bufsize until after realloc succeeds.
14451 Check for size-calculation overflow.
14452 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
14453
437b2cb4
PE
14454 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
14455
8b9ac8b4
PE
14456 * lread.c: Integer overflow fixes.
14457 (read_integer): Radix is now EMACS_INT, not int,
14458 to improve quality of diagnostics for out-of-range radices.
14459 Calculate buffer size correctly for out-of-range radices.
14460 (read1): Check for integer overflow in radices, and in
14461 read-circle numbers.
82cb60d3
PE
14462 (read_escape): Avoid int overflow.
14463 (Fload, openp, read_buffer_size, read1)
14464 (substitute_object_recurse, read_vector, read_list, map_obarray):
14465 Use ptrdiff_t, not int, for sizes.
14466 (read1): Use EMACS_INT, not int, for sizes.
20270765 14467 Check for size overflow.
8b9ac8b4 14468
7fcccf1e
PE
14469 * image.c (cache_image): Check for size arithmetic overflow.
14470
bfbbd7e7
PE
14471 * lread.c: Integer overflow issues.
14472 (saved_doc_string_size, saved_doc_string_length)
14473 (prev_saved_doc_string_size, prev_saved_doc_string_length):
14474 Now ptrdiff_t, not int.
14475 (read1): Don't assume doc string length fits in int. Check for
14476 out-of-range doc string lengths.
14477 (read_list): Don't assume file position fits in int.
39019e54 14478 (read_escape): Check for hex character overflow.
bfbbd7e7 14479
4e323265
LL
144802011-06-22 Leo Liu <sdl.web@gmail.com>
14481
14482 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
14483 Move to minibuffer.el.
14484
85fece3e
PE
144852011-06-22 Paul Eggert <eggert@cs.ucla.edu>
14486
20b84ce9 14487 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
14488 The following patches are for when GLYPH_DEBUG && !XASSERT.
14489 * dispextern.h (trace_redisplay_p, dump_glyph_string):
14490 * dispnew.c (flush_stdout):
14491 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
14492 Mark as externally visible.
14493 * dispnew.c (check_window_matrix_pointers): Now static.
14494 * dispnew.c (window_to_frame_vpos):
14495 * xfns.c (unwind_create_frame):
14496 * xterm.c (x_check_font): Remove unused local.
14497 * scroll.c (CHECK_BOUNDS):
14498 * xfaces.c (cache_fache): Rename local to avoid shadowing.
14499 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
14500 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
14501 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
14502 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
14503 Now static.
14504 (debug_method_add): Use va_list and vsprintf rather than relying
14505 on undefined behavior with wrong number of arguments.
14506 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
14507 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
14508 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
14509 since we're not interested in debugging glyphs with old libraries.
14510 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
14511 GCC 4.6.0's static checking.
14512
0766b489
PE
145132011-06-22 Paul Eggert <eggert@cs.ucla.edu>
14514
31fd4b32
PE
14515 Integer overflow and signedness fixes (Bug#8873).
14516 A few related buffer overrun fixes, too.
14517
b79e8648
PE
14518 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
14519
0766b489
PE
14520 * dispextern.h (struct face.stipple):
14521 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
14522 (x_bitmap_mask, x_allocate_bitmap_record)
14523 (x_create_bitmap_from_data, x_create_bitmap_from_file)
14524 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
14525 (x_create_bitmap_from_xpm_data):
14526 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
14527 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
14528 (.bitmaps_last):
14529 * xfaces.c (load_pixmap):
14530 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
14531 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
14532 (.bitmaps_last, struct x_output.icon_bitmap):
14533 Use ptrdiff_t, not int, for bitmap indexes.
14534 (x_allocate_bitmap_record): Check for size overflow.
14535 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
14536
b081724f
PE
14537 Use ptrdiff_t, not int, for overlay counts.
14538 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
14539 * editfns.c (overlays_around, get_pos_property):
14540 * textprop.c (get_char_property_and_overlay):
14541 * xdisp.c (next_overlay_change, note_mouse_highlight):
14542 * xfaces.c (face_at_buffer_position):
21514da7
PE
14543 * buffer.c (OVERLAY_COUNT_MAX): New macro.
14544 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
14545 (Fnext_overlay_change, Fprevious_overlay_change)
14546 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 14547 Use ptrdiff_t, not int, for sizes.
21514da7 14548 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 14549
3de73e5e
PE
14550 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
14551
2606c57b
PE
14552 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
14553 (x_session_initialize): Do not assume string length fits in int.
14554
aaafe47a
PE
14555 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
14556 This is unlikely, but can occur if DPI is outlandish.
14557
2674ddc8 14558 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
14559 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
14560
28154962
PE
14561 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
14562 * xrdb.c (magic_file_p, search_magic_path):
14563 Omit last arg SUFFIX; it was always 0. All callers changed.
14564 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
14565
7de51af5
PE
14566 * xfont.c (xfont_match): Avoid need for strlen.
14567
25ed6cc3
PE
14568 * xfns.c: Don't assume strlen fits in int.
14569 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
14570
4eab31dd
PE
14571 * xdisp.c (message_log_check_duplicate): Return intmax_t,
14572 not unsigned long, as we prefer signed integers. All callers changed.
14573 Detect integer overflow in repeat count.
14574 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 14575 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 14576
171e2a58
PE
14577 * termcap.c: Don't assume sizes fit in int and never overflow.
14578 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
14579 (gobble_line): Check for size-calculation overflow.
14580
ad39faca 14581 * minibuf.c (Fread_buffer):
6e5bb2dc 14582 * lread.c (intern, intern_c_string):
74ca2eb3
PE
14583 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
14584 Don't assume string length fits in int.
14585
52c61c22 14586 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
14587 * gtkutil.c (style_changed_cb): Avoid need for strlen.
14588
b5b8c9e5
PE
14589 * font.c: Don't assume string length fits in int.
14590 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
14591 Use ptrdiff_t, not int.
ccd6111c
PE
14592 (font_intern_prop): Don't assume string length fits in int.
14593 Don't assume integer property fits in fixnum.
14594 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 14595
882f0d81 14596 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 14597 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
14598 Reformulate so as not to need the command string.
14599 Invoke gzip -cd rather than gunzip, as it's more portable.
14600 (lock_info_type, lock_file_1, lock_file):
14601 Don't assume pid_t and time_t fit in unsigned long.
14602 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
14603 (current_lock_owner): Prefer signed type for sizes.
14604 Use memcpy, not strncpy, where memcpy is what is really wanted.
14605 Don't assume (via atoi) that time_t and pid_t fit in int.
14606 Check for time_t and/or pid_t out of range, e.g., via a network share.
14607 Don't alloca where an auto var works fine.
14608
93f4cf88
PE
14609 * fileio.c: Fix some integer overflow issues.
14610 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
14611 Don't assume string length fits in int.
14612 (directory_file_name): Don't assume string length fits in long.
14613 (make_temp_name): Don't assume pid fits in int, or that its print
14614 length is less than 20.
14615
f3e92b69
PE
14616 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
14617
1bfdaf10
PE
14618 * coding.c (make_subsidiaries): Don't assume string length fits in int.
14619
35016e9a
PE
14620 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
14621
3d1e65a1
PE
14622 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
14623 We prefer signed integers, even for size calculations.
14624
0b963a93
PE
14625 * emacs.c: Don't assume string length fits in 'int'.
14626 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
14627 (main): Don't invoke strlen when not needed.
14628
573f4b54
PE
14629 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
14630 (XD_DEBUG_MESSAGE): Don't waste a byte.
14631
989f33ba
PE
14632 * callproc.c (getenv_internal_1, getenv_internal)
14633 (Fgetenv_internal):
965d34eb
PE
14634 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
14635
e4d29b33
PE
14636 * lread.c (invalid_syntax): Omit length argument.
14637 All uses changed. This doesn't fix a bug, but it simplifies the
14638 code away from its former Hollerith-constant appearance, and it's
14639 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 14640 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 14641
eb49b136
PE
14642 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
14643 This didn't break anything, but it didn't help either.
14644 It's confusing to put a bogus integer in a place where the actual
14645 value does not matter.
9f62aeb1 14646 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 14647 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 14648
15375a22
PE
14649 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
14650 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
14651 implementation.
b61cc01c
PE
14652 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
14653 We prefer signed types, and the value cannot exceed the EMACS_INT
14654 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
14655 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
14656 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
14657 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 14658
53b2623d
PE
14659 * indent.c (sane_tab_width): New function.
14660 (current_column, scan_for_column, Findent_to, position_indentation)
14661 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 14662 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 14663
51cab52b 14664 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 14665
f2ed8a70
PE
14666 * lisp.h (lint_assume): New macro.
14667 * composite.c (composition_gstring_put_cache):
14668 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
14669
abe80cc6
PE
14670 * editfns.c, insdel.c:
14671 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 14672
b02c740e
PE
14673 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
14674
ebc96716
PE
14675 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
14676
b4e50fa0 14677 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 14678 Use much-faster test for byte-length change.
311d5d7c 14679 Don't assume string byte-length fits in 'int'.
a4cf38e4 14680 Check that character arg fits in 'int'.
85461888 14681 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 14682
c0c1ee9f
PE
14683 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
14684
a498d7f4
PE
14685 * fns.c (concat): Catch string overflow earlier.
14686 Do not rely on integer wraparound.
14687
51cab52b
PE
14688 * dispextern.h (struct it.overlay_strings_charpos)
14689 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
14690 * xdisp.c (forward_to_next_line_start)
14691 (back_to_previous_visible_line_start)
14692 (reseat_at_next_visible_line_start, next_element_from_buffer):
14693 Don't arbitrarily truncate the value of 'selective' to int.
14694
76031fad
PE
14695 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
14696
5eb55db9
PE
14697 * composite.c: Don't truncate sizes to 'int'.
14698 (composition_gstring_p, composition_reseat_it)
14699 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
14700 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
14701 not EMACS_UINT, for indexes.
5eb55db9 14702
0703a717
PE
14703 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
14704
d6202519
PE
14705 * buffer.c: Include <verify.h>.
14706 (struct sortvec.priority, struct sortstr.priority):
8961a454 14707 Now EMACS_INT, not int.
c20998a7 14708 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
14709 (struct sortstr.size, record_overlay_string)
14710 (struct sortstrlist.size, struct sortlist.used):
14711 Don't truncate size to int.
14712 (record_overlay_string): Check for size-calculation overflow.
d6202519 14713 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 14714
d5a19415
JM
147152011-06-22 Jim Meyering <meyering@redhat.com>
14716
029529ac 14717 Don't leak an XBM-image-sized buffer
d5a19415
JM
14718 * image.c (xbm_load): Free the image buffer after using it.
14719
a9041e6c
PE
147202011-06-21 Paul Eggert <eggert@cs.ucla.edu>
14721
14722 Port to Sun C.
14723 * composite.c (find_automatic_composition): Omit needless 'return 0;'
14724 that Sun C diagnosed.
14725 * fns.c (secure_hash): Fix pointer signedness issue.
14726 * intervals.c (static_offset_intervals): New function.
14727 (offset_intervals): Use it.
14728
7f3f739f
LL
147292011-06-21 Leo Liu <sdl.web@gmail.com>
14730
14731 * deps.mk (fns.o):
14732 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
14733 sha512.h.
14734
14735 * fns.c (secure_hash): Rename from crypto_hash_function and change
14736 the first arg to accept symbols.
5b66d427 14737 (Fsecure_hash): New primitive.
7f3f739f
LL
14738 (syms_of_fns): New symbols.
14739
76147d94
DD
147402011-06-20 Deniz Dogan <deniz@dogan.se>
14741
14742 * process.c (Fset_process_buffer): Clarify return value in
14743 docstring.
14744
7d7d0045
CY
147452011-06-18 Chong Yidong <cyd@stupidchicken.com>
14746
14747 * dispnew.c (add_window_display_history): Use BVAR.
14748
14749 * xdisp.c (debug_method_add): Use BVAR.
14750 (check_window_end, dump_glyph_matrix, dump_glyph)
14751 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
14752
14753 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
14754 Likewise.
14755
14756 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
14757 check till after the cache is created in init_frame_faces.
14758
ff2bc410
SM
147592011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
14760
14761 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
14762
28177add
PE
147632011-06-16 Paul Eggert <eggert@cs.ucla.edu>
14764
dd3482fe
PE
14765 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
14766 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
14767 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
14768
393d71f3 14769 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
14770 * fileio.c (Finsert_file_contents):
14771 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
14772 Remove the old (too-loose) buffer overflow checks.
14773 They weren't needed, since make_gap checks for buffer overflow.
14774 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
14775 The old code merely checked for Emacs fixnum overflow, and relied
14776 on undefined (wraparound) behavior. The new code avoids undefined
14777 behavior, and also checks for ptrdiff_t and/or size_t overflow.
14778
2e6813b0 14779 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
14780 Tune. Don't use wider integers than needed. Don't use alloca.
14781 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 14782
599a9e4f
PE
14783 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
14784
99561444
PE
14785 * insdel.c, lisp.h (buffer_overflow): New function.
14786 (insert_from_buffer_1, replace_range, replace_range_2):
14787 * insdel.c (make_gap_larger):
14788 * editfns.c (Finsert_char):
14789 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
14790
28177add
PE
14791 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
14792
e69dafad
PE
147932011-06-15 Paul Eggert <eggert@cs.ucla.edu>
14794
4baa020d 14795 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 14796
b1c46f02
PE
14797 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
14798 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
14799
e69dafad
PE
14800 * fileio.c: Don't assume EMACS_INT fits in off_t.
14801 (emacs_lseek): New static function.
14802 (Finsert_file_contents, Fwrite_region): Use it.
14803 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
14804
566684ea
PE
14805 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
14806
e6966cd6
PE
14807 * fns.c: Don't overflow int when computing a list length.
14808 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
14809 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
14810 truncation on 64-bit hosts. Check for QUIT every
14811 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
14812 faster and is responsive enough.
14813 (Flength): Report an error instead of overflowing an integer.
14814 (Fsafe_length): Return a float if the value is not representable
14815 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 14816 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 14817 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 14818
dd0b0efb
PE
14819 * alloc.c: Check that resized vectors' lengths fit in fixnums.
14820 (header_size, word_size): New constants.
14821 (allocate_vectorlike): Don't check size overflow here.
14822 (allocate_vector): Check it here instead, since this is the only
14823 caller of allocate_vectorlike that could cause overflow.
14824 Check that the new vector's length is representable as a fixnum.
14825
86fe5cfe
PE
14826 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
14827 The previous code was bogus. For example, next_almost_prime (32)
14828 returned 39, which is undesirable as it is a multiple of 3; and
14829 next_almost_prime (24) returned 25, which is a multiple of 5 so
14830 why was the code bothering to check for multiples of 7?
14831
80e88859
PE
14832 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
14833
4a2f0ad6
PE
14834 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
14835
f66c7cf8
PE
14836 Variadic C functions now count arguments with ptrdiff_t.
14837 This partly undoes my 2011-03-30 change, which replaced int with size_t.
14838 Back then I didn't know that the Emacs coding style prefers signed int.
14839 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
14840 were being counted with int, which may truncate counts on 64-bit
14841 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
14842 * lisp.h (struct Lisp_Subr.function.aMANY)
14843 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
14844 Arg counts are now ptrdiff_t, not size_t.
14845 All variadic functions and their callers changed accordingly.
14846 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
14847 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
14848 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
14849 * callint.c (Fcall_interactively): Check arg count for overflow,
14850 to avoid potential buffer overrun. Use signed char, not 'int',
14851 for 'varies' array, so that we needn't bother to check its size
14852 calculation for overflow.
14853 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
14854 * eval.c (apply_lambda):
14855 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
14856 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
14857 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
14858
a1759b76
PE
14859 * callint.c (Fcall_interactively): Don't use index var as event count.
14860
d96be9fc
PE
14861 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
14862 * mem-limits.h (SIZE): Remove; no longer used.
14863
a690a978 14864 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 14865
578c21e6
PE
14866 Remove unnecessary casts.
14867 * xterm.c (x_term_init):
14868 * xfns.c (x_set_border_pixel):
14869 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
14870 These aren't needed now that we assume ANSI C.
14871
96f53c6c
PE
14872 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
14873 It's more likely to cause problems (due to unsigned overflow)
14874 than to cure them.
14875
83c77d31
PE
14876 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
14877
ee2079f1
PE
14878 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
14879
6da65536
PE
14880 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
14881
7147c4a4
PE
14882 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
14883
193e32d9
PE
14884 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
14885
e5533da6
PE
14886 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
14887
9910e595
PE
14888 GLYPH_CODE_FACE returns EMACS_INT, not int.
14889 * dispextern.h (merge_faces):
14890 * xfaces.c (merge_faces):
01103c44
PE
14891 * xdisp.c (get_next_display_element, next_element_from_display_vector):
14892 Don't assume EMACS_INT fits in int.
9910e595 14893
2638320e
PE
14894 * character.h (CHAR_VALID_P): Remove unused parameter.
14895 * fontset.c, lisp.h, xdisp.c: All uses changed.
14896
045eb8d9
PE
14897 * editfns.c (Ftranslate_region_internal): Omit redundant test.
14898
c1f134b5
PE
14899 * fns.c (concat): Minor tuning based on overflow analysis.
14900 This doesn't fix any bugs. Use int to hold character, instead
14901 of constantly refetching from Emacs object. Use XFASTINT, not
14902 XINT, for value known to be a character. Don't bother comparing
14903 a single byte to 0400, as it's always less.
14904
395fcb93 14905 * floatfns.c (Fexpt):
327eeec8
PE
14906 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
14907
abbd3d23
PE
14908 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
14909 for characters.
14910
684a03ef
PE
14911 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
14912
0fed43f3
PE
14913 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
14914 Without this fix, on a 64-bit host (aset S 0 4294967386) would
14915 incorrectly succeed when S was a string, because 4294967386 was
14916 truncated before it was used.
14917
8fd02eb7
PE
14918 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
14919 Otherwise, an out-of-range integer could cause undefined behavior
14920 on a 64-bit host.
14921
f8c86b69
PE
14922 * composite.c: Use int, not EMACS_INT, for characters.
14923 (fill_gstring_body, composition_compute_stop_pos): Use int, not
14924 EMACS_INT, for values that are known to be in character range.
14925 This doesn't fix any bugs but is the usual style inside Emacs and
14926 may generate better code on 32-bit machines.
14927
34206dd2
PE
14928 Make sure a 64-bit char is never passed to ENCODE_CHAR.
14929 This is for reasons similar to the recent CHAR_STRING fix.
14930 * charset.c (Fencode_char): Check that character arg is actually
14931 a character. Pass an int to ENCODE_CHAR.
14932 * charset.h (ENCODE_CHAR): Verify that the character argument is no
14933 wider than 'int', as a compile-time check to prevent future regressions
14934 in this area.
14935
c5958d4c 14936 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
14937
14938 Make sure a 64-bit char is never passed to CHAR_STRING.
14939 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
14940 by silently ignoring the top 32 bits, allowing some values
14941 that were far too large to be valid characters.
14942 * character.h: Include <verify.h>.
14943 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
14944 arguments are no wider than unsigned, as a compile-time check
14945 to prevent future regressions in this area.
14946 * data.c (Faset):
01103c44 14947 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
14948 (Fsubst_char_in_region):
14949 * fns.c (concat):
14950 * xdisp.c (decode_mode_spec_coding):
14951 Adjust to CHAR_STRING's new requirement.
14952 * editfns.c (Finsert_char, Fsubst_char_in_region):
14953 * fns.c (concat): Check that character args are actually
14954 characters. Without this test, these functions did the wrong
14955 thing with wildly out-of-range values on 64-bit hosts.
14956
d37ca623
PE
14957 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
14958 These casts should not be needed on 32-bit hosts, either.
14959 * keyboard.c (read_char):
14960 * lread.c (Fload): Remove casts to unsigned.
14961
ea204efb
PE
14962 * lisp.h (UNSIGNED_CMP): New macro.
14963 This fixes comparison bugs on 64-bit hosts.
14964 (ASCII_CHAR_P): Use it.
14965 * casefiddle.c (casify_object):
01103c44 14966 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
14967 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
14968 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
14969 * dispextern.h (FACE_FROM_ID):
14970 * keyboard.c (read_char): Use UNSIGNED_CMP.
14971
41cb286c
PE
14972 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
14973 not to EMACS_INT, to avoid GCC warning.
14974
4a1b9832
PE
14975 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
14976
55daad71
PE
14977 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
14978 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
14979 isn't needed on 32-bit machines.
8f95c75c 14980
01103c44
PE
14981 * buffer.c (Fgenerate_new_buffer_name):
14982 Use EMACS_INT for count, not int.
0ceccced 14983 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
14984
14985 * data.c (Qcompiled_function): Now static.
14986
c6f072e7
PE
14987 * window.c (window_body_lines): Now static.
14988
20ce5912
PE
14989 * image.c (gif_load): Rename local to avoid shadowing.
14990
9c4c5f81
PE
14991 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
14992 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
14993 * alloc.c (make_save_value): Integer argument is now of type
14994 ptrdiff_t, not int.
14995 (mark_object): Use ptrdiff_t, not int.
14996 * lisp.h (pD): New macro.
14997 * print.c (print_object): Use it.
14998
c0c5c8ae
PE
14999 * alloc.c: Use EMACS_INT, not int, to count objects.
15000 (total_conses, total_markers, total_symbols, total_vector_size)
15001 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
15002 (total_free_floats, total_floats, total_free_intervals)
15003 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
15004 Now EMACS_INT, not int. All uses changed.
15005 (Fgarbage_collect): Compute overall total using a double, so that
15006 integer overflow is less likely to be a problem. Check for overflow
15007 when converting back to an integer.
5a25e253
PE
15008 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
15009 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
15010 These were 'int' variables that could overflow on 64-bit hosts;
15011 they were never used, so remove them instead of repairing them.
211a0b2a 15012 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
15013 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
15014 Previously, this ceilinged at INT_MAX, but that doesn't work on
15015 64-bit machines.
e46bb31a 15016 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 15017
c78baabf 15018 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 15019 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
15020 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
15021 when a (possibly-narrower) signed value would do just as well.
15022 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 15023
c9d624c6
PE
15024 * alloc.c: Catch some string size overflows that we were missing.
15025 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
15026 for convenience in STRING_BYTES_MAX.
15027 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
15028 The definition here is exact; the one in lisp.h was approximate.
15029 (allocate_string_data): Check for string overflow. This catches
15030 some instances we weren't catching before. Also, it catches
15031 size_t overflow on (unusual) hosts where SIZE_MAX <= min
15032 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
15033 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 15034
c9d624c6
PE
15035 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
15036 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 15037 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 15038
353032ce
PE
15039 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
15040
2bccce07
PE
15041 * alloc.c (Fmake_string): Check for out-of-range init.
15042
0ac30604
SM
150432011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
15044
15045 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
15046
c195f2de
JD
150472011-06-14 Jan Djärv <jan.h.d@swipnet.se>
15048
15049 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
15050 xg_get_default_scrollbar_width.
15051
15052 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
15053 (int_gtk_range_get_value): Move to the scroll bar part of the file.
15054 (style_changed_cb): Call update_theme_scrollbar_width and call
15055 x_set_scroll_bar_default_width and xg_frame_set_char_size for
15056 all frames (Bug#8505).
15057 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
15058 Call gtk_window_set_resizable if HAVE_GTK3.
15059 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
15060 and height if HAVE_GTK3 (Bug#8505).
15061 (scroll_bar_width_for_theme): New variable.
15062 (update_theme_scrollbar_width): New function.
15063 (xg_get_default_scrollbar_width): Move code to
15064 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
15065 (xg_initialize): Call update_theme_scrollbar_width.
15066
15067 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
15068
15069 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
15070
e10ac9f1
MR
150712011-06-12 Martin Rudalics <rudalics@gmx.at>
15072
15073 * frame.c (make_frame): Call other_buffer_safely instead of
15074 other_buffer.
15075
15076 * window.c (temp_output_buffer_show): Call display_buffer with
15077 second argument Vtemp_buffer_show_specifiers and reset latter
15078 immediately after the call.
15079 (Vtemp_buffer_show_specifiers): New variable.
15080 (auto_window_vscroll_p, next_screen_context_lines)
15081 (Vscroll_preserve_screen_position): Remove leading asterisks from
15082 doc-strings.
15083
2d3c217e 150842011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 15085
7b7f97e8 15086 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
15087 * buffer.c (Qclone_number): Remove for now, as it's unused.
15088 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
15089 (record_buffer): Remove unused local.
15090 * frame.c (other_visible_frames, frame_buffer_list): Now static.
15091 (set_frame_buffer_list): Remove; unused.
15092 * frame.h (other_visible_frames): Remove decl.
15093 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
15094 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
15095 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
15096 if HAVE_GPM.
15097 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
15098 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
15099 Define only if HAVE_GPM.
15100 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
15101 (update_hints_inhibit): Remove; never set. All uses removed.
15102 * widgetprv.h (emacsFrameClassRec): Remove decl.
15103 * window.c (delete_deletable_window): Now returns void, since it
15104 wasn't returning anything.
15105 (compare_window_configurations): Remove unused locals.
15106 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
15107 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
15108 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
15109 the same widths as pointers. This follows up on the 2011-05-06 patch.
15110 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
15111 * xterm.h: Likewise.
15112 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
15113
1384b89e
JB
151142011-06-12 Juanma Barranquero <lekktu@gmail.com>
15115
15116 * makefile.w32-in: Update dependencies.
15117 (LISP_H): Add lib/intprops.h.
15118
1100a63c
CY
151192011-06-11 Chong Yidong <cyd@stupidchicken.com>
15120
15121 * image.c (gif_load): Add animation frame delay to the metadata.
15122 (syms_of_image): Use DEFSYM. New symbol `delay'.
15123
6198ccd0
MR
151242011-06-11 Martin Rudalics <rudalics@gmx.at>
15125
15126 * window.c (delete_deletable_window): Re-add.
15127 (Fset_window_configuration): Rewrite to handle dead buffers and
15128 consequently deletable windows.
15129 (window_tree, Fwindow_tree): Remove. Supply functionality in
15130 window.el.
15131 (compare_window_configurations): Simplify code.
15132
b6e3633c
AS
151332011-06-11 Andreas Schwab <schwab@linux-m68k.org>
15134
1ab0dee5
AS
15135 * image.c (imagemagick_load_image): Fix type mismatch.
15136 (Fimagemagick_types): Likewise.
15137
b6e3633c
AS
15138 * window.h (replace_buffer_in_windows): Declare.
15139
9397e56f
MR
151402011-06-11 Martin Rudalics <rudalics@gmx.at>
15141
15142 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
15143 Qclone_number. Remove external declaration of Qdelete_window.
15144 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
15145 code.
640c8776
SM
15146 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
15147 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
15148 (Fother_buffer): Rewrite doc-string. Major rewrite for new
15149 buffer list implementation.
15150 (other_buffer_safely): New function.
15151 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
15152 calls to replace_buffer_in_windows and
15153 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
15154 if allowed.
15155 (record_buffer): Inhibit quitting and rewrite using quittable
15156 functions. Run Qbuffer_list_update_hook if allowed.
15157 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
15158 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
15159 Move switch-to-buffer to window.el.
9397e56f
MR
15160 (bury-buffer): Move to window.el.
15161 (Vbuffer_list_update_hook): New variable.
15162
15163 * lisp.h (other_buffer_safely): Add prototype in buffer.c
15164 section.
15165
15166 * window.h (resize_frame_windows): Move up in code.
15167 (Fwindow_frame): Remove EXFUN.
15168 (replace_buffer_in_all_windows): Remove prototype.
15169 (replace_buffer_in_windows_safely): Add prototype.
15170
15171 * window.c: Declare Qdelete_window static again. Move down
15172 declaration of select_count.
15173 (Fnext_window, Fprevious_window): Rewrite doc-strings.
15174 (Fother_window): Move to window.el.
15175 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
15176 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
15177 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
15178 window.el.
15179 (replace_buffer_in_windows): Implement by calling
15180 Qreplace_buffer_in_windows.
15181 (replace_buffer_in_all_windows): Remove with some functionality
15182 moved into replace_buffer_in_windows_safely.
15183 (replace_buffer_in_windows_safely): New function.
15184 (select_window_norecord, select_frame_norecord): Move in front
15185 of run_window_configuration_change_hook. Remove now obsolete
15186 declarations.
640c8776
SM
15187 (Fset_window_buffer): Rewrite doc-string.
15188 Call Qrecord_window_buffer.
9397e56f
MR
15189 (keys_of_window): Move binding for other-window to window.el.
15190
b50691aa
CY
151912011-06-11 Chong Yidong <cyd@stupidchicken.com>
15192
15193 * dispextern.h (struct image): Replace data member, whose int_val
15194 and ptr_val fields were not used by anything, with a single
15195 lisp_val object.
15196
15197 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
15198 (gif_clear_image, gif_load, imagemagick_load_image)
15199 (gs_clear_image, gs_load): Callers changed.
15200
3f754b86
PE
152012011-06-10 Paul Eggert <eggert@cs.ucla.edu>
15202
cca69397
PE
15203 * buffer.h: Include <time.h>, for time_t.
15204 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
15205
109e28d0
PE
15206 Fix minor problems found by static checking.
15207
60737f02
PE
15208 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
15209
4b66faf3
PE
15210 Make identifiers static if they are not used in other modules.
15211 * data.c (Qcompiled_function, Qframe, Qvector):
15212 * image.c (QimageMagick, Qsvg):
15213 * minibuf.c (Qmetadata):
15214 * window.c (resize_window_check, resize_root_window): Now static.
15215 * window.h (resize_window_check, resize_root_window): Remove decls.
15216
109e28d0
PE
15217 * window.c (window_deletion_count, delete_deletable_window):
15218 Remove; unused.
46a4ce9e
PE
15219 (window_body_lines): Now static.
15220 (Fdelete_other_windows_internal): Mark vars as initialized.
15221 Make sure 'resize_failed' is initialized.
15222 (run_window_configuration_change_hook): Rename local to avoid shadowing.
15223 (resize_window_apply): Remove unused local.
15224 * window.h (delete_deletable_window): Remove decl.
15225
109e28d0 15226 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
15227 (imagemagick_load_image): Fix pointer signedness problem by changing
15228 last arg from unsigned char * to char *. All uses changed.
15229 Also, fix a local for similar reasons.
15230 Remove unused locals. Remove locals to avoid shadowing.
15231 (fn_rsvg_handle_free): Remove; unused.
15232 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 15233 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 15234
3f754b86
PE
15235 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
15236
2547adb1
CY
152372011-06-10 Chong Yidong <cyd@stupidchicken.com>
15238
15239 * image.c (gif_load): Fix omitted cast error introduced by
15240 2011-06-06 change.
15241
2c8e37d4
MR
152422011-06-10 Martin Rudalics <rudalics@gmx.at>
15243
15244 * window.h (resize_proportionally, orig_total_lines)
15245 (orig_top_line): Remove from window structure.
15246 (set_window_height, set_window_width, change_window_heights)
15247 (Fdelete_window): Remove prototypes.
15248 (resize_frame_windows): Remove duplicate declaration.
15249
440a42e3
EZ
152502011-06-10 Eli Zaretskii <eliz@gnu.org>
15251
15252 * window.h (resize_frame_windows, resize_window_check)
15253 (delete_deletable_window, resize_root_window)
15254 (resize_frame_windows): Declare prototypes.
15255
15256 * window.c (resize_window_apply): Make definition be "static" to
15257 match the prototype.
15258
562dd5e9
MR
152592011-06-10 Martin Rudalics <rudalics@gmx.at>
15260
15261 * window.c: Remove declarations of Qwindow_size_fixed,
15262 window_min_size_1, window_min_size_2, window_min_size,
15263 size_window, window_fixed_size_p, enlarge_window, delete_window.
15264 Remove static from declaration of Qdelete_window, it's
15265 temporarily needed by Fbury_buffer.
15266 (replace_window): Don't assign orig_top_line and
15267 orig_total_lines.
15268 (Fdelete_window, delete_window): Remove. Window deletion is
15269 handled by window.el.
640c8776
SM
15270 (window_loop): Remove DELETE_OTHER_WINDOWS case.
15271 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
15272 (Fdelete_other_windows): Remove. Deleting other windows is
15273 handled by window.el.
15274 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
15275 handled in window.el.
15276 (window_min_size_2, window_min_size_1, window_min_size): Remove.
15277 Window minimum sizes are handled in window.el.
15278 (shrink_windows, size_window, set_window_height)
15279 (set_window_width, change_window_heights, window_height)
15280 (window_width, CURBEG, CURSIZE, enlarge_window)
15281 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
15282 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
15283 handled in window.el.
15284 (make_dummy_parent): Rename to make_parent_window and give it a
15285 second argument horflag.
15286 (make_window): Don't set resize_proportionally any more.
15287 (Fsplit_window): Remove. Windows are split in window.el.
15288 (save_restore_action, save_restore_orig_size)
15289 (shrink_window_lowest_first, save_restore_orig_size): Remove.
15290 Resize mini windows in window.el.
15291 (grow_mini_window, shrink_mini_window): Implement by calling
15292 Qresize_root_window_vertically, resize_window_check and
15293 resize_window_apply.
640c8776
SM
15294 (saved_window, Fset_window_configuration, save_window_save):
15295 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
15296 resize_proportionally.
15297 (window_min_height, window_min_width): Move to window.el.
15298 (keys_of_window): Move bindings for delete-other-windows,
15299 split-window, delete-window and enlarge-window to window.el.
15300
15301 * buffer.c: Temporarily extern Qdelete_window.
15302 (Fbury_buffer): Temporarily call Qdelete_window instead of
15303 Fdelete_window (Fbury_buffer will move to window.el soon).
15304
15305 * frame.c (set_menu_bar_lines_1): Remove code handling
15306 orig_top_line and orig_total_lines.
15307
15308 * dispnew.c (adjust_frame_glyphs_initially): Don't use
15309 set_window_height but set heights directly.
15310 (change_frame_size_1): Use resize_frame_windows.
15311
15312 * xdisp.c (init_xdisp): Don't use set_window_height but set
15313 heights directly.
15314
640c8776
SM
15315 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
15316 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
15317 run_window_configuration_change_hook.
15318
15319 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
15320 instead of change_window_heights and run
15321 run_window_configuration_change_hook.
15322
1a13852e
MR
153232011-06-09 Martin Rudalics <rudalics@gmx.at>
15324
15325 * window.c (replace_window): Rename second argument REPLACEMENT to
15326 NEW. New third argument SETFLAG. Rewrite.
15327 (delete_window, make_dummy_parent): Call replace_window with
15328 third argument 1.
15329 (window_list_1): Move down in code.
15330 (run_window_configuration_change_hook): Move set_buffer part
15331 before select_frame_norecord part in order to unwind correctly.
15332 Rename count1 to count.
15333 (recombine_windows, delete_deletable_window, resize_root_window)
15334 (Fdelete_other_windows_internal)
15335 (Frun_window_configuration_change_hook, make_parent_window)
15336 (resize_window_check, resize_window_apply, Fresize_window_apply)
15337 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
15338 (Fdelete_window_internal, Fresize_mini_window_internal):
15339 New functions.
1a13852e
MR
15340 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
15341
f3d1777e
MR
153422011-06-08 Martin Rudalics <rudalics@gmx.at>
15343
496e208e
MR
15344 * window.h (window): Add some new members to window structure -
15345 normal_lines, normal_cols, new_total, new_normal, clone_number,
15346 splits, nest, prev_buffers, next_buffers.
15347 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 15348 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 15349
f3d1777e
MR
15350 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
15351 Remove.
496e208e
MR
15352 (make_dummy_parent): Set new members of windows structure.
15353 (make_window): Move down in code. Handle new members of window
15354 structure.
15355 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
15356 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
15357 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
15358 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
15359 (Fset_window_next_buffers, Fset_window_clone_number):
15360 New functions.
496e208e
MR
15361 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
15362 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
15363 Doc-string fixes.
15364 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
15365 Argument WINDOW can be now internal window too.
15366 (Fwindow_use_time): Move up in code.
15367 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
15368 Rewrite doc-string.
15369 (Fset_window_configuration, saved_window)
15370 (Fcurrent_window_configuration, save_window_save): Handle new
15371 members of window structure.
b9e809c2
MR
15372 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
15373 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
15374 (syms_of_window): New Lisp objects Qrecord_window_buffer,
15375 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
15376 Qget_mru_window, Qresize_root_window,
15377 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
15378 Qauto_buffer_name; staticpro them.
f3d1777e 15379
abde8f8c
MR
153802011-06-07 Martin Rudalics <rudalics@gmx.at>
15381
15382 * window.c (Fwindow_total_size, Fwindow_left_column)
15383 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
15384 (Fwindow_list_1): New functions.
15385 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
15386 (Fwindow_width, Fscroll_left, Fscroll_right):
15387 Use window_body_cols instead of window_box_text_cols.
15388 (delete_window, Fset_window_configuration):
15389 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
15390 (delete_all_subwindows): Take a window as argument and not a
15391 structure. Rewrite.
190b47e6
MR
15392 (window_loop): Remove handling of GET_LRU_WINDOW and
15393 GET_LARGEST_WINDOW.
15394 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
15395
15396 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
15397 window_box_text_cols. delete_all_subwindows now takes a
15398 Lisp_Object as argument.
abde8f8c 15399
640c8776
SM
15400 * indent.c (compute_motion, Fcompute_motion):
15401 Use window_body_cols instead of window_box_text_cols.
abde8f8c 15402
fa8a67e6
MR
15403 * frame.c (delete_frame): Call delete_all_subwindows with root
15404 window as argument.
15405
a54e3482
DC
154062011-06-07 Daniel Colascione <dan.colascione@gmail.com>
15407
15408 * fns.c (Fputhash): Document return value.
15409
60002bf5
CY
154102011-06-06 Chong Yidong <cyd@stupidchicken.com>
15411
15412 * image.c (gif_load): Implement gif89a spec "no disposal" method.
15413
0c671da6 154142011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 15415
b862a52a 15416 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 15417
be44ca6c
PE
15418 Check for overflow when converting integer to cons and back.
15419 * charset.c (Fdefine_charset_internal, Fdecode_char):
15420 Use cons_to_unsigned to catch overflow.
15421 (Fencode_char): Use INTEGER_TO_CONS.
15422 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
15423 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
15424 * data.c (long_to_cons, cons_to_long): Remove.
15425 (cons_to_unsigned, cons_to_signed): New functions.
15426 These signal an error for invalid or out-of-range values.
15427 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
15428 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
15429 * font.c (Ffont_variation_glyphs):
15430 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
15431 * lisp.h: Include <intprops.h>.
15432 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
15433 (cons_to_signed, cons_to_unsigned): New decls.
15434 (long_to_cons, cons_to_long): Remove decls.
15435 * undo.c (record_first_change): Use INTEGER_TO_CONS.
15436 (Fprimitive_undo): Use CONS_TO_INTEGER.
15437 * xfns.c (Fx_window_property): Likewise.
15438 * xselect.c: Include <limits.h>.
15439 (x_own_selection, selection_data_to_lisp_data):
15440 Use INTEGER_TO_CONS.
15441 (x_handle_selection_request, x_handle_selection_clear)
15442 (x_get_foreign_selection, Fx_disown_selection_internal)
15443 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
15444 (lisp_data_to_selection_data): Use cons_to_unsigned.
15445 (x_fill_property_data): Use cons_to_signed.
15446 Report values out of range.
15447
d1f3d2af
PE
15448 Check for buffer and string overflow more precisely.
15449 * buffer.h (BUF_BYTES_MAX): New macro.
15450 * lisp.h (STRING_BYTES_MAX): New macro.
15451 * alloc.c (Fmake_string):
15452 * character.c (string_escape_byte8):
15453 * coding.c (coding_alloc_by_realloc):
15454 * doprnt.c (doprnt):
15455 * editfns.c (Fformat):
15456 * eval.c (verror):
15457 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
15458 since they may not be the same number.
15459 * editfns.c (Finsert_char):
15460 * fileio.c (Finsert_file_contents):
15461 Likewise for BUF_BYTES_MAX.
15462
dd52fcea
PE
15463 * image.c: Use ptrdiff_t, not int, for sizes.
15464 (slurp_file): Switch from int to ptrdiff_t.
15465 All uses changed.
15466 (slurp_file): Check that file size fits in both size_t (for
15467 malloc) and ptrdiff_t (for sanity and safety).
15468
7f9bbdbb
PE
15469 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
15470 if b->modtime has its maximal value.
15471
dfe18f82
PE
15472 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
15473
84acfcf0
PE
15474 Don't assume time_t can fit into int.
15475 * buffer.h (struct buffer.modtime): Now time_t, not int.
15476 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
15477 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
15478
ccd9a01a
PE
15479 Minor fixes for signed vs unsigned integers.
15480 * character.h (MAYBE_UNIFY_CHAR):
15481 * charset.c (maybe_unify_char):
15482 * keyboard.c (read_char, reorder_modifiers):
15483 XINT -> XFASTINT, since the integer must be nonnegative.
15484 * ftfont.c (ftfont_spec_pattern):
15485 * keymap.c (access_keymap, silly_event_symbol_error):
15486 XUINT -> XFASTINT, since the integer must be nonnegative.
15487 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
15488 since it makes no difference and we prefer signed.
15489 * keyboard.c (record_char): Use XUINT when all the neighbors do.
15490 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
15491 nonnegative.
15492
d6d100dd
SM
154932011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
15494
15495 * window.h (Fwindow_frame): Declare.
15496
2b6148e4
PE
154972011-06-06 Paul Eggert <eggert@cs.ucla.edu>
15498
15499 * alloc.c: Simplify handling of large-request failures (Bug#8800).
15500 (SPARE_MEMORY): Always define.
15501 (LARGE_REQUEST): Remove.
15502 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
15503
f230ecc9
MR
155042011-06-06 Martin Rudalics <rudalics@gmx.at>
15505
727e958e
MR
15506 * lisp.h: Move EXFUNS for Fframe_root_window,
15507 Fframe_first_window and Fset_frame_selected_window to window.h.
15508
15509 * window.h: Move EXFUNS for Fframe_root_window,
15510 Fframe_first_window and Fset_frame_selected_window here from
15511 lisp.h.
15512
15513 * frame.c (Fwindow_frame, Fframe_first_window)
15514 (Fframe_root_window, Fframe_selected_window)
15515 (Fset_frame_selected_window): Move to window.c.
15516 (Factive_minibuffer_window): Move to minibuf.c.
15517 (Fother_visible_frames_p): New function.
15518
15519 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
15520
f230ecc9
MR
15521 * window.c (decode_window, decode_any_window): Move up in code.
15522 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
15523 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
15524 (Fwindow_buffer): Move up and rewrite doc-string.
15525 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
15526 (Fwindow_prev): New functions.
727e958e
MR
15527 (Fwindow_frame): Move here from frame.c. Accept any window as
15528 argument.
15529 (Fframe_root_window, Fframe_first_window)
15530 (Fframe_selected_window): Move here from frame.c. Accept frame
15531 or arbitrary window as argument. Update doc-strings.
15532 (Fminibuffer_window): Move up in code.
15533 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
15534 (Fset_frame_selected_window): Move here from frame.c.
15535 Marginal rewrite.
727e958e
MR
15536 (Fselected_window, select_window, Fselect_window): Move up in
15537 code. Minor doc-string fixes.
f230ecc9 15538
4d09bcf6
PE
155392011-06-06 Paul Eggert <eggert@cs.ucla.edu>
15540
15541 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
15542 Do not assume that spare memory exists; that assumption is valid
15543 only if SYSTEM_MALLOC.
15544 (LARGE_REQUEST): New macro, so that the issue of large requests
15545 is separated from the issue of spare memory.
15546
810928a2
AS
155472011-06-05 Andreas Schwab <schwab@linux-m68k.org>
15548
172418ad
AS
15549 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
15550 format. (Bug#8806)
15551
43f862f7
AS
15552 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
15553
810928a2
AS
15554 * xfns.c (x_set_scroll_bar_default_width): Move declarations
15555 before statements.
15556
a059fe24
JD
155572011-06-05 Jan Djärv <jan.h.d@swipnet.se>
15558
15559 * gtkutil.c (xg_get_default_scrollbar_width): New function.
15560
15561 * gtkutil.h: Declare xg_get_default_scrollbar_width.
15562
15563 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
15564 min width by calling x_set_scroll_bar_default_width (Bug#8505).
15565
989bf368
JB
155662011-06-05 Juanma Barranquero <lekktu@gmail.com>
15567
15568 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
15569
4b80f674
CY
155702011-06-04 Chong Yidong <cyd@stupidchicken.com>
15571
15572 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
15573 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
15574 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
15575 New error handlers.
4b80f674
CY
15576 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
15577 Obey Vx_select_enable_clipboard_manager. Catch errors in
15578 x_clipboard_manager_save (Bug#8779).
15579 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 15580 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 15581
99a33b77 155822011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
15583
15584 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
15585
99a33b77 155862011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
15587
15588 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
15589 in the current matrix if keep_current_p is non-zero.
15590
8264569d
EZ
155912011-06-04 Eli Zaretskii <eliz@gnu.org>
15592
15593 * bidi.c (bidi_level_of_next_char): Fix last change.
15594
57f97249
EZ
155952011-06-03 Eli Zaretskii <eliz@gnu.org>
15596
fec2107c 15597 Support bidi reordering of text covered by display properties.
57f97249 15598
fec2107c
EZ
15599 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
15600 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
15601 (bidi_cache_search, bidi_cache_iterator_state)
15602 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
15603 (bidi_level_of_next_char, bidi_move_to_visually_next):
15604 Support character positions inside a run of characters covered by a
fec2107c
EZ
15605 display string.
15606 (bidi_paragraph_init, bidi_resolve_explicit_1)
15607 (bidi_level_of_next_char): Call bidi_fetch_char and
15608 bidi_fetch_char_advance instead of FETCH_CHAR and
15609 FETCH_CHAR_ADVANCE.
15610 (bidi_init_it): Initialize new members.
15611 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
15612 definitions.
15613 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
15614 instead of using explicit *_CHAR codes.
d6d100dd
SM
15615 (bidi_resolve_explicit, bidi_resolve_weak):
15616 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
15617 bidirectional text is supported only in multibyte buffers.
15618 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
15619 it to initialize the frame_window_p member of struct bidi_it.
15620 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
15621 (bidi_resolve_explicit, bidi_resolve_weak)
15622 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
15623 bidi_it->nchars is non-positive.
15624 (bidi_level_of_next_char): Don't try to lookup the cache for the
15625 next/previous character if nothing is cached there yet, or if we
15626 were just reseat()'ed to a new position.
c40e2fb2 15627
0e14fe90
EZ
15628 * xdisp.c (set_cursor_from_row): Set start and stop points
15629 according to the row's direction when priming the loop that looks
15630 for the glyph on which to display cursor.
15631 (single_display_spec_intangible_p): Function deleted.
15632 (display_prop_intangible_p): Reimplement to call
15633 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
15634 Accept 3 additional arguments needed by handle_display_spec.
15635 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
15636 values: lists, `(when COND...)' forms, etc.
15637 (single_display_spec_string_p): Support property values that are
15638 lists with the argument STRING its top-level element.
15639 (display_prop_string_p): Fix the condition for processing a
15640 property that is a list to be consistent with handle_display_spec.
fec2107c 15641 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
15642 last portion of handle_display_prop.
15643 (compute_display_string_pos): Accept additional argument
15644 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
15645 value of a `display' property is a "replacing spec".
15646 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
15647 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
15648 the display property, but just return a value indicating whether
15649 the display property will replace the characters it covers.
15650 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
15651 frame_window_p members of struct bidi_it.
d6d100dd
SM
15652 (compute_display_string_pos, compute_display_string_end):
15653 New functions.
fec2107c
EZ
15654 (push_it): Accept second argument POSITION, where pop_it should
15655 jump to continue iteration.
15656 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 15657
fec2107c
EZ
15658 * keyboard.c (adjust_point_for_property): Adjust the call to
15659 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
15660
15661 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
15662 (bidi_init_it): Update prototypes.
15663 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
15664 (compute_display_string_pos, compute_display_string_end):
15665 Declare prototypes.
fec2107c
EZ
15666 (struct bidi_it): New members nchars and disp_pos. ch_len is now
15667 EMACS_INT.
fc6f18ce 15668
40087514 156692011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 15670
57f53182
PE
15671 Malloc failure behavior now depends on size of allocation.
15672 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
15673 * lisp.h: Change signatures accordingly.
15674 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
15675 All callers changed. (Bug#8762)
15676
15677 * gnutls.c: Use Emacs's memory allocators.
15678 Without this change, the gnutls library would invoke malloc etc.
15679 directly, which causes problems on non-SYNC_INPUT hosts, and which
15680 runs afoul of improving memory_full behavior. (Bug#8761)
15681 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
15682 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
15683 xfree instead of the default malloc, realloc, free.
15684 (Fgnutls_boot): No need to check for memory allocation failure,
15685 since xmalloc does that for us.
15686
ac32cd99 15687 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
15688 * category.c (hash_get_category_set):
15689 * ccl.c (ccl_driver):
15690 * charset.c (Fdefine_charset_internal):
15691 * charset.h (struct charset.hash_index):
15692 * composite.c (get_composition_id, gstring_lookup_cache)
15693 (composition_gstring_put_cache):
15694 * composite.h (struct composition.hash_index):
15695 * dispextern.h (struct image.hash):
15696 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
15697 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
15698 (hashfn_equal, hashfn_user_defined, make_hash_table)
15699 (maybe_resize_hash_table, hash_lookup, hash_put)
15700 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
15701 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
15702 (Fsxhash, Fgethash, Fputhash, Fmaphash):
15703 * image.c (make_image, search_image_cache, lookup_image)
15704 (xpm_put_color_table_h):
15705 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 15706 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 15707 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 15708 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
15709 * alloc.c (allocate_vectorlike):
15710 Check for overflow in vector size calculations.
15711 * ccl.c (ccl_driver):
15712 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
15713 * fns.c, image.c: Remove unnecessary static decls that would otherwise
15714 need to be updated by these changes.
40087514
PE
15715 * fns.c (make_hash_table, maybe_resize_hash_table):
15716 Check for integer overflow with large hash tables.
0de4bb68
PE
15717 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
15718 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
15719 (SXHASH_REDUCE): New macro.
15720 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
15721 Use it instead of discarding useful hash info with large hash values.
15722 (sxhash_float): New function.
15723 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
15724 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
15725 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
15726 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
15727 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
15728 Adjust signatures to match updated version of code.
15729 (consing_since_gc): Now EMACS_INT, since a single hash table can
15730 use more than INT_MAX bytes.
15731
698d32e2
DN
157322011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
15733
15734 Make it possible to build with GCC-4.6+ -O2 -flto.
15735
15736 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
15737
fd6fa53f
SM
157382011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
15739
15740 * minibuf.c (get_minibuffer, read_minibuf_unwind):
15741 Call minibuffer-inactive-mode.
15742
864db017
JB
157432011-05-31 Juanma Barranquero <lekktu@gmail.com>
15744
15745 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
15746 Update dependencies.
15747
2ad0baf4
DN
157482011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15749
15750 * data.c (init_data): Remove code for UTS, this system is not
15751 supported anymore.
15752
4fcc2638
DN
157532011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15754
15755 Don't force ./temacs to start in terminal mode.
15756
15757 * frame.c (make_initial_frame): Initialize faces in all cases, not
15758 only when CANNOT_DUMP is defined.
15759 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
15760
c56e0fd5
DN
157612011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15762
15763 * dispnew.c (add_window_display_history): Use const for the string
15764 pointer. Remove declaration, not needed.
15765
333d54da 157662011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 15767
55d4c1b2 15768 Use 'inline', not 'INLINE'.
333d54da 15769 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
15770 * alloc.c, fontset.c (INLINE): Remove.
15771 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
15772 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
15773 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
15774 * gmalloc.c (register_heapinfo): Use inline unconditionally.
15775 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
15776
738db178
DN
157772011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15778
15779 Make it possible to run ./temacs.
15780
15781 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
15782 syms_of_callproc does the same thing. Remove test for
15783 "initialized", do it in the caller.
15784 * emacs.c (main): Avoid calling set_initial_environment when dumping.
15785
620c53a6
SM
157862011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
15787
15788 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
15789 (read_minibuf): Use get_minibuffer.
15790 (syms_of_minibuf): Use DEFSYM.
15791 (Qmetadata): New var.
15792 * data.c (Qbuffer): Don't make it static.
15793 (syms_of_data): Use DEFSYM.
15794
e003a292
PE
157952011-05-31 Paul Eggert <eggert@cs.ucla.edu>
15796
15797 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
15798 (CCL_CODE_MIN): New macro.
15799
ed008a6d
PE
158002011-05-30 Paul Eggert <eggert@cs.ucla.edu>
15801
3687c2ef
PE
15802 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
15803
ed008a6d
PE
15804 * eval.c (Qdebug): Now static.
15805 * lisp.h (Qdebug): Remove decl. This reverts a part of the
15806 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
15807 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
15808
d66c4c7c
CY
158092011-05-29 Chong Yidong <cyd@stupidchicken.com>
15810
15811 * image.c: Various fixes to ImageMagick code comments.
15812 (Fimagemagick_types): Doc fix.
15813
5fbc2025
PE
158142011-05-29 Paul Eggert <eggert@cs.ucla.edu>
15815
0196f88a
PE
15816 Minor fixes prompted by GCC 4.6.0 warnings.
15817
15818 * xselect.c (converted_selections, conversion_fail_tag): Now static.
15819
5fbc2025
PE
15820 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
15821 (x_clipboard_manager_save_all): Move extern decl to ...
15822 * xterm.h: ... here, so that it can be checked for consistency.
15823
1dd3c2d9
CY
158242011-05-29 Chong Yidong <cyd@stupidchicken.com>
15825
15826 * xselect.c (x_clipboard_manager_save_frame)
15827 (x_clipboard_manager_save_all): New functions.
15828 (Fx_clipboard_manager_save): Lisp function deleted.
15829
15830 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
15831 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
15832
15833 * xterm.h: Update prototype.
15834
5ba6571d
WX
158352011-05-28 William Xu <william.xwl@gmail.com>
15836
15837 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
15838 exiting (Bug#8239).
15839
3eaff834
JM
158402011-05-28 Jim Meyering <meyering@redhat.com>
15841
e1900994 15842 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
15843 * fns.c (to_uchar): Define.
15844 (crypto_hash_function): Use it to convert some newly-signed
15845 variables to unsigned, to avoid sign-extension bugs. For example,
15846 without this change, (md5 "truc") would evaluate to
15847 45723a2aff78ff4fff7fff1114760e62 rather than the expected
15848 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 15849 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 15850
0f6990a7
PE
158512011-05-27 Paul Eggert <eggert@cs.ucla.edu>
15852
15853 Integer overflow fixes.
c8a9ca5a 15854
08686060
PE
15855 * dbusbind.c: Serial number integer overflow fixes.
15856 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
15857 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
15858 to hold a serial number that is too large for a fixnum.
15859 (Fdbus_method_return_internal, Fdbus_method_error_internal):
15860 Check for serial numbers out of range. Decode any serial number
59568bf0 15861 that was so large that it became a float. (Bug#8722)
08686060 15862
2d1fc3c7
PE
15863 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
15864 (Fdbus_call_method, Fdbus_call_method_asynchronously):
15865 Use XFASTINT rather than XUINT when numbers are nonnegative.
15866 (xd_append_arg, Fdbus_method_return_internal):
15867 (Fdbus_method_error_internal): Likewise. Also, for unsigned
15868 arguments, check that Lisp number is nonnegative, rather than
59568bf0 15869 silently wrapping negative numbers around. (Bug#8722)
30217ff0 15870 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 15871 (Bug#8722)
2d1fc3c7 15872
c8a9ca5a
PE
15873 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
15874
519e1d69
PE
15875 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
15876
6df6ae42 15877 ccl: Add integer overflow checks.
30569699
PE
15878 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
15879 (IN_INT_RANGE): New macros.
15880 (ccl_driver): Use them to check for integer overflow when
15881 decoding a CCL program. Many of the new checks are whether XINT (x)
15882 fits in int; it doesn't always, on 64-bit hosts. The new version
15883 doesn't catch all possible integer overflows, but it's an
847044ea 15884 improvement. (Bug#8719)
30569699 15885
c11285dc
PE
15886 * alloc.c (make_event_array): Use XINT, not XUINT.
15887 There's no need for unsigned here.
15888
fdccd48e
PE
15889 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
15890 This follows up to the 2011-05-06 change that substituted uintptr_t
15891 for EMACS_INT. This case wasn't caught back then.
15892
37910ab2
PE
15893 Rework Fformat to avoid integer overflow issues.
15894 * editfns.c: Include <float.h> unconditionally, as it's everywhere
15895 now (part of C89). Include <verify.h>.
15896 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
15897 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
15898 (Fformat): Avoid the prepass trying to compute sizes; it was only
15899 approximate and thus did not catch overflow reliably. Instead, walk
15900 through the format just once, formatting and computing sizes as we go,
15901 checking for integer overflow at every step, and allocating a larger
15902 buffer as needed. Keep track separately whether the format is
15903 multibyte. Keep only the most-recently calculated precision, rather
15904 than them all. Record whether each argument has been converted to
15905 string. Use EMACS_INT, not int, for byte and char and arg counts.
15906 Support field widths and precisions larger than INT_MAX. Avoid
15907 sprintf's undefined behavior with conversion specifications such as %#d
15908 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
15909 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
15910 formatting out-of-range floating point numbers with int
9173deec 15911 formats. (Bug#8668)
37910ab2 15912
2e6578fb
PE
15913 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
15914
0ae6bdee
PE
15915 * data.c: Avoid integer truncation in expressions involving floats.
15916 * data.c: Include <intprops.h>.
15917 (arith_driver): When there's an integer overflow in an expression
15918 involving floating point, convert the integers to floating point
15919 so that the resulting value does not suffer from catastrophic
15920 integer truncation. For example, on a 64-bit host (* 4
15921 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
15922 Do not rely on undefined behavior after integer overflow.
15923
de883a70
PE
15924 merge count_size_as_multibyte, parse_str_to_multibyte
15925 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 15926 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
15927 Check for integer overflow.
15928 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
15929 since it's now a duplicate of the other. This is more of
15930 a character than a buffer op, so better that it's in character.c.
15931 * fns.c, print.c: Adjust to above changes.
15932
2ff916cb
PE
159332011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
15934
15935 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
15936
f1b54466
PE
159372011-05-27 Paul Eggert <eggert@cs.ucla.edu>
15938
fb1ac845
PE
15939 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
15940 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
15941 (x_clipboard_manager_save): Now static.
15942 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
15943
f1b54466
PE
15944 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
15945 (crypto_hash_function): Now static.
15946 Fix pointer signedness problems. Avoid unnecessary initializations.
15947
a9f737ee
CY
159482011-05-27 Chong Yidong <cyd@stupidchicken.com>
15949
15950 * termhooks.h (Vselection_alist): Make it terminal-local.
15951
15952 * terminal.c (create_terminal): Initialize it.
15953
15954 * xselect.c: Support for clipboard managers.
15955 (Vselection_alist): Move to termhooks.h as terminal-local var.
15956 (LOCAL_SELECTION): New macro.
15957 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
15958 (symbol_to_x_atom): Remove gratuitous arg.
15959 (x_handle_selection_request, lisp_data_to_selection_data)
15960 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
15961 (x_own_selection, x_get_local_selection, x_convert_selection):
15962 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
15963 (some_frame_on_display): Delete unused function.
15964 (Fx_own_selection_internal, Fx_get_selection_internal)
15965 (Fx_disown_selection_internal, Fx_selection_owner_p)
15966 (Fx_selection_exists_p): New optional frame arg.
15967 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
15968 (x_handle_selection_clear): Don't treat other terminals with the
15969 same keyboard specially. Use the terminal-local Vselection_alist.
15970 (x_clear_frame_selections): Use Frun_hook_with_args.
15971
15972 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
15973
15974 * xterm.h: Add support for those atoms.
15975
e067f0c1
CY
159762011-05-26 Chong Yidong <cyd@stupidchicken.com>
15977
15978 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
15979 (converted_selections, conversion_fail_tag): New global variables.
15980 (x_selection_request_lisp_error): Free the above.
15981 (x_get_local_selection): Remove unnecessary code.
15982 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
15983 of converted selections stored in converted_selections.
15984 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
15985 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
15986 (x_convert_selection): New function.
15987 (x_handle_selection_event): Simplify.
15988 (x_get_foreign_selection): Don't ignore incoming requests while
15989 waiting for an answer; this will fail when we implement
15990 SAVE_TARGETS, and seems unnecessary anyway.
15991 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
15992 (Vx_sent_selection_functions): Doc fix.
15993
0f4aebc0
LL
159942011-05-26 Leo Liu <sdl.web@gmail.com>
15995
15996 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
15997
e61124cd
YM
159982011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15999
16000 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
16001
16002 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
16003 for fringe update if it has periodic bitmap.
ac389d0c 16004 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
16005 and fringe_bitmap_periodic_p.
16006
16007 * fringe.c (get_fringe_bitmap_data): New function.
16008 (draw_fringe_bitmap_1, update_window_fringes): Use it.
16009 (update_window_fringes): Record periodicity of fringe bitmap in glyph
16010 row. Mark glyph row for fringe update if periodicity changed.
16011
16012 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
16013 for fringe update unless it has periodic bitmap.
16014
f16d9837
KH
160152011-05-25 Kenichi Handa <handa@m17n.org>
16016
16017 * xdisp.c (get_next_display_element): Set correct it->face_id for
16018 a static composition.
16019
e1b90ef6
LL
160202011-05-24 Leo Liu <sdl.web@gmail.com>
16021
16022 * deps.mk (fns.o):
16023 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
16024
16025 * fns.c (crypto_hash_function, Fsha1): New function.
16026 (Fmd5): Use crypto_hash_function.
16027 (syms_of_fns): Add Ssha1.
16028
7400048f
PE
160292011-05-22 Paul Eggert <eggert@cs.ucla.edu>
16030
16031 * gnutls.c: Remove unused macros.
16032 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
16033 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
16034 Remove macros that are defined and never used.
16035 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
16036
abb71cf4
CY
160372011-05-22 Chong Yidong <cyd@stupidchicken.com>
16038
16039 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
16040 (Fx_get_selection_internal): Minor cleanup.
16041 (Fx_own_selection_internal): Rename arguments for consistency with
16042 select.el.
16043
6307db39
PE
160442011-05-22 Paul Eggert <eggert@cs.ucla.edu>
16045
16046 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
16047
f3d4e0a4
CY
160482011-05-22 Chong Yidong <cyd@stupidchicken.com>
16049
16050 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
16051
4d8ade89
YM
160522011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16053
16054 * dispnew.c (scrolling_window): Don't exclude the case that the
16055 last enabled row in the desired matrix touches the bottom boundary.
16056
32078c8d
GM
160572011-05-21 Glenn Morris <rgm@gnu.org>
16058
16059 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
16060 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
16061 and add some more files.
32078c8d 16062
7285dc67
EZ
160632011-05-20 Eli Zaretskii <eliz@gnu.org>
16064
16065 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
16066 report_file_error introduced by the change from 2011-05-07.
16067
89d1bd22
PE
160682011-05-20 Paul Eggert <eggert@cs.ucla.edu>
16069
16070 * systime.h (Time): Define only if emacs is defined.
16071 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
16072 where the include path doesn't have X11/X.h by default. See
16073 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
16074
cd394be1 160752011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
16076
16077 * composite.c (find_automatic_composition): Fix previous change.
16078
b9704ad9
GM
160792011-05-20 Glenn Morris <rgm@gnu.org>
16080
16081 * lisp.mk: New file, split from Makefile.in.
16082 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
16083 (shortlisp): Remove.
16084 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
16085
4a720484
GM
160862011-05-19 Glenn Morris <rgm@gnu.org>
16087
16088 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
16089 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
16090 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
16091 (lisp): Set the order to that of loadup.el.
16092 (shortlisp): Make it a copy of $lisp.
16093 (SOME_MACHINE_LISP): Remove.
16094 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
16095 Use just $shortlisp, not $SOME_MACHINE_LISP too.
16096
a28d4396
KH
160972011-05-18 Kenichi Handa <handa@m17n.org>
16098
16099 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
16100 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
16101 (find_automatic_composition): Mostly rewrite for efficiency.
16102
a2b1fa8e
JB
161032011-05-18 Juanma Barranquero <lekktu@gmail.com>
16104
16105 * makefile.w32-in: Update dependencies.
16106
8e1f5610
CS
161072011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
16108
16109 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 16110 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 16111
7025ee00 161122011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 16113
cdfa6eab
PE
16114 Fix some integer overflow issues, such as string length overflow.
16115
06d6db33
PE
16116 * insdel.c (count_size_as_multibyte): Check for string overflow.
16117
2b4560a8
PE
16118 * character.c (lisp_string_width): Check for string overflow.
16119 Use EMACS_INT, not int, for string indexes and lengths; in
16120 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
16121 the resulting string length overflows an EMACS_INT; instead,
16122 report a string overflow if no precision given. When checking for
16123 precision exhaustion, use a check that cannot possibly have
16124 integer overflow. (Bug#8675)
16125 * character.h (lisp_string_width): Adjust to new signature.
16126
cb93f9be
PE
16127 * alloc.c (string_overflow): New function.
16128 (Fmake_string): Use it. This doesn't change behavior, but saves
16129 a few bytes and will simplify future changes.
16130 * character.c (string_escape_byte8): Likewise.
16131 * lisp.h (string_overflow): New decl.
16132
1a1f3366
PE
16133 Fixups, following up to the user-interface timestamp change.
16134 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
16135 for UI timestamps, instead of unsigned long.
9fbd6841
PE
16136 * msdos.c (mouse_get_pos): Likewise.
16137 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
16138 * w32gui.h (Time): Define by including "systime.h" rather than by
16139 declaring it ourselves. (Bug#8664)
16140
d4e3e4d3
PE
16141 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
16142 * image.c (clear_image_cache): Likewise.
16143
f6a24d19
PE
16144 * term.c (term_mouse_position): Don't assume time_t wraparound.
16145
08dc5ae6
PE
16146 Be more systematic about user-interface timestamps.
16147 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
16148 and sometimes 'EMACS_UINT', to represent these timestamps.
16149 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
16150 This makes the code easier to follow, and makes it easier to catch
16151 integer overflow bugs such as Bug#8664.
16152 * frame.c (Fmouse_position, Fmouse_pixel_position):
16153 Use Time, not unsigned long, for user-interface timestamps.
16154 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
16155 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
16156 * keyboard.h (last_event_timestamp): Likewise.
16157 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
16158 * menu.h (xmenu_show): Likewise.
16159 * term.c (term_mouse_position): Likewise.
16160 * termhooks.h (struct input_event.timestamp): Likewise.
16161 (struct terminal.mouse_position_hook): Likewise.
16162 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
16163 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
16164 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
16165 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
16166 what it was before.
16167 * menu.h, termhooks.h: Include "systime.h", for Time.
16168
8e55734a
PE
16169 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
16170 Don't assume that the difference between two unsigned long values
16171 can fit into an integer. At this point, we know button_down_time
16172 <= event->timestamp, so the difference must be nonnegative, so
16173 there's no need to cast the result if double-click-time is
16174 nonnegative, as it should be; check that it's nonnegative, just in
16175 case. This bug is triggered when events are more than 2**31 ms
86db42d2 16176 apart (about 25 days). (Bug#8664)
8e55734a 16177
841f1b75 16178 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 16179 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 16180
3e26f69c
PE
16181 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
16182 that always fit in int. Use a sentinel instead of a counter, to
16183 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
16184 * frame.h (struct frame): Use int for menu_bar_items_used
16185 instead of EMACS_INT, since it always fits in int.
3e26f69c 16186
5cc152c0
PE
16187 * menu.c (grow_menu_items): Check for int overflow.
16188
d89eb65e
PE
16189 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
16190
5235bd3e
PE
16191 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
16192 Before, the code was not consistent. These values cannot exceed
16193 2**31 - 1 so there's no need to make them unsigned.
16194 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
16195 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
16196 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
16197 as modifiers.
16198 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
16199
bc827e23
PE
16200 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
16201 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
16202 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
16203 presumably because the widths might not match.
16204
78eb494e
PE
16205 * window.c (size_window): Avoid needless test at loop start.
16206
04f2d78b
CB
162072011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
16208
16209 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
16210
d2fc7e3d 162112011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
16212
16213 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
16214
d2fc7e3d 162152011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
16216
16217 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
16218 `width' to `bar_area_x' and `bar_area_width', respectively.
16219 (x_scroll_run): Take account of fringe background extension.
16220
04f2d78b
CB
16221 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
16222 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
16223 `bar_area_width', respectively.
16224 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
16225 background extension.
16226
79b70037
GM
162272011-05-10 Jim Meyering <meyering@redhat.com>
16228
16229 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
16230
2f142cc5
JB
162312011-05-10 Juanma Barranquero <lekktu@gmail.com>
16232
16233 * image.c (Finit_image_library): Return t for built-in image types,
16234 like pbm and xbm. (Bug#8640)
16235
57679c86
AS
162362011-05-09 Andreas Schwab <schwab@linux-m68k.org>
16237
16238 * w32menu.c (set_frame_menubar): Fix submenu allocation.
16239
888c9e86
EZ
162402011-05-07 Eli Zaretskii <eliz@gnu.org>
16241
b0512a1d
EZ
16242 * w32console.c (Fset_screen_color): Doc fix.
16243 (Fget_screen_color): New function.
16244 (syms_of_ntterm): Defsubr it.
16245
7285dc67
EZ
16246 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
16247 unlink the temporary file if Fcall_process didn't create it in the
16248 first place.
16249 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
16250 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
16251 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
16252 cue to call_process_cleanup not to close that handle.
16253
4d3fcc8e
BK
162542011-05-07 Ben Key <bkey76@gmail.com>
16255
16256 * makefile.w32-in: The bootstrap-temacs rule now makes use of
16257 one of two shell specific rules, either bootstrap-temacs-CMD or
16258 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
16259 to the previous implementation of the bootstrap-temacs rule.
16260 The bootstrap-temacs-CMD rule is similar to the previous
16261 implementation of the bootstrap-temacs rule except that it
16262 makes use of the ESC_CFLAGS variable instead of the CFLAGS
16263 variable.
16264
16265 These changes, along with some changes to nt/configure.bat,
16266 nt/gmake.defs, and nt/nmake.defs, are required to extend my
16267 earlier fix to add support for --cflags and --ldflags options
16268 that include quotes so that it works whether make uses cmd or
16269 sh as the shell.
16270
b4289b64
MA
162712011-05-06 Michael Albinus <michael.albinus@gmx.de>
16272
16273 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
16274 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
16275 is a constant.
16276 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
16277 a string. Handle both cases.
16278 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
16279 (Fdbus_register_method): Use Qinvalid_function.
16280
af4c0e28
JB
162812011-05-06 Juanma Barranquero <lekktu@gmail.com>
16282
16283 * makefile.w32-in: Update dependencies.
16284 (LISP_H): Add inttypes.h and stdin.h.
16285 (PROCESS_H): Add unistd.h.
16286
c51453d9
EZ
162872011-05-06 Eli Zaretskii <eliz@gnu.org>
16288
16289 * lread.c: Include limits.h (fixes the MS-Windows build broken by
16290 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
16291
8ff0ac3c 162922011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 16293
4c4b566b
PE
16294 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
16295
aab2b9b5
PE
16296 * term.c (vfatal): Remove stray call to va_end.
16297 It's not needed and the C Standard doesn't allow it here anyway.
16298
c378da0b
PE
16299 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
16300 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
16301
288b08c7
PE
16302 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
16303 bytes.
16304
e3601888
PE
16305 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
16306
db6c0e74
PE
16307 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
16308
dd5963ea
PE
16309 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
16310
88c9450f
PE
16311 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
16312
2f9442b8
PE
16313 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
16314
c032b5f8
PE
16315 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
16316 * charset.c (Fdefine_charset_internal): Don't initialize
16317 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 16318 32-bit int (Bug#8600).
a108c10b
PE
16319
16320 * lread.c (read_integer): Be more consistent with string-to-number.
16321 Use string_to_number to do the actual conversion; this avoids
16322 rounding errors and fixes some other screwups. Without this fix,
16323 for example, #x1fffffffffffffff was misread as -2305843009213693952.
16324 (digit_to_number): Move earlier, for benefit of read_integer.
16325 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 16326 not a digit in any supported base. (Bug#8602)
a108c10b 16327
ad5f9eea
PE
16328 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
16329
aec1708a
PE
16330 * dispnew.c (scrolling_window): Return 1 if we scrolled,
16331 to match comment at start of function. This also removes a
16332 GCC warning about overflow in a 32+64-bit port.
16333
47be4ab5
PE
16334 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
16335
371cac43
PE
16336 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
16337 Reported by Stefan Monnier in
16338 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
16339 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
16340 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 16341
d01a7826
PE
16342 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
16343 (EMACS_UINTPTR): Likewise, with uintptr_t.
16344
7fd47d5c
PE
16345 * lisp.h: Prefer 64-bit EMACS_INT if available.
16346 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
16347 on 32-bit hosts that have 64-bit int, so that they can access
16348 large files.
122b0c86
PE
16349 However, temporarily disable this change unless the temporary
16350 symbol WIDE_EMACS_INT is defined.
7fd47d5c 16351
8727937b
PE
16352 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
16353
8ac068ac
PE
16354 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
16355 This removes an assumption that EMACS_INT and long are the same
16356 width as pointers. The assumption is true for Emacs porting targets
16357 now, but we want to make other targets possible.
16358 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
16359 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
16360 In the rest of the code, change types of integers that hold casted
16361 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
16362 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
16363 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
16364 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
16365 No need to cast type when ORing.
16366 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
16367 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
16368 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
16369 assume EMACS_INT is the same width as char *.
16370 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
16371 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
16372 Remove no-longer-needed casts.
16373 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
16374 (xg_tool_bar_help_callback, xg_make_tool_item):
16375 Use EMACS_INTPTR to hold an integer
16376 that will be cast to void *; this can avoid a GCC warning
16377 if EMACS_INT is not the same width as void *.
16378 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
16379 * xdisp.c (display_echo_area_1, resize_mini_window_1):
16380 (current_message_1, set_message_1):
16381 Use a local to convert to proper width without a cast.
16382 * xmenu.c (dialog_selection_callback): Likewise.
16383
ede49d71
PE
16384 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
16385 Also, don't assume VALBITS / RAND_BITS is less than 5,
16386 and don't rely on undefined behavior when shifting a 1 left into
16387 the sign bit.
16388 * lisp.h (get_random): Change signature to match.
16389
2f30ecd0
PE
16390 * lread.c (hash_string): Use size_t, not int, for hash computation.
16391 Normally we prefer signed values; but hashing is special, because
16392 it's better to use unsigned division on hash table sizes so that
16393 the remainder is nonnegative. Also, size_t is the natural width
16394 for hashing into memory. The previous code used 'int', which doesn't
16395 retain enough info to hash well into very large tables.
16396 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
16397
2a866e7b
PE
16398 * dbusbind.c: Don't possibly lose pointer info when converting.
16399 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
16400 Use XPNTR rather than XHASH, so that the high-order bits of
16401 the pointer aren't lost when converting through void *.
16402
51639eac
PE
16403 * eval.c (Fautoload): Don't double-shift a pointer.
16404
92394119
PE
16405 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
16406
dbdb9a7c
JB
164072011-05-06 Juanma Barranquero <lekktu@gmail.com>
16408
16409 * gnutls.c (DEF_GNUTLS_FN):
16410 * image.c (DEF_IMGLIB_FN): Make function pointers static.
16411
db7a0b4f
AS
164122011-05-05 Andreas Schwab <schwab@linux-m68k.org>
16413
16414 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
16415 marker. (Bug#8610)
16416
cd394be1 164172011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
16418
16419 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
16420 New version that can reserve upto 2GB of heap space.
16421
f7ff1b0f 164222011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
16423
16424 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
16425
639c109b
TZ
164262011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
16427
16428 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
16429 `gnutls_certificate_set_x509_key_file'.
16430
d2127135
JB
164312011-05-05 Juanma Barranquero <lekktu@gmail.com>
16432
16433 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
16434 Update dependencies.
16435
e968f4f3
JB
164362011-05-04 Juanma Barranquero <lekktu@gmail.com>
16437
16438 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
16439 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
16440 Remove unused parameter `fildes'.
16441 * process.c (read_process_output, send_process): Don't pass it.
16442
84d358f0
JB
164432011-05-04 Juanma Barranquero <lekktu@gmail.com>
16444
16445 Fix previous change: the library cache is defined in w32.c.
16446 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
16447 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
16448
0898ca10
JB
164492011-05-04 Juanma Barranquero <lekktu@gmail.com>
16450
16451 Implement dynamic loading of GnuTLS on Windows.
16452
16453 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
16454 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
16455 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
16456 Declare.
16457
16458 * gnutls.c (Qgnutls_dll): Define.
16459 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
16460 (gnutls_*): Declare function pointers.
16461 (init_gnutls_functions): New function to initialize function pointers.
16462 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
16463 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
16464 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
16465 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
16466 (emacs_gnutls_write, emacs_gnutls_read)
16467 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
16468 (Fgnutls_available_p): New function.
16469 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
16470 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
16471 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
16472
16473 * image.c: Include w32.h.
16474 (Vimage_type_cache): Delete.
16475 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
16476 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
16477 (w32_delayed_load): Move to w32.c.
16478
16479 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
16480
16481 * w32.c (QCloaded_from, Vlibrary_cache): Define.
16482 (w32_delayed_load): Move from image.c. When loading a library, record
16483 its filename in the :loaded-from property of the library id.
16484 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
16485 Initialize and staticpro them.
16486 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
16487
16488 * process.c: Include lisp.h before w32.h, not after.
16489 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
16490 instead of gnutls_record_check_pending.
16491
16492 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
16493
ff4de4aa
TZ
164942011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
16495
16496 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
16497 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
16498 as passed in.
16499
abe95abb
JD
165002011-05-03 Jan Djärv <jan.h.d@swipnet.se>
16501
16502 * xterm.c (x_set_frame_alpha): Do not set property on anything
16503 else than FRAME_X_OUTER_WINDOW (Bug#8608).
16504
e16e55d4
JB
165052011-05-02 Juanma Barranquero <lekktu@gmail.com>
16506
16507 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
16508
bafcf6a5
JB
165092011-05-02 Juanma Barranquero <lekktu@gmail.com>
16510
16511 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
16512 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
16513 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
16514 (gnutls_global_initialized, Qgnutls_bootprop_priority)
16515 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
16516 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
16517 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
16518 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
16519 (Qgnutls_bootprop_callbacks_verify): Make static.
16520
e7a6747f
AS
165212011-05-01 Andreas Schwab <schwab@linux-m68k.org>
16522
19ed11ba
AS
16523 * callproc.c: Indentation fixup.
16524
e7a6747f 16525 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
16526 (wait_for_termination, interruptible_wait_for_termination):
16527 Move after wait_for_termination_1.
e7a6747f 16528
1ef14cb4
LMI
165292011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
16530
16531 * sysdep.c (interruptible_wait_for_termination): New function
16532 which is like wait_for_termination, but allows keyboard
16533 interruptions.
16534
16535 * callproc.c (Fcall_process): Add (:file "file") as an option for
16536 the STDOUT buffer.
16537 (Fcall_process_region): Ditto.
16538
330d880c
EZ
165392011-04-30 Eli Zaretskii <eliz@gnu.org>
16540
8db90b73
EZ
16541 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
16542 rather than `XVECTOR (FOO)->size'.
16543
330d880c
EZ
16544 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
16545 inttypes.h, as a gnulib replacement is used if it not available in
16546 system headers.
16547
15cbd324
EZ
165482011-04-21 Eli Zaretskii <eliz@gnu.org>
16549
16550 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
16551 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
16552 of MOST_POSITIVE_FIXNUM. (Bug#8528)
16553
16554 * coding.c (coding_alloc_by_realloc): Error out if destination
16555 will grow beyond MOST_POSITIVE_FIXNUM.
16556 (decode_coding_emacs_mule): Abort if there isn't enough place in
16557 charbuf for the composition carryover bytes. Reserve an extra
16558 space for up to 2 characters produced in a loop.
16559 (decode_coding_iso_2022): Abort if there isn't enough place in
16560 charbuf for the composition carryover bytes.
16561
165622011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 16563
ae940cca
EZ
16564 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
16565 aborting when %lld or %lll format is passed.
16566 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
16567 %llo or %llx format is passed. (Bug#8545)
16568
03ab8921
EZ
16569 * window.c (window_scroll_line_based): Use a marker instead of
16570 simple variables to record original value of point. (Bug#7952)
16571
afda1437
EZ
16572 * doprnt.c (doprnt): Fix the case where a multibyte sequence
16573 produced by %s or %c overflows available buffer space. (Bug#8545)
16574
f76dee0c
PE
165752011-04-28 Paul Eggert <eggert@cs.ucla.edu>
16576
16577 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 16578 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 16579
fdc5744d
JB
165802011-04-28 Juanma Barranquero <lekktu@gmail.com>
16581
16582 * w32.c (init_environment): Warn about defaulting HOME to C:\.
16583
638f053a
JB
165842011-04-28 Juanma Barranquero <lekktu@gmail.com>
16585
16586 * keyboard.c (Qdelayed_warnings_hook): Define.
16587 (command_loop_1): Run `delayed-warnings-hook'
16588 if Vdelayed_warnings_list is non-nil.
16589 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
16590 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
16591
d178f871
EZ
165922011-04-28 Eli Zaretskii <eliz@gnu.org>
16593
16594 * doprnt.c (doprnt): Don't return value smaller than the buffer
16595 size if the message was truncated. (Bug#8545).
16596
b124fd93
JB
165972011-04-28 Juanma Barranquero <lekktu@gmail.com>
16598
16599 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
16600 (Fx_window_property): #if-0 the whole functions, not just the bodies.
16601
e810457d
PE
166022011-04-27 Paul Eggert <eggert@cs.ucla.edu>
16603
16604 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
16605
ea51cceb
JB
166062011-04-27 Juanma Barranquero <lekktu@gmail.com>
16607
16608 * makefile.w32-in: Update dependencies.
16609
94dcfacf
EZ
166102011-04-27 Eli Zaretskii <eliz@gnu.org>
16611
16612 Improve `doprnt' and its usage. (Bug#8545)
16613 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
16614 `format_end'. Remove support for %l as a conversion specifier.
16615 Don't use xrealloc. Improve diagnostics when the %l size modifier
16616 is used. Update the commentary.
16617
16618 * eval.c (verror): Simplify calculation of size_t.
16619
16620 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
16621 messages.
16622
f61f41d7
PE
166232011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
16624
16625 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
16626 change.
16627
96fb4434
PE
166282011-04-27 Paul Eggert <eggert@cs.ucla.edu>
16629
16630 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
16631 This makes this file independent of the recent pseudovector change.
16632
671875da 166332011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 16634
69e9b5a3
PE
16635 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
16636
b5f869a7 16637 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 16638 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 16639 Remove unused local.
c8926152 16640 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 16641
841a1577 16642 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
16643 GCC 4.6.0 optimizes based on type-based alias analysis.
16644 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
16645 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
16646 != &v->size, and therefore "v->size = 1; b->size = 2; return
16647 v->size;" must therefore return 1. This assumption is incorrect
16648 for Emacs, since it type-puns struct Lisp_Vector * with many other
16649 types. To fix this problem, this patch adds a new type struct
f904488f 16650 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
16651 and pseudovectors, and helps optimizing compilers not get fooled
16652 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
16653 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
16654 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
16655 the size member.
eab3844f
PE
16656 (XSETPVECTYPE): Rewrite in terms of new macro.
16657 (XSETPVECTYPESIZE): New macro, specifying both type and size.
16658 This is a bit clearer, and further avoids the possibility of
16659 undesirable aliasing.
16660 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 16661 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
16662 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
16663 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
16664 (ASIZE): Now uses header.size rather than size.
16665 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
16666 to avoid the hassle of writing XVECTOR (foo)->header.size.
16667 (struct vectorlike_header): New type.
eab3844f
PE
16668 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
16669 object, to help avoid aliasing.
16670 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
16671 (SUBRP): Likewise, since Lisp_Subr is a special case.
16672 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
16673 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
16674 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 16675 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
16676 changed to be "header.size" and "header.next".
16677 * buffer.h (struct buffer): Likewise.
16678 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
16679 * frame.h (struct frame): Likewise.
16680 * process.h (struct Lisp_Process): Likewise.
16681 * termhooks.h (struct terminal): Likewise.
16682 * window.c (struct save_window_data, struct saved_window): Likewise.
16683 * window.h (struct window): Likewise.
16684 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
16685 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
16686 * buffer.c (init_buffer_once): Likewise.
16687 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
16688 special case.
16689 * process.c (Fformat_network_address): Use local var for size,
16690 for brevity.
16691
0df1eac5
PE
16692 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
16693
847ab9d1 16694 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
16695 * data.c (atof): Remove decl; no longer used or needed.
16696 (digit_to_number): Move to lread.c.
16697 (Fstring_to_number): Use new string_to_number function, to be
16698 consistent with how the Lisp reader treats infinities and NaNs.
16699 Do not assume that floating-point numbers represent EMACS_INT
16700 without losing information; this is not true on most 64-bit hosts.
16701 Avoid double-rounding errors, by insisting on integers when
16702 parsing non-base-10 numbers, as the documentation specifies.
16703 * lisp.h (string_to_number): New decl, replacing ...
16704 (isfloat_string): Remove.
bc0a5c13 16705 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 16706 (read1): Do not accept +. and -. as integers; this
452f4150
PE
16707 appears to have been a coding error. Similarly, do not accept
16708 strings like +-1e0 as floating point numbers. Do not report
16709 overflow for integer overflows unless the base is not 10 which
16710 means we have no simple and reliable way to continue.
16711 Break out the floating-point parsing into a new
16712 function string_to_number, so that Fstring_to_number parses
16713 floating point numbers consistently with the Lisp reader.
04f2d78b 16714 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
16715 (E_CHAR, EXP_INT): Remove, replacing with ...
16716 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
16717 (string_to_number): New function, replacing isfloat_string.
16718 This function checks for valid syntax and produces the resulting
16719 Lisp float number too. Rework it so that string-to-number
bc0a5c13 16720 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
16721 so that overflow for non-base-10 numbers is reported only when
16722 there's no portable and simple way to convert to floating point.
452f4150 16723
67769ffc
PE
16724 * textprop.c (set_text_properties_1): Rewrite for clarity,
16725 and to avoid GCC warning about integer overflow.
16726
c20db43f
PE
16727 * intervals.h (struct interval): Use EMACS_INT for members
16728 where EMACS_UINT might cause problems. See
16729 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
16730 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
16731 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
16732 All uses changed.
37aa2f85
PE
16733 (offset_intervals): Tell GCC not to worry about length overflow
16734 when negating a negative length.
c20db43f 16735
2538aa2f
PE
16736 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
16737 (overrun_check_free): Likewise.
16738
f2d3008d
PE
16739 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
16740 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
16741 word size.
16742
ec8df744
PE
16743 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
16744 (gnutls_make_error): Rename local to avoid shadowing.
16745 (gnutls_emacs_global_deinit): ifdef out; not used.
16746 (Fgnutls_boot): Use const for pointer to readonly storage.
16747 Comment out unused local. Fix pointer signedness problems.
16748
640ee02d
PE
16749 * lread.c (openp): Don't stuff size_t into an 'int'.
16750 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
16751 about possible signed overflow.
16752
6048fb2a
PE
16753 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
16754 (GDK_KEY_g): Don't define if already defined.
16755 (xg_prepare_tooltip): Avoid pointer signedness problem.
16756 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
16757
fa3c87e1
PE
16758 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
16759 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
16760
2172544b
PE
16761 * xfns.c (Fx_window_property): Simplify a bit,
16762 to make a bit faster and to avoid GCC 4.6.0 warning.
16763 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
16764
9b821a21
PE
16765 * fns.c (internal_equal): Don't assume size_t fits in int.
16766
3c616cfa
PE
16767 * alloc.c (compact_small_strings): Tighten assertion a little.
16768
c2982e87
PE
16769 Replace pEd with more-general pI, and fix some printf arg casts.
16770 * lisp.h (pI): New macro, generalizing old pEd macro to other
16771 conversion specifiers. For example, use "...%"pI"d..." rather
16772 than "...%"pEd"...".
16773 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 16774 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
16775 * alloc.c (check_pure_size): Don't overflow by converting size to int.
16776 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
16777 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
16778 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
16779 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
16780 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
16781 64-bit hosts.
16782 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
16783 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
16784 * print.c (safe_debug_print, print_object): Likewise.
16785 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
16786 to int.
6f04d126
PE
16787 Use pI instead of if-then-else-abort. Use %p to avoid casts,
16788 avoiding the 0 flag, which is not portable.
c2982e87
PE
16789 * process.c (Fmake_network_process): Use pI to avoid cast.
16790 * region-cache.c (pp_cache): Likewise.
16791 * xdisp.c (decode_mode_spec): Likewise.
16792 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
16793 behavior on 64-bit hosts with printf arg.
6f04d126 16794 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
16795 (x_stop_queuing_selection_requests): Likewise.
16796 (x_get_window_property): Don't truncate byte count to an 'int'
16797 when tracing.
0b432f21 16798
5e073ec7
PE
16799 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
16800 here, since it parses constructs like leading '-' and spaces,
16801 which are not wanted; and it overflows with large numbers.
16802 Instead, simply match F[0-9]+, which is what is wanted anyway.
16803
36372bf9
PE
16804 * alloc.c: Remove unportable assumptions about struct layout.
16805 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
16806 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
16807 (allocate_vectorlike, make_pure_vector): Use the new macros,
16808 plus offsetof, to remove unportable assumptions about struct layout.
16809 These assumptions hold on all porting targets that I know of, but
16810 they are not guaranteed, they're easy to remove, and removing them
16811 makes further changes easier.
16812
0b432f21
PE
16813 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
16814 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
16815 (string_overrun_cookie): Now const. Use initializers that
16816 don't formally overflow signed char, to avoid warnings.
000098c1
PE
16817 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
16818 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
16819 (allocate_buffer): Don't assume sizeof (struct buffer) is a
16820 multiple of sizeof (EMACS_INT); it need not be, if
16821 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 16822 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 16823
895009e1
JB
168242011-04-26 Juanma Barranquero <lekktu@gmail.com>
16825
16826 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
16827
6a7a1b0b
TZ
168282011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
16829
16830 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 16831 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
16832 Reported by Paul Eggert <eggert@cs.ucla.edu>.
16833
841a1577 168342011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
16835
16836 * lisp.h (Qdebug): List symbol.
895009e1 16837 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
16838 * keyboard.c (debug-on-event): New variable.
16839 (handle_user_signal): Break into debugger when debug-on-event
16840 matches the current signal symbol.
16841
f2d3ba6f
DN
168422011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
16843
16844 * alloc.c (check_sblock, check_string_bytes)
16845 (check_string_free_list): Convert to standard C.
16846
42ce4c63
TZ
168472011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
16848
16849 * w32.c (emacs_gnutls_push): Fix typo.
16850
825cd63c
EZ
168512011-04-25 Eli Zaretskii <eliz@gnu.org>
16852
fb11d64d
EZ
16853 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
16854 "cast to pointer from integer of different size".
16855
825cd63c
EZ
16856 Improve doprnt and its use in verror. (Bug#8545)
16857 * doprnt.c (doprnt): Document the set of format control sequences
16858 supported by the function. Use SAFE_ALLOCA instead of always
16859 using `alloca'.
16860
16861 * eval.c (verror): Don't limit the buffer size at size_max-1, that
16862 is one byte too soon. Don't use xrealloc; instead xfree and
16863 xmalloc anew.
16864
e061a11b
TZ
168652011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
16866
16867 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
16868 callbacks stage.
16869
16870 * gnutls.c: Renamed global_initialized to
16871 gnutls_global_initialized. Added internals for the
16872 :verify-hostname-error, :verify-error, and :verify-flags
16873 parameters of `gnutls-boot' and documented those parameters in the
16874 docstring. Start callback support.
9173deec
JB
16875 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
16876 unless a fatal error occurred. Call gnutls_alert_send_appropriate
16877 on error. Return error code.
e061a11b
TZ
16878 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
16879 (emacs_gnutls_read): Likewise.
16880 (Fgnutls_boot): Return handshake error code.
16881 (emacs_gnutls_handle_error): New function.
16882 (wsaerror_to_errno): Likewise.
16883
16884 * w32.h (emacs_gnutls_pull): Add prototype.
16885 (emacs_gnutls_push): Likewise.
16886
16887 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
16888 (emacs_gnutls_push): Likewise.
16889
168902011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
16891
16892 * process.c (wait_reading_process_output): Check if GnuTLS
16893 buffered some data internally if no FDs are set for TLS
16894 connections.
16895
16896 * makefile.w32-in (OBJ2): Add gnutls.$(O).
16897 (LIBS): Link to USER_LIBS.
16898 ($(BLD)/gnutls.$(0)): New target.
16899
fa6996bc
EZ
169002011-04-24 Eli Zaretskii <eliz@gnu.org>
16901
eb35682e
EZ
16902 * xdisp.c (handle_single_display_spec): Rename the
16903 display_replaced_before_p argument into display_replaced_p, to
16904 make it consistent with the commentary. Fix typos in the
16905 commentary.
16906
e2ad650c
EZ
16907 * textprop.c (syms_of_textprop): Remove dead code.
16908 (copy_text_properties): Delete obsolete commentary about an
16909 interface that was deleted long ago. Fix typos in the description
16910 of arguments.
16911
1b2de274
EZ
16912 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
16913 to changes in oldXMenu/XMenu.h from 2011-04-16.
16914 <menu_help_message, prev_menu_help_message>: Constify.
16915 (IT_menu_make_room): menu->help_text is now `const char **';
16916 adjust.
16917
16918 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
16919 to changes in oldXMenu/XMenu.h from 2011-04-16.
16920 (struct XMenu): Declare `help_text' `const char **'.
16921
16922 * xfaces.c <Qunspecified>: Make extern again.
16923
16924 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 16925 required by POSIX.
1b2de274 16926
762b15be
EZ
16927 * doc.c (get_doc_string): Improve the format passed to `error'.
16928
16929 * doprnt.c (doprnt): Improve commentary.
16930
16931 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
16932
16933 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
16934 them with etags.
16935
f1052e5d
EZ
16936 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
16937 changes in globals.h immediately force recompilation.
762b15be
EZ
16938 (TAGS): Depend on $(CURDIR)/m/intel386.h and
16939 $(CURDIR)/s/ms-w32.h.
16940 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 16941
fa6996bc
EZ
16942 * character.c (Fchar_direction): Function deleted.
16943 (syms_of_character): Don't defsubr it.
16944 <char-direction-table>: Deleted.
16945
e6c3da20
EZ
169462011-04-23 Eli Zaretskii <eliz@gnu.org>
16947
16948 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
16949 * doprnt.c: Include limits.h.
16950 (SIZE_MAX): New macro.
04f2d78b
CB
16951 (doprnt): Return a size_t value. 2nd arg is now size_t.
16952 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
16953 Improve overflow protection. Support `l' modifier for integer
16954 conversions. Support %l conversion. Don't assume an EMACS_INT
16955 argument for integer conversions and for %c.
16956
16957 * lisp.h (doprnt): Restore prototype.
16958
16959 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
16960 $(SRC)/character.h.
16961
16962 * Makefile.in (base_obj): Add back doprnt.o.
16963
16964 * deps.mk (doprnt.o): Add back prerequisites.
16965 (callint.o): Depend on character.h.
16966
16967 * eval.c (internal_lisp_condition_case): Include the handler
16968 representation in the error message.
16969 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
16970 when breaking from the loop.
16971
16972 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
16973
16974 * callint.c (Fcall_interactively): When displaying error message
16975 about invalid control letter, pass the character's codepoint, not
16976 a pointer to its multibyte form. Improve display of the character
16977 in octal and display also its hex code.
16978
16979 * character.c (char_string): Use %x to display the (unsigned)
16980 codepoint of an invalid character, to avoid displaying a bogus
16981 negative value.
16982
16983 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
16984 `error', not SYMBOL_NAME itself.
16985
16986 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
16987 character arguments to `error'.
16988
16989 * charset.c (check_iso_charset_parameter): Fix incorrect argument
16990 to `error' in error message about FINAL_CHAR argument. Make sure
16991 FINAL_CHAR is a character, and use %c when it is passed as
16992 argument to `error'.
16993
4ffd0d6b 169942011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
16995
16996 * s/ms-w32.h (localtime): Redirect to sys_localtime.
16997
16998 * w32.c: Include <time.h>.
16999 (sys_localtime): New function.
17000
4ffd0d6b 170012011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
17002
17003 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
17004
4ffd0d6b 17005 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 17006
4ffd0d6b 170072011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 17008
4ffd0d6b
GM
17009 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
17010 zombies (Bug#8467).
aac0c6e3 17011
04c56954
EZ
170122011-04-19 Eli Zaretskii <eliz@gnu.org>
17013
17014 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
17015 gl_state.e_property when gl_state.object is Qt.
17016
17017 * insdel.c (make_gap_larger): Remove limitation of buffer size
17018 to <= INT_MAX.
17019
16a43933
CY
170202011-04-18 Chong Yidong <cyd@stupidchicken.com>
17021
17022 * xdisp.c (lookup_glyphless_char_display)
17023 (produce_glyphless_glyph): Handle cons cell entry in
17024 glyphless-char-display.
17025 (Vglyphless_char_display): Document it.
17026
17027 * term.c (produce_glyphless_glyph): Handle cons cell entry in
17028 glyphless-char-display.
17029
4581706e
CY
170302011-04-17 Chong Yidong <cyd@stupidchicken.com>
17031
17032 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
17033
17034 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
17035
17036 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
17037 definition for no-X builds.
17038
4887c6e2 170392011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 17040
fd35b6f9
PE
17041 Static checks with GCC 4.6.0 and non-default toolkits.
17042
5c1ccb01
PE
17043 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
17044
006c5daa
PE
17045 * process.c (keyboard_bit_set): Define only if SIGIO.
17046 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
17047 (send_process): Repair possible setjmp clobbering.
17048
efc736d3
PE
17049 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
17050
4e2fe2e6
PE
17051 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
17052
f97334a2
PE
17053 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
17054
4e75f29d
PE
17055 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
17056 Define only if needed.
17057
90efadd1
PE
17058 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
17059 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 17060 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 17061
3c647824
PE
17062 * dispextern.h (struct redisplay_interface): Rename param
17063 to avoid shadowing.
e264f262 17064 * termhooks.h (struct terminal): Likewise.
761383f4 17065 * xterm.c (xembed_send_message): Likewise.
3c647824 17066
b58c5c4a
PE
17067 * insdel.c (make_gap_smaller): Define only if
17068 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
17069
cad59032
PE
17070 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
17071 it.
17072
c339dc2e
PE
17073 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
17074 so that we aren't warned about unused symbols.
17075
91a3e27b
PE
17076 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
17077
399c71d3 17078 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 17079
8ffc96f5
PE
17080 * xfns.c (x_real_positions): Mark locals as initialized.
17081
eef9bc79
PE
17082 * xmenu.c (xmenu_show): Don't use uninitialized vars.
17083
098db9dd
PE
17084 * xterm.c: Fix problems found by static analysis with other toolkits.
17085 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
17086 (x_dispatch_event): Declare static if USE_GTK, and
17087 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 17088 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 17089 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
17090 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
17091 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 17092
eb18f6cc
PE
17093 * xmenu.c (menu_help_callback): Pointer type fixes.
17094 Use const pointers when pointing at readonly data. Avoid pointer
17095 signedness clashes.
17096 (FALSE): Remove unused macro.
17097 (update_frame_menubar): Remove unused decl.
17098
1fe72bf8
PE
17099 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
17100
60d9e1db
PE
17101 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
17102 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
17103 (single_menu_item): Rename local to avoid shadowing.
17104
39261c26
PE
17105 * keyboard.c (make_lispy_event): Remove unused local var.
17106
018c5e19
PE
17107 * frame.c, frame.h (x_get_resource_string): Bring this back, but
17108 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
17109
63d2b86e
PE
17110 * bitmaps: Change bitmaps from unsigned char back to the X11
17111 compatible char. Avoid the old compiler warnings about
17112 out-of-range initializers by using, for example, '\xab' rather
17113 than 0xab.
17114
aefd87e1
PE
17115 * xgselect.c (xgselect_initialize): Check vs interface
17116 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
17117
bf501fb9
PE
17118 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
17119
e9829fdf
PE
17120 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
17121 to read-only memory.
17122
1086c095
PE
17123 * fns.c (vector): Remove; this old hack is no longer needed.
17124
2baccd04 17125 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 17126 Remove unused var.
dde42981 17127 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 17128
72391843 17129 * xrdb.c (x_load_resources): Omit unused local.
3565b346 17130
436c16df 17131 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 17132 (x_window): Rename locals to avoid shadowing.
dc5ddd85 17133 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 17134
92bb796d 17135 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 17136 (x_term_init): Remove local to avoid shadowing.
92bb796d 17137
764430a3 17138 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
17139
17140 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
17141 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
17142
d1dfb56c
EZ
171432011-04-16 Eli Zaretskii <eliz@gnu.org>
17144
c4354cb4
EZ
17145 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
17146
d1dfb56c
EZ
17147 Fix regex.c, syntax.c and friends for buffers > 2GB.
17148 * syntax.h (struct gl_state_s): Declare character position members
17149 EMACS_INT.
17150
17151 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
17152
04f2d78b
CB
17153 * textprop.c (verify_interval_modification, interval_of):
17154 Declare arguments EMACS_INT.
d1dfb56c
EZ
17155
17156 * intervals.c (adjust_intervals_for_insertion): Declare arguments
17157 EMACS_INT.
17158
17159 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
17160
17161 * indent.c (Fvertical_motion): Local variable it_start is now
17162 EMACS_INT.
17163
17164 * regex.c (re_match, re_match_2, re_match_2_internal)
17165 (bcmp_translate, regcomp, regexec, print_double_string)
17166 (group_in_compile_stack, re_search, re_search_2, regex_compile)
17167 (re_compile_pattern, re_exec): Declare arguments and local
17168 variables `size_t' and `ssize_t' and return values `regoff_t', as
17169 appropriate.
17170 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
17171 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
17172 <compile_stack_type>: `size' and `avail' are now `size_t'.
17173
17174 * regex.h <regoff_t>: Use ssize_t, not int.
17175 (re_search, re_search_2, re_match, re_match_2): Arguments that
17176 specify buffer/string position and length are now ssize_t and
17177 size_t. Return type is regoff_t.
17178
613052cd
BK
171792011-04-16 Ben Key <bkey76@gmail.com>
17180
17181 * nsfont.m: Fixed bugs in ns_get_family and
17182 ns_descriptor_to_entity that were caused by using free to
17183 deallocate memory blocks that were allocated by xmalloc (via
17184 xstrdup). This caused Emacs to crash when compiled with
17185 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
17186 --enable-checking=xmallocoverrun). xfree is now used to
17187 deallocate these memory blocks.
17188
4170f62f 171892011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 17190
71b41406
PE
17191 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
17192
9587a89d
PE
17193 emacs_write: Accept and return EMACS_INT for sizes.
17194 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
17195 et seq.
17196 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
17197 Accept and return EMACS_INT.
17198 (emacs_gnutls_write): Return the number of bytes written on
17199 partial writes.
17200 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
17201 (emacs_read, emacs_write): Remove check for negative size, as the
17202 Emacs source code has been audited now.
9587a89d
PE
17203 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
17204 (emacs_read, emacs_write): Use it.
273a5f82
PE
17205 * process.c (send_process): Adjust to the new signatures of
17206 emacs_write and emacs_gnutls_write. Do not attempt to store
17207 a byte offset into an 'int'; it might overflow.
9587a89d 17208 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 17209
3e047f51
PE
17210 * sound.c: Don't assume sizes fit in 'int'.
17211 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 17212 Return EMACS_INT, not int.
3e047f51 17213 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
17214 Accept EMACS_INT, not int.
17215 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
17216 record read return values.
17217
cc39a9db
BK
172182011-04-15 Ben Key <bkey76@gmail.com>
17219
c9d0ec6d
JB
17220 * keyboard.c (Qundefined): Don't declare static since it is used
17221 in nsfns.m.
17222 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
17223 static since they are used in nsfont.m.
cc39a9db 17224
6c60eb9f
SM
172252011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
17226
17227 * process.c (Qprocessp): Don't declare static.
17228 * lisp.h (Qprocessp): Declare again.
17229
7990b61a
JB
172302011-04-15 Juanma Barranquero <lekktu@gmail.com>
17231
17232 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
17233
5d4cb038
PE
172342011-04-14 Paul Eggert <eggert@cs.ucla.edu>
17235
8bd7b830 17236 Improve C-level modularity by making more things 'static'.
cd64ea1d 17237
e3b27b31
PE
17238 Don't publish debugger-only interfaces to other modules.
17239 * lisp.h (safe_debug_print, debug_output_compilation_hack):
17240 (verify_bytepos, count_markers): Move decls to the only modules
17241 that need them.
17242 * region-cache.h (pp_cache): Likewise.
17243 * window.h (check_all_windows): Likewise.
17244 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
17245
5d4cb038
PE
17246 * sysdep.c (croak): Now static, if
17247 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
17248 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
17249
17250 * alloc.c (refill_memory_reserve): Now static if
17251 !defined REL_ALLOC || defined SYSTEM_MALLOC.
17252 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 17253
e87b6180
PE
17254 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
17255 Define only if USE_LUCID.
17256
ac64929e
PE
17257 * xrdb.c (x_customization_string, x_rm_string): Now static.
17258
6f37259d
PE
17259 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
17260 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
17261
1683e3ab
PE
17262 * xdisp.c (draw_row_with_mouse_face): Now static.
17263 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
17264
de9c2632
PE
17265 * window.h (check_all_windows): Mark externally visible.
17266
2b96acb7
PE
17267 * window.c (window_deletion_count): Now static.
17268
17269 * undo.c: Make symbols static if they're not exported.
17270 (last_undo_buffer, last_boundary_position, pending_boundary):
17271 Now static.
17272
50436f33
PE
17273 * textprop.c (interval_insert_behind_hooks): Now static.
17274 (interval_insert_in_front_hooks): Likewise.
17275
64520e5c
PE
17276 * term.c: Make symbols static if they're not exported.
17277 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
17278 (max_frame_lines, tty_set_terminal_modes):
17279 (tty_reset_terminal_modes, tty_turn_off_highlight):
17280 (get_tty_terminal): Now static.
17281 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
17282 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 17283 HAVE_WINDOW_SYSTEM.
64520e5c
PE
17284 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
17285 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
17286
1fa53021
PE
17287 * sysdep.c: Make symbols static if they're not exported.
17288 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
17289 Now static.
17290 (sigprocmask_set, full_mask): Remove; unused.
17291 (wait_debugging): Mark as visible.
17292 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
17293 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
17294
d4b43b22
PE
17295 * syntax.c (syntax_temp): Define only if !__GNUC__.
17296
b7c513d0
PE
17297 * sound.c (current_sound_device, current_sound): Now static.
17298
989b29ad
PE
17299 * search.c (searchbufs, searchbuf_head): Now static.
17300
13a55a78
PE
17301 * scroll.c (scroll_cost): Remove; unused.
17302 * dispextern.h (scroll_cost): Remove decl.
17303
de68a1fc
PE
17304 * region-cache.h (pp_cache): Mark as externally visible.
17305
40ccffa6
PE
17306 * process.c: Make symbols static if they're not exported.
17307 (process_tick, update_tick, create_process, chan_process):
17308 (Vprocess_alist, proc_buffered_char, datagram_access):
17309 (fd_callback_data, send_process_frame, process_sent_to): Now static.
17310 (deactivate_process): Mark defn as static, as well as decl.
17311 * lisp.h (create_process): Remove decl.
17312 * process.h (chan_process, Vprocess_alist): Remove decls.
17313
ad64fc97
PE
17314 * print.c: Make symbols static if they're not exported.
17315 (print_depth, new_backquote_output, being_printed, print_buffer):
17316 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
17317 (print_interval, print_number_index, initial_stderr_stream):
17318 Now static.
17319 * lisp.h (Fprinc): Remove decl.
17320 (debug_output_compilation_hack): Mark as externally visible.
17321
adddb265
PE
17322 * sysdep.c (croak): Move decl from here to syssignal.h.
17323 * syssignal.h (croak): Put it here, so the API can be checked when
17324 'croak' is called from dissociate_if_controlling_tty.
17325
1717ede2
PE
17326 * minibuf.c: Make symbols static if they're not exported.
17327 (minibuf_save_list, choose_minibuf_frame): Now static.
17328 * lisp.h (choose_minibuf_frame): Remove decl.
17329
fa5fb2bc
PE
17330 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
17331
1e3890d1
PE
17332 * lread.c: Make symbols static if they're not exported.
17333 (read_objects, initial_obarray, oblookup_last_bucket_number):
17334 Now static.
17335 (make_symbol): Remove; unused.
17336 * lisp.h (initial_obarray, make_symbol): Remove decls.
17337
8a1414fa
PE
17338 * keyboard.c: Make symbols static if they're not exported.
17339 (single_kboard, recent_keys_index, total_keys, recent_keys):
17340 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
17341 (this_single_command_key_start, echoing, last_auto_save):
17342 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
17343 (command_loop, echo_now, keyboard_init_hook, help_char_p):
17344 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
17345 (Vlispy_mouse_stem, double_click_count):
17346 Now static.
17347 (force_auto_save_soon): Define only if SIGDANGER.
17348 (ignore_mouse_drag_p): Now static if
17349 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
17350 (print_help): Remove; unused.
17351 (stop_character, last_timer_event): Mark as externally visible.
17352 * keyboard.h (ignore_mouse_drag_p): Declare only if
17353 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
17354 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
17355 * lisp.h (echoing): Remove decl.
17356 (force_auto_save_soon): Declare only if SIGDANGER.
17357 * xdisp.c (redisplay_window): Simplify code, to make it more
17358 obvious that ignore_mouse_drag_p is not accessed if !defined
17359 USE_GTK && !defined HAVE_NS.
17360
93ea6e8f
PE
17361 * intervals.c: Make symbols static if they're not exported.
17362 (merge_properties_sticky, merge_interval_right, delete_interval):
17363 Now static.
17364 * intervals.h (merge_interval_right, delete_interval): Remove decls.
17365
77382fcc
PE
17366 * insdel.c: Make symbols static if they're not exported.
17367 However, leave prepare_to_modify_buffer alone. It's never
17368 called from outside this function, but that appears to be a bug.
17369 (combine_after_change_list, combine_after_change_buffer):
4889fc82 17370 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
17371 (adjust_after_replace_noundo): Remove; unused.
17372 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 17373 (signal_before_change): Remove decls.
77382fcc 17374
9306c32e
PE
17375 * indent.c (val_compute_motion, val_vmotion): Now static.
17376
cd44d2eb
PE
17377 * image.c: Make symbols static if they're not exported.
17378 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
17379 if USE_GTK.
17380 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
17381 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
17382
ad9a7a06
PE
17383 * fringe.c (standard_bitmaps): Now static.
17384 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
17385
81626931
PE
17386 * frame.c: Make symbols static if they're not exported.
17387 (x_report_frame_params, make_terminal_frame): Now static.
17388 (get_frame_param): Now static, unless HAVE_NS.
17389 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
17390 (x_get_resource_string): Remove; not used.
17391 * frame.h (make_terminal_frame, x_report_frame_params):
17392 (x_get_resource_string); Remove decls.
17393 (x_fullscreen_adjust): Declare only if WINDOWSNT.
17394 * lisp.h (get_frame_param): Declare only if HAVE_NS.
17395
239f9db9
PE
17396 * font.c, fontset.c: Make symbols static if they're not exported.
17397 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
17398 (FACE_SUITABLE_FOR_CHAR_P): Use it.
17399 * font.c (font_close_object): Now static.
17400 * font.h (font_close_object): Remove.
17401 * fontset.c (FONTSET_OBJLIST): Remove.
17402 (free_realized_fontset) #if-0 the body, which does nothing.
17403 (face_suitable_for_char_p): #if-0, as it's never called.
17404 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
17405 * xfaces.c (face_at_string_position):
17406 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
17407 since 0 is always ASCII.
17408
dfcf3579
PE
17409 * fns.c (weak_hash_tables): Now static.
17410
5045092b
PE
17411 * fileio.c: Make symbols static if they're not exported.
17412 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
17413 (Vwrite_region_annotation_buffers): Now static.
17414
57a96f5c
PE
17415 * eval.c: Make symbols static if they're not exported.
17416 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
17417 * lisp.h (backtrace_list): Remove decl.
17418
35f08c38
PE
17419 * emacs.c: Make symbols static if they're not exported.
17420 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
17421 (fatal_error_code, fatal_error_signal_hook, standard_args):
17422 Now static.
17423 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
17424 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
17425 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
17426 * lisp.h (fatal_error_signal_hook): Remove decl.
17427 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
17428
f44bd759
PE
17429 * editfns.c: Move a (normally-unused) function to its only use.
17430 * editfns.c, lisp.h (get_operating_system_release): Remove.
17431 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
17432 worth the hassle of breaking this out.
17433
b532497d
PE
17434 * xterm.c: Make symbols static if they're not exported.
17435 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
17436 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
17437 (x_destroy_window, x_delete_display):
17438 Now static.
17439 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
17440 (x_mouse_leave): Remove; unused.
17441 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
17442 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
17443 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
17444 Remove decls.
17445 (x_mouse_leave): Declare only if WINDOWSNT.
17446 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
17447 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
17448 USE_X_TOOLKIT.
17449
1675728f
PE
17450 * ftxfont.c: Make symbols static if they're not exported.
17451 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
17452 HAVE_FREETYPE.
17453 * font.h (ftxfont_driver): Likewise.
17454
e4cebfca
PE
17455 * xfns.c: Make symbols static if they're not exported.
17456 (x_last_font_name, x_display_info_for_name):
17457 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
17458 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
17459 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
17460 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
17461 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
17462 (last_show_tip_args): Now static.
17463 (xic_defaut_fontset, xic_create_fontsetname): Define only if
17464 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
17465 (x_screen_planes): Remove; unused.
17466 * dispextern.h (x_screen_planes): Remove decl.
17467
5bf46f05
PE
17468 * dispnew.c: Make symbols static if they're not exported.
17469 * dispextern.h (redraw_garbaged_frames, scrolling):
17470 (increment_row_positions): Remove.
17471 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
17472 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
17473 Now static.
17474 (redraw_garbaged_frames): Remove; unused.
17475
435f4c28
PE
17476 * xfaces.c: Make symbols static if they're not exported.
17477 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
17478 Remove decls.
17479 * xterm.h (defined_color): Remove decls.
17480 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
17481 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
17482 (menu_face_changed_default, defined_color, free_realized_face):
17483 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
17484 (ascii_face_of_lisp_face): Remove; unused.
17485
8524aef3
PE
17486 * xdisp.c: Make symbols static if they're not exported.
17487 * dispextern.h (scratch_glyph_row, window_box_edges):
17488 (glyph_to_pixel_coords, set_cursor_from_row):
17489 (get_next_display_element, set_iterator_to_next):
17490 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
17491 (show_mouse_face): Remove decls
17492 * frame.h (message_buf_print): Likewise.
17493 * lisp.h (pop_message, set_message, check_point_in_composition):
17494 Likewise.
17495 * xterm.h (set_vertical_scroll_bar): Likewise.
17496 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
17497 (message_buf_print, scratch_glyph_row, displayed_buffer):
17498 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
17499 (get_next_display_element, show_mouse_face, window_box_edges):
17500 (frame_to_window_pixel_xy, check_point_in_composition):
17501 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
17502 (glyph_to_pixel_coords): Remove; unused.
17503
16390cd2
PE
17504 * dired.c (file_name_completion): Now static.
17505
17506 * dbusbind.c (xd_in_read_queued_messages): Now static.
17507
a25f4dfa
PE
17508 * lisp.h (circular_list_error, FOREACH): Remove; unused.
17509 * data.c (circular_list_error): Remove.
17510
14a9c8df
PE
17511 * commands.h (last_point_position, last_point_position_buffer):
17512 (last_point_position_window): Remove decls.
17513 * keyboard.c: Make these variables static.
17514
04f2d78b
CB
17515 * coding.h (coding, code_convert_region, encode_coding_gap):
17516 Remove decls.
74ab6df5
PE
17517 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
17518 (iso_code_class, detect_coding, code_convert_region): Now static.
17519 (encode_coding_gap): Remove; unused.
17520
38dfbee1
PE
17521 * chartab.c (chartab_chars, chartab_bits): Now static.
17522
a2cb4e63
PE
17523 * charset.h (charset_iso_8859_1): Remove decl.
17524 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
17525 Now static.
17526
127198fd
PE
17527 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
17528 * ccl.c (Vccl_program_table): Now static.
17529 (check_ccl_update): Remove; unused.
17530
d85b608f
PE
17531 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
17532 * category.h: ... from here.
17533 * category.c (check_category_table, set_category_set): Now static.
17534
31cd66f3
PE
17535 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
17536 * lisp.h: Remove these decls.
17537
c358e587
PE
17538 * buffer.c (buffer_count): Remove unused var.
17539
e78aecca
PE
17540 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
17541 so that it's not optimized away.
17542 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
17543 * dispextern.h (bidi_dump_cached_states): Remove, since it's
17544 exported only to the debugger.
17545
e192d7d3 17546 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 17547 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 17548
92470028
PE
17549 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
17550 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
17551 was inaccessible from Lisp.
17552 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
17553 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
17554
244ed907
PE
17555 alloc.c: Import and export fewer symbols, and remove unused items.
17556 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
17557 is defined.
17558 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
17559 it's not optimized away by whole-program optimization.
17560 (message_enable_multibyte, free_misc): Remove.
17561 (catchlist, handlerlist, mark_backtrace):
17562 Declare only if BYTE_MARK_STACK.
17563 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
17564 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
17565 (message_enable_multibyte): Remove decl.
17566 (free_misc, interval_free_list, float_block, float_block_index):
17567 (n_float_blocks, float_free_list, cons_block, cons_block_index):
17568 (cons_free_list, last_marked_index):
17569 Now static.
17570 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
17571 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
17572 (mark_backtrace): Define only if BYTE_MARK_STACK.
17573 * xdisp.c (message_enable_multibyte): Now static.
17574
61c2b50e 17575 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
17576 This makes it easier for human readers (and static analyzers)
17577 to see whether these variables are used from other modules.
17578 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
17579 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
17580 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
17581 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
17582 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
17583 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
17584 * xmenu.c, xselect.c:
17585 Declare Q* vars static if they are not used in other modules.
17586 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
17587 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
17588 Remove decls of unexported vars.
17589 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
17590
95c82688
PE
17591 * lisp.h (DEFINE_FUNC): Make sname 'static'.
17592
16a97296
PE
17593 Make Emacs functions such as Fatom 'static' by default.
17594 This makes it easier for human readers (and static analyzers)
17595 to see whether these functions can be called from other modules.
17596 DEFUN now defines a static function. To make the function external
17597 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
17598 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
17599 (Finit_image_library):
16a97296
PE
17600 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
17601 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
17602 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
17603 Remove decls, since these functions are now static.
17604 (Funintern, Fget_internal_run_time): New decls, since these functions
17605 were already external.
95c82688 17606
16a97296
PE
17607 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
17608 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
17609 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
17610 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
17611 * keyboard.c, keymap.c, lread.c:
17612 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
17613 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
17614 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
17615 Mark functions with DEFUE instead of DEFUN,
17616 if they are used in other modules.
17617 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
17618 decls for now-static functions.
17619 * buffer.h (Fdelete_overlay): Remove decl.
17620 * callproc.c (Fgetenv_internal): Mark as internal.
17621 * composite.c (Fremove_list_of_text_properties): Remove decl.
17622 (Fcomposition_get_gstring): New forward static decl.
17623 * composite.h (Fcomposite_get_gstring): Remove decl.
17624 * dired.c (Ffile_attributes): New forward static decl.
17625 * doc.c (Fdocumntation_property): New forward static decl.
17626 * eval.c (Ffetch_bytecode): New forward static decl.
17627 (Funintern): Remove extern decl; now in .h file where it belongs.
17628 * fileio.c (Fmake_symbolic_link): New forward static decl.
17629 * image.c (Finit_image_library): New forward static decl.
17630 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
17631 * intervals.h (Fprevious_property_change):
17632 (Fremove_list_of_text_properties): Remove decls.
17633 * keyboard.c (Fthis_command_keys): Remove decl.
17634 (Fcommand_execute): New forward static decl.
17635 * keymap.c (Flookup_key): New forward static decl.
17636 (Fcopy_keymap): Now static.
17637 * keymap.h (Flookup_key): Remove decl.
17638 * process.c (Fget_process): New forward static decl.
17639 (Fprocess_datagram_address): Mark as internal.
17640 * syntax.c (Fsyntax_table_p): New forward static decl.
17641 (skip_chars): Remove duplicate decl.
17642 * textprop.c (Fprevious_property_change): New forward static decl.
17643 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
17644 Now internal.
17645 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
17646 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
17647
785bbd42
PE
17648 * editfns.c (Fformat): Remove unreachable code.
17649
8b913b57
AS
176502011-04-14 Andreas Schwab <schwab@linux-m68k.org>
17651
17652 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
17653 change. (Bug#8496)
17654
a6744a35
EZ
176552011-04-13 Eli Zaretskii <eliz@gnu.org>
17656
17657 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
17658 when at ZV. (Bug#8487)
17659
e7974947
AS
176602011-04-12 Andreas Schwab <schwab@linux-m68k.org>
17661
baad03f0
AS
17662 * charset.c (Fclear_charset_maps): Use xfree instead of free.
17663 (Bug#8437)
17664 * keyboard.c (parse_tool_bar_item): Likewise.
17665 * sound.c (sound_cleanup, alsa_close): Likewise.
17666 * termcap.c (tgetent): Likewise.
17667 * xfns.c (x_default_font_parameter): Likewise.
17668 * xsettings.c (read_and_apply_settings): Likewise.
17669
e7974947
AS
17670 * alloc.c (overrun_check_malloc, overrun_check_realloc)
17671 (overrun_check_free): Protoize.
17672
28272684
PE
176732011-04-12 Paul Eggert <eggert@cs.ucla.edu>
17674
17675 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
17676 since callers should never pass a negative size.
17677 Change the signature to match that of plain 'read' and 'write'; see
17678 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
17679 * lisp.h: Update prototypes of emacs_write and emacs_read.
17680
11997c76
EZ
176812011-04-11 Eli Zaretskii <eliz@gnu.org>
17682
17683 * xdisp.c (redisplay_window): Don't try to determine the character
17684 position of the scroll margin if the window start point w->startp
e896f03c 17685 is outside the buffer's accessible region. (Bug#8468)
11997c76 17686
8a2cbd72
EZ
176872011-04-10 Eli Zaretskii <eliz@gnu.org>
17688
17689 Fix write-region and its subroutines for buffers > 2GB.
17690 * fileio.c (a_write, e_write): Modify declaration of arguments and
17691 local variables to support buffers larger than 2GB.
17692 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
17693
17694 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
17695 argument, local variables, and return value.
17696
17697 * lisp.h: Update prototypes of emacs_write and emacs_read.
17698
17699 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
17700
4073e537 177012011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 17702
1ebfdcb6
PE
17703 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
17704
b2ded58d
PE
17705 Fix more problems found by GCC 4.6.0's static checks.
17706
7d66342c
PE
17707 * xdisp.c (vmessage): Use a better test for character truncation.
17708
bbf47d44
PE
17709 * charset.c (load_charset_map): <, not <=, for optimization,
17710 and to avoid potential problems with integer overflow.
9248994d 17711 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 17712 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 17713 * editfns.c (Fformat): Likewise.
1e69125e 17714 * syntax.c (skip_chars): Likewise.
3befa583 17715
e3019616
PE
17716 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
17717 This also lets GCC 4.6.0 generate slightly better loop code.
17718
becfa255
PE
17719 * callint.c (Fcall_interactively): <, not <=, for optimization.
17720 (Fcall_interactively): Count the number of arguments produced,
17721 not the number of arguments given. This is simpler and lets GCC
17722 4.6.0 generate slightly better code.
17723
dae0cd48
PE
17724 * ftfont.c: Distingish more carefully between FcChar8 and char.
17725 The previous code passed unsigned char * to a functions like
17726 strlen and xstrcasecmp that expect char *, which does not
17727 conform to the C standard.
17728 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
17729 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
17730 char * when the C standard requires it.
17731
76032d70
PE
17732 * keyboard.c (read_char): Remove unused var.
17733
eb3f1cc8
PE
17734 * eval.c: Port to Windows vsnprintf (Bug#8435).
17735 Include <limits.h>.
17736 (SIZE_MAX): Define if the headers do not.
17737 (verror): Do not give up if vsnprintf returns a negative count.
17738 Instead, grow the buffer. This ports to Windows vsnprintf, which
17739 does not conform to C99. Problem reported by Eli Zaretskii.
17740 Also, simplify the allocation scheme, by avoiding the need for
17741 calling realloc, and removing the ALLOCATED variable.
17742
70476b54
PE
17743 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
17744
12020a9e
PE
17745 Remove invocations of doprnt, as Emacs now uses vsnprintf.
17746 But keep the doprint source code for now, as we might revamp it
17747 and use it again (Bug#8435).
ea6c7ae6
PE
17748 * lisp.h (doprnt): Remove.
17749 * Makefile.in (base_obj): Remove doprnt.o.
17750 * deps.mk (doprnt.o): Remove.
17751
5fdb398c
PE
17752 error: Print 32- and 64-bit integers portably (Bug#8435).
17753 Without this change, on typical 64-bit hosts error ("...%d...", N)
17754 was used to print both 32- and 64-bit integers N, which relied on
17755 undefined behavior.
61bdb816 17756 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
17757 * lisp.h (error, verror): Mark as printf-like functions.
17758 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
17759 Report overflow in size calculations when allocating printf buffer.
17760 Do not truncate output string at its first null byte.
17761 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
17762 Truncate the output at a character boundary, since vsnprintf does not
17763 do that.
17764 * charset.c (check_iso_charset_parameter): Convert internal
17765 character to string before calling 'error', since %c now has the
17766 printf meaning.
17767 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
17768 overflow when computing char to be passed to 'error'. Do not
17769 pass Lisp_Object to 'error'; pass the integer instead.
17770 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
17771 formatted with plain %d.
17772
b189fa66
PE
17773 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
17774
bff87ef0
PE
17775 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
17776
7e2cac20
PE
17777 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
17778
ce4d90b5
PE
17779 * xterm.c (x_catch_errors): Remove duplicate declaration.
17780
266c9547
PE
17781 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
17782
79c49ad2
PE
17783 * xdisp.c, lisp.h (message_nolog): Remove; unused.
17784
368f4090
JM
177852011-04-10 Jim Meyering <meyering@redhat.com>
17786
17787 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
17788 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
17789 return ssize_t not "int", and use size_t as the buffer length.
17790 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
17791 * gnutls.h: Update declarations.
17792 * process.c (read_process_output): Use ssize_t, to match.
17793 (send_process): Likewise.
17794
a32d4040
CY
177952011-04-09 Chong Yidong <cyd@stupidchicken.com>
17796
17797 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
17798
8546720e 177992011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 17800
04f2d78b
CB
17801 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
17802 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 17803
8546720e
GM
17804 * xterm.c (handle_one_xevent):
17805 * xmenu.c (create_and_show_popup_menu):
17806 * xselect.c (x_decline_selection_request)
17807 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 17808
0a2f5c1a 178092011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
17810
17811 Fix some uses of `int' instead of EMACS_INT.
17812 * search.c (string_match_1, fast_string_match)
17813 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
17814 (scan_buffer, find_next_newline_no_quit)
17815 (find_before_next_newline, search_command, Freplace_match)
17816 (Fmatch_data): Make some `int' variables be EMACS_INT.
17817
17818 * xdisp.c (display_count_lines): 3rd argument and return value now
17819 EMACS_INT. All callers changed.
17820 (pint2hrstr): Last argument is now EMACS_INT.
17821
17822 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
17823 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
17824 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
17825 (decode_coding_utf_16, decode_coding_emacs_mule)
17826 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
17827 (decode_coding_ccl, decode_coding_charset)
17828 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
17829 (decode_coding_iso_2022, decode_coding_emacs_mule)
17830 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
17831 <char_offset, last_offset>: Declare EMACS_INT.
17832 (encode_coding_utf_8, encode_coding_utf_16)
17833 (encode_coding_emacs_mule, encode_invocation_designation)
17834 (encode_designation_at_bol, encode_coding_iso_2022)
17835 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
17836 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
17837 Declare EMACS_INT.
17838 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
17839 (encode_invocation_designation): Last argument P_NCHARS is now
17840 EMACS_INT.
17841 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
17842 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
17843
17844 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
17845 All users changed.
17846
17847 * ccl.c (Fccl_execute_on_string): Declare some variables
17848 EMACS_INT.
17849
8546720e 178502011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
17851
17852 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
17853
4e19a977
CS
178542011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
17855
17856 * process.c (Fformat_network_address): Doc fix.
17857
87302331
R
178582011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
17859
ee7683eb 17860 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 17861
cbb59342
CY
178622011-04-08 Chong Yidong <cyd@stupidchicken.com>
17863
17864 * keyboard.c (read_char): Call Lisp function help-form-show,
17865 instead of using internal_with_output_to_temp_buffer.
17866 (Qhelp_form_show): New var.
e0d38eeb 17867 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
17868
17869 * print.c (internal_with_output_to_temp_buffer): Function deleted.
17870
17871 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
17872
e67a13ab
CY
178732011-04-06 Chong Yidong <cyd@stupidchicken.com>
17874
04f2d78b
CB
17875 * process.c (Flist_processes): Remove to Lisp.
17876 (list_processes_1): Delete.
e67a13ab 17877
973f782d
EZ
178782011-04-06 Eli Zaretskii <eliz@gnu.org>
17879
7c106b1e
EZ
17880 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
17881
973f782d
EZ
17882 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
17883
41cf7d1a 178842011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 17885
ca23cc88
PE
17886 Fix more problems found by GCC 4.6.0's static checks.
17887
f390e2d5
PE
17888 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
17889
42eea0d0
PE
17890 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
17891
b69769da 17892 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 17893
f9541e84
PE
17894 * xdisp.c (vmessage): Mark as a printf-like function.
17895
13841b55
PE
17896 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
17897
c136c10f
PE
17898 * sound.c (sound_warning): Don't crash if arg contains a printf format.
17899
5e2d4a30
PE
17900 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
17901 printf-like functions.
17902 (tiff_load): Add casts to remove these marks before passing them
17903 to system-supplied API.
17904
583f48b9
PE
17905 * eval.c (Fsignal): Remove excess argument to 'fatal'.
17906
b25d760e
PE
17907 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
17908 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
17909 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
17910 directly, rather than having caller test rule sign. This avoids
17911 some unnecessary tests.
17912 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
17913 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
17914 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 17915
bc7b6697 17916 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 17917 (xfont_open): Avoid unnecessary tests.
bc7b6697 17918
27ccc379
PE
17919 * composite.c (composition_gstring_put_cache): Use unsigned integer.
17920
dcd5c89a
PE
17921 * composite.h, composite.c (composition_gstring_put_cache):
17922 Use EMACS_INT, not int, for length.
17923
b13a45c6
PE
17924 * composite.h (COMPOSITION_DECODE_REFS): New macro,
17925 breaking out part of COMPOSITION_DECODE_RULE.
17926 (COMPOSITION_DECODE_RULE): Use it.
17927 * composite.c (get_composition_id): Remove unused local vars,
17928 by using the new macro.
17929
1e792e4d
PE
17930 * textprop.c (set_text_properties_1): Change while to do-while,
17931 since the condition is always true at first.
17932
dc6c6455 17933 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
17934 (interval_deletion_adjustment): Return unsigned value.
17935 All uses changed.
dc6c6455 17936
aba7731a
PE
17937 * process.c (list_processes_1, create_pty, read_process_output):
17938 (exec_sentinel): Remove vars that were set but not used.
afd4052b 17939 (create_pty): Remove unnecessary "volatile"s.
bc57d757 17940 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 17941 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 17942 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 17943
fdfc4bf3
PE
17944 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
17945
fca8fe46 17946 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 17947 (update_syntax_table): Use unsigned instead of int.
fca8fe46 17948
06a0259a 17949 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 17950 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 17951 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 17952
e7b9e80f
PE
17953 * print.c (print_error_message): Avoid int overflow.
17954
56201685
PE
17955 * font.c (font_list_entities): Redo for clarity,
17956 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
17957
78834453 17958 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 17959 (font_score): Avoid potential overflow in diff calculation.
78834453 17960
0bc0b309 17961 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 17962 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 17963
e610eaca
PE
17964 * eval.c (funcall_lambda): Rename local to avoid shadowing.
17965
b895abce
PE
17966 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
17967 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
17968 can always succeed if overflow has undefined behavior.
17969
1f1d9321 17970 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 17971 (wordify): Omit three unnecessary tests.
1f1d9321 17972
c59478bc
PE
17973 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
17974 All callers changed. This avoids the need for an unused var.
17975
79b73827
PE
17976 * casefiddle.c (casify_region): Remove var that is set but not used.
17977
a4db5dfe
PE
17978 * dired.c (file_name_completion): Remove var that is set but not used.
17979
43aae36e
PE
17980 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
17981
2a47c44d 17982 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 17983 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 17984
a37c69bf
PE
17985 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
17986 Check for integer overflow on size calculations.
17987
328ab8e7
PE
17988 * buffer.c (Fprevious_overlay_change): Remove var that is set
17989 but not used.
17990
e5a2a5cb
PE
17991 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
17992 Remove vars that are set but not used.
8d84a6eb 17993 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 17994 (timer_check_2): Mark vars as initialized.
e5a2a5cb 17995
a60e5f68
PE
17996 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
17997
f661cb61 17998 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 17999 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 18000
f0397f5a
PE
18001 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
18002 that are set but not used.
18003
8664db06 18004 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 18005 if XCreateBitmapFromData fails (Bug#8410).
8664db06 18006
6abdaa4a
PE
18007 * xselect.c (x_get_local_selection, x_handle_property_notify):
18008 Remove vars that are set but not used.
18009
0ce7538d 18010 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 18011 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 18012
9ae848fc
PE
18013 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
18014 Remove var that is set but not used.
0b918413
PE
18015 (scroll_bar_windows_size): Now size_t, not int.
18016 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
18017 Check for overflow.
9ae848fc 18018
a5a62657
PE
18019 * xfaces.c (realize_named_face): Remove vars that are set but not used.
18020 (map_tty_color) [!defined MSDOS]: Likewise.
18021
5c5cdd39
PE
18022 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
18023
66ebf983
PE
18024 * coding.c: Remove vars that are set but not used.
18025 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
18026 All callers changed.
18027 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
18028 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
18029 (decode_coding_charset): Remove vars that are set but not used.
18030
1be4d761
PE
18031 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
18032 that is set but not used.
18033
47553fa8
PE
18034 * print.c (print_object): Remove var that is set but not used.
18035
1f7196bf 18036 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
18037 The gnulib version avoids calling malloc in the usual case,
18038 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
18039 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
18040 * filelock.c (current_lock_owner): Likewise.
18041 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
18042 * sysdep.c: Include allocator.h, careadlinkat.h.
18043 (emacs_no_realloc_allocator): New static constant.
18044 (emacs_readlink): New function.
fdb61804
PE
18045 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
18046 ../lib/careadlinkat.h.
d1fdcab7 18047
f84c17c7
SM
180482011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
18049
18050 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
18051 first non-nil return value).
18052
ef3862ad
JD
180532011-04-03 Jan Djärv <jan.h.d@swipnet.se>
18054
18055 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
18056 if not defined (Bug#8403).
18057
376a7006
JB
180582011-04-02 Juanma Barranquero <lekktu@gmail.com>
18059
18060 * xdisp.c (display_count_lines): Remove parameter `start',
18061 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
18062 (get_char_face_and_encoding): Remove parameter `multibyte_p',
18063 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
18064 (fill_stretch_glyph_string): Remove parameters `row' and `area',
18065 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
18066 and thereabouts. All callers changed.
18067 (get_per_char_metric): Remove parameter `f', unused since
18068 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
18069
6ca3801d
JM
180702011-04-02 Jim Meyering <meyering@redhat.com>
18071
18072 do not dereference NULL upon failed strdup
18073 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
18074 (ns_get_family): Likewise.
18075
d8e2b5ba
JB
180762011-04-02 Juanma Barranquero <lekktu@gmail.com>
18077
18078 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
18079
8c74fcbd
JD
180802011-04-02 Jan Djärv <jan.h.d@swipnet.se>
18081
18082 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
18083 later (Bug#8403).
18084
7200d79c
SM
180852011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
18086
03408648 18087 Add lexical binding.
7200d79c 18088
03408648
SM
18089 * window.c (Ftemp_output_buffer_show): New fun.
18090 (Fsave_window_excursion):
18091 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
18092
18093 * lread.c (lisp_file_lexically_bound_p): New function.
18094 (Fload): Bind Qlexical_binding.
18095 (readevalloop): Remove `evalfun' arg.
18096 Bind Qinternal_interpreter_environment.
18097 (Feval_buffer): Bind Qlexical_binding.
18098 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
18099 Mark as dynamic.
18100 (syms_of_lread): Declare `lexical-binding'.
18101
18102 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
18103
18104 * keyboard.c (eval_dyn): New fun.
18105 (menu_item_eval_property): Use it.
ca105506
SM
18106
18107 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 18108
03408648
SM
18109 * fns.c (concat, mapcar1): Accept byte-code-functions.
18110
18111 * eval.c (Fsetq): Handle lexical vars.
18112 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
18113 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
18114 (FletX, Flet): Obey lexical binding.
18115 (Fcommandp): Handle closures.
18116 (Feval): New `lexical' arg.
18117 (eval_sub): New function extracted from Feval. Use it almost
18118 everywhere where Feval was used. Look up vars in lexical env.
18119 Handle closures.
18120 (Ffunctionp): Move from subr.el.
18121 (Ffuncall): Handle closures.
18122 (apply_lambda): Remove `eval_flags'.
18123 (funcall_lambda): Handle closures and new byte-code-functions.
18124 (Fspecial_variable_p): New function.
18125 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
18126 but without exporting it to Lisp.
23aba0ea 18127
23aba0ea 18128 * doc.c (Fdocumentation, store_function_docstring):
03408648 18129 * data.c (Finteractive_form): Handle closures.
23aba0ea 18130
03408648
SM
18131 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
18132 interactive spec.
ba83908c 18133
04f2d78b
CB
18134 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
18135 New byte-codes.
03408648
SM
18136 (exec_byte_code): New function extracted from Fbyte_code to handle new
18137 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 18138
03408648 18139 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 18140
03408648 18141 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 18142
e2abce01
JB
181432011-03-31 Juanma Barranquero <lekktu@gmail.com>
18144
18145 * xdisp.c (redisplay_internal): Fix prototype.
18146
63696a73 181472011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 18148
63696a73 18149 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
18150 (try_scrolling): Use it when setting scroll_limit.
18151 Limit scrolling to 100 screen lines.
63696a73
EZ
18152 (redisplay_window): Even when falling back on "recentering",
18153 position point in the window according to scroll-conservatively,
18154 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
18155
18156 (try_scrolling): When point is above the window, allow searching
18157 as far as scroll_max, or one screenful, to compute vertical
18158 distance from PT to the scroll margin position. This prevents
18159 try_scrolling from unnecessarily failing when
18160 scroll-conservatively is set to a value slightly larger than the
18161 window height. Clean up the case of PT below the margin at bottom
18162 of window: scroll_max can no longer be INT_MAX. When aggressive
18163 scrolling is in use, don't let point enter the opposite scroll
18164 margin as result of the scroll.
18165 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
18166 threshold of 100 lines for never-recentering scrolling.
18167
e4cc2dfc
JB
181682011-03-31 Juanma Barranquero <lekktu@gmail.com>
18169
18170 * dispextern.h (move_it_by_lines):
18171 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
18172 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
18173 (message_log_check_duplicate): Remove parameters `prev_bol' and
18174 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
18175 (redisplay_internal): Remove parameter `preserve_echo_area',
18176 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
18177
18178 * indent.c (Fvertical_motion):
18179 * window.c (window_scroll_pixel_based, Frecenter):
18180 Don't pass `need_y_p' to `move_it_by_lines'.
18181
1c470562
SM
181822011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
18183
44f230aa
SM
18184 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
18185 steal a few bits to be more compact.
18186 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
18187 Remove unneeded casts.
18188
1c470562
SM
18189 * bytecode.c (Fbyte_code): CAR and CDR can GC.
18190
888adce9
ZK
181912011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
18192
18193 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
18194 binding" message (bug#7967).
18195
f838ed7b
PE
181962011-03-30 Paul Eggert <eggert@cs.ucla.edu>
18197
77861b95
PE
18198 Fix more problems found by GCC 4.6.0's static checks.
18199
de6dbc14
PE
18200 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
18201 Remove unused local var.
18202
f838ed7b
PE
18203 * editfns.c (Fmessage_box): Remove unused local var.
18204
792c7b2b
PE
18205 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
18206 (note_mode_line_or_margin_highlight, note_mouse_highlight):
18207 Omit unused local vars.
c499e557 18208 * window.c (shrink_windows): Omit unused local var.
b01a1c29 18209 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
18210 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
18211 Omit unused local var.
18212
ba0165e1
PE
18213 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
18214 Don't assume string length fits in int.
32ad8845 18215 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 18216 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 18217
3c59b4c9
PE
18218 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
18219 instead of alloca (Bug#8344).
18220
a3eed478 18221 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 18222 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 18223
eb4d412d
PE
18224 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
18225
1658b401
PE
18226 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
18227 concerns.
18228
18229 * term.c (produce_glyphless_glyph): Remove unnecessary test.
18230
18231 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 18232
9a2c6e05
PE
18233 * keyboard.c (syms_of_keyboard): Use the same style as later
18234 in this function when indexing through an array. This also
18235 works around GCC bug 48267.
18236
03d0a109
PE
18237 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
18238
44f730c8
PE
18239 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
18240
fe75f926
PE
18241 * chartab.c (sub_char_table_ref_and_range): Redo for slight
18242 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
18243
ffa8c828
PE
18244 * keyboard.c, keyboard.h (num_input_events): Now size_t.
18245 This avoids undefined behavior on integer overflow, and is a bit
18246 more convenient anyway since it is compared to a size_t variable.
18247
c5101a77
PE
18248 Variadic C functions now count arguments with size_t, not int.
18249 This avoids an unnecessary limitation on 64-bit machines, which
18250 caused (substring ...) to crash on large vectors (Bug#8344).
18251 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
18252 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 18253 All variadic functions and their callers changed accordingly.
c5101a77
PE
18254 (struct gcpro.nvars): Now size_t, not int. All uses changed.
18255 * data.c (arith_driver, float_arith_driver): Likewise.
18256 * editfns.c (general_insert_function): Likewise.
18257 * eval.c (struct backtrace.nargs, interactive_p)
18258 (internal_condition_case_n, run_hook_with_args, apply_lambda)
18259 (funcall_lambda, mark_backtrace): Likewise.
18260 * fns.c (concat): Likewise.
18261 * frame.c (x_set_frame_parameters): Likewise.
18262 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
18263 0 if not found, not -1. All callers changed.
18264
dd3f25f7
PE
18265 * alloc.c (garbage_collect): Don't assume stack size fits in int.
18266 (stack_copy_size): Now size_t, not int.
18267 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
18268
461c2ab9
JB
182692011-03-28 Juanma Barranquero <lekktu@gmail.com>
18270
18271 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
18272 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
18273 All callers changed.
18274
18275 * lisp.h (multibyte_char_to_unibyte):
18276 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
18277 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
18278 * character.h (CHAR_TO_BYTE8):
18279 * cmds.c (internal_self_insert):
18280 * editfns.c (general_insert_function):
18281 * keymap.c (push_key_description):
18282 * search.c (Freplace_match):
18283 * xdisp.c (message_dolog, set_message_1): All callers changed.
18284
f6d62986
SM
182852011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
18286
18287 * keyboard.c (safe_run_hook_funcall): New function.
18288 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
18289 don't set the hook to nil, but remove the offending function instead.
18290 (Qcommand_hook_internal): Remove, unused.
18291 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
18292 Vcommand_hook_internal.
18293
18294 * eval.c (enum run_hooks_condition): Remove.
18295 (funcall_nil, funcall_not): New functions.
18296 (run_hook_with_args): Call each function through a `funcall' argument.
18297 Remove `cond' argument, now redundant.
18298 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
18299 (Frun_hook_with_args_until_failure): Adjust accordingly.
18300 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
18301
1db5b1ad
JB
183022011-03-28 Juanma Barranquero <lekktu@gmail.com>
18303
18304 * dispextern.h (string_buffer_position): Remove declaration.
18305
18306 * print.c (strout): Remove parameter `multibyte', unused since
18307 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
18308
18309 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
18310 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
18311 All callers changed.
18312
18313 * w32.c (_wsa_errlist): Use braces for struct initializers.
18314
18315 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
18316 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
18317 All callers changed.
18318 (string_buffer_position): Likewise. Also, make static (it's never
18319 used outside xdisp.c).
18320 (cursor_row_p): Remove parameter `w', unused since
18321 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
18322 (decode_mode_spec): Remove parameter `precision', introduced during
18323 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
18324 All callers changed.
18325
5ffb62aa
JD
183262011-03-27 Jan Djärv <jan.h.d@swipnet.se>
18327
18328 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
18329
461c2ab9 183302011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
18331
18332 * nsterm.m (ns_menu_bar_is_hidden): New variable.
18333 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
18334 (ns_update_auto_hide_menu_bar): New functions.
18335 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
18336 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
18337 ns_constrain_all_frames.
18338 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
18339 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
18340
5c380ffb
JD
183412011-03-27 Jan Djärv <jan.h.d@swipnet.se>
18342
18343 * nsmenu.m (runDialogAt): Remove argument to timer_check.
18344
9af30bdf
GM
183452011-03-27 Glenn Morris <rgm@gnu.org>
18346
18347 * syssignal.h: Replace RETSIGTYPE with void.
18348 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
18349 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
18350 Replace SIGTYPE with void everywhere.
18351 * s/usg5-4-common.h (SIGTYPE): Remove definition.
18352 * s/template.h (SIGTYPE): Remove commented out definition.
18353
e2abce01
JB
183542011-03-26 Eli Zaretskii <eliz@gnu.org>
18355
18356 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
18357 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
18358
f868cd8a
JB
183592011-03-26 Juanma Barranquero <lekktu@gmail.com>
18360
59eb0929
JB
18361 * w32.c (read_unc_volume): Use parameter `henum', instead of
18362 global variable `wget_enum_handle'.
18363
18364 * keymap.c (describe_vector): Remove parameters `indices' and
18365 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
18366 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
18367
f868cd8a
JB
18368 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
18369
18370 * keyboard.c (timer_check): Remove parameter `do_it_now',
18371 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
18372 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
18373 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
18374
18375 * keyboard.c (read_char):
18376 * w32menu.c (w32_menu_display_help):
18377 * xmenu.c (show_help_event, menu_help_callback):
18378 Adjust calls to `show_help_echo'.
18379
18380 * gtkutil.c (xg_maybe_add_timer):
18381 * keyboard.c (readable_events):
18382 * process.c (wait_reading_process_output):
18383 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
18384
18385 * insdel.c (adjust_markers_gap_motion):
18386 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
18387 (gap_left, gap_right): Don't call it.
18388
2ecf6fdb
CY
183892011-03-25 Chong Yidong <cyd@stupidchicken.com>
18390
18391 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
18392 incurred during fontification.
18393
6b1f9ba4
JB
183942011-03-25 Juanma Barranquero <lekktu@gmail.com>
18395
18396 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
18397 (DEFVAR_PER_BUFFER): Don't pass it.
18398
18399 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
18400 (scrolling_window): Don't pass it.
18401
0f4a96b5
JB
184022011-03-25 Juanma Barranquero <lekktu@gmail.com>
18403
18404 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
18405
18406 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
18407 and `suffix'.
18408 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
18409 of variables specific to SELinux and computation of `encoded_absname'.
18410
18411 * image.c (XPutPixel): Remove unused variable `height'.
18412
18413 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
18414
18415 * unexw32.c (get_section_info): Remove unused variable `section'.
18416
18417 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
18418 (system_process_attributes): Remove unused variable `sess'.
18419 (sys_read): Remove unused variable `err'.
18420
18421 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
18422 (w32_wnd_proc): Remove unused variable `isdead'.
18423 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
18424 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
18425 (x_create_tip_frame): Remove unused variable `tem'.
18426
18427 * w32inevt.c (w32_console_read_socket):
18428 Remove unused variable `no_events'.
18429
18430 * w32term.c (x_draw_composite_glyph_string_foreground):
18431 Remove unused variable `width'.
18432
1149507c
JB
184332011-03-24 Juanma Barranquero <lekktu@gmail.com>
18434
18435 * w32term.c (x_set_glyph_string_clipping):
18436 Don't pass uninitialized region to CombineRgn.
18437
9c88f339
JB
184382011-03-23 Juanma Barranquero <lekktu@gmail.com>
18439
18440 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
18441 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
18442 (Fx_close_connection): Remove unused variable `i'.
18443
18444 * w32font.c (w32font_draw): Return number of glyphs.
18445 (w32font_open_internal): Remove unused variable `i'.
18446 (w32font_driver): Add missing initializer.
18447
18448 * w32menu.c (utf8to16): Remove unused variable `utf16'.
18449 (fill_in_menu): Remove unused variable `items_added'.
18450
18451 * w32term.c (last_mouse_press_frame): Remove static global variable.
18452 (w32_clip_to_row): Remove unused variable `f'.
18453 (x_delete_terminal): Remove unused variable `i'.
18454
18455 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
18456 (NOTHING): Remove unused static global variable.
18457 (uniscribe_check_otf): Remove unused variable `table'.
18458 (uniscribe_font_driver): Add missing initializers.
18459
dee091a3
JD
184602011-03-23 Julien Danjou <julien@danjou.info>
18461
18462 * term.c (Fsuspend_tty, Fresume_tty):
18463 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
18464 * window.c (temp_output_buffer_show):
18465 * insdel.c (signal_before_change):
18466 * frame.c (Fhandle_switch_frame):
18467 * fileio.c (Fdo_auto_save):
18468 * emacs.c (Fkill_emacs):
18469 * editfns.c (save_excursion_restore):
18470 * cmds.c (internal_self_insert):
18471 * callint.c (Fcall_interactively):
18472 * buffer.c (Fkill_all_local_variables):
18473 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
18474 Use Frun_hooks.
0f4a96b5 18475 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 18476 unconditionally since it does the check itself.
dee091a3 18477
2c520ab5 184782011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 18479
c9c49752
PE
18480 Fix more problems found by GCC 4.5.2's static checks.
18481
8abc3f12
PE
18482 * coding.c (encode_coding_raw_text): Avoid unnecessary test
18483 the first time through the loop, since we know p0 < p1 then.
18484 This also avoids a gcc -Wstrict-overflow warning.
18485
a2d26660
PE
18486 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
18487 leading to a memory leak, possible in functions like
18488 load_charset_map_from_file that can allocate an unbounded number
b12ef411 18489 of objects (Bug#8318).
a2d26660 18490
916c72e9
PE
18491 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
18492 that could (at least in theory) be that large.
18493
19ab8a18
PE
18494 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
18495 This is less likely to overflow, and avoids undefined behavior if
18496 overflow does occur. All callers changed. Use strtoul to scan
18497 for the unsigned long integer.
b7cbbd6f
PE
18498 (pint2hrstr): Simplify and tune code slightly.
18499 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 18500
f0641eff
PE
18501 * scroll.c (do_scrolling): Work around GCC bug 48228.
18502 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
18503
7f650bb9
PE
18504 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
18505 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
18506 (validate_x_resource_name): Simplify count usage.
18507 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 18508
37dd57d1
PE
18509 * fileio.c (Fcopy_file): Report error if fchown or fchmod
18510 fail (Bug#8306).
81e56e61 18511
699979fc 18512 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 18513
401bf9b4
PE
18514 * process.c (Fmake_network_process): Use socklen_t, not int,
18515 where POSIX says socklen_t is required in portable programs.
18516 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 18517 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
18518 (Fmake_network_process, server_accept_connection):
18519 (wait_reading_process_output, read_process_output):
18520 Likewise.
18521
b93aacde
PE
18522 * process.c: Rename or move locals to avoid shadowing.
18523 (list_processes_1, Fmake_network_process):
18524 (read_process_output_error_handler, exec_sentinel_error_handler):
18525 Rename or move locals.
4dc343ee 18526 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 18527 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 18528 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 18529 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 18530 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 18531
af8a867c 18532 Make tparam.h and terminfo.c consistent.
44f230aa
SM
18533 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
18534 Include tparam.h instead, since it declares them.
af8a867c
PE
18535 * cm.h (PC): Remove extern decl; tparam.h now does this.
18536 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
18537 * terminfo.c: Include tparam.h, to check interfaces.
18538 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
18539 (tparam): Adjust signature to match interface in tparam.h;
18540 this removes some undefined behavior. Check that outstring and len
18541 are zero, which they always are with Emacs.
18542 * tparam.h (PC, BC, UP): New extern decls.
18543
0248044d 18544 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 18545 (xftfont_open): Rename locals to avoid shadowing.
0248044d 18546
8ff096c1 18547 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
18548 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
18549 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 18550 (ftfont_list): Remove unused local.
49eaafba
PE
18551 (get_adstyle_property, ftfont_pattern_entity):
18552 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
18553 Rename locals to avoid shadowing.
8ff096c1 18554
e2be39f6
PE
18555 * xfont.c (xfont_list_family): Mark var as initialized.
18556
c9735e30
PE
18557 * xml.c (make_dom): Now static.
18558
8f5201ae
PE
18559 * composite.c (composition_compute_stop_pos): Rename local to
18560 avoid shadowing.
b246f932
PE
18561 (composition_reseat_it): Remove unused locals.
18562 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 18563 (composition_update_it): Mark var as initialized.
11b61122
PE
18564 (find_automatic_composition): Mark vars as initialized,
18565 with a FIXME (Bug#8290).
8f5201ae 18566
760fbc2c
PE
18567 character.h: Rename locals to avoid shadowing.
18568 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
18569 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
18570 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
18571 (BUF_DEC_POS): Be more systematic about renaming local temporaries
18572 to avoid shadowing.
18573
ff08eb85
PE
18574 * textprop.c (property_change_between_p): Remove; unused.
18575
fc7bf025
PE
18576 * intervals.c (interval_start_pos): Now static.
18577
235d7abc
PE
18578 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
18579
44f230aa
SM
18580 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
18581 Rename locals to avoid shadowing.
3e7d6594 18582
50060332
PE
18583 * sound.c (wav_play, au_play, Fplay_sound_internal):
18584 Fix pointer signedness.
d01f234b 18585 (alsa_choose_format): Remove unused local var.
c83b8872
PE
18586 (wav_play): Initialize a variable to 0, to prevent undefined
18587 behavior (Bug#8278).
50060332 18588
c4fc4e30
PE
18589 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
18590
918436ed
PE
18591 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
18592
c939f91b
PE
18593 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
18594 clobbering (Bug#8298).
b9c7f648
PE
18595 * sysdep.c (sys_subshell): Likewise.
18596 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 18597
6bd8c144
PE
18598 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
18599 This should get cleaned up, so that child_setup has the
18600 same signature on all platforms.
18601
7710357c 18602 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 18603 (relocate_fd): Rename locals to avoid shadowing.
7710357c 18604
c59da222
CY
186052011-03-22 Chong Yidong <cyd@stupidchicken.com>
18606
18607 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
18608 not to be necessary, and produces flickering.
18609
66b87493
GM
186102011-03-20 Glenn Morris <rgm@gnu.org>
18611
18612 * config.in: Remove file.
18613
45b6f6d5
JB
186142011-03-20 Juanma Barranquero <lekktu@gmail.com>
18615
18616 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
18617 are now in src/globals.h.
18618 (syms_of_minibuf): Remove spurious & from previous change.
18619
cd394be1 186202011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
18621
18622 * minibuf.c (completing-read-function): New variable.
18623 (completing-read-default): Rename from completing-read.
18624 (completing-read): Call completing-read-function.
18625
b14e3e21
CY
186262011-03-19 Juanma Barranquero <lekktu@gmail.com>
18627
18628 * xfaces.c (Fx_load_color_file):
18629 Read color file from absolute filename (bug#8250).
18630
f2b726e6
JB
186312011-03-19 Juanma Barranquero <lekktu@gmail.com>
18632
18633 * makefile.w32-in: Update dependencies.
18634
09f6ff02
EZ
186352011-03-17 Eli Zaretskii <eliz@gnu.org>
18636
18637 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
18638
29a6015a
PE
186392011-03-17 Paul Eggert <eggert@cs.ucla.edu>
18640
a3a6c54e
PE
18641 Fix more problems found by GCC 4.5.2's static checks.
18642
b766f867
PE
18643 * process.c (make_serial_process_unwind, send_process_trap):
18644 (sigchld_handler): Now static.
18645
be02381c
PE
18646 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
18647 That way, the code declares only the vars that it needs.
18648 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
18649 * s/cygwin.h (PTY_ITERATION): Likewise.
18650 * s/darwin.h (PTY_ITERATION): Likewise.
18651 * s/gnu-linux.h (PTY_ITERATION): Likewise.
18652
57048744
PE
18653 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
18654 * process.c (allocate_pty): Don't declare stb unless it's needed.
18655
7914961c 18656 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
18657 (CONSTANTLIM): Remove; unused.
18658 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
18659 Define only if needed.
7914961c 18660
b3967b18
PE
18661 * unexelf.c (unexec): Name an expression,
18662 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
18663 Use a different way to cause a compilation error if anyone uses
18664 n rather than nn, a way that does not involve shadowing.
73366a00 18665 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 18666
29a6015a
PE
18667 * deps.mk (unexalpha.o): Remove; unused.
18668
43cfc33e 18669 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 18670 * unexec.h: New file.
ce701a33
PE
18671 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
18672 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
18673 Depend on unexec.h.
18674 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
18675 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
18676 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 18677 Change as necessary to match prototype in unexec.h.
ce701a33 18678
01f44d5a
PE
18679 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
18680 shadowing.
4f63c6bb 18681 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 18682
a6670b0b
PE
18683 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
18684 Rename locals to avoid shadowing.
18685
cef2010d 18686 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 18687 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 18688
d4d7173a
PE
18689 * print.c (Fredirect_debugging_output): Fix pointer signedess.
18690
f08b802a
PE
18691 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
18692 warning when compiling print.c.
18693
3ddb0639
PE
18694 * font.c (font_unparse_fcname): Abort in an "impossible" situation
18695 instead of using an uninitialized var.
5ad03b97 18696 (font_sort_entities): Mark var as initialized.
3ddb0639 18697
170a2692
PE
18698 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
18699
e663c700
PE
18700 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
18701 pointers to constants.
89bc529a 18702 (font_parse_fcname): Remove unused vars.
7b81e2d0 18703 (font_delete_unmatched): Now static.
ea838e10 18704 (font_get_spec): Remove; unused.
13a547c6
PE
18705 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
18706 (font_update_drivers, Ffont_get_glyphs, font_add_log):
18707 Rename or move locals to avoid shadowing.
e663c700 18708
2a80c887 18709 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 18710 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 18711
1384fa33 18712 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 18713 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 18714
8b2c52e9
PE
18715 * alloc.c (mark_backtrace): Move decl from here ...
18716 * lisp.h: ... to here, so that it can be checked.
18717
475545b5 18718 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 18719 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
18720 (lisp_indirect_variable): Name an expression,
18721 to avoid gcc -Wbad-function-cast warning.
1faed8ae 18722 (Fdefvar): Rename locals to avoid shadowing.
475545b5 18723
b1349114 18724 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 18725 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 18726 Use const pointer when appropriate.
b1349114 18727
a2928364
PE
18728 * lisp.h (get_system_name, get_operating_system_release):
18729 Move decls here, to check interfaces.
18730 * process.c (get_operating_system_release): Move decl to lisp.h.
18731 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
18732 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
18733 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
18734 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
18735 (Fformat_time_string, Fencode_time, Finsert_char):
18736 (Ftranslate_region_internal, Fformat):
18737 Rename or remove local vars to avoid shadowing.
9710023e 18738 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 18739
a415e694
PE
18740 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
18741 avoid shadowing.
18742
8ef4622d
PE
18743 * lisp.h (eassert): Check that the argument compiles, even if
18744 ENABLE_CHECKING is not defined.
18745
946f9a5b
PE
18746 * data.c (Findirect_variable): Name an expression, to avoid
18747 gcc -Wbad-function-cast warning.
112396d6 18748 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 18749 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
18750 (Fmake_variable_buffer_local, Fmake_local_variable):
18751 Mark variables as initialized.
52746918 18752 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 18753
e5aab7e7 18754 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
18755 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
18756 Rename locals to avoid shadowing.
dff45157
PE
18757 (mark_stack): Move local variables into the #ifdef region where
18758 they're used.
7bc26fdb
PE
18759 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
18760 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
18761 needed otherwise.
18762 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
18763 (GC_STRING_CHARS): Remove; not used.
d40d4be1 18764 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 18765
e5aab7e7
PE
18766 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
18767 avoids undefined behavior in theory.
18768
4da60324
PE
18769 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
18770
88043301
PE
18771 Use functions, not macros, for up- and down-casing (Bug#8254).
18772 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
18773 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
18774 to use the following functions instead of these macros.
18775 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
18776 EMACS_INT, since callers assume the returned value fits in int.
18777 (upcase1): Likewise, for UPCASE_TABLE.
18778 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 18779 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 18780 the race-condition problem in the old DOWNCASE.
88043301 18781
19ed5445
PE
18782 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
18783 Rename locals to avoid shadowing.
18784 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
18785 (regex_compile, re_search_2, re_match_2_internal):
18786 Remove unused local vars.
952db0d7
PE
18787 (FREE_VAR): Rewrite so as not to use empty "else",
18788 which gcc can warn about.
da053e48 18789 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
18790 (RETALLOC_IF): Define only if needed.
18791 (WORDCHAR_P): Likewise. This one is never needed, but is used
18792 only in a comment talking about a compiler bug, so put inside
18793 the #if 0 of that comment.
18794 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
18795 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
18796 Remove; unused.
19ed5445 18797
1f3561e4 18798 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
18799 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
18800 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 18801
ded6f8f7
PE
18802 * search.c (simple_search): Remove unused var.
18803
dbd37a95
PE
18804 * dired.c (compile_pattern): Move decl from here ...
18805 * lisp.h: ... to here, so that it can be checked.
18806 (struct re_registers): New forward decl.
18807
7e47afad
PE
18808 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
18809
85f24f61
PE
18810 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
18811 All uses changed.
18812 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
18813 Rename locals to avoid shadowing.
5671df8f 18814 (Fvertical_motion): Mark locals as initialized.
85f24f61 18815
181aa2be 18816 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 18817 (casify_region): Mark local as initialized.
181aa2be 18818
930d429c
PE
18819 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
18820
7082eac6
PE
18821 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
18822 New macros, so that the caller can use some names other than
18823 gcpro1, gcpro2, etc.
18824 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
18825 of the new macros.
18826 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
18827 argument, for consistency with GCPRO2_VAR, etc: it is now the
18828 prefix of the variable, not the variable itself. All uses
18829 changed.
38b2c076
PE
18830 * dired.c (directory_files_internal, file_name_completion):
18831 Rename locals to avoid shadowing.
18832
15206ed9
PE
18833 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
18834 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
18835 dired.c's scmp function, had undefined behavior.
18836 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
18837 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
18838 * buffer.h: ... to here, because these macros use current_buffer,
18839 and the new implementation with inline functions needs to have
18840 current_buffer in scope now, rather than later when the macros
18841 are used.
18842 (downcase, upcase1): New static inline functions.
18843 (DOWNCASE, UPCASE1): Reimplement using these functions.
18844 This avoids undefined behavior in expressions like
18845 DOWNCASE (x) == DOWNCASE (y), which previously suffered
18846 from race conditions in accessing the global variables
18847 case_temp1 and case_temp2.
18848 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
18849 * lisp.h (case_temp1, case_temp2): Remove their decls.
18850 * character.h (ASCII_CHAR_P): Move from here ...
18851 * lisp.h: ... to here, so that the inline functions mentioned
18852 above can use them.
18853
4a6bea26
PE
18854 * dired.c (directory_files_internal_unwind): Now static.
18855
f14b7e14
PE
18856 * fileio.c (file_name_as_directory, directory_file_name):
18857 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
18858 Now static.
2893f146
PE
18859 (file_name_as_directory): Use const pointers when appropriate.
18860 (Fexpand_file_name): Likewise. In particular, newdir might
18861 point at constant storage, so make it a const pointer.
fd4ead52 18862 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
18863 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
18864 signedness issues.
f839df0c
PE
18865 (Fset_file_times, Finsert_file_contents, auto_save_error):
18866 Rename locals to avoid shadowing.
f14b7e14 18867
5716756e 18868 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
18869 (Ftry_completion, Fall_completions): Rename or remove locals
18870 to avoid shadowing.
5716756e 18871
b4c3046a
PE
18872 * marker.c (bytepos_to_charpos): Remove; unused.
18873
b45db522
PE
18874 * lisp.h (verify_bytepos, count_markers): New decls,
18875 so that gcc does not warn that these functions aren't declared.
18876
85876d07
PE
18877 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
18878 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 18879 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 18880 (copy_text): Remove unused local var.
85876d07 18881
03d78a21 18882 * filelock.c (within_one_second): Now static.
b3dd38ab 18883 (lock_file_1): Rename local to avoid shadowing.
03d78a21 18884
5df8f01b
PE
18885 * buffer.c (fix_overlays_before): Mark locals as initialized.
18886 (fix_start_end_in_overlays): Likewise. This function should be
18887 simplified by using pointers-to-pointers, but that's a different
18888 matter.
b1d876f1 18889 (switch_to_buffer_1): Now static.
8f54f30a
PE
18890 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
18891 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 18892
a70072c9 18893 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 18894 Fix pointer signedness issue.
edced198
PE
18895 (sys_subshell): Mark local as volatile if checking for lint,
18896 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 18897 (MAXPATHLEN): Define only if needed.
a70072c9 18898
a0977c44
PE
18899 * process.c (serial_open, serial_configure): Move decls from here ...
18900 * systty.h: ... to here, so that they can be checked.
18901
a884fdcc
PE
18902 * fns.c (get_random, seed_random): Move extern decls from here ...
18903 * lisp.h: ... to here, so that they can be checked.
18904
604efe86 18905 * sysdep.c (reset_io): Now static.
b8950c94 18906 (wait_for_termination_signal): Remove; unused.
604efe86 18907
38fc62d9
PE
18908 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
18909 (copy_keymap_item, append_key, push_text_char_description):
18910 Now static.
1004a21a 18911 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 18912 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
18913 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
18914 (describe_map_tree):
18915 Rename locals to avoid shadowing.
38fc62d9 18916
2f2650da
PE
18917 * keyboard.c: Declare functions static if they are not used elsewhere.
18918 (echo_char, echo_dash, cmd_error, top_level_2):
18919 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
18920 (read_char, kbd_buffer_get_event, make_lispy_position):
18921 (make_lispy_event, make_lispy_movement, apply_modifiers):
18922 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
18923 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
18924 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 18925 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 18926 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 18927
a053e86c 18928 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
18929 (mark_kboards): Move decl here ...
18930 * alloc.c (mark_kboards): ... from here.
a053e86c 18931
4752793e
PE
18932 * lisp.h (force_auto_save_soon): New decl.
18933
74f10ca7 18934 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
18935 (DEFINE_DUMMY_FUNCTION): New macro.
18936 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
18937 Use it.
c03cd23f
PE
18938 (main): Add casts to avoid warnings
18939 if GCC considers string literals to be constants.
74f10ca7 18940
022e70d4
PE
18941 * lisp.h (fatal_error_signal): Add decl, since it's exported.
18942
59d6fe83
PE
18943 * dbusbind.c: Pointer signedness fixes.
18944 (xd_signature, xd_append_arg, xd_initialize):
18945 (Fdbus_call_method, Fdbus_call_method_asynchronously):
18946 (Fdbus_method_return_internal, Fdbus_method_error_internal):
18947 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
18948 (Fdbus_register_signal): Use SSDATA when the context wants char *.
18949
78320123
PE
18950 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
18951 if GCC considers string literals to be constants.
49cebcca 18952 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 18953
35ac2a97
SM
189542011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
18955
fb103ca9
SM
18956 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
18957 (print_preprocess, print_object): New macro to fix last change.
18958
35ac2a97
SM
18959 * print.c (print_preprocess): Don't forget font objects.
18960
62973b41
JB
189612011-03-16 Juanma Barranquero <lekktu@gmail.com>
18962
18963 * emacs.c (USAGE3): Doc fixes.
18964
0e48bb22
AS
189652011-03-15 Andreas Schwab <schwab@linux-m68k.org>
18966
18967 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
18968 structure.
18969
7684e57b
JB
189702011-03-14 Juanma Barranquero <lekktu@gmail.com>
18971
18972 * lisp.h (VWindow_system, Qfile_name_history):
18973 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
18974 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
18975 (w32_system_caret_x, w32_system_caret_y): Declare extern.
18976
18977 * w32select.c: Don't #include "keyboard.h".
c96bbc66 18978 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
18979
18980 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
18981 * w32console.c (detect_input_pending, read_input_pending)
18982 (encode_terminal_code):
18983 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
18984 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
18985 (w32_system_caret_y, Qfile_name_history):
18986 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
18987 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
18988 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
18989 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
18990 * w32proc.c (Qlocal, report_file_error):
18991 * w32term.c (Vwindow_system, updating_frame):
18992 * w32uniscribe.c (initialized, uniscribe_font_driver):
18993 Remove unneeded extern declarations.
18994
2aa46d6c
CY
189952011-03-14 Chong Yidong <cyd@stupidchicken.com>
18996
c96bbc66 18997 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 18998
cffc6f3b
CY
189992011-03-13 Chong Yidong <cyd@stupidchicken.com>
19000
19001 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
19002 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
19003 These macros can no longer be used for assignment.
19004
44f230aa
SM
19005 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
19006 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
19007 (record_buffer_markers, fetch_buffer_markers): New functions for
19008 recording and fetching special buffer markers.
19009 (set_buffer_internal_1, set_buffer_temp): Use them.
19010
19011 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
19012
19013 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
19014
19015 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
19016 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
19017
19018 * xdisp.c (hscroll_window_tree):
19019 (reconsider_clip_changes): Use PT instead of BUF_PT.
19020
d251f04b
EZ
190212011-03-13 Eli Zaretskii <eliz@gnu.org>
19022
19023 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
19024 $(EMACS_ROOT)/lib/intprops.h.
19025
f0c77cd1
PE
190262011-03-13 Paul Eggert <eggert@cs.ucla.edu>
19027
3eca4629
PE
19028 Fix more problems found by GCC 4.5.2's static checks.
19029
7c86ee98
PE
19030 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
19031 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
19032 (xg_free_frame_widgets): Make it clear that a local variable is
19033 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
19034 (gdk_window_get_screen): Make it clear that this macro is needed
19035 only if USE_GTK_TOOLTIP.
1e5524e7
PE
19036 (int_gtk_range_get_value): New function, which avoids a diagnostic
19037 from gcc -Wbad-function-cast.
19038 (xg_set_toolkit_scroll_bar_thumb): Use it.
19039 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
19040 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
19041 (get_utf8_string, xg_get_file_with_chooser):
19042 Rename locals to avoid shadowing.
19043 (create_dialog): Move locals to avoid shadowing.
7c86ee98 19044
41729b81
PE
19045 * xgselect.c (xg_select): Remove unused var.
19046
f0c77cd1
PE
19047 * image.c (four_corners_best): Mark locals as initialized.
19048 (gif_load): Initialize transparent_p to zero (Bug#8238).
19049 Mark another local as initialized.
ec6cf4c6 19050 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 19051
ce0ad53d 19052 * image.c (clear_image_cache): Now static.
d5d5a617 19053 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 19054 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
19055 (x_edge_detection): Remove unnecessary cast that
19056 gcc -Wbad-function-cast diagnoses.
2037898d 19057 (gif_load): Fix pointer signedness.
6ae141d6
PE
19058 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
19059 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 19060
33383987 190612011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 19062
d32df629
PE
19063 Improve quality of tests for time stamp overflow.
19064 For example, without this patch (encode-time 0 0 0 1 1
19065 1152921504606846976) returns the obviously-bogus value (-948597
19066 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
19067 reports time overflow. See
19068 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
19069 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
19070 * editfns.c: Include limits.h and intprops.h.
19071 (TIME_T_MIN, TIME_T_MAX): New macros.
19072 (time_overflow): Move earlier, to before first use.
19073 (hi_time, lo_time): New functions, for an accurate test for
19074 out-of-range times.
19075 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
19076 (Fget_internal_run_time): Don't assume time_t fits in int.
19077 (make_time): Use list2 instead of Fcons twice.
19078 (Fdecode_time): More accurate test for out-of-range times.
19079 (check_tm_member): New function.
19080 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
19081 (lisp_time_argument): Don't rely on undefined left-shift and
19082 right-shift behavior when checking for time stamp overflow.
8be6f318 19083
fe31d94c
PE
19084 * editfns.c (time_overflow): New function, refactoring common code.
19085 (Fformat_time_string, Fdecode_time, Fencode_time):
19086 (Fcurrent_time_string): Use it.
19087
8be6f318
PE
19088 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
19089 * dired.c (make_time): Move to ...
19090 * editfns.c (make_time): ... here.
19091 * systime.h: Note the move.
19092
09d9db2c 190932011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 19094
126bc0dc
YM
19095 * fringe.c (update_window_fringes): Remove unused variables.
19096
c47cbdfd
YM
19097 * unexmacosx.c (copy_data_segment): Also copy __got section.
19098 (Bug#8223)
19099
7ac80be9
EZ
191002011-03-12 Eli Zaretskii <eliz@gnu.org>
19101
c96bbc66 19102 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
19103 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
19104 Constify `char *' arguments and their references according to
19105 prototypes in tparam.h.
19106
ecb0f94d 19107 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 19108
7ac80be9
EZ
19109 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
19110 Adapt all references accordingly.
19111
19112 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
19113
ef1fd07e
TT
191142011-03-11 Tom Tromey <tromey@redhat.com>
19115
19116 * buffer.c (syms_of_buffer): Remove obsolete comment.
19117
7ef4b50c
EZ
191182011-03-11 Eli Zaretskii <eliz@gnu.org>
19119
19120 * termhooks.h (encode_terminal_code): Declare prototype.
19121
19122 * msdos.c (encode_terminal_code): Don't declare prototype.
19123
19124 * term.c (encode_terminal_code): Now external again, used by
19125 w32console.c and msdos.c.
19126
44f230aa
SM
19127 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
19128 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 19129
4b1ec863 191302011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 19131
1714f52b 19132 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 19133
4b1ec863
PE
19134 * fringe.c (update_window_fringes): Mark locals as initialized
19135 (Bug#8227).
19136 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 19137
524c7aa6
PE
19138 * alloc.c (mark_fringe_data): Move decl from here ...
19139 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
19140 to check its interface.
19141 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
19142
a5c0af81 19143 * fontset.c (free_realized_fontset): Now static.
7519b8cd 19144 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 19145 (fontset_font): Mark local as initialized.
a9a06e0b 19146 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 19147
b4716021
PE
19148 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
19149
811e9bac 19150 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 19151 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
19152 (x_own_selection, Fx_disown_selection_internal): Rename locals
19153 to avoid shadowing.
19154 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 19155
7e3ab302
PE
19156 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
19157 so that the caller can use some name other than gcpro1.
19158 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
19159 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
19160 (Fx_backspace_delete_keys_p):
19161 Use them to avoid shadowing, and rename vars to avoid shadowing.
19162 (x_decode_color, x_set_name, x_window): Now static.
6b437900 19163 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 19164 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
19165 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
19166 Remove unused locals.
7e3ab302
PE
19167 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
19168 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
19169 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
19170 macros.
f78faa98 19171
e2b13473
PE
19172 * xterm.h (x_mouse_leave): New decl.
19173
77f23912
PE
19174 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
19175 Remove unused functions.
cdf4ba58
PE
19176 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
19177 (x_calc_absolute_position): Now static.
7411c686 19178 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 19179 Don't declare local "event" unless it's used.
ed7bf3a5
PE
19180 (x_iconify_frame, x_free_frame_resources): Don't declare locals
19181 unless they are used.
38d0b34a
PE
19182 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
19183 (x_fatal_error_signal): Remove; not used.
a6067996
PE
19184 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
19185 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
19186 (x_error_catcher, x_connection_closed, x_error_handler):
19187 (x_error_quitter, xembed_send_message, x_iconify_frame):
19188 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 19189 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 19190 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 19191
44f230aa
SM
19192 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
19193 Rename or move locals to avoid shadowing.
6b463e58 19194 (tty_defined_color, merge_face_heights): Now static.
5967d051 19195 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
19196 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
19197 does not deduce is never used uninitialized.
73719eba
PE
19198 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
19199 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 19200
426994c3 19201 * terminal.c (store_terminal_param): Now static.
5489860b 19202
032f1620 19203 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 19204 (set_frame_menubar): Remove unused local.
d4323972 19205 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
19206 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
19207 since they might point to immutable storage.
281585b0
PE
19208 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
19209 since it's unused otherwise.
032f1620 19210
367c19e5 19211 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 19212 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
19213 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
19214 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 19215 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
19216 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
19217 does not deduce are never used uninitialized.
70739cbe 19218
07b48fa9
PE
19219 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
19220
8868a238 19221 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
19222 * window.c (window_loop, size_window):
19223 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 19224
7e5cf297 19225 * window.c (display_buffer): Now static.
d6550a9f
PE
19226 (size_window): Mark variables that gcc -Wuninitialized
19227 does not deduce are never used uninitialized.
a586633d
PE
19228 * window.h (check_all_windows): New decl, to forestall
19229 gcc -Wmissing-prototypes diagnostic.
5b555da1 19230 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 19231
f6095868
PE
19232 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
19233 shadowing.
19234 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
19235 Include <limits.h>.
19236 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
19237 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
19238 (load_charset_map): Mark variables that gcc -Wuninitialized
19239 does not deduce are never used uninitialized.
53df7c11 19240 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 19241
f38b440c
PE
19242 * coding.c (coding_set_source, coding_set_destination):
19243 Use "else { /* comment */ }" rather than "else /* comment */;"
19244 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
19245 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
19246 a block, when the outer 'i' will do.
19247 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
19248 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
19249 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
19250 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
19251 (Fdecode_sjis_char, Fdefine_coding_system_internal):
19252 Rename locals to avoid shadowing.
19253 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
19254 * coding.c (emacs_mule_char, encode_invocation_designation):
19255 Now static, since they're not used elsewhere.
413bb2db 19256 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 19257 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
19258 (decode_coding_emacs_mule): Mark variables that gcc
19259 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
19260 (detect_coding_iso_2022): Initialize a local variable that might
19261 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 19262 this initialization is needed. (Bug#8211)
5f58e762
PE
19263 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
19264 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
19265 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
19266 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
19267 Remove unused macros.
f38b440c 19268
232b38b9 19269 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 19270 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 19271 * character.c (string_count_byte8): Likewise.
232b38b9 19272
fb90da1b
PE
19273 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
19274 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
19275
fb93dbc2
PE
19276 * chartab.c (copy_sub_char_table): Now static, since it's not used
19277 elsewhere.
5c156ace
PE
19278 (sub_char_table_ref_and_range, char_table_ref_and_range):
19279 Rename locals to avoid shadowing.
bbcd0949 19280 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 19281
7d3b3862 19282 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 19283 (BIDI_BOB): Remove unused macro.
7d3b3862 19284
6be7d3da
PE
19285 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
19286 deduce are never used uninitialized.
c2ed9c8b 19287 * term.c (encode_terminal_code): Likewise.
6be7d3da 19288
75f8807f 19289 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 19290
50938595
PE
19291 * tparam.h: New file.
19292 * term.c, tparam.h: Include it.
19293 * deps.mk (term.o, tparam.o): Depend on tparam.h.
19294 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
19295 Move these decls to tparam.h, and make them agree with what
19296 is actually in tparam.c. The previous trick of using incompatible
19297 decls in different modules does not conform to the C standard.
19298 All callers of tparam changed to use tparam's actual API.
19299 * tparam.c (tparam1, tparam, tgoto):
19300 Use const pointers where appropriate.
19301
fbceeba2
PE
19302 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
19303 * cm.h (struct cm): Likewise.
19304 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
19305 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
19306 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
19307 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
19308 (turn_on_face, init_tty): Likewise.
19309 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 19310
7f3f1250
PE
19311 * term.c (term_mouse_position): Rename local to avoid shadowing.
19312
e6ca6543
PE
19313 * alloc.c (mark_ttys): Move decl from here ...
19314 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
19315
c40f8d15
AS
193162011-03-11 Andreas Schwab <schwab@linux-m68k.org>
19317
19318 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
19319
cfe0661d
JB
193202011-03-09 Juanma Barranquero <lekktu@gmail.com>
19321
19322 * search.c (compile_pattern_1): Remove argument regp, unused since
19323 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
19324 (compile_pattern): Don't pass it.
19325
0afb4571
J
193262011-03-08 Jan Djärv <jan.h.d@swipnet.se>
19327
19328 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
19329 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
19330 for ! HAVE_GTK3.
19331 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
19332
19333 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
19334
19335 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
19336 gdk_window_get_screen, gdk_window_get_geometry,
19337 gdk_x11_window_lookup_for_display and GDK_KEY_g.
19338 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
19339 (xg_get_pixbuf_from_pixmap): New function.
19340 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
19341 to Pixmap, take frame as parameter, remove GdkColormap parameter.
19342 Call xg_get_pixbuf_from_pixmap instead of
19343 gdk_pixbuf_get_from_drawable.
19344 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
19345 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
19346 (xg_check_special_colors): Use GtkStyleContext and its functions
19347 for HAVE_GTK3.
19348 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
19349 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
19350 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
19351 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
19352 Call gtk_widget_get_preferred_size.
0afb4571
J
19353 (xg_frame_resized): gdk_window_get_geometry only takes 5
19354 parameters.
44f230aa
SM
19355 (xg_win_to_widget, xg_event_is_for_menubar):
19356 Call gdk_x11_window_lookup_for_display.
0afb4571
J
19357 (xg_set_widget_bg): New function.
19358 (delete_cb): New function.
895009e1 19359 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 19360 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
19361 (xg_set_background_color): Call xg_set_widget_bg.
19362 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
19363 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
19364 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
19365 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
19366 if ! HAVE_GTK3.
19367 (update_frame_tool_bar): Call gtk_widget_hide.
19368 (xg_initialize): Use GDK_KEY_g.
19369
19370 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
19371 if ! HAVE_GTK3
19372 (x_session_initialize): Call gdk_x11_set_sm_client_id.
19373
19374 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
19375 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
19376 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
19377
1c2cc4ef
JB
193782011-03-08 Juanma Barranquero <lekktu@gmail.com>
19379
19380 * w32xfns.c (select_palette): Check success of RealizePalette against
19381 GDI_ERROR, not zero.
19382
33383987 19383See ChangeLog.11 for earlier changes.
aac0c6e3
MR
19384
19385;; Local Variables:
19386;; coding: utf-8
aac0c6e3
MR
19387;; End:
19388
2f097256 19389 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
19390
19391 This file is part of GNU Emacs.
19392
19393 GNU Emacs is free software: you can redistribute it and/or modify
19394 it under the terms of the GNU General Public License as published by
19395 the Free Software Foundation, either version 3 of the License, or
19396 (at your option) any later version.
19397
19398 GNU Emacs is distributed in the hope that it will be useful,
19399 but WITHOUT ANY WARRANTY; without even the implied warranty of
19400 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19401 GNU General Public License for more details.
19402
19403 You should have received a copy of the GNU General Public License
19404 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.