71465cc9b86d11bef53bc153b7ab2eda8ad51c91
[bpt/emacs.git] / src / ChangeLog
1 2012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
2
3 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
4
5 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
6
7 * commands.h (immediate_quit): Remove duplicate decl.
8
9 2012-10-09 Jan Djärv <jan.h.d@swipnet.se>
10
11 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
12 caching.
13 (nsfont_open): Remove setting of Vfonts_in_cache.
14 (syms_of_nsfont): Remove initialization of Vfonts_in_cache
15
16 2012-10-09 Eli Zaretskii <eliz@gnu.org>
17
18 * w32fns.c (w32_last_error): Change the return value to DWORD, to
19 match what GetLastError returns. Explain why the function is
20 needed.
21
22 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
23 'is_tooltip_frame', to avoid confusion with its global namesake.
24
25 2012-10-08 Daniel Colascione <dancol@dancol.org>
26
27 * xdisp.c (start_hourglass): Call w32_note_current_window when
28 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
29 build that caused Emacs to display the hourglass cursor forever.
30
31 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
32 which is broken under remote desktop, calculate the number of
33 colors available for a display based on the display's number of
34 planes and number of bits per pixel per plane. (bug#10397).
35
36 2012-10-08 Jan Djärv <jan.h.d@swipnet.se>
37
38 * nsfont.m (Vfonts_in_cache): New variable.
39 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
40 are used. Add cached fonts to Vfonts_in_cache.
41 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
42
43 2012-10-08 Juanma Barranquero <lekktu@gmail.com>
44
45 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
46 in nt/config.nt.
47 (FONT_H): Define after FRAME_H.
48 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
49 Update dependencies.
50
51 * w32term.c: Remove leftover declaration of keyboard_codepage.
52
53 2012-10-08 Eli Zaretskii <eliz@gnu.org>
54
55 * makefile.w32-in (FONT_H): Add $(FRAME_H).
56 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
57 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
58 (GLOBAL_SOURCES): Add cygw32.c.
59 ($(BLD)/unexw32.$(O)):
60 ($(BLD)/w32.$(O)):
61 ($(BLD)/w32console.$(O)):
62 ($(BLD)/w32fns.$(O)):
63 ($(BLD)/w32heap.$(O)):
64 ($(BLD)/w32menu.$(O)):
65 ($(BLD)/w32proc.$(O)): Add w32common.h.
66
67 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
68 'const char *'.
69 (x_to_w32_color): Don't modify the argument, modify a copy instead.
70
71 2012-10-08 Daniel Colascione <dancol@dancol.org>
72
73 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
74 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
75 accidental message numbering hole. Change other messages to
76 match.
77
78 * w32select.h (HAVE_W32SELECT): Remove.
79
80 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
81 w32common.h instead of w32heap.h
82
83 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
84 (get_allocation_unit, get_processor_type, get_w32_major_version)
85 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
86 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
87 (OS_NT, os_subtype, cache_system_info): Move declarations to
88 w32common.
89
90 * w32heap.c: Include w32common.h.
91 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
92 (w32_minor_version, w32_build_number, w32_subtype): Remove
93 duplicate definitions.
94
95 * w32fns.c: Include w32common.h; include w32heap.h only in
96 WINDOWSNT.
97
98 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
99 Use `report_file_error' instead of `error' in order to better
100 inform users of what went wrong. Increase NTGUI_UNICODE file
101 dialog box file name length to 32k, the maximum allowed by the NT
102 kernel.
103
104 * w32common.h: New file.
105 (ROUND_UP, ROUND_DOWN, get_page_size)
106 (get_allocation_unit, get_processor_type, get_w32_major_version)
107 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
108 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
109 (OS_NT, os_subtype, cache_system_info): Move here.
110
111 * unexw32.c, unexcw.c: Include w32common.h.
112
113 * emacs.c (main): Use (defined (WINDOWSNT) || defined
114 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
115 to call syms_of_w32select.
116
117 * cygw32.h: Remove obsolete EXFUN declarations.
118
119 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
120
121 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
122 of w32inevt.o from SOME_MACHINE_OBJECTS.
123
124 2012-10-08 Daniel Colascione <dancol@dancol.org>
125
126 * image.c: Permanent fix for JPEG compilation issue --- limit
127 jpeglib `boolean' redefinition to Cygwin builds.
128
129 2012-10-08 Eli Zaretskii <eliz@gnu.org>
130
131 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
132
133 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
134 Cygwin.
135
136 2012-10-08 Daniel Colascione <dancol@dancol.org>
137
138 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
139 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
140 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
141 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
142 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
143 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
144 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
145 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
146 now a supported configuration.
147
148 * Makefile.in: consolidate image variables into LIBIMAGE; add
149 W32_OBJ and W32_LIBS. Compile new files.
150
151 * conf_post.h:
152 (_DebPrint) declare tracing facility for W32 debugging. We need
153 to unify tracing later.
154
155 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
156 unconditional use of W32 Unicode functions. Cygwin runs only on
157 100% Unicode operating systems.
158
159 * cygw32.c: New file. Define Cygwin-specific facilities.
160 (Fcygwin_convert_path_to_windows)
161 (Fcygwin_convert_path_from_windows): New user functions for
162 accessing Cygwin path-munging routines.
163
164 * cygw32.h: New file.
165 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
166 UTF-16LE strings temporarily inside non-Lisp-visible string
167 objects.
168
169 (w32_strerror): Just what it says on the tin.
170
171 * emacs.c: Make the NS fork-then-exec code for daemon-launching
172 also run for Cygwin; both systems have the same problem with using
173 GUI facilities in a forked child. Also call syms_of_cygw32,
174 syms_of_w32select in correct places.
175
176 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
177 needs fork-then-exec for daemon launching.
178
179 * font.h: Include frame.h.
180
181 * image.c: Use the image library cache machinery only when we're
182 compiling for native WINDOWSNT; Cygwin can use shared libraries
183 like any other Unixlike system.
184
185 * keyboard.c: Clarify a comment regarding the input loop.
186
187 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
188 functions directly instead of trying to detect at runtime that our
189 host operating system supports them. We make this change for two
190 reasons: Cygwin lacks support for the multibyte character
191 conversion functions used by the legacy menu code, and Cygwin
192 never needs to rely on non-Unicode APIs.
193
194 * unexw32.c (hinst): Declare extern.
195
196 * w32.c: Change header order;
197 (w32_strerror): Move to w32fns.c because we need it for
198 non-WINDOWSNT builds.
199
200 * w32.h: Add #error macro to make sure we don't include w32.h for
201 Cygwin builds. Remove w32select declarations.
202
203 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
204 w32fns.c. w32console.c is WINDOWSNT-only.
205
206 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
207 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
208 POSIXy alternative.
209 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
210 (w32_major_version, w32_minor_version, w32_build_number)
211 (os_subtype, sound_type): Define here
212 (w32_defined_color): Make color parameter const for consistency
213 with other _defined_color functions.
214 (w32_createwindow): Unconditionally call w32_init_class instead of
215 doing so only when hprevinst is non-NULL. Plumbing hprevinst
216 through the code is complex and unnecessary because class
217 registration is practically free.
218 (w32_name_of_message): New EMACSDEBUG-only function.
219 (Fset_message_beep): Move here
220 (Fx_open_connection): Require that the display name for Windows be
221 "w32" for consistency, emacsclient disambiguation, and maybe, one
222 day, multi-window-system support.
223 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
224 Cygwin files for W32 GUI facilities, since these clearly don't
225 expect Cygwin names.
226 (_DebPrint): Define.
227 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
228 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
229 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
230 (w32_last_error): Remove.
231
232 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
233
234 * w32heap.c (syspage_mask): Declare here.
235 (cache_system_info): Remove.
236
237 * w32inevt.c (faked_key): Define globally, not statically.
238 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
239 (w32_console_toggle_lock_key): Move to w32fns.c.
240
241 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
242
243 * w32proc.c (_DebPrint): Move to w32fns.c.
244 * w32select.c: Include string.h, stdio.h for Cygwin.
245 * w32select.h: New File.
246
247 * w32term.c: Include io.h for non-CYGWIN builds; needed for
248 get_osfhandle.
249 (w32_message_fd): New variable. Under Cygwin, holds the file
250 descriptor the system used to tell us about pending thread
251 messages.
252
253 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
254 that prevented compilation under non-WINDOWSNT systems.
255
256 (w32_initialize): Open /dev/windows and assign it to
257 w32_message_fd. Provide w32 feature.
258
259 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
260 (WM_EMACS_INPUT_READY): add.
261 (prepend_msg, w32_message_fd): Declare globally.
262
263 * w32xfns.c:
264 (keyboard_handle): Use only when WINDOWSNT.
265 (notify_msg_ready): New function. Posts a message to the main
266 thread's message queue under CYGWIN, which wakes up the main
267 thread from select(2) by making the /dev/windows file descriptor
268 ready. Under WINDOWSNT, it sets an event the same way the old
269 code did.
270
271 (post, prepend_msg): Actually call notify_msg_ready instead of
272 setting the input event directly.
273
274 2012-10-07 Eli Zaretskii <eliz@gnu.org>
275
276 * ralloc.c (relinquish): If a heap is ready to be relinquished,
277 but it still has blocs in it, don't return it to the system,
278 instead of aborting. (Bug#12402)
279
280 2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
281
282 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
283
284 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
285 MAC_OS_X_VERSION_10_6.
286 (syms_of_nsterm): Remove comment about Panther and above for
287 ns-antialias-text.
288 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
289 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
290 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
291
292 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
293 MAC_OS_X_VERSION_10_4.
294
295 * nsmenu.m (fillWithWidgetValue:): Remove code for <
296 MAC_OS_X_VERSION_10_2.
297
298 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
299
300 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
301 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
302
303 * nsterm.m (ns_in_resize): Remove (Bug#12479).
304 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
305 (ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove
306 ns_in_resize check.
307 (ns_clear_frame_area): Remove resize handle code.
308
309 * nsfns.m (ns_in_resize): Remove.
310 (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove
311 ns_in_resize check.
312
313 2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
314
315 Improve sys_siglist detection.
316 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
317 defined as a macro, as is done in Solaris.
318 (sys_siglist_entries): New macro.
319 (save_strsignal): Use it.
320 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
321 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
322
323 2012-10-06 Jan Djärv <jan.h.d@swipnet.se>
324
325 * nsfns.m (Fx_create_frame): Call x_default_parameter with
326 fullscreen/Fullscreen.
327
328 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
329 tobar_height is new.
330
331 * nsterm.m (x_make_frame_visible): Check for fullscreen.
332 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
333 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
334 (windowDidResize:): Check for correct window if old style fullscreen.
335 Capitalize word in comment. Remove incorrect comment.
336 (initFrameFromEmacs:): tbar_height renamed tibar_height.
337 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
338 error in drawing background.
339 (toggleFullScreen:): Remove comment. Rearrange calls.
340 Set toolbar values to zero, save old height in tobar_height.
341 Restore tool bar height when leaving fullscreen.
342 (canBecomeMainWindow): New function.
343
344 2012-10-06 Paul Eggert <eggert@cs.ucla.edu>
345
346 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
347
348 2012-10-05 Eli Zaretskii <eliz@gnu.org>
349
350 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
351
352 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
353 that time stamps of directories could also be changed. Don't
354 request the too broad GENERIC_WRITE, only the more restrictive
355 FILE_WRITE_ATTRIBUTES access rights.
356
357 * fileio.c (Fset_file_times): Special-case ignoring errors for
358 directories only on MSDOS, not on MS-Windows.
359
360 2012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
361
362 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
363
364 2012-10-04 Eli Zaretskii <eliz@gnu.org>
365
366 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
367 see whether CreateFile failed.
368
369 2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
370
371 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
372 to avoid similar races.
373 * keyboard.c (pending_signals): Now bool, not int.
374
375 Port timers to OpenBSD, plus check for timer failures.
376 OpenBSD problem reported by Han Boetes.
377 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
378 and/or setitimer.
379 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
380 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
381 like OpenBSD, which has timer_settime but does not declare it.
382 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
383 whether to use itimerspec-related primitives. All uses of
384 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
385
386 2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
387
388 * profiler.c (handle_profiler_signal): Fix a malloc race
389 that caused Emacs to hang on Fedora 17 when profiling Lisp.
390
391 2012-10-02 Jan Djärv <jan.h.d@swipnet.se>
392
393 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
394
395 2012-10-02 Eli Zaretskii <eliz@gnu.org>
396
397 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
398 consistent with the change in return value of 'safe_strsignal'.
399
400 2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
401
402 Prefer plain 'static' to 'static inline' (Bug#12541).
403 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
404 (bidi_set_sor_type, bidi_push_embedding_level)
405 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
406 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
407 (bidi_cache_search, bidi_cache_ensure_space)
408 (bidi_cache_iterator_state, bidi_cache_find)
409 (bidi_peek_at_next_level, bidi_set_paragraph_end)
410 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
411 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
412 Now 'static', not 'static inline'.
413
414 Count overruns when profiling; change units to ns.
415 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
416 Give extra weight to samples after overruns, to attempt to count
417 the time more accurately.
418 (setup_cpu_timer): Change sampling interval units from ms to ns, since
419 the underlying primitives nominally do ns.
420 (Fprofiler_cpu_start): Document the change. Mention that
421 the sampling intervals are only approximate.
422
423 2012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
424
425 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
426
427 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
428 case for the special 0 coding-system.
429
430 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
431 (Fmake_overlay): Remove redundant tests.
432 (fix_start_end_in_overlays): Remove redundant recentering.
433
434 2012-10-02 Juanma Barranquero <lekktu@gmail.com>
435
436 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
437 Update dependencies.
438
439 2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
440
441 Fix a malloc race condition involving strsignal.
442 A signal can arrive in the middle of a malloc, and Emacs's signal
443 handler can invoke strsignal, which can invoke malloc, which is
444 not portable. This race condition bug makes Emacs hang on GNU/Linux.
445 Fix it by altering the signal handler so that it does not invoke
446 strsignal.
447 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
448 * process.c (status_message): Use const pointer, in case strsignal
449 is #defined to safe_strsignal.
450 * sysdep.c (sys_siglist, init_signals): Always define and
451 initialize a substitute sys_siglist if the system does not define
452 one, even if HAVE_STRSIGNAL.
453 (safe_strsignal): Rename from strsignal. Always define,
454 using sys_siglist. Return a const pointer.
455 * syssignal.h (safe_strsignal): New decl.
456 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
457
458 2012-10-01 Eli Zaretskii <eliz@gnu.org>
459
460 * w32proc.c (timer_loop): Fix code that waits for timer
461 expiration, to avoid high CPU usage.
462
463 2012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
464
465 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
466 (sweep_weak_table): Remove redundant prototypes.
467
468 2012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
469
470 * emacs.c: Move the inclusion of TERM_HEADER after including
471 windows.h on WINDOWSNT. This avoids compilation problems with
472 MSVC.
473
474 2012-10-01 Eli Zaretskii <eliz@gnu.org>
475
476 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
477 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
478 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
479 as the previous version used 'void *'.
480
481 * ralloc.c (ROUNDUP): Fix last change.
482 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
483 'size_t'.
484
485 * w32proc.c <disable_itimers>: New static flag.
486 (init_timers): Initialize it to zero, after creating the critical
487 sections used by the timer threads.
488 (term_timers): Set to 1 before deleting the critical sections.
489 (getitimer, setitimer): If disable_itimers is non-zero, return an
490 error indication without doing anything. Reported by Fabrice
491 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
492 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
493 return results.
494 [!HAVE_SETITIMER]: Behave as the previous version that didn't
495 support timers.
496
497 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
498 term_ntproc after all the other bookkeeping, to get timers working
499 as long as possible.
500
501 2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
502
503 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
504 Suggested by Juri Linkov in
505 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
506
507 Prefer plain 'static' to 'static inline' (Bug#12541).
508 With static functions, modern compilers inline pretty well by
509 themselves; advice from programmers often hurts as much as it helps.
510 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
511 this change shrinks the text size of the Emacs executable by 1.1%
512 without affecting CPU significantly in my benchmark.
513 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
514 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
515 (mark_maybe_object, mark_maybe_pointer, bounded_number):
516 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
517 (bset_auto_fill_function, bset_auto_save_file_format)
518 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
519 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
520 (bset_cache_long_line_scans, bset_case_fold_search)
521 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
522 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
523 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
524 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
525 (bset_header_line_format, bset_indicate_buffer_boundaries)
526 (bset_indicate_empty_lines, bset_invisibility_spec)
527 (bset_left_fringe_width, bset_major_mode, bset_mark)
528 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
529 (bset_name, bset_overwrite_mode, bset_pt_marker)
530 (bset_right_fringe_width, bset_save_length)
531 (bset_scroll_bar_width, bset_scroll_down_aggressively)
532 (bset_scroll_up_aggressively, bset_selective_display)
533 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
534 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
535 (set_buffer_overlays_after):
536 * category.c (bset_category_table):
537 * charset.c (read_hex):
538 * coding.c (produce_composition, produce_charset)
539 (handle_composition_annotation, handle_charset_annotation)
540 (char_encodable_p):
541 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
542 (assign_row, set_frame_matrix_frame, make_current)
543 (add_row_entry):
544 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
545 * fns.c (maybe_resize_hash_table):
546 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
547 * gmalloc.c (register_heapinfo):
548 * image.c (lookup_image_type):
549 * intervals.c (set_interval_object, set_interval_left)
550 (set_interval_right, copy_interval_parent, rotate_right)
551 (rotate_left, balance_possible_root_interval):
552 * keyboard.c (kset_echo_string, kset_kbd_queue)
553 (kset_keyboard_translate_table, kset_last_prefix_arg)
554 (kset_last_repeatable_command, kset_local_function_key_map)
555 (kset_overriding_terminal_local_map, kset_real_last_command)
556 (kset_system_key_syms, clear_event, set_prop):
557 * lread.c (digit_to_number):
558 * marker.c (attach_marker, live_buffer, set_marker_internal):
559 * nsterm.m (ns_compute_glyph_string_overhangs):
560 * process.c (pset_buffer, pset_command)
561 (pset_decode_coding_system, pset_decoding_buf)
562 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
563 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
564 (pset_status, pset_tty_name, pset_type, pset_write_queue):
565 * syntax.c (bset_syntax_table, dec_bytepos):
566 * terminal.c (tset_param_alist):
567 * textprop.c (interval_has_some_properties)
568 (interval_has_some_properties_list):
569 * window.c (wset_combination_limit, wset_dedicated)
570 (wset_display_table, wset_hchild, wset_left_fringe_width)
571 (wset_left_margin_cols, wset_new_normal, wset_new_total)
572 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
573 (wset_right_fringe_width, wset_right_margin_cols)
574 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
575 (wset_vertical_scroll_bar_type, wset_window_parameters):
576 * xdisp.c (wset_base_line_number, wset_base_line_pos)
577 (wset_column_number_displayed, wset_region_showing)
578 (window_box_edges, run_window_scroll_functions)
579 (append_glyph_string_lists, prepend_glyph_string_lists)
580 (append_glyph_string, set_glyph_string_background_width)
581 (append_glyph, append_composite_glyph)
582 (take_vertical_position_into_account):
583 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
584 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
585 (lface_hash, lface_same_font_attributes_p, lookup_face):
586 * xml.c (libxml2_loaded_p):
587 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
588 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
589 Now 'static', not 'static inline'.
590
591 * bidi.c: Tune.
592 (bidi_copy_it): Do the whole copy with a single memcpy.
593 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
594
595 Revert the FOLLOW-SYMLINKS change for file-attributes.
596 Doing it right would require several changes to Tramp, and there's
597 not enough time to get that tested before the freeze today.
598 * dired.c (directory_files_internal, Ffile_attributes):
599 Undo last change.
600
601 * frame.c (x_report_frame_params): Port better to wider ints.
602 Do not assume that EMACS_UINT is the same width as uprintmax_t,
603 or that pointers can be printed in 15 decimal digits.
604 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
605
606 2012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
607
608 Support x64 build on MS-Windows.
609 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
610 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
611 compatibility with x64.
612 (x_get_focus_frame): Add prototype.
613
614 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
615 defining an XRectangle structure.
616
617 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
618 arithmetics for compatibility with x64.
619
620 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
621 compatibility with x64.
622
623 * w32heap.h: Adjust prototypes and declarations.
624
625 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
626 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
627 DWORD, long, and unsigned long, for compatibility with x64.
628 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
629 (sbrk): Argument is now of type ptrdiff_t.
630
631 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
632 less than 0x0500.
633 (w32_msg_pump): Use WPARAM type for 'result'.
634
635 * w32.c (init_environment, get_emacs_configuration): Support AMD64
636 architecture.
637 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
638 compatibility with x64.
639
640 * vm-limit.c (lim_data): Now size_t.
641 (check_memory_limits): Adjust prototypes of real_morecore and
642 __morecore to receive argument of type ptrdiff_t. Use size_t for
643 five_percent and data_size.
644
645 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
646 variables, for compatibility with x64.
647 (rva_to_section, offset_to_section, relocate_offset)
648 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
649 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
650 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
651 for compatibility with x64.
652
653 * sysdep.c (STDERR_FILENO): Define if not already defined.
654
655 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
656 (__morecore): Argument type is now ptrdiff_t.
657 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
658 (relinquish): Use ptrdiff_t type for 'excess'.
659 (r_alloc_sbrk): Argument type is now ptrdiff_t.
660
661 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
662 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
663 instead of a literal number.
664
665 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
666 (min): Define only if not already defined.
667
668 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
669 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
670 hosts.
671
672 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
673 'bitmaps' is a pointer.
674
675 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
676
677 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
678
679 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
680
681 file-attributes has a new optional arg FOLLOW-SYMLINKS.
682 * dired.c (directory_files_internal, Ffile_attributes):
683 New arg follow_symlinks. All uses changed.
684
685 2012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
686
687 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
688
689 2012-09-30 Eli Zaretskii <eliz@gnu.org>
690
691 Support atimers and CPU profiler via profile.c on MS-Windows.
692 * w32proc.c (sig_mask, crit_sig): New static variables.
693 (sys_signal): Support SIGALRM and SIGPROF.
694 (sigemptyset, sigaddset, sigfillset, sigprocmask)
695 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
696 sigfillset, and sigprocmask are no longer no-ops.
697 (sigismember): New function.
698 (struct itimer_data): New definition.
699 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
700 (crit_prof): New static variables.
701 (MAX_SINGLE_SLEEP): New definition.
702 (timer_loop, stop_timer_thread, term_timers, init_timers)
703 (start_timer_thread, getitimer, setitimer): New functions.
704 (alarm): No longer a no-op, calls setitimer.
705
706 * w32.c (term_ntproc): Call term_timers.
707 (init_ntproc): Make sure all signals are unblocked at startup, to
708 erase any traces of dumping. Call init_timers.
709
710 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
711 Windows-specific code to display the hourglass mouse pointer is no
712 longer used.
713 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
714 to hourglass timer expiration.
715 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
716 Remove, no longer used.
717 (w32_note_current_window, show_hourglass, hide_hourglass):
718 New functions, in support of hourglass cursor display similar to other
719 window systems.
720 (syms_of_w32fns): Don't initialize hourglass_timer.
721
722 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
723 WINDOWSNT as well.
724 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
725
726 * w32.h (init_timers, term_timers): Add prototypes.
727
728 2012-09-30 Kenichi Handa <handa@gnu.org>
729
730 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
731 to the buffer relocation which may be caused by ccl_driver.
732
733 2012-09-30 Jan Djärv <jan.h.d@swipnet.se>
734
735 * xfns.c (Fx_file_dialog): Update comment.
736
737 * w32fns.c (Fx_file_dialog): Update comment.
738
739 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
740 Initialize panel name field if OSX >= 10.6.
741
742 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
743
744 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
745
746 * nsterm.m (NEW_STYLE_FS): New define.
747 (ns_fullscreen_hook, windowWillEnterFullScreen)
748 (windowDidEnterFullScreen, windowWillExitFullScreen)
749 (windowDidExitFullScreen, toggleFullScreen, handleFS)
750 (setFSValue): New functions.
751 (EmacsFSWindow): New implementation.
752 (canBecomeKeyWindow): New function for EmacsFSWindow.
753 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
754 (dealloc): Release nonfs_window if in fullscreen.
755 (updateFrameSize:): Call windowDidMove to update top/left.
756 (windowWillResize:toSize:): Check if frame is still maximized.
757 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
758 next_maximized, maximized_width, maximized_height and nonfs_window.
759 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
760 tbar_height.
761 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
762 fullscreen. Set maximized_width/height. Act on next_maximized.
763
764 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
765 (EmacsView): Add variables for fullscreen.
766 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
767 (EmacsFSWindow): New interface for fullscreen.
768
769 2012-09-30 Juanma Barranquero <lekktu@gmail.com>
770
771 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
772
773 2012-09-30 Chong Yidong <cyd@gnu.org>
774
775 * fns.c (Frandom): Doc fix.
776
777 2012-09-30 Martin Rudalics <rudalics@gmx.at>
778
779 * window.c (Vwindow_combination_limit): New default value.
780 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
781
782 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
783
784 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
785 Suggested by Eli Zaretskii in
786 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
787
788 2012-09-30 Eli Zaretskii <eliz@gnu.org>
789
790 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
791 HAVE_TIMER_SETTIME is defined.
792
793 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
794
795 Profiler improvements: more-accurate timers, overflow checks.
796 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
797 signal.h, setjmp.h. Include systime.h instead.
798 (saturated_add): New function.
799 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
800 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
801 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
802 New static vars.
803 (enum profiler_cpu_running): New enum.
804 (profiler_cpu_running): Now of that enum type, not bool.
805 All uses changed to store the new value.
806 (handle_profiler_signal): Rename from sigprof_handler_1,
807 for consistency with other handlers. Do not check whether
808 cpu_log is a hash-table if garbage collecting, since it
809 doesn't matter in that case.
810 (deliver_profiler_signal): Rename from sigprof_handler,
811 for consistency with other handlers.
812 (setup_cpu_timer): New function, with much of what used to be in
813 Fprofiler_cpu_start. Check for out-of-range argument.
814 Prefer timer_settime if available, and prefer
815 thread cputime clocks, then process cputime clocks, then
816 monotonic clocks, to the old realtime clock. Use make_timeval
817 to round more-correctly when falling back to setitimer.
818 (Fprofiler_cpu_start): Use it.
819 (Fprofiler_cpu_stop): Prefer timer_settime if available.
820 Don't assume that passing NULL as the 2nd argument of setitimer
821 is the same as passing a pointer to all-zero storage.
822 Ignore SIGPROF afterwards.
823 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
824 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
825 non-fatal signal handlers. Ignore SIGPROF on startup.
826 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
827 in profiler.c, since sysdep.c now uses it.
828
829 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
830 Suggested by Eli Zaretskii in
831 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
832
833 2012-09-29 Juanma Barranquero <lekktu@gmail.com>
834
835 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
836
837 2012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
838
839 * lisp.h (struct backtrace): Remove indirection for `function' field.
840 * xdisp.c (redisplay_internal):
841 * profiler.c (record_backtrace, sigprof_handler_1):
842 * alloc.c (Fgarbage_collect):
843 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
844 (Fbacktrace_frame): Adjust accordingly.
845
846 2012-09-28 Glenn Morris <rgm@gnu.org>
847
848 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
849 (Frun_hook_with_args_until_failure): Doc fixes.
850
851 2012-09-28 Eli Zaretskii <eliz@gnu.org>
852
853 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
854 Qautomatic_redisplay and change the symbol name. All users changed.
855
856 2012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
857
858 * profiler.c (sigprof_handler): Fix race condition.
859
860 2012-09-28 Glenn Morris <rgm@gnu.org>
861
862 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
863
864 2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
865
866 Check more robustly for timer_settime.
867 * Makefile.in (LIB_TIMER_TIME): New macro.
868 (LIBES): Add it.
869 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
870 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
871 call timer_settime.
872
873 2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
874
875 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
876
877 2012-09-26 Juanma Barranquero <lekktu@gmail.com>
878
879 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
880
881 2012-09-26 Paul Eggert <eggert@cs.ucla.edu>
882
883 * character.h (MAYBE_UNIFY_CHAR): Remove.
884 * charset.c, charset.h (maybe_unify_char): Now static.
885 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
886 Since this stuff is now private to charset.c, there's no need for
887 a public macro and no need to inline by hand.
888
889 2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
890 Stefan Monnier <monnier@iro.umontreal.ca>
891 Juanma Barranquero <lekktu@gmail.com>
892
893 * profiler.c: New file.
894 * Makefile.in (base_obj): Add profiler.o.
895 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
896 ($(BLD)/profiler.$(O)): New target.
897 * emacs.c (main): Call syms_of_profiler.
898 * alloc.c (Qautomatic_gc): New constant.
899 (MALLOC_PROBE): New macro.
900 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
901 (total_bytes_of_live_objects): New function.
902 (Fgarbage_collect): Use it. Record itself in backtrace_list.
903 Call malloc_probe for the memory profiler.
904 (syms_of_alloc): Define Qautomatic_gc.
905 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
906 race condition.
907 (struct backtrace): Move definition...
908 * lisp.h (struct backtrace): ..here.
909 (Qautomatic_gc, profiler_memory_running): Declare vars.
910 (malloc_probe, syms_of_profiler): Declare functions.
911 * xdisp.c (Qautomatic_redisplay): New constant.
912 (redisplay_internal): Record itself in backtrace_list.
913 (syms_of_xdisp): Define Qautomatic_redisplay.
914
915 2012-09-25 Eli Zaretskii <eliz@gnu.org>
916 2012-09-25 Juanma Barranquero <lekktu@gmail.com>
917
918 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
919
920 2012-09-25 Paul Eggert <eggert@cs.ucla.edu>
921
922 Prefer POSIX timers if available.
923 They avoid a race if the timer is too close to the current time.
924 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
925 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
926 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
927
928 2012-09-25 Eli Zaretskii <eliz@gnu.org>
929
930 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
931 CHAR_STRING_ADVANCE.
932 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
933 STRING_CHAR_ADVANCE.
934
935 2012-09-25 Juanma Barranquero <lekktu@gmail.com>
936
937 Move Vlibrary_cache to emacs.c and reset before dumping.
938
939 * lisp.h (reset_image_types): Declare.
940 [WINDOWSNT] (Vlibrary_cache): Declare.
941
942 * image.c (reset_image_types): New function.
943
944 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
945 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
946 (Fdump_emacs): Reset Vlibrary_cache and image_types.
947
948 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
949 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
950
951 * w32.h (Vlibrary_cache): Do not declare.
952
953 2012-09-25 Eli Zaretskii <eliz@gnu.org>
954
955 * w32proc.c (sys_signal): Handle all signals defined by the
956 MS-Windows runtime, not just SIGCHLD. Actually install the signal
957 handlers for signals supported by Windows. Don't override
958 term_ntproc as the handler for SIGABRT.
959 (sigaction): Rewrite to call sys_signal instead of duplicating its
960 code.
961 (sys_kill): Improve commentary.
962
963 * w32.c (term_ntproc): Accept (and ignore) one argument, for
964 consistency with a signature of a signal handler. All callers
965 changed.
966 (init_ntproc): Accept an argument DUMPING. If dumping, don't
967 install term_ntproc as a signal handler for SIGABRT, as that
968 should be done by the dumped Emacs.
969
970 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
971
972 * w32select.c (term_w32select): Protect against repeated
973 invocation by setting clipboard_owner to NULL after calling
974 DestroyWindow.
975
976 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
977 and term_ntproc to their modified signatures.
978
979 * character.c (char_string, string_char): Remove calls to
980 MAYBE_UNIFY_CHAR. See the discussion starting at
981 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
982 for the details.
983
984 2012-09-25 Chong Yidong <cyd@gnu.org>
985
986 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
987
988 2012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
989
990 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
991 when encountering an unknown bytecode.
992
993 2012-09-24 Paul Eggert <eggert@cs.ucla.edu>
994
995 image.c, indent.c: Use bool for booleans.
996 * dispextern.h (struct image_type): Members valid_p, load, init
997 now return bool, not int. All uses changed.
998 * image.c: Omit unnecessary static decls.
999 (x_create_bitmap_mask, x_build_heuristic_mask):
1000 Return void, not int, since callers don't care about the return value.
1001 (x_create_bitmap_mask, define_image_type, valid_image_p)
1002 (struct image_keyword, parse_image_spec, image_spec_value)
1003 (check_image_size, image_background)
1004 (image_background_transparent, x_clear_image_1)
1005 (postprocess_image, lookup_image, x_check_image_size)
1006 (x_create_x_image_and_pixmap, xbm_image_p)
1007 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
1008 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
1009 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
1010 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
1011 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
1012 (png_image_p, init_png_functions, png_load_body, png_load)
1013 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
1014 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
1015 (init_gif_functions, gif_load, imagemagick_image_p)
1016 (imagemagick_load_image, imagemagick_load, svg_image_p)
1017 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
1018 (gs_load):
1019 * nsimage.m (ns_load_image):
1020 * nsterm.m (ns_defined_color):
1021 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
1022 * xfns.c (x_defined_color):
1023 * xterm.c (x_alloc_lighter_color_for_widget)
1024 (x_alloc_nearest_color_1, x_alloc_nearest_color)
1025 (x_alloc_lighter_color):
1026 * indent.c (disptab_matches_widthtab, current_column)
1027 (scan_for_column, string_display_width, indented_beyond_p)
1028 (compute_motion, vmotion, Fvertical_motion):
1029 Use bool for booleans.
1030
1031 2012-09-24 Chong Yidong <cyd@gnu.org>
1032
1033 * chartab.c (Fset_char_table_default): Obsolete function removed.
1034
1035 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
1036
1037 Move pid_t related decls out of lisp.h.
1038 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
1039 (interruptible_wait_for_termination):
1040 Move these decls from lisp.h to syswait.h, since they use pid_t.
1041 Needed on FreeBSD; see Herbert J. Skuhra in
1042 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
1043 * callproc.c: Include syswait.h.
1044
1045 gnutls.c, gtkutil.c: Use bool for boolean.
1046 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
1047 (emacs_gnutls_handle_error):
1048 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
1049 (xg_hide_tooltip, xg_create_frame_widgets)
1050 (create_dialog, xg_uses_old_file_dialog)
1051 (xg_get_file_with_chooser, xg_get_file_with_selection)
1052 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
1053 (xg_item_label_same_p, xg_update_menubar)
1054 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
1055 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
1056 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
1057 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
1058 (update_frame_tool_bar, free_frame_tool_bar):
1059 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
1060 * nsmenu.m (ns_update_menubar):
1061 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
1062 * xfns.c (Fx_show_tip) [USE_GTK]:
1063 Use bool for boolean.
1064 * gtkutil.c (xg_update_frame_menubar):
1065 * xmenu.c (update_frame_menubar):
1066 Return void, not int, since caller ignores return value.
1067 * gtkutil.c (xg_change_toolbar_position):
1068 Return void, not 1.
1069
1070 2012-09-23 Juanma Barranquero <lekktu@gmail.com>
1071
1072 * makefile.w32-in (BLOCKINPUT_H): Remove.
1073 (SYSSIGNAL_H): New macro.
1074 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
1075 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
1076 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
1077 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
1078 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
1079 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
1080 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
1081 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
1082 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
1083 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
1084 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
1085 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
1086 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
1087 ($(BLD)/w32xfns.$(O)): Update dependencies.
1088
1089 2012-09-23 Eli Zaretskii <eliz@gnu.org>
1090
1091 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
1092 fatal_error_backtrace.
1093
1094 * w32proc.c (sys_kill): Undo last change: don't do anything when
1095 invoked to deliver SIGABRT to our own process. This is now
1096 handled by emacs_raise.
1097
1098 2012-09-23 Juanma Barranquero <lekktu@gmail.com>
1099
1100 * w32term.c (w32_read_socket): Remove leftover reference to
1101 interrupt_input_pending.
1102
1103 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
1104
1105 Do not use SA_NODEFER.
1106 Problem reported by Dani Moncayo in
1107 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
1108 * alloc.c (die):
1109 * sysdep.c (emacs_abort): Do not reset signal handler.
1110 * emacs.c (terminate_due_to_signal): Reset signal handler here.
1111 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
1112 wanted even on POSIXish hosts, and it doesn't work on Windows.
1113
1114 2012-09-23 Jan Djärv <jan.h.d@swipnet.se>
1115
1116 * xterm.c (x_term_init): Call fixup_locale before and after calling
1117 gtk_init (Bug#12392).
1118
1119 2012-09-23 Chong Yidong <cyd@gnu.org>
1120
1121 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
1122 Vdynamic_library_alist.
1123
1124 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
1125 (Fgnutls_available_p): Caller changed.
1126
1127 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
1128 (Flibxml_parse_xml_region): Likewise.
1129
1130 * dispextern.h (struct image_type): Remove arg from init function.
1131
1132 * image.c (Finit_image_library, lookup_image_type)
1133 (define_image_type): Remove now-unneeded second arg.
1134 (init_xpm_functions, init_png_functions, init_jpeg_functions)
1135 (init_tiff_functions, init_gif_functions, init_svg_functions):
1136 Arglist and w32_delayed_load calling convention changed.
1137 (gs_type): Remove init_gs_functions; there is no such function.
1138 (valid_image_p, make_image): Fix caller to lookup_image_type.
1139
1140 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
1141
1142 Simplify and avoid signal-handling races (Bug#12471).
1143 * alloc.c (die):
1144 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
1145 Avoid recursive loop if there's a fatal error in the function itself.
1146 * atimer.c (pending_atimers):
1147 * blockinput.h: Don't include "atimer.h"; no longer needed.
1148 (interrupt_input_pending): Remove. All uses removed.
1149 pending_signals now counts both atimers and ordinary interrupts.
1150 This is less racy than having three separate pending-signal flags.
1151 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
1152 (input_blocked_p):
1153 Rename from their upper-case counterparts BLOCK_INPUT,
1154 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
1155 INPUT_BLOCKED_P, and turn into functions. All uses changed.
1156 This makes it easier to access volatile variables more accurately.
1157 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
1158 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
1159 that's more reliable if the code is buggy and sets
1160 interrupt_input_blocked to a negative value. All uses changed.
1161 * atimer.c (deliver_alarm_signal):
1162 Remove. No need to deliver this to the parent; any thread can
1163 handle this signal now. All uses replaced by underlying handler.
1164 * atimer.c (turn_on_atimers):
1165 * dispnew.c (handle_window_change_signal):
1166 * emacs.c (handle_danger_signal):
1167 * keyboard.c (kbd_buffer_get_event):
1168 Don't reestablish signal handler; not needed with sigaction.
1169 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
1170 (UNBLOCK_INPUT_TO):
1171 Rework to avoid unnecessary accesses to volatile variables.
1172 (UNBLOCK_INPUT_TO): Now a function.
1173 (totally_unblock_input, unblock_input): New decls.
1174 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
1175 (init_data): Remove. Necessary stuff now done in init_signal.
1176 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
1177 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
1178 (fatal_error_code): Remove; no longer needed.
1179 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
1180 it doesn't always backtrace. All uses changed. No need to reset
1181 signal to default, since sigaction and/or die does that for us now.
1182 Use emacs_raise (FOO), not kill (getpid (), FOO).
1183 (main): Check more-accurately whether we're dumping.
1184 Move fatal-error setup to sysdep.c
1185 * floatfns.c: Do not include "syssignal.h"; no longer needed.
1186 * gtkutil.c (xg_get_file_name, xg_get_font):
1187 Remove no-longer-needed signal-mask manipulation.
1188 * keyboard.c, process.c (POLL_FOR_INPUT):
1189 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
1190 * keyboard.c (read_avail_input): Remove.
1191 All uses replaced by gobble_input.
1192 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
1193 (kbd_buffer_store_event_hold, gobble_input):
1194 (record_asynch_buffer_change) [USABLE_SIGIO]:
1195 (store_user_signal_events):
1196 No need to mess with signal mask.
1197 (gobble_input): If blocking input and there are terminals, simply
1198 set pending_signals to 1 and return. All hooks changed to not
1199 worry about whether input is blocked.
1200 (process_pending_signals): Clear pending_signals before processing
1201 them, in case a signal comes in while we're processing.
1202 By convention callers now test pending_signals before calling us.
1203 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
1204 New functions, to support changes to blockinput.h.
1205 (handle_input_available_signal): Now extern.
1206 (reinvoke_input_signal): Remove. All uses replaced by
1207 handle_async_input.
1208 (quit_count): Now volatile, since a signal handler uses it.
1209 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
1210 All callers changed. Block SIGINT only if not already blocked.
1211 Clear sigmask reliably, even if Fsignal returns, which it can.
1212 Omit unnecessary accesses to volatile var.
1213 (quit_throw_to_read_char): No need to restore sigmask.
1214 * keyboard.c (gobble_input, handle_user_signal):
1215 * process.c (wait_reading_process_output):
1216 Call signal-handling code rather than killing ourselves.
1217 * lisp.h: Include <float.h>, for...
1218 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
1219 (pending_signals): Now volatile.
1220 (syms_of_data): Now const if IEEE floating point.
1221 (handle_input_available_signal) [USABLE_SIGIO]:
1222 (terminate_due_to_signal, record_child_status_change): New decls.
1223 * process.c (create_process): Avoid disaster if memory is exhausted
1224 while we're processing a vfork, by tightening the critical section
1225 around the vfork.
1226 (send_process_frame, process_sent_to, handle_pipe_signal)
1227 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
1228 ignores SIGPIPE.
1229 (send_process): No need for setjmp/longjmp any more, since the
1230 SIGPIPE stuff is now gone. Instead, report an error if errno
1231 is EPIPE.
1232 (record_child_status_change): Now extern. PID and W are now args.
1233 Return void, not bool. All callers changed.
1234 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
1235 Remove. All uses removed. This bug should be fixed now in a
1236 different way.
1237 (wait_for_termination_1): Use waitpid rather than sigsuspend,
1238 and record the child status change directly. This avoids the
1239 need to futz with the signal mask.
1240 (process_fatal_action): Move here from emacs.c.
1241 (emacs_sigaction_flags): New function, containing
1242 much of what used to be in emacs_sigaction_init.
1243 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
1244 caught by emacs, to make races less likely.
1245 (deliver_process_signal): Rename from handle_on_main_thread.
1246 All uses changed.
1247 (BACKTRACE_LIMIT_MAX): Now at top level.
1248 (thread_backtrace_buffer, threadback_backtrace_pointers):
1249 New static vars.
1250 (deliver_thread_signal, deliver_fatal_thread_signal):
1251 New functions, for more-accurate delivery of thread-specific signals.
1252 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
1253 (deliver_arith_signal): Handle in this thread, not
1254 in the main thread, since it's triggered by this thread.
1255 (maybe_fatal_sig): New function.
1256 (init_signals): New arg DUMPING so that we can be more accurate
1257 about whether we're dumping. Caller changed.
1258 Treat thread-specific signals differently from process-general signals.
1259 Block all signals while handling fatal error; that's safer.
1260 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
1261 on IEEE hosts.
1262 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
1263 Ignore SIGPIPE unless batch.
1264 (emacs_backtrace): Output backtrace for the appropriate thread,
1265 which is not necessarily the main thread.
1266 * syssignal.h: Include <stdbool.h>.
1267 (emacs_raise): New macro.
1268 * xterm.c (x_connection_signal): Remove; no longer needed
1269 now that we use sigaction.
1270 (x_connection_closed): No need to mess with sigmask now.
1271 (x_initialize): No need to reset SIGPIPE handler here, since
1272 init_signals does this for us now.
1273
1274 2012-09-23 Jan Djärv <jan.h.d@swipnet.se>
1275
1276 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
1277 background rect may be larger (Bug#12245).
1278
1279 2012-09-23 Chong Yidong <cyd@gnu.org>
1280
1281 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
1282
1283 2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
1284
1285 * .gdbinit: Just stop at fatal_error_backtrace.
1286 See Stefan Monnier's request in
1287 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
1288 Remove no-longer-used query of system type.
1289
1290 2012-09-22 Chong Yidong <cyd@gnu.org>
1291
1292 * search.c (Freplace_match): Doc fix (Bug#12325).
1293
1294 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
1295
1296 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
1297 (Fline_end_position): Doc fix.
1298
1299 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
1300
1301 2012-09-22 Chong Yidong <cyd@gnu.org>
1302
1303 * dispextern.h (struct image_type): Add new slot, storing a type
1304 initialization function.
1305
1306 * image.c (define_image_type): Call the image initializer function
1307 if it is defined. Arguments and return value changed.
1308 (valid_image_p, make_image): Callers changed.
1309 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
1310 (gif_type, imagemagick_type, svg_type, gs_type):
1311 Add initialization functions.
1312 (Finit_image_library): Call lookup_image_type.
1313 (CHECK_LIB_AVAILABLE): Macro deleted.
1314 (lookup_image_type): Call define_image_type here, rather than via
1315 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
1316 (syms_of_image): Move define_image_type calls for xbm_type and
1317 pbm_type to lookup_image_type.
1318
1319 2012-09-22 Eli Zaretskii <eliz@gnu.org>
1320
1321 * keyboard.c (timer_check_2): Move calculation of 'timers' and
1322 'idle_timers' from here ...
1323 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
1324 lists, to avoid infloops when the timer does something stupid,
1325 like reinvoke itself with the same or smaller time-out.
1326 (Bug#12447)
1327
1328 2012-09-22 Martin Rudalics <rudalics@gmx.at>
1329
1330 * window.c (Fsplit_window_internal): Handle only Qt value of
1331 Vwindow_combination_limit separately.
1332 (Qtemp_buffer_resize): New symbol.
1333 (Vwindow_combination_limit): New default value.
1334 Rewrite doc-string.
1335
1336 2012-09-22 Eli Zaretskii <eliz@gnu.org>
1337
1338 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
1339 the new overlay string. (Bug#10159)
1340
1341 2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
1342
1343 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
1344 or that fprintf is async-signal-safe. POSIX doesn't require
1345 either assumption.
1346
1347 2012-09-22 Chong Yidong <cyd@gnu.org>
1348
1349 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
1350 (Bug#8207).
1351
1352 2012-09-22 Kenichi Handa <handa@gnu.org>
1353
1354 * composite.c (composition_reseat_it): Handle the case that a
1355 grapheme cluster is not covered by a single font (Bug#12352).
1356
1357 2012-09-21 Chong Yidong <cyd@gnu.org>
1358
1359 * image.c (define_image_type): Avoid adding duplicate types to
1360 image_types (Bug#12463). Suggested by Jörg Walter.
1361
1362 2012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1363
1364 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
1365 (print_load_command_name): Add case LC_DATA_IN_CODE.
1366 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
1367
1368 2012-09-21 Glenn Morris <rgm@gnu.org>
1369
1370 * eval.c (Frun_hook_with_args_until_success)
1371 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
1372
1373 2012-09-21 Andreas Schwab <schwab@linux-m68k.org>
1374
1375 * fileio.c (Ffile_selinux_context): Only call freecon when
1376 lgetfilecon succeeded.
1377 (Fset_file_selinux_context): Likewise. (Bug#12444)
1378
1379 2012-09-21 Eli Zaretskii <eliz@gnu.org>
1380
1381 * xdisp.c (try_window_reusing_current_matrix): Under bidi
1382 reordering, locate the cursor by calling set_cursor_from_row; if
1383 that fails, clear the desired glyph matrix before returning a
1384 failure indication to the caller. Fixes leaving garbled display
1385 when fast scrolling with a down-key. (Bug#12403)
1386 (compute_stop_pos_backwards): Fix a typo that caused crashes while
1387 scrolling through multibyte text.
1388
1389 2012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
1390
1391 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
1392 calling mark_vectorlike since that's the one that marks the window.
1393 (mark_discard_killed_buffers): Mark the final cdr.
1394 * window.h (struct window): Move prev/next_buffers to the
1395 non-standard fields.
1396 * window.c (make_window): Initialize prev/next_buffers manually.
1397
1398 2012-09-20 Paul Eggert <eggert@cs.ucla.edu>
1399
1400 Omit unused arg EXPECTED from socket hooks.
1401 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
1402 * nsterm.m (ns_term_init):
1403 * termhooks.h (struct terminal.read_socket_hook):
1404 * w32inevt.c (w32_console_read_socket):
1405 * w32term.c (w32_read_socket):
1406 * xterm.c (XTread_socket):
1407 Omit unused arg EXPECTED. All callers changed.
1408 (store_user_signal_events): Return void, not int, since callers no
1409 longer care about the return value. All uses changed.
1410
1411 2012-09-20 Juanma Barranquero <lekktu@gmail.com>
1412
1413 * w32gui.h (XParseGeometry): Do not declare.
1414
1415 2012-09-19 Paul Eggert <eggert@cs.ucla.edu>
1416
1417 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1418 Ignore 'expected'. See Eli Zaretskii in
1419 <http://bugs.gnu.org/12471#8> (last line).
1420
1421 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
1422 (XParseGeometry): Now static. Substitute extremal values for
1423 values that are out of range.
1424
1425 2012-09-19 Jan Djärv <jan.h.d@swipnet.se>
1426
1427 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
1428
1429 * nsfns.m (XParseGeometry): Remove.
1430 (Fx_create_frame): Call x_set_offset to correctly interpret
1431 top_pos in geometry.
1432
1433 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
1434 (Fx_parse_geometry): If there is a space in string, call
1435 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
1436
1437 2012-09-17 Eli Zaretskii <eliz@gnu.org>
1438
1439 * search.c (scan_buffer): Use character positions in calls to
1440 region_cache_forward and region_cache_backward, not byte
1441 positions. (Bug#12196)
1442
1443 * w32term.c (w32_read_socket): Set pending_signals to 1, like
1444 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
1445
1446 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
1447 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
1448 emacs_blocked_malloc, now deleted.
1449
1450 2012-09-17 Paul Eggert <eggert@cs.ucla.edu>
1451
1452 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
1453 The workaround was for improving performance on Solaris 2.4, but
1454 is getting in the way now. Emacs will still work if someone is
1455 still running Solaris 2.4 in a museum somewhere; Sun dropped
1456 support for Solaris 2.4 in 2003.
1457 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
1458 * process.c (create_process) [HAVE_WORKING_VFORK]:
1459 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
1460 since Emacs no longer uses vfork on that platform.
1461
1462 2012-09-17 Glenn Morris <rgm@gnu.org>
1463
1464 * emacs.c: Use COPYRIGHT.
1465
1466 2012-09-16 Paul Eggert <eggert@cs.ucla.edu>
1467
1468 Remove configure's --without-sync-input option (Bug#12450).
1469 When auditing signal-handling in preparation for cleaning it up,
1470 I found that SYNC_INPUT has race conditions and would be a real
1471 pain to fix. Since it's an undocumented and deprecated
1472 configure-time option, now seems like a good time to remove it.
1473 Also see <http://bugs.gnu.org/11080#16>.
1474 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
1475 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
1476 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
1477 (malloc_hysteresis):
1478 (check_depth) [XMALLOC_OVERRUN_CHECK]:
1479 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
1480 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
1481 (dont_register_blocks, bytes_used_when_reconsidered)
1482 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
1483 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
1484 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1485 Remove. All uses removed.
1486 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
1487 implementation, one that depends on whether the new macro
1488 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
1489 is defined.
1490 * atimer.c (run_timers, handle_alarm_signal):
1491 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
1492 (handle_async_input, process_pending_signals)
1493 (handle_input_available_signal, init_keyboard):
1494 * nsterm.m (ns_read_socket):
1495 * process.c (wait_reading_process_output):
1496 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
1497 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
1498 (emacs_write):
1499 * xterm.c (XTread_socket):
1500 Assume SYNC_INPUT.
1501 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
1502 * eval.c (handling_signal): Remove. All uses removed.
1503 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
1504 All uses replaced with the SYNC_INPUT version.
1505 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
1506 Remove decls.
1507 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
1508 Now static.
1509
1510 * font.c (Ffont_shape_gstring): Remove unused local.
1511
1512 2012-09-16 Glenn Morris <rgm@gnu.org>
1513
1514 * Makefile.in (clean): No longer run nextstep's clean.
1515
1516 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
1517 (ns_frag): Remove.
1518 (ns-app): Move here from ns.mk, and simplify.
1519 (clean): Simplify nextstep entry.
1520 * ns.mk: Remove file.
1521
1522 2012-09-17 Kenichi Handa <handa@gnu.org>
1523
1524 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
1525 not covert the last few charactes.
1526
1527 2012-09-16 Kenichi Handa <handa@gnu.org>
1528
1529 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
1530 here, but just check the validity of glyphs in the glyph-string.
1531
1532 2012-09-16 Martin Rudalics <rudalics@gmx.at>
1533
1534 * window.c (Fwindow_parameter, Fset_window_parameter):
1535 Accept any window as argument (Bug#12452).
1536
1537 2012-09-16 Jan Djärv <jan.h.d@swipnet.se>
1538
1539 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
1540 to ns_term_init to avoid memory leak.
1541
1542 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
1543 explicit retain/release.
1544 (ns_term_init): Only allow one display. Initialize outerpool and
1545 ns_*_types.
1546
1547 2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
1548
1549 Port _setjmp fix to POSIXish hosts as well as Microsoft.
1550 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
1551 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
1552 the Microsoft problem in a different way, by altering ../nt/config.nt.
1553
1554 2012-09-15 Eli Zaretskii <eliz@gnu.org>
1555
1556 * w32xfns.c:
1557 * w32uniscribe.c:
1558 * w32term.c:
1559 * w32select.c:
1560 * w32reg.c:
1561 * w32proc.c:
1562 * w32menu.c:
1563 * w32inevt.c:
1564 * w32heap.c:
1565 * w32font.c:
1566 * w32fns.c:
1567 * w32console.c:
1568 * w32.c:
1569 * w16select.c: Remove inclusion of setjmp.h, as it is now included
1570 by lisp.h. This completes removal of setjmp.h inclusion
1571 erroneously announced in the previous commit. (Bug#12446)
1572
1573 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
1574 more accurate.
1575
1576 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
1577 not defined as a macro. The latter happens on MS-Windows.
1578 (Bug#12446)
1579
1580 2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
1581
1582 Port better to POSIX hosts lacking _setjmp (Bug#12446).
1583 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
1584 Some instances of '#include <setjmp.h>' removed, if the
1585 only reason for the instance was because "lisp.h" was included.
1586 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
1587 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
1588 and _longjmp with the new symbols. Emacs already uses _setjmp if
1589 available, so this change affects only POSIXish hosts that have
1590 sigsetjmp but not _setjmp, such as some versions of Solaris and
1591 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
1592 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
1593 (png_load_body) [HAVE_PNG]:
1594 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
1595 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
1596 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
1597 since PNG requires jmp_buf. This is the only exception to the
1598 general rule that we now use sys_setjmp and sys_longjmp.
1599 This exception is OK since this code does not change the signal
1600 mask or longjmp out of a signal handler.
1601
1602 2012-09-14 Paul Eggert <eggert@cs.ucla.edu>
1603
1604 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
1605 Include "syssignal.h", for 'main_thread'.
1606
1607 2012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
1608
1609 Avoid out-of-range marker position (Bug#12426).
1610 * insdel.c (replace_range, replace_range_2):
1611 Adjust markers before overlays, as suggested by comments.
1612 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
1613 Remove redundant check before calling offset_intervals.
1614
1615 2012-09-14 Martin Rudalics <rudalics@gmx.at>
1616
1617 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
1618 current buffer (Bug#12387).
1619
1620 2012-09-14 Juanma Barranquero <lekktu@gmail.com>
1621
1622 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
1623
1624 2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
1625
1626 Use a more backwards-compatible timer format (Bug#12430).
1627 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
1628 vector element, not from the 4th, since PSECS is now at the end.
1629 (Fcurrent_idle_time): Doc fix.
1630
1631 2012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
1632
1633 Function to mark objects and remove killed buffers at once.
1634 * alloc.c (discard_killed_buffers): Rename to ...
1635 (mark_discard_killed buffers) ... new name. Add marking
1636 of remaining objects. Fix comment. Adjust users.
1637 (mark_object): Do not touch frame buffer lists here.
1638 * frame.c (delete_frame): Reset frame buffer lists here.
1639
1640 2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
1641
1642 Better workaround for GNOME bug when --enable-gcc-warnings.
1643 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
1644 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
1645 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
1646
1647 Simplify SIGIO usage (Bug#12408).
1648 The code that dealt with SIGIO was crufty and confusing, e.g., it
1649 played tricks like "#undef SIGIO" but these tricks were not used
1650 consistently. Simplify mostly by not #undeffing standard symbols,
1651 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
1652 or not as we please) rather than "defined SIGIO" (standard symbol
1653 that we probably shouldn't #undef).
1654 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
1655 Modules that need it can include it.
1656 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
1657 * dispextern.h (ignore_sigio): New decl.
1658 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
1659 unconditionally, since it's now a no-op if !USABLE_SIGIO.
1660 * emacs.c (shut_down_emacs):
1661 * keyboard.c (kbd_buffer_store_event_hold):
1662 Use ignore_sigio rather than invoking 'signal' directly.
1663 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
1664 for FIONREAD.
1665 (FIONREAD, SIGIO): Do not #undef.
1666 (tty_read_avail_input): Use #error rather than a syntax error.
1667 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
1668 for I_PIPE, used by SETUP_SLAVE_PTY.
1669 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
1670 * sysdep.c (croak): Remove; no longer needed. This bit of
1671 temporary code, with Fred N. Fish's comment that it's temporary,
1672 has been in Emacs since at least 1992!
1673 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
1674 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
1675 * syssignal.h (croak): Remove decl.
1676 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
1677 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
1678 now that we're termios-only.
1679 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
1680 * term.c (dissociate_if_controlling_tty): Use #error rather than
1681 a run-time error.
1682
1683 Work around GCC and GNOME bugs when --enable-gcc-warnings.
1684 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
1685 to work around GNOME bug 683906.
1686 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
1687 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
1688 This works around GCC bug 54561.
1689
1690 2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
1691
1692 More fixes for 'volatile' and setjmp/longjmp.
1693 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
1694 * image.c (struct png_load_context) [HAVE_PNG]: New type.
1695 (png_load_body) [HAVE_PNG]:
1696 (jpeg_load_body) [HAVE_JPEG]:
1697 New function, with most of the old parent function's body.
1698 (png_load) [HAVE_PNG]:
1699 (jpeg_load) [HAVE_JPEG]:
1700 Invoke the new function, to avoid longjmp munging our locals.
1701 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
1702 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
1703 longjmp is passed 2, as the C standard doesn't guarantee this.
1704 Instead, store the failure code into mgr->failure_code.
1705
1706 2012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
1707
1708 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
1709 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
1710 (syms_of_keyboard): Remove support for unread-command-char.
1711
1712 2012-09-12 Eli Zaretskii <eliz@gnu.org>
1713
1714 * w32proc.c (sys_kill): If PID is our process ID and the signal is
1715 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
1716 violation. (Bug#12426)
1717
1718 2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
1719
1720 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
1721
1722 2012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
1723
1724 * eval.c: Add `inhibit-debugger'.
1725 (Qinhibit_debugger): New symbol.
1726 (call_debugger): Bind it instead of Qdebug_on_error.
1727 (maybe_call_debugger): Test Vinhibit_debugger.
1728 (syms_of_eval): Define inhibit-debugger.
1729 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
1730 (syms_of_xdisp): Remove inhibit-debug-on-message.
1731
1732 2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
1733
1734 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
1735 If a nonvolatile local variable is written before a _longjmp to
1736 the frame containing the variable, and is read after the _longjmp,
1737 the value read is indeterminate. Some local variables of type
1738 'struct handler' and 'struct catchtag' are used in this way, so
1739 mark each of their slots as volatile if the slot can be set before
1740 _longjmp and read afterwards.
1741 * lisp.h (struct handler): var and chosen_clause are now volatile.
1742 (struct catchtag): val, next, and pdlcount are now volatile.
1743
1744 * bidi.c (bidi_push_it, bidi_pop_it):
1745 * fns.c (copy_hash_table):
1746 * image.c (define_image_type):
1747 * keyboard.c (kbd_buffer_store_event_hold):
1748 * process.c (Fprocess_send_eof):
1749 * xfaces.c (x_create_gc) [HAVE_NS]:
1750 * xgselect.c (xg_select):
1751 Prefer assignment to memcpy when either will do.
1752
1753 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
1754 Use pointer-to-a-pointer to simplify and avoid a NILP check each
1755 time an item is removed. No need to mark this function 'inline';
1756 the compiler knows better than we do.
1757
1758 2012-09-11 Jan Djärv <jan.h.d@swipnet.se>
1759
1760 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
1761 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
1762 to change_frame_size (Bug#12388).
1763 (windowDidResize:): Pass YES to updateFrameSize.
1764
1765 * nsterm.h: Add delay parameter to updateFrameSize.
1766
1767 2012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
1768
1769 Discard killed buffers from deleted window and frame objects.
1770 This reduces an amount of references to killed buffers and
1771 helps GC to reclaim them faster.
1772 * alloc.c (discard_killed_buffers): New function.
1773 (mark_object): Use it for deleted windows and frames.
1774 (mark_object): If symbol's value is set up for a killed buffer
1775 or deleted frame, restore it's global binding.
1776 * data.c (swap_in_global_binding): Add GC notice.
1777 (swap_in_symval_forwarding): Use convenient set_blv_where.
1778 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
1779 * window.h: ... to here.
1780
1781 2012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
1782
1783 Convenient macro to check whether the buffer is live.
1784 * buffer.h (BUFFER_LIVE_P): New macro.
1785 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
1786 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
1787
1788 2012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1789
1790 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
1791 composition cases (Bug#12364).
1792
1793 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
1794 overhang of succeeding glyphs overlapping box cursor.
1795
1796 * w32term.c (x_draw_glyph_string): Likewise.
1797
1798 2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
1799
1800 Simplify, document, and port floating-point (Bug#12381).
1801 The porting part of this patch fixes bugs on non-IEEE platforms
1802 with frexp, ldexp, logb.
1803 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
1804 Now static.
1805 * floatfns.c: Simplify discussion of functions that Emacs doesn't
1806 support, by removing commented-out code and briefly listing the
1807 C89 functions excluded. The commented-out stuff was confusing
1808 maintenance, e.g., we thought we needed cbrt but it was commented out.
1809 (logb): Remove decl; no longer needed.
1810 (isfinite): New macro, if not already supplied.
1811 (isnan): Don't replace any existing macro.
1812 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
1813 are present on all C89 platforms.
1814 (Ffrexp): Do not special-case zero, as frexp does the right thing
1815 for that case.
1816 (Flogb): Do not use logb, as it doesn't have the desired meaning
1817 on hosts that use non-base-2 floating point. Instead, stick with
1818 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
1819 frexp, to avoid getting an unspecified result.
1820
1821 * xdisp.c (Qinhibit_debug_on_message): Now static.
1822
1823 2012-09-10 Jan Djärv <jan.h.d@swipnet.se>
1824
1825 * nsterm.m (ns_update_begin): Set clip path to whole view by using
1826 NSBezierPath (Bug#12131).
1827
1828 2012-09-10 Chong Yidong <cyd@gnu.org>
1829
1830 * fns.c (Fdelq, Fdelete): Doc fix.
1831
1832 2012-09-10 Paul Eggert <eggert@cs.ucla.edu>
1833
1834 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
1835 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
1836
1837 2012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
1838
1839 * lisp.h (make_lisp_ptr): New macro to replace XSET.
1840 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
1841 Use it.
1842
1843 2012-09-09 Eli Zaretskii <eliz@gnu.org>
1844
1845 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
1846 left fringe if the window has a left margin. This avoids leaving
1847 traces of the cursor because its leftmost pixel is not drawn over.
1848
1849 * dispnew.c (update_window_line): When the left margin area of a
1850 screen line is updated, set the redraw_fringe_bitmaps_p flag of
1851 that screen line. (Bug#12277)
1852
1853 2012-09-09 Paul Eggert <eggert@cs.ucla.edu>
1854
1855 Assume C89 or later for math functions (Bug#12381).
1856 This simplifies the code, and makes it a bit smaller and faster,
1857 and (most important) makes it easier to clean up signal handling
1858 since we can stop worring about floating-point exceptions in
1859 library code. That was a problem before C89, but the problem
1860 went away many years ago on all practical Emacs targets.
1861 * data.c, image.c, lread.c, print.c:
1862 Don't include <math.h>; no longer needed.
1863 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
1864 might be autoconfigured, as that never happens.
1865 * data.c (fmod):
1866 * doprnt.c (DBL_MAX_10_EXP):
1867 * print.c (DBL_DIG):
1868 Remove. C89 or later always defines these.
1869 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
1870 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
1871 (arith_error, domain_error, domain_error2):
1872 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
1873 no longer needed -- we simply return what C returns. All uses removed.
1874 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
1875 the wrapped code.
1876 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
1877 Remove. All uses expanded, as these macros are no longer used
1878 more than once and are now more trouble than they're worth.
1879 (Ftan): Use tan, not sin / cos.
1880 (Flogb): Assume C89 frexp.
1881 (fmod_float): Assume C89 fmod.
1882 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
1883 (init_floatfns): Remove. All uses removed.
1884
1885 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
1886
1887 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
1888 compositeToPoint for OSX < 10.6 (Bug#12390).
1889
1890 2012-09-08 Paul Eggert <eggert@cs.ucla.edu>
1891
1892 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
1893 This produces more-accurate results.
1894
1895 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
1896
1897 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
1898 changes (Bug#12088).
1899
1900 2012-09-08 Chong Yidong <cyd@gnu.org>
1901
1902 * syntax.c (Fstring_to_syntax): Doc fix.
1903
1904 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
1905
1906 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
1907 in the internal border.
1908 (x_set_window_size): Remove static variables and their usage.
1909 (ns_redraw_scroll_bars): Fix NSTRACE arg.
1910 (ns_after_update_window_line, ns_draw_fringe_bitmap):
1911 Remove fringe/internal border adjustment (Bug#11052).
1912 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
1913 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
1914 (ns_fix_rect_ibw): Remove.
1915 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
1916 (ns_dumpglyphs_box_or_relief): Ditto.
1917 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
1918 adjustment.
1919 (ns_dumpglyphs_image): Ditto.
1920 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
1921 border adjustment.
1922 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
1923 their usage. Add fringe_extended_p and its use as in other terms.
1924 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
1925 scroll bar was removed.
1926 (updateFrameSize): New function.
1927 (windowDidResize): Move code to updateFrameSize and call it.
1928
1929 * nsterm.h (EmacsView): Add updateFrameSize.
1930
1931 2012-09-07 Chong Yidong <cyd@gnu.org>
1932
1933 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
1934
1935 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
1936
1937 2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
1938
1939 More signal-handler cleanup (Bug#12327).
1940 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
1941 Problem introduced when merging patches. Noted by Eli Zaretskii in
1942 <http://bugs.gnu.org/12327#67>.
1943 * floatfns.c: Comment fix.
1944 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
1945 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
1946 and anyway the declaration is harmless even if SIGDANGER is not defined.
1947 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
1948 defined BROKEN_FIONREAD). systty.h formerly did this, but other
1949 source files not surprisingly expected syssignal.h to define, or
1950 not define, SIGIO, and it's cleaner to do it that way, for consistency.
1951 Include <sys/ioctl.h>, for FIONREAD.
1952 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
1953 This eliminates a problem whereby other files mysteriously had
1954 to include "syssignal.h" before including "systty.h" if they
1955 wanted to use "#ifdef SIGIO".
1956
1957 2012-09-07 Eli Zaretskii <eliz@gnu.org>
1958
1959 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
1960
1961 * w32.c (sigemptyset): Empty the set.
1962 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
1963
1964 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
1965
1966 2012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
1967
1968 * alloc.c (mark_buffer): Revert unsafe marking optimization.
1969 (mark_object): Likewise for frame objects.
1970
1971 2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
1972
1973 * syssignal.h (handle_on_main_thread): Always declare,
1974 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
1975 This ports to platforms without HAVE_PTHREAD.
1976
1977 2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
1978
1979 Signal-handler cleanup (Bug#12327).
1980 Emacs's signal handlers were written in the old 4.2BSD style with
1981 sigblock and sigmask and so forth, and this led to some
1982 inefficiencies and confusion. Rewrite these to use
1983 pthread_sigmask etc. without copying signal sets around. Also,
1984 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
1985 'signal', and instead use functions that do not attempt to take
1986 over the system name space. This patch causes Emacs's text
1987 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
1988 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
1989 Do not include <signal.h> or "syssignal.h", as these
1990 modules do not use signals.
1991 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
1992 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
1993 Do not include <signal.h>, as "syssignal.h" does that for us now.
1994 * atimer.c (sigmask_atimers): New function.
1995 (block_atimers, unblock_atimers): New functions,
1996 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
1997 All uses replaced.
1998 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
1999 no longer needed here.
2000 * emacs.c (main): Inspect existing signal handler with sigaction,
2001 so that there's no need to block and unblock SIGHUP.
2002 * sysdep.c (struct save_signal): New member 'action', replacing
2003 old member 'handler'.
2004 (save_signal_handlers, restore_signal_handlers):
2005 Use sigaction instead of 'signal' to save and restore.
2006 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
2007 New function. All users of 'signal' modified to use set_sighandler
2008 if they're writeonly, and to use sys_signal if they're read+write.
2009 (emacs_sigaction_init, forwarded_signal): New functions.
2010 (sys_signal): Remove. All uses replaced by calls to sigaction
2011 and emacs_sigaction_init, or by direct calls to 'signal'.
2012 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
2013 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
2014 all uses replaced by pthread_sigmask etc. calls.
2015 * syssignal.h: Include <signal.h>.
2016 (emacs_sigaction_init, forwarded_signal): New decls.
2017 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
2018 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
2019 (sigmask, sys_sigmask): Remove; no longer needed.
2020 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
2021 (sigblock, sigunblock, sigfree):
2022 (sigsetmask) [!defined sigsetmask]:
2023 Remove. All uses replaced by pthread_sigmask.
2024 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
2025 no longer need to be replaced, and its typical old uses
2026 are now done via emacs_sigaction_init and sigaction.
2027 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
2028 (sys_sigdel): Remove; unused.
2029 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
2030
2031 2012-09-06 Eli Zaretskii <eliz@gnu.org>
2032
2033 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
2034 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
2035
2036 2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2037
2038 Explicitly mark buffer_defaults and buffer_local_symbols.
2039 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
2040 mark_local_symbols here.
2041 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
2042 since special buffers aren't marked here any more.
2043 (allocate_buffer): Chain new buffer with all_buffers here...
2044 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
2045 not here.
2046 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
2047 (syms_of_buffer): Remove staticpro of the above.
2048 (init_buffer_once): Set names for buffer_defaults and
2049 buffer_local_symbols.
2050
2051 2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
2052
2053 Use bool for booleans in font-related modules.
2054 * font.c (font_intern_prop, font_style_to_value)
2055 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
2056 (generate_otf_features, font_check_otf_features, font_check_otf)
2057 (font_match_p, font_list_entities, font_at):
2058 * fontset.c (fontset_id_valid_p, reorder_font_vector
2059 (fontset_find_font, Fset_fontset_font)
2060 (face_suitable_for_char_p) [0]:
2061 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
2062 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
2063 (m17n_flt_initialized, ftfont_shape_by_flt):
2064 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
2065 * nsfont.m (nsfont_draw):
2066 * w32font.c (w32font_draw):
2067 * w32term.c (x_draw_glyphless_glyph_string_foreground):
2068 Use bool for booleans.
2069 * font.h: Adjust to above API changes.
2070 (struct font, struct font_driver, struct font_driver_list):
2071 Use bool for booleans.
2072 (struct font): Remove useless member encoding_type.
2073 All users removed.
2074 * fontset.c, xftfont.c: Omit unnecessary static decls.
2075
2076 2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2077
2078 * alloc.c (mark_object): Revert window marking code
2079 since it's unsafe for the Fset_window_configuration.
2080
2081 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
2082
2083 Fix race conditions with signal handlers and errno (Bug#12327).
2084 Be more systematic about preserving errno whenever a signal
2085 handler returns, even if it's not in the main thread. Do this by
2086 renaming signal handlers to distinguish between signal delivery
2087 and signal handling. All uses changed.
2088 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
2089 * data.c (deliver_arith_signal): Rename from arith_error.
2090 * dispnew.c (deliver_window_change_signal): Rename from
2091 window_change_signal.
2092 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
2093 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
2094 * keyboard.c (deliver_input_available_signal): Rename from
2095 input_available_signal.
2096 (deliver_user_signal): Rename from handle_user_signal.
2097 (deliver_interrupt_signal): Rename from interrupt_signal.
2098 * process.c (deliver_pipe_signal): Rename from send_process_trap.
2099 (deliver_child_signal): Rename from sigchld_handler.
2100 * atimer.c (handle_alarm_signal):
2101 * data.c (handle_arith_signal):
2102 * dispnew.c (handle_window_change_signal):
2103 * emacs.c (handle_fatal_signal, handle_danger_signal):
2104 * keyboard.c (handle_input_available_signal):
2105 * keyboard.c (handle_user_signal, handle_interrupt_signal):
2106 * process.c (handle_pipe_signal, handle_child_signal):
2107 New functions, with the actual signal-handling code taken from the
2108 original respective signal handlers, sans the sporadic attempts to
2109 preserve errno, since that's now done by handle_on_main_thread.
2110 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
2111 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
2112 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2113 Move to sysdep.c.
2114 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2115 Move initialization of main_thread to sysdep.c's init_signals.
2116 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
2117 our usage, and simplifies the mainline code.
2118 (record_child_status_change): New static function, as a helper
2119 for handle_child_signal, and with most of the old child handler's
2120 contents.
2121 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
2122 (handle_child_signal): Use the above.
2123 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
2124 Moved here from emacs.c.
2125 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
2126 code moved here from emacs.c's main function.
2127 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
2128 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
2129 This lets callers save and restore errno properly.
2130
2131 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2132
2133 Remove redundant or unused things here and there.
2134 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
2135 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
2136 * editfns.c (Fcompare_buffer_substrings): Likewise.
2137 * frame.h (struct terminal, struct font_driver_list):
2138 Remove redundant declarations.
2139 * window.h (Qleft, Qright): Likewise.
2140
2141 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2142
2143 Do not mark objects from deleted buffers, windows and frames.
2144 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
2145 (mark_object): Likewise for windows and frames.
2146
2147 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2148
2149 * alloc.c (valid_lisp_object_p): Treat killed buffers,
2150 buffer_defaults and buffer_local_symbols as valid objects.
2151 Return special value to denote them.
2152
2153 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
2154
2155 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
2156 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
2157 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
2158 (file_name_absolute_p, Fsubstitute_in_file_name):
2159 (check_executable, check_writable, Ffile_accessible_directory_p)
2160 (Fset_file_selinux_context, Fdefault_file_modes)
2161 (Finsert_file_contents, choose_write_coding_system)
2162 (Fwrite_region, build_annotations, a_write, e_write)
2163 (Fdo_auto_save):
2164 * filelock.c (boot_time_initialized, get_boot_time)
2165 (get_boot_time_1, lock_file_1, within_one_second):
2166 * floatfns.c (in_float):
2167 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
2168 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
2169 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
2170 * lisp.h (struct Lisp_Hash_Table.cmpfn):
2171 * window.c (compare_window_configurations):
2172 Use bool for booleans.
2173 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
2174 (Fdefault_file_modes): Now mode_t, not int, for modes.
2175 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
2176 (internal_delete_file): Now returns void, not a (boolean) int,
2177 since nobody was looking at the return value.
2178 * lisp.h, window.h: Adjust to above API changes.
2179
2180 * xdisp.c (set_message): Simplify and reindent last change.
2181
2182 2012-09-05 Juanma Barranquero <lekktu@gmail.com>
2183
2184 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
2185
2186 2012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
2187
2188 * eval.c (call_debugger): Make the function non-static so that we
2189 can call it from set_message.
2190
2191 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
2192 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
2193
2194 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2195
2196 Give more-useful info on a fatal error (Bug#12328).
2197 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
2198 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
2199 of doing the work ourselves.
2200 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
2201 do most of the work.
2202 (fatal_error_backtrace): New function, taken from the guts
2203 of the old fatal_error_signal, but with a new option to output
2204 a backtrace.
2205 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
2206 info about the signal than just its number.
2207 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
2208 * sysdep.c: Include <execinfo.h>
2209 (emacs_backtrace): New function, taken partly from the previous
2210 code of the 'die' function.
2211 (emacs_abort): Call fatal_error_backtrace rather than abort.
2212
2213 2012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
2214
2215 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
2216 eager (load-time) macro-expansion.
2217 * lisp.mk (lisp): Add macroexp.
2218
2219 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2220
2221 Simplify redefinition of 'abort' (Bug#12316).
2222 Do not try to redefine the 'abort' function. Instead, redo
2223 the code so that it calls 'emacs_abort' rather than 'abort'.
2224 This removes the need for the NO_ABORT configure-time macro
2225 and makes it easier to change the abort code to do a backtrace.
2226 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
2227 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
2228 Remove; sysdep.c's emacs_abort now takes its place.
2229 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
2230 'abort' changed to use 'emacs_abort'.
2231 * msdos.c (dos_abort) [defined abort]: Remove; not used.
2232 (abort) [!defined abort]: Rename to ...
2233 (emacs_abort): ... new name.
2234 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
2235 the place of the old 'abort' in emacs.c.
2236 * w32.c, w32fns.c (abort): Do not #undef.
2237 * w32.c (emacs_abort): Rename from w32_abort.
2238
2239 2012-09-04 Eli Zaretskii <eliz@gnu.org>
2240
2241 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
2242 offsets[j].dv, since the y axis of the screen coordinates points
2243 down, while the y axis of the font definition coordinates points
2244 up. This fixes display of Arabic diacritics such as KASRA and
2245 KASRATAN. (Bug#11860)
2246
2247 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2248
2249 Be more systematic about _setjmp vs setjmp.
2250 * alloc.c (test_setjmp, mark_stack):
2251 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
2252 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
2253 (png_load, my_error_exit, jpeg_load):
2254 * process.c (send_process_trap, send_process):
2255 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
2256 The underscored versions are up to 30x faster on some hosts.
2257 Formerly, the code used setjmp+longjmp sometimes and
2258 _setjmp+_longjmp at other times, with no particular reason to
2259 prefer setjmp+longjmp.
2260
2261 2012-09-03 Paul Eggert <eggert@cs.ucla.edu>
2262
2263 Fix minor problem found by static checking.
2264 * buffer.c (Fdelete_all_overlays): Return nil.
2265
2266 2012-09-03 Martin Rudalics <rudalics@gmx.at>
2267
2268 * buffer.c (Fdelete_all_overlays): New function.
2269
2270 2012-09-03 Chong Yidong <cyd@gnu.org>
2271
2272 * gtkutil.c: Add extern decl for Qxft.
2273
2274 2012-09-02 Paul Eggert <eggert@cs.ucla.edu>
2275
2276 * emacs.c, eval.c: Use bool for boolean.
2277 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
2278 (malloc_using_checking) [DOUG_LEA_MALLOC]:
2279 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
2280 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
2281 (main, decode_env_path, Fdaemon_initialized):
2282 * eval.c (call_debugger, Finteractive_p, interactive_p):
2283 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
2284 (maybe_call_debugger, Fbacktrace):
2285 * process.c (read_process_output, exec_sentinel):
2286 Use bool for booleans.
2287 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
2288 All callers changed.
2289 * eval.c (interactive_p): Omit always-true boolean argument
2290 EXCLUDE_SUBRS_P. All callers changed.
2291 * dispextern.h, lisp.h: Reflect above API changes.
2292 * firstfile.c (dummy): Use the address of 'main', whose signature
2293 won't change, instead of the address of 'initialize', whose
2294 signature just changed from int to bool.
2295 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
2296 * msdos.c (fatal_error_in_progress): ... from here.
2297 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
2298 of incrementing it.
2299 (redisplay_internal, unwind_redisplay): Simply clear
2300 REDISPLAYING_P when unwinding, instead of saving its previous,
2301 always-false value and then restoring it.
2302
2303 Clean up some extern decls.
2304 Mostly, this hoists extern decls out of .c files and into .h files.
2305 That way, we're more likely to catch errors if the interfaces change.
2306 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
2307 declare xg_mark_data.
2308 * dispextern.h (x_frame_parm_handlers):
2309 * font.h (Qxft):
2310 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
2311 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
2312 (Qultra_bold, Qoblique, Qitalic):
2313 Move extern decl here from .c file.
2314 * alloc.c (xg_mark_data) [USE_GTK]:
2315 * doc.c (Qclosure):
2316 * eval.c (Qlexical_binding):
2317 * fns.c (time) [!HAVE_UNISTD_H]:
2318 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
2319 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
2320 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
2321 * lread.c (Qinternal_interpreter_environment):
2322 * minibuf.c (Qbuffer):
2323 * process.c (QCfamily, QCfilter):
2324 * widget.c (free_frame_faces):
2325 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
2326 * xfont.c (x_clear_errors):
2327 * xterm.c (x_frame_parm_handlers):
2328 Remove now-redundant extern decls.
2329 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
2330 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
2331 Now static.
2332 * xfaces.c: Remove unnecessary static decls.
2333 * xterm.c (updating_frame): Remove decl of nonexistent object.
2334
2335 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
2336 when building globals.h, as the objects that are not built on
2337 this host are not needed to compile C files on this host.
2338
2339 2012-09-02 Jan Djärv <jan.h.d@swipnet.se>
2340
2341 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
2342
2343 * frame.h: Add missing prototype for x_wm_set_size_hint.
2344
2345 2012-09-02 Paul Eggert <eggert@cs.ucla.edu>
2346
2347 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
2348 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
2349 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
2350 (Fsubstitute_command_keys):
2351 * editfns.c (region_limit, find_field, Fconstrain_to_field)
2352 (save_excursion_save, save_excursion_restore)
2353 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
2354 (format_time_string, general_insert_function)
2355 (make_buffer_string, make_buffer_string_both)
2356 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
2357 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
2358 (copy_text, insert_1, insert_1_both, insert_from_string)
2359 (insert_from_string_before_markers, insert_from_string_1)
2360 (insert_from_buffer, insert_from_buffer_1, replace_range)
2361 (replace_range_2, del_range_1, del_range_byte, del_range_both)
2362 (del_range_2, modify_region):
2363 * intervals.c (intervals_equal, balance_possible_root_interval)
2364 (adjust_intervals_for_insertion, merge_properties_sticky)
2365 (graft_intervals_into_buffer, lookup_char_property)
2366 (adjust_for_invis_intang, set_point_both)
2367 (get_property_and_range, compare_string_intervals)
2368 (set_intervals_multibyte_1, set_intervals_multibyte):
2369 * keyboard.c (decode_timer):
2370 Use bool for boolean.
2371 * intervals.h, lisp.h, systime.h: Reflect above API changes.
2372 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
2373
2374 2012-09-02 Chong Yidong <cyd@gnu.org>
2375
2376 * keymap.c (push_key_description): Print M-TAB as C-M-i
2377 (Bug#11758).
2378
2379 2012-09-02 Juanma Barranquero <lekktu@gmail.com>
2380
2381 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
2382 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
2383 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
2384 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
2385 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
2386 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
2387 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
2388
2389 2012-09-01 Eli Zaretskii <eliz@gnu.org>
2390
2391 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
2392 more than one grapheme cluster passed to the shaper: compute the
2393 offset adjustment values separately for each cluster. (Bug#11860)
2394
2395 * image.c: Restore mistakenly removed inclusion of w32.h. Without
2396 it, GCC doesn't see prototypes of w32_delayed_load, and complains
2397 about implicit conversions from integer to pointer.
2398
2399 2012-09-01 Daniel Colascione <dancol@dancol.org>
2400
2401 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
2402 system used too early.
2403
2404 2012-09-01 Paul Eggert <eggert@cs.ucla.edu>
2405
2406 Better seed support for (random).
2407 * emacs.c (main): Call init_random.
2408 * fns.c (Frandom): Set the seed from a string argument, if given.
2409 Remove long-obsolete Gentzel cruft.
2410 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
2411 (init_random): New function.
2412
2413 2012-09-01 Daniel Colascione <dancol@dancol.org>
2414
2415 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
2416 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
2417 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
2418 x_wm_set_size_hint, x_query_colors, x_real_positions,
2419 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
2420 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
2421 all of which have been moved to common code.
2422
2423 * xfaces.c: Include TERM_HEADER instead of listing all possible
2424 window-system headers.
2425
2426 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
2427 to match header.
2428
2429 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
2430 directly accessing frame internals.
2431
2432 * w32font.h: Include font.h. Define syms_of_w32font and
2433 globals_of_w32font.
2434
2435 * process.c: Include TERM_HEADER instead of listing all possible
2436 window-system headers.
2437
2438 * nsterm.h: Remove declarations now in frame.h.
2439 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
2440
2441 * menu.c: Include TERM_HEADER instead of listing all possible
2442 window-system headers.
2443
2444 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
2445 window system.
2446
2447 * keyboard.c: Include TERM_HEADER instead of listing all possible
2448 window-system headers.
2449
2450 * image.c: Include TERM_HEADER instead of listing all possible
2451 window-system headers. Declare Vlibrary_cache when compiling for
2452 Windows.
2453
2454 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
2455 window system declarations.
2456
2457 * frame.h: Move common functions here: set_frame_menubar,
2458 x_set_window_size, x_sync, x_get_focus_frame,
2459 x_set_mouse_position, x_set_mouse_pixel_position,
2460 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
2461 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
2462 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
2463 x_activate_menubar, x_real_positions, x_bitmap_icon,
2464 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
2465 and x_query_colors.
2466
2467 * frame.c: Include TERM_HEADER instead of listing all possible
2468 window-system headers.
2469
2470 * font.c: Include TERM_HEADER instead of listing all possible
2471 window-system headers.
2472
2473 * emacs.c: Include TERM_HEADER.
2474
2475 * dispnew.c: Include TERM_HEADER instead of listing all possible
2476 window-system headers.
2477
2478 * ccl.h: Include character.h.
2479
2480 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
2481 the current window system; include in list of objects to link into
2482 Emacs.
2483
2484 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
2485
2486 Remove mark_ttys function and fix tty_display_info initialization.
2487 * lisp.h (mark_ttys): Remove prototype.
2488 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
2489 to mark_ttys because all possible values of 'top_frame' slot are
2490 the frames which are reachable from Vframe_list.
2491 * term.c (mark_ttys): Remove.
2492 (init_tty): Safely initialize 'top_frame' slot with Qnil.
2493
2494 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
2495
2496 Change struct frame bitfields from unsigned char to unsigned.
2497 * frame.h (struct frame): Change type of 'display_preempted',
2498 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
2499 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
2500 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
2501 bitfields from unsigned char to unsigned.
2502
2503 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
2504
2505 Remove unused member of struct x_output and struct w32_output.
2506 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
2507 * w32term.h (struct w32_output): Likewise.
2508
2509 2012-08-30 Jan Djärv <jan.h.d@swipnet.se>
2510
2511 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
2512 does not become zero (Bug#12234).
2513
2514 2012-08-30 Paul Eggert <eggert@cs.ucla.edu>
2515
2516 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
2517 for GCC 4.7.1 x86-64.
2518
2519 2012-08-30 Glenn Morris <rgm@gnu.org>
2520
2521 * lread.c (init_lread): For out-of-tree builds, only add the
2522 source directory's site-lisp dir to the load-path if it exists,
2523 consistent with in-tree builds. (Bug#12302)
2524
2525 2012-08-28 Jan Djärv <jan.h.d@swipnet.se>
2526
2527 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
2528 button_values to NULL. Call setStykeMask so dialogs get a close button.
2529 (windowShouldClose:): Set window_closed.
2530 (dealloc): New member, free button_values.
2531 (process_dialog:): Make member function. Remove window argument,
2532 replace window with self. Count buttons and allocate and store values
2533 in button_values.
2534 (addButton:value:row:): value is int with the name tag. Call setTag
2535 with tag. Remove return self, declare return value as void.
2536 (addString:row:): Remove return self, declare return value as void.
2537 (addSplit): Remove return self, declare return value as void.
2538 (clicked:): Remove return self, declare return value as void.
2539 Set dialog_return to button_values[seltag]. Code formatting change.
2540 (initFromContents:isQuestion:): Adjust call to process_dialog.
2541 Code formatting change.
2542 (timeout_handler:): Set timer_fired to YES.
2543 (runDialogAt:): Set timer_fired to NO.
2544 Handle click on close button as quit.
2545
2546 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
2547 Add window_closed and button_values. Add void as return value for
2548 add(Button|String|Split). addButton takes int instead of Lisp_Object.
2549 Add process_dialog as new member.
2550
2551 2012-08-28 Eli Zaretskii <eliz@gnu.org>
2552
2553 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
2554 is not one of the heaps we manage. (Bug#12242)
2555
2556 2012-08-28 Glenn Morris <rgm@gnu.org>
2557
2558 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
2559
2560 2012-08-28 Martin Rudalics <rudalics@gmx.at>
2561
2562 * window.c (Fset_window_configuration): Remove handling of
2563 auto-buffer-name window parameter. Install revision of reverted
2564 fix.
2565
2566 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2567
2568 Do not allow to set major mode for a dead buffer.
2569 * buffer.c (Fset_buffer_major_mode): Signal an error
2570 if the buffer is dead.
2571 (Fother_buffer, other_buffer_safely): Remove redundant
2572 nested declaration.
2573
2574 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2575
2576 Always use set_buffer_if_live to restore original buffer at unwind.
2577 * buffer.h (record_unwind_current_buffer): New function.
2578 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
2579 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
2580 * undo.c, window.c: Adjust users.
2581 * buffer.c (set_buffer_if_live): Fix comment.
2582
2583 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2584
2585 Fix usage of set_buffer_internal.
2586 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
2587 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
2588 * coding.c (decode_coding): Omit redundant test.
2589 * fileio.c (decide_coding_unwind): Likewise.
2590 * fns.c (secure_hash): Likewise.
2591 * insdel.c (modify_region): Likewise.
2592 * keyboard.c (command_loop_1): Likewise.
2593 * print.c (PRINTFINISH): Likewise.
2594 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
2595
2596 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
2597
2598 * dispnew.c: Use bool for boolean.
2599 (frame_garbaged, display_completed, delayed_size_change)
2600 (fonts_changed_p, add_window_display_history)
2601 (add_frame_display_history, verify_row_hash)
2602 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
2603 (row_equal_p, realloc_glyph_pool)
2604 (allocate_matrices_for_frame_redisplay)
2605 (showing_window_margins_p)
2606 (adjust_frame_glyphs_for_frame_redisplay)
2607 (build_frame_matrix_from_leaf_window, make_current)
2608 (mirrored_line_dance, mirror_line_dance, update_frame)
2609 (update_window_tree, update_single_window)
2610 (check_current_matrix_flags, update_window, update_text_area)
2611 (update_window_line, set_window_update_flags, scrolling_window)
2612 (update_frame_1, scrolling, buffer_posn_from_coords)
2613 (do_pending_window_change, change_frame_size)
2614 (change_frame_size_1, sit_for):
2615 Use bool for boolean.
2616 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
2617 and remove last int (actually boolean) argument, which was always 0.
2618 All callers changed.
2619 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
2620 * dispextern.h (struct composition_it): Use bool for boolean.
2621 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
2622 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
2623 * dired.c (file_name_completion):
2624 Use bool for boolean. (This was missed in an earlier change.)
2625
2626 2012-08-27 Martin Rudalics <rudalics@gmx.at>
2627
2628 * window.c (Fset_window_configuration): Revert first part of
2629 last change.
2630
2631 2012-08-27 Jan Djärv <jan.h.d@swipnet.se>
2632
2633 * nsterm.h (NSPanel): New class variable dialog_return.
2634
2635 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
2636 Initialize dialog_return.
2637 (windowShouldClose:): Use stop instead of stopModalWithCode.
2638 (clicked:): Ditto, and also set dialog_return (Bug#12258).
2639 (timeout_handler:): Use stop instead of abortModal. Send a dummy
2640 event.
2641 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
2642 modal loop returns.
2643
2644 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
2645
2646 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
2647 * composite.c (find_composition, composition_gstring_p)
2648 (composition_reseat_it, find_automatic_composition):
2649 * data.c (let_shadows_buffer_binding_p)
2650 (let_shadows_global_binding_p, set_internal, make_blv)
2651 (Fmake_variable_buffer_local, Fmake_local_variable)
2652 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
2653 (cons_to_signed, arith_driver):
2654 * dbusbind.c (xd_in_read_queued_messages):
2655 * dired.c (directory_files_internal, file_name_completion):
2656 Use bool for booleans.
2657 * dired.c (file_name_completion):
2658 * process.h (fd_callback):
2659 Omit int (actually boolean) argument. It wasn't being used.
2660 All uses changed.
2661 * composite.h, lisp.h: Reflect above API changes.
2662
2663 * cmds.c, coding.c: Use bool for booleans.
2664 * cmds.c (move_point, Fself_insert_command):
2665 * coding.h (struct composition status, struct coding_system):
2666 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
2667 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
2668 (emacs_mule_char, decode_coding_emacs_mule)
2669 (encode_coding_emacs_mule, detect_coding_iso_2022)
2670 (decode_coding_iso_2022, encode_invocation_designation)
2671 (encode_designation_at_bol, encode_coding_iso_2022)
2672 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
2673 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
2674 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
2675 (encode_coding_raw_text, detect_coding_charset)
2676 (decode_coding_charset, encode_coding_charset, detect_eol)
2677 (detect_coding, get_translation_table, produce_chars)
2678 (consume_chars, reused_workbuf_in_use)
2679 (make_conversion_work_buffer, code_conversion_save)
2680 (decode_coding_object, encode_coding_object)
2681 (detect_coding_system, char_encodable_p)
2682 (Funencodable_char_position, code_convert_region)
2683 (code_convert_string, code_convert_string_norecord)
2684 (Fset_coding_system_priority):
2685 * fileio.c (Finsert_file_contents):
2686 Use bool for booleans.
2687 * coding.h, lisp.h: Reflect above API changes.
2688 * coding.c: Remove unnecessary static function decls.
2689 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
2690 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
2691 not a boolean 'int', since callers never look at the return value.
2692 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
2693 * coding.h (decoding_buffer_size, encoding_buffer_size)
2694 (emacs_mule_string_char): Remove unused extern decls.
2695 (struct iso_2022_spec, struct coding_system):
2696 Use 'unsigned int : 1' for boolean fields, since there's more than one.
2697 (struct emacs_mule_spec): Remove unused field 'full_support'.
2698 All initializations removed.
2699 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
2700
2701 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
2702
2703 Fix spare memory change (Bug#12286).
2704 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
2705 (valid_lisp_object_p): Likewise.
2706
2707 2012-08-27 Martin Rudalics <rudalics@gmx.at>
2708
2709 * window.c (Fset_window_configuration): Record any window's old
2710 buffer if it's replaced (see Bug#8789). If the new current
2711 buffer doesn't appear in the selected window, go to its old
2712 point (Bug#12208).
2713
2714 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
2715
2716 Special MEM_TYPE_SPARE to denote reserved memory.
2717 * alloc.c (enum mem_type): New memory type.
2718 (refill_memory_reserve): Use new type for spare memory.
2719 This prevents live_cons_p and live_string_p from incorrect
2720 detection of uninitialized objects from spare memory as live.
2721
2722 2012-08-26 Paul Eggert <eggert@cs.ucla.edu>
2723
2724 Spelling fixes.
2725 * Makefile.in (.PHONY): versioclean -> versionclean.
2726
2727 Remove unused external symbols.
2728 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
2729 * window.c (Qwindow_valid_p, decode_valid_window):
2730 Now static, not extern.
2731 * data.c (Qinterval): Remove; unused.
2732 (syms_of_data): Do not define 'interval'.
2733 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
2734 * window.h (decode_valid_window):
2735 Remove decls.
2736
2737 * character.c, charset.c, chartab.c: Use bool for booleans.
2738 * character.c (lisp_string_width, string_count_byte8)
2739 (string_escape_byte8):
2740 * charset.c (charset_map_loaded, load_charset_map, read_hex):
2741 (load_charset_map_from_file, map_charset_chars)
2742 (Fdefine_charset_internal, define_charset_internal)
2743 (Fdeclare_equiv_charset, find_charsets_in_text)
2744 (Ffind_charset_region, char_charset, Fiso_charset):
2745 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
2746 (sub_char_table_set, sub_char_table_set_range)
2747 (char_table_set_range, optimize_sub_char_table)
2748 (map_sub_char_table):
2749 Use bool for boolean.
2750 * character.c (str_to_unibyte): Omit last boolean argument; it was
2751 always 0. All callers changed.
2752 * character.h, charset.h: Adjust to match previous changes.
2753 * character.h (char_printable_p): Remove decl of nonexistent function.
2754 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
2755 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
2756 are all boolean, so make them single-bit bitfields.
2757
2758 * lisp.h (ASET): Remove attempt to detect side effects.
2759 It was meant to be temporary and it often doesn't work,
2760 because when IDX has side effects the behavior of IDX==IDX
2761 is undefined. See Stefan Monnier in
2762 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
2763
2764 2012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
2765
2766 * lisp.h (functionp): New function (extracted from Ffunctionp).
2767 (FUNCTIONP): Use it.
2768 * eval.c (Ffunctionp): Use it.
2769
2770 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
2771
2772 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
2773 as that's faster and simpler than static storage. Don't bother
2774 with the g_main_context_query overhead if g_main_context_pending
2775 says no events are pending.
2776 (gfds, gfds_size): Remove these static vars.
2777 (xgselect_initialize): Remove; no longer needed.
2778 All uses and decls removed.
2779
2780 * emacs.c (fatal_error_signal_hook): Remove.
2781 All uses removed. This leftover from old code was always 0.
2782
2783 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
2784 * casefiddle.c (casify_object, casify_region):
2785 * casetab.c (set_case_table):
2786 * category.c, category.h (word_boundary_p):
2787 * category.h (CHAR_HAS_CATEGORY):
2788 Use bool for booleans, instead of int.
2789
2790 2012-08-25 Eli Zaretskii <eliz@gnu.org>
2791
2792 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
2793
2794 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
2795
2796 On assertion failure, print backtrace if available.
2797 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
2798 (die) [ENABLE_CHECKING]: Print a backtrace if available.
2799 * Makefile.in (LIB_EXECINFO): New macro.
2800 (LIBES): Use it.
2801
2802 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
2803 * bytecode.c (exec_byte_code):
2804 * callint.c (check_mark, Fcall_interactively):
2805 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
2806 (getenv_internal, sync_process_alive, call_process_exited):
2807 * lisp.h (USE_SAFE_ALLOCA):
2808 Use bool for booleans, instead of int.
2809 * lisp.h, process.h: Adjust prototypes to match above changes.
2810 * callint.c (Fcall_interactively): Don't assume the mark's
2811 offset fits in 'int'.
2812
2813 2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
2814
2815 * buffer.c, buffer.h: Use bool for boolean.
2816 * buffer.c (reset_buffer_local_variables)
2817 (buffer_lisp_local_variables, Fset_buffer_modified_p)
2818 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
2819 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
2820 (overlay_touches_p, overlay_strings, Foverlay_put)
2821 (report_overlay_modification, call_overlay_mod_hooks):
2822 (mmap_enlarge, mmap_set_vars):
2823 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
2824 Use bool for booleans, instead of int.
2825 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
2826 since the 1-or-0 return value is always ignored anyway.
2827 (mmap_initialized_p):
2828 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
2829 * buffer.h, lisp.h: Adjust prototypes to match above changes.
2830
2831 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
2832
2833 * bidi.c: Use bool for boolean.
2834 This is a bit more readable, and makes the text segment of bidi.o
2835 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
2836 Presumably it's faster too.
2837 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
2838 Now bool.
2839 (bidi_cache_find_level_change, bidi_cache_iterator_state)
2840 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
2841 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
2842 (bidi_explicit_dir_char, bidi_level_of_next_char)
2843 (bidi_find_other_level_edge, bidi_move_to_visually_next):
2844 Use bool for booleans, instead of int.
2845 * dispextern.h (bidi_init_it, bidi_paragraph_init)
2846 (bidi_unshelve_cache): Adjust decls to match code.
2847
2848 2012-08-23 Martin Rudalics <rudalics@gmx.at>
2849
2850 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
2851 argument.
2852
2853 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
2854
2855 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
2856 * atimer.h: Include <stdbool.h>.
2857
2858 2012-08-22 Dan Nicolaescu <dann@gnu.org>
2859
2860 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
2861 compile time tests instead of run time tests on systems that do
2862 not use them.
2863 (FRAME_MAC_P): Remove leftover from deleted code.
2864 * frame.c (syms_of_frame): Remove leftover from deleted code.
2865
2866 2012-08-22 Jan Djärv <jan.h.d@swipnet.se>
2867
2868 * nsterm.m (insertText:): Don't clear modifiers if code is space.
2869
2870 2012-08-22 Paul Eggert <eggert@cs.ucla.edu>
2871
2872 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
2873 Otherwise, the compiler complains about (A?B:C) where B is void
2874 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
2875 (fontset_add): Return void, for FONTSET_ADD.
2876
2877 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
2878
2879 * alloc.c: Use bool for booleans.
2880 (gc_in_progress, abort_on_gc)
2881 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
2882 (dont_register_blocks) [GC_MALLOC_CHECK]:
2883 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
2884 (check_string_bytes, make_specified_string, memory_full)
2885 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
2886 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
2887 (mark_stack, valid_pointer_p, make_pure_string)
2888 (Fgarbage_collect, survives_gc_p, gc_sweep):
2889 Use bool for booleans, instead of int.
2890 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
2891 Remove unused local.
2892 * alloc.c (PURE_POINTER_P):
2893 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
2894 * editfns.c (Fformat):
2895 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
2896 (Fdo_auto_save):
2897 * fns.c (sweep_weak_table):
2898 * lisp.h (suppress_checking, push_message, survives_gc_p)
2899 (make_pure_string, gc_in_progress, abort_on_gc):
2900 * lread.c (readchar, read1):
2901 * print.c (Fprin1_to_string):
2902 * xdisp.c (push_message):
2903 Use bool for booleans affected directly or indirectly by
2904 alloc.c's changes.
2905
2906 Make recently-introduced setters macros.
2907 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
2908 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
2909 (set_fontset_default, set_fontset_fallback): Rename from their
2910 upper-case counterparts, and make them functions rather than macros.
2911 This is more consistent with the other recently-introduced setters.
2912 These don't need to be inline, since they're local.
2913
2914 2012-08-21 Jan Djärv <jan.h.d@swipnet.se>
2915
2916 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
2917 the loop (Bug#12247).
2918
2919 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
2920
2921 * lisp.h (vcopy): Use memcpy rather than our own loop.
2922 This fixes a performance regression introduced by the recent
2923 addition of vcopy. This means 'vcopy' will need to be modified
2924 for a copying collector, but that's OK. Also, tighten the
2925 checking in the assertion.
2926
2927 2012-08-21 Eli Zaretskii <eliz@gnu.org>
2928
2929 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
2930 components for RTL text (Bug#11860). Adjust X-OFFSET of each
2931 non-base glyph for the width of the base character, according to
2932 what x_draw_composite_glyph_string_foreground expects.
2933 Generate WADJUST value according to composition_gstring_width's
2934 expectations, to produce correct width of the composed character.
2935 Reverse the sign of the DU offset produced by ScriptPlace.
2936
2937 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
2938
2939 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
2940
2941 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
2942
2943 Avoid direct writes to contents member of struct Lisp_Vector.
2944 * lisp.h (vcopy): New function to copy data into vector.
2945 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
2946 * fns.c (Ffillarray): Use ASET.
2947 * keyboard.c (timer_check_2): Use AREF and ASET.
2948 (append_tool_bar_item, Frecent_keys): Use vcopy.
2949 * lread.c (read_vector): Use ASET.
2950 * msdos.c (Frecent_doskeys): Use vcopy.
2951 * xface.c (Finternal_copy_lisp_face): Use vcopy.
2952 (Finternal_merge_in_global_face): Use ASET and vcopy.
2953 * xfont.c (xfont_list_pattern): Likewise.
2954
2955 2012-08-21 Martin Rudalics <rudalics@gmx.at>
2956
2957 * window.c (Fwindow_point): For the selected window always return
2958 the position of its buffer's point.
2959 (Fset_window_point): For the selected window always go in its
2960 buffer to the specified position.
2961
2962 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
2963
2964 Setter macros for fontsets.
2965 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
2966 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
2967 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
2968 Adjust users.
2969
2970 2012-08-20 Glenn Morris <rgm@gnu.org>
2971
2972 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
2973 Don't assume that `ln -f' works.
2974
2975 2012-08-20 Eli Zaretskii <eliz@gnu.org>
2976
2977 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
2978 and later about non-assignments with no effect. See discussion at
2979 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
2980 details.
2981
2982 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2983
2984 Inline setter functions for Lisp_Objects slots of struct specbinding.
2985 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
2986 Adjust users.
2987
2988 2012-08-20 Martin Rudalics <rudalics@gmx.at>
2989
2990 * window.c (select_window): Always make selected window's buffer
2991 current.
2992
2993 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2994
2995 Use AREF and ASET for docstrings of category tables.
2996 * category.h (CATEGORY_DOCSTRING): Use AREF.
2997 (SET_CATEGORY_DOCSTRING): Use ASET.
2998 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
2999
3000 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
3001
3002 Inline setter functions for hash table members.
3003 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
3004 (set_hash_hash, set_hash_index): Rename with _slot suffix.
3005 (set_hash_key_and_value, set_hash_index, set_hash_next)
3006 (set_hash_hash): New functions.
3007 * charset.c, fns.c: Adjust users.
3008
3009 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
3010
3011 Inline getter and setter functions for per-buffer values.
3012 * buffer.h (per_buffer_default, set_per_buffer_default)
3013 (per_buffer_value, set_per_buffer_value): New functions.
3014 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
3015 * buffer.c, data.c: Adjust users.
3016
3017 2012-08-20 Juanma Barranquero <lekktu@gmail.com>
3018
3019 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
3020
3021 2012-08-19 Paul Eggert <eggert@cs.ucla.edu>
3022
3023 Rely on <config.h> + <unistd.h> to declare 'environ',
3024 as gnulib does this if the system doesn't.
3025 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
3026 Remove declaration. MS-Windows declares it on stdlib.h which is
3027 included by conf_post.h.
3028 * emacs.c (environ) [DOUG_LEA_MALLOC]:
3029 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
3030 * vm-limit.c: Include <unistd.h>, for 'environ'.
3031
3032 * unexaix.c, unexcoff.c: Include "mem-limits.h".
3033 (start_of_data): Remove decl; mem-limits.h provides it.
3034
3035 * xdisp.c (handle_invisible_prop): Make it a bit faster
3036 and avoid a gcc -Wmaybe-uninitialized diagnostic.
3037
3038 2012-08-19 Chong Yidong <cyd@gnu.org>
3039
3040 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
3041 ends (Bug#3874).
3042
3043 2012-08-19 Andreas Schwab <schwab@linux-m68k.org>
3044
3045 * .gdbinit: Use call instead of set when calling a function in the
3046 inferior.
3047
3048 * data.c (set_internal): Don't use set_blv_found.
3049 (Fkill_local_variable): Likewise.
3050
3051 2012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
3052
3053 * nsfont.m (ns_ascii_average_width): Ensure the string
3054 ascii_printable is initialized with a null-terminated character
3055 array. Otherwise, it can contain undesired extra characters.
3056
3057 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
3058
3059 port new setting code to Sun C 5.8 2005/10/13
3060 * chartab.c, lisp.h (char_table_set, char_table_set_range):
3061 Return void, not Lisp_Object. Otherwise, the compiler
3062 complains about (A?B:C) where B is void and C is Lisp_Object
3063 when compiling CHAR_TABLE_SET, due to the recent change to
3064 the API of sub_char_table_set_contents.
3065
3066 2012-08-18 Chong Yidong <cyd@gnu.org>
3067
3068 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
3069 for the string case (Bug#3874).
3070
3071 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
3072
3073 * buffer.h (BSET): Remove (Bug#12215).
3074 Replace all uses with calls to new setter functions.
3075 (bset_bidi_paragraph_direction, bset_case_canon_table)
3076 (bset_case_eqv_table, bset_directory, bset_display_count)
3077 (bset_display_time, bset_downcase_table)
3078 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
3079 (bset_last_selected_window, bset_local_var_alist)
3080 (bset_mark_active, bset_point_before_scroll, bset_read_only)
3081 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
3082 (bset_width_table):
3083 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
3084 (bset_auto_fill_function, bset_auto_save_file_format)
3085 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
3086 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
3087 (bset_cache_long_line_scans, bset_case_fold_search)
3088 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
3089 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
3090 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
3091 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
3092 (bset_header_line_format, bset_indicate_buffer_boundaries)
3093 (bset_indicate_empty_lines, bset_invisibility_spec)
3094 (bset_left_fringe_width, bset_major_mode, bset_mark)
3095 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
3096 (bset_name, bset_overwrite_mode, bset_pt_marker)
3097 (bset_right_fringe_width, bset_save_length)
3098 (bset_scroll_bar_width, bset_scroll_down_aggressively)
3099 (bset_scroll_up_aggressively, bset_selective_display)
3100 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
3101 (bset_word_wrap, bset_zv_marker):
3102 * category.c (bset_category_table):
3103 * syntax.c (bset_syntax_table):
3104 New setter functions.
3105
3106 * process.h (PSET): Remove (Bug#12215).
3107 Replace all uses with calls to new setter functions.
3108 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3109 (PROCESS_INLINE): New macro.
3110 (pset_childp): New setter function.
3111 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
3112 * process.c (PROCESS_INLINE):
3113 Define to EXTERN_INLINE, so that the corresponding functions
3114 are compiled into code.
3115 (pset_buffer, pset_command, pset_decode_coding_system)
3116 (pset_decoding_buf, pset_encode_coding_system)
3117 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
3118 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
3119 (pset_type, pset_write_queue): New setter functions.
3120
3121 * window.h (WSET): Remove (Bug#12215).
3122 Replace all uses with calls to new setter functions.
3123 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3124 (WINDOW_INLINE): New macro.
3125 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
3126 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
3127 (wset_total_lines, wset_vertical_scroll_bar)
3128 (wset_window_end_pos, wset_window_end_valid)
3129 (wset_window_end_vpos): New setter functions.
3130 * window.c (WINDOW_INLINE):
3131 Define to EXTERN_INLINE, so that the corresponding functions
3132 are compiled into code.
3133 (wset_combination_limit, wset_dedicated, wset_display_table)
3134 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
3135 (wset_new_normal, wset_new_total, wset_next_buffers)
3136 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
3137 (wset_prev_buffers, wset_right_fringe_width)
3138 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
3139 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
3140 (wset_window_parameters):
3141 * xdisp.c (wset_base_line_number, wset_base_line_pos)
3142 (wset_column_number_displayed, wset_region_showing):
3143 New setter functions.
3144
3145 * termhooks.h (TSET): Remove (Bug#12215).
3146 Replace all uses with calls to new setter functions.
3147 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3148 (TERMHOOKS_INLINE): New macro.
3149 (tset_charset_list, tset_selection_alist): New setter functions.
3150 * terminal.c (TERMHOOKS_INLINE):
3151 Define to EXTERN_INLINE, so that the corresponding functions
3152 are compiled into code.
3153 (tset_param_alist): New setter function.
3154
3155 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
3156
3157 * keyboard.h (KSET): Remove (Bug#12215).
3158 Replace all uses with calls to new setter functions.
3159 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3160 (KEYBOARD_INLINE): New macro.
3161 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
3162 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
3163 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
3164 New setter functions.
3165 * keyboard.c (KEYBOARD_INLINE):
3166 Define to EXTERN_INLINE, so that the corresponding functions
3167 are compiled into code.
3168 (kset_echo_string, kset_kbd_queue)
3169 (kset_keyboard_translate_table, kset_last_prefix_arg)
3170 (kset_last_repeatable_command, kset_local_function_key_map)
3171 (kset_overriding_terminal_local_map, kset_real_last_command)
3172 (kset_system_key_syms): New setter functions.
3173
3174 * frame.h (FSET): Remove (Bug#12215).
3175 Replace all uses with calls to new setter functions.
3176 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3177 (FRAME_INLINE): New macro.
3178 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
3179 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
3180 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
3181 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
3182 (fset_param_alist, fset_root_window, fset_scroll_bars)
3183 (fset_selected_window, fset_title, fset_tool_bar_items)
3184 (fset_tool_bar_position, fset_tool_bar_window): New functions.
3185 * frame.c (FRAME_INLINE):
3186 Define to EXTERN_INLINE, so that the corresponding functions
3187 are compiled into code.
3188 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
3189
3190 A few more naming-convention fixes for getters and setters.
3191 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
3192 and rename from buffer_overlays_set_before.
3193 (set_buffer_overlays_after): Move here from buffer.h, and rename
3194 from buffer_overlays_set_after.
3195 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
3196 All uses changed.
3197 (set_buffer_intervals): Rename from buffer_set_intervals.
3198 * intervals.c (set_interval_object): Move here from intervals.h,
3199 and rename from interval_set_object.
3200 (set_interval_left): Move here from intervals.h, and rename from
3201 interval_set_left.
3202 (set_interval_right): Move here from intervals.h, and rename from
3203 interval_set_right.
3204 (copy_interval_parent): Move here from intervals.h, and rename from
3205 interval_copy_parent.
3206 * intervals.h (set_interval_parent): Rename from interval_set_parent.
3207 (set_interval_plist): Rename from interval_set_plist.
3208 Return void, not Lisp_Object, since no caller uses the result.
3209 * lisp.h (string_intervals): Rename from string_get_intervals.
3210 (set_string_intervals): Rename from string_set_intervals.
3211
3212 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
3213 (set_char_table_contents): Rename from char_table_set_contents.
3214 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
3215 All uses changed. See the end of
3216 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
3217
3218 * lisp.h (CSET): Remove (Bug#12215).
3219 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
3220 (set_char_table_purpose): New functions,
3221 replacing CSET. All uses changed. For example, replace
3222 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
3223 "set_char_table_parent (char_table, parent);".
3224 The old version was confusing because it used the same name
3225 'parent' for two different things.
3226
3227 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
3228
3229 Functions to get and set Lisp_Object fields of buffer-local variables.
3230 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
3231 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
3232 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
3233 * data.c, eval.c, frame.c: Adjust users.
3234
3235 2012-08-17 Chong Yidong <cyd@gnu.org>
3236
3237 * xfaces.c (merge_face_vectors): If the target font specfies a
3238 font spec, make the font's attributes take precedence over
3239 directly-specified attributes.
3240 (merge_face_ref): Recognize :font.
3241
3242 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
3243
3244 Do not use memcpy for copying intervals.
3245 * intervals.c (reproduce_interval): New function.
3246 (reproduce_tree, reproduce_tree_obj): Use it.
3247 (reproduce_tree_obj): Remove prototype.
3248
3249 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
3250
3251 * lisp.h (duration_to_sec_usec): Remove unused decl.
3252
3253 2012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
3254
3255 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
3256 to an allocated instance of NSString, not to the class itself.
3257
3258 2012-08-17 Juanma Barranquero <lekktu@gmail.com>
3259
3260 * makefile.w32-in (C_CTYPE_H): New macro.
3261 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
3262 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
3263 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
3264
3265 2012-08-16 Paul Eggert <eggert@cs.ucla.edu>
3266
3267 Use ASCII tests for character types.
3268 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
3269 * xfns.c, xterm.c:
3270 Don't include <ctype.h>; was not needed.
3271 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
3272 * sysdep.c, xfaces.c:
3273 Include <c-ctype.h> instead of <ctype.h>.
3274 * nsterm.m: Include <c-ctype.h>.
3275 * charset.c (read_hex):
3276 * doc.c (Fsnarf_documentation):
3277 * fileio.c (IS_DRIVE) [WINDOWSNT]:
3278 (DRIVE_LETTER) [DOS_NT]:
3279 (Ffile_name_directory, Fexpand_file_name)
3280 (Fsubstitute_in_file_name):
3281 * font.c (font_parse_xlfd, font_parse_fcname):
3282 * frame.c (x_set_font_backend):
3283 * gtkutil.c (xg_get_font):
3284 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
3285 * nsimage.m (hexchar):
3286 * nsterm.m (ns_xlfd_to_fontname):
3287 * sysdep.c (system_process_attributes):
3288 * xfaces.c (hash_string_case_insensitive):
3289 Use C-locale tests instead of locale-specific tests for character
3290 types, since we want the ASCII interpretation here, not the
3291 interpretation suitable for whatever happens to be the current locale.
3292
3293 2012-08-16 Martin Rudalics <rudalics@gmx.at>
3294
3295 Consistently check windows for validity/liveness
3296 (Bug#11984, Bug#12025, Bug#12026).
3297 * lisp.h (CHECK_VALID_WINDOW): New macro.
3298 * window.c (decode_window): Rename to decode_live_window.
3299 (decode_valid_window, Fwindow_valid_p): New functions.
3300 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
3301 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
3302 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
3303 (Fwindow_prev_sibling, Fwindow_combination_limit)
3304 (Fset_window_combination_limit, Fwindow_use_time)
3305 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
3306 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
3307 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
3308 (Fwindow_hscroll, Fset_window_hscroll)
3309 (Fwindow_redisplay_end_trigger)
3310 (Fset_window_redisplay_end_trigger, Fwindow_edges)
3311 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
3312 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
3313 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
3314 (Fwindow_end, Fset_window_point, Fset_window_start)
3315 (Fpos_visible_in_window_p, Fwindow_line_height)
3316 (Fwindow_dedicated_p, Fset_window_dedicated_p)
3317 (Fwindow_prev_buffers, Fset_window_prev_buffers)
3318 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
3319 (Fset_window_parameter, Fwindow_display_table)
3320 (Fset_window_display_table, Fdelete_other_windows_internal)
3321 (Fset_window_buffer, Fset_window_new_total)
3322 (Fset_window_new_normal, Fdelete_window_internal)
3323 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
3324 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
3325 (Fwindow_scroll_bars): Check whether argument window is a valid or
3326 live window. Update doc-strings.
3327 (syms_of_window): New symbol Qwindow_valid_p.
3328 * keyboard.c (Fposn_at_x_y): Check whether argument
3329 frame_or_window denotes a valid window.
3330
3331 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
3332
3333 Fix previous char table change.
3334 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
3335 * chartab.c (optimize_sub_char_table): Likewise.
3336
3337 2012-08-16 Chong Yidong <cyd@gnu.org>
3338
3339 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
3340
3341 * xfont.c (xfont_open):
3342 * xftfont.c (xftfont_open): Set the font's max_width field.
3343
3344 * nsfont.m (nsfont_open): Similar to the Xft backend, set
3345 min_width to space_width and average_width to the average over
3346 printable ASCII characters.
3347 (ns_char_width): Code cleanup.
3348 (ns_ascii_average_width): New utility function.
3349
3350 * font.h (struct font): Update comments.
3351
3352 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
3353
3354 Simple interface to set Lisp_Object fields of character tables.
3355 * lisp.h (CSET): New macro.
3356 (char_table_set_extras, char_table_set_contents)
3357 (sub_char_table_set_contents): New function.
3358 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
3359 * syntax.c: Adjust users.
3360
3361 2012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
3362
3363 * eval.c (eval_sub): Bind lexical-binding.
3364 * lread.c (Qlexical_binding): Make non-static.
3365
3366 2012-08-15 Jan Djärv <jan.h.d@swipnet.se>
3367
3368 * nsmenu.m (popupSession): Remove.
3369 (pop_down_menu): Remove endModalSession.
3370 (timeout_handler:): New method.
3371 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
3372 Call runModalForWindow. Check timer_fired when it returns.
3373 If not set, cancel timer and break out of loop.
3374 Otherwise loop again, with a new timeout.
3375
3376 * nsterm.m: Include fcntl.h if present.
3377 (fd_entry, t_readfds, inNsSelect): Remove.
3378 (select_writefds, select_valid, select_timeout, selfds)
3379 (select_mutex, apploopnr): Add.
3380 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
3381 Otherwise call kbd_buffer_store_event.
3382 (ns_send_appdefined): Remove release of fd_entry.
3383 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
3384 Increment and decrement apploopnr.
3385 (ns_select): If no file descriptors, just do a NSTimer.
3386 Otherwise copy read/write masks and start select thread (fd_handler).
3387 Start main loop and wait for application defined event.
3388 Inform select thread to stop selecting after main loop is exited.
3389 (ns_term_init): Create selfds pipe and set non-blocking.
3390 Initialize select_mutex. Start the select thread (fd_handler).
3391 (fd_handler:): Loop forever, wait for info from the main thread
3392 to either start or stop selecting. When select returns, send
3393 and appdefined event.
3394 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
3395 If not call kbd_buffer_store_event.
3396
3397 * nsterm.h (EmacsApp): fd_handler takes id argument.
3398 (EmacsDialogPanel): Add timer_fired and timeout_handler.
3399
3400 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
3401
3402 2012-08-15 Eli Zaretskii <eliz@gnu.org>
3403
3404 * region-cache.c (move_cache_gap): Update gap_len using the actual
3405 growth of the boundaries array. Do not change cache_len.
3406 (Bug#12196)
3407
3408 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3409
3410 Generalize and cleanup font subsystem checks.
3411 * font.h (FONT_DEBUG, font_assert): Remove.
3412 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
3413 Change font_assert to eassert. Use eassert where appropriate.
3414
3415 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3416
3417 * gtkutil.c (xg_get_font): Use pango_units_to_double.
3418
3419 2012-08-15 Chong Yidong <cyd@gnu.org>
3420
3421 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
3422 When using the new font chooser, use gtk_font_chooser_get_font_desc to
3423 extract the font descriptor instead of just the font name.
3424 In that case, return a font spec instead of a string.
3425 (x_last_font_name): Move to this file from xfns.c.
3426
3427 * xfns.c (Fx_select_font): The return value can also be a font
3428 spec. Move x_last_font_name management to gtkutil.c.
3429
3430 * xfaces.c: Make font weight and style symbols non-static.
3431
3432 2012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
3433
3434 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
3435 (bug#12117).
3436
3437 2012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
3438
3439 * alloc.c (Fgarbage_collect): Use plural form consistently.
3440
3441 2012-08-14 Eli Zaretskii <eliz@gnu.org>
3442
3443 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
3444 iteration through the command loop. Fixes a problem whereby mouse
3445 movements are ignored until the first mouse click.
3446
3447 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
3448
3449 Use bool, not int, for Lisp booleans.
3450 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
3451 makes Emacs a bit smaller and presumably a bit faster.
3452 * lisp.h: Include <stdbool.h>.
3453 (struct Lisp_Boolfwd, defvar_bool):
3454 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
3455 * regex.c [!emacs]: Include <stdbool.h>.
3456 (false, true): Remove; <stdbool.h> does this for us now.
3457
3458 2012-08-14 Chong Yidong <cyd@gnu.org>
3459
3460 * character.c (Fcharacterp): Doc fix (Bug#12076).
3461
3462 * data.c (Findirect_variable): Doc fix (Bug#11040).
3463
3464 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
3465
3466 * editfns.c (Fformat): Doc fix (Bug#12059).
3467 (Fsave_current_buffer): Doc fix (Bug#11542).
3468
3469 2012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
3470
3471 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
3472 (bug#12022).
3473
3474 2012-08-14 Martin Rudalics <rudalics@gmx.at>
3475
3476 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
3477 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
3478 * minibuf.c (choose_minibuf_frame, read_minibuf):
3479 * w32fns.c (x_create_tip_frame):
3480 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
3481 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
3482
3483 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
3484
3485 * intervals.c (offset_intervals): Remove obsolete comment.
3486
3487 2012-08-14 Andreas Schwab <schwab@linux-m68k.org>
3488
3489 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
3490
3491 2012-08-14 Gergely Risko <gergely@risko.hu>
3492
3493 * coding.c (decode_coding): Record buffer modification before
3494 disabling undo_list (Bug#11773).
3495
3496 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3497
3498 Revert and cleanup some recent overlay changes.
3499 * buffer.h (enum overlay_type): Remove.
3500 (buffer_get_overlays, buffer_set_overlays): Likewise.
3501 (buffer_set_overlays_before, buffer_set_overlays_after):
3502 New function. Adjust users.
3503 (unchain_both): Add eassert.
3504
3505 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3506
3507 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
3508
3509 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
3510
3511 * gtkutil.c (xg_mark_data): Don't assume C99.
3512
3513 2012-08-13 Jan Djärv <jan.h.d@swipnet.se>
3514
3515 * gtkutil.c (xg_frame_tb_info): New struct.
3516 (TB_INFO_KEY): New define.
3517 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
3518 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
3519 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
3520 if not present.
3521 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
3522 is up to date. Otherwise store new data.
3523 (free_frame_tool_bar): Free xg_frame_tb_info if present.
3524
3525 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3526
3527 Use KSET for write access to Lisp_Object members of struct kboard.
3528 * keyboard.h (KSET): New macro.
3529 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
3530 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
3531 * xterm.c: Adjust users.
3532
3533 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3534
3535 Use BSET for write access to Lisp_Object members of struct buffer.
3536 * buffer.h (BSET): New macro.
3537 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
3538 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
3539 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
3540 * window.c, xdisp.c, xfns.c: Adjust users.
3541
3542 2012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
3543
3544 * lread.c (syms_of_lread): Initialize Vlexical_binding.
3545
3546 2012-08-11 Jan Djärv <jan.h.d@swipnet.se>
3547
3548 * nsterm.m (not_in_argv): New function.
3549 (application:openFile, application:openTempFile:):
3550 (application:openFileWithoutUI:, application:openFiles:): Open file
3551 if not_in_argv returns non-zero (bug#12171).
3552
3553 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
3554 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
3555 Define for Gtk+ versions less than 3.2.
3556 (xg_get_font_name): Use those functions/macros here.
3557 Reported by Frans Oilinki <moilinki@gmail.com>.
3558
3559 2012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3560
3561 * unexmacosx.c (copy_data_segment): Copy initialized data in
3562 statically linked libraries from input file rather than memory.
3563
3564 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
3565 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
3566 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
3567
3568 2012-08-10 Glenn Morris <rgm@gnu.org>
3569
3570 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
3571 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
3572
3573 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3574
3575 Fix last change to allow compilation with low optimization levels.
3576 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
3577 Reported by Jan Djärv <jan.h.d@swipnet.se>.
3578
3579 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3580
3581 Use common inline syntax in intervals.h.
3582 * intervals.h (INTERVALS_INLINE): New macro.
3583 Change all users from LISP_INLINE.
3584
3585 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3586
3587 Define Qnone once for all platforms.
3588 * frame.c (Qnone): Define here.
3589 (syms_of_frame): DEFSYM it.
3590 * lisp.h (Qnone): New declaration.
3591 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
3592 * xfns.c: Remove duplication. Adjust users.
3593
3594 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3595
3596 Remove unused macros from intervals.h.
3597 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
3598 * intervals.c: Adjust comment.
3599
3600 2012-08-10 Eli Zaretskii <eliz@gnu.org>
3601
3602 * w32fns.c <w32_unicode_gui>: New static variable.
3603 (globals_of_w32fns): Initialize it according to os_subtype.
3604 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
3605 testing os_subtype.
3606
3607 2012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
3608 Eli Zaretskii <eliz@gnu.org>
3609
3610 Fix bug #10299 with Unicode characters sent by customized
3611 keyboards created by MSKLC.
3612 * w32fns.c (INIT_WINDOW_CLASS): New macro.
3613 (w32_init_class): Use it to initialize the Emacs class with either
3614 ANSI or Unicode API calls.
3615 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
3616 later.
3617 (w32_wnd_proc): If the character code sent by WM_CHAR or
3618 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
3619 original message. Call DefWindowProcW on NT and later.
3620
3621 2012-08-10 Glenn Morris <rgm@gnu.org>
3622
3623 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
3624
3625 * lisp.h (DIRECTORY_SEP): Let configure set it.
3626
3627 2012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
3628
3629 Use TSET for write access to Lisp_Object slots of struct terminal.
3630 * termhooks.h (TSET): New macro.
3631 * coding.c, terminal.c, xselect.c: Adjust users.
3632
3633 2012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
3634
3635 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
3636 the failing expression, include them in the error message.
3637 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
3638 * lisp.h (internal_condition_case_n): Update declaration.
3639
3640 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3641
3642 Inline functions to examine and change buffer overlays.
3643 * buffer.c (unchain_both): New function.
3644 * buffer.h (buffer_get_overlays, buffer_set_overlays):
3645 (buffer_has_overlays): New function.
3646 (enum overlay_type): New enum.
3647 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
3648 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
3649
3650 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3651
3652 Inline functions to examine and change buffer intervals.
3653 * alloc.c (mark_interval_tree): Remove.
3654 (MARK_INTERVAL_TREE): Simplify.
3655 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
3656 * intervals.c (buffer_balance_intervals): New function.
3657 (graft_intervals_into_buffer): Adjust indentation.
3658 (set_intervals_multibyte): Simplify.
3659 * buffer.h (BUF_INTERVALS): Remove.
3660 (buffer_get_intervals, buffer_set_intervals): New function.
3661 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
3662 * intervals.c, textprop.c: Adjust users.
3663
3664 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3665
3666 Inline functions to examine and change string intervals.
3667 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
3668 (string_get_intervals, string_set_intervals): New function.
3669 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
3670 * lread.c, print.c, textprop.c: Adjust users.
3671
3672 2012-08-08 Glenn Morris <rgm@gnu.org>
3673
3674 * lisp.mk (lisp): Remove language/persian.elc.
3675
3676 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3677
3678 Cleanup intervals.
3679 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
3680 (NULL_INTERVAL_P): Likewise. Adjust users.
3681 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
3682 Adjust comment. Move under #if 0.
3683 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
3684 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
3685
3686 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3687
3688 Check total length of intervals with eassert.
3689 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
3690 * intervals.c: Change all users to eassert.
3691
3692 2012-08-07 Eli Zaretskii <eliz@gnu.org>
3693
3694 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
3695 Rename fields to match removal of FGET and WGET and disuse of
3696 INTERNAL_FIELD in Lisp_Cons.
3697
3698 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3699
3700 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
3701 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
3702 name since all xname users are fixed long time ago. Do not
3703 use INTERNAL_FIELD.
3704 (set_symbol_name, set_symbol_function, set_symbol_plist):
3705 (set_symbol_next, set_overlay_plist): New function.
3706 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
3707 (struct Lisp_Overlay): Likewise.
3708 (CVAR, MVAR, SVAR): Remove.
3709 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
3710 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
3711 * xterm.c: Adjust users.
3712 * .gdbinit: Change to use name field of struct Lisp_Symbol
3713 where appropriate.
3714
3715 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3716
3717 Basic functions to set Lisp_Object and pointer slots of intervals.
3718 * intervals.h (interval_set_parent, interval_set_object):
3719 (interval_set_left, interval_set_right, interval_set_plist):
3720 (interval_copy_parent): New function.
3721 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
3722 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
3723 Adjust indentation.
3724 (INTERVAL_SIZE): Remove. Adjust users.
3725 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
3726
3727 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3728
3729 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
3730 * process.h (PGET): Remove.
3731 (struct Lisp_Process): Do not use INTERNAL_FIELD.
3732 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
3733
3734 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3735
3736 Drop WGET and revert read access to Lisp_Objects slots of struct window.
3737 * window.h (WGET): Remove.
3738 (struct window): Do not use INTERNAL_FIELD.
3739 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
3740 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
3741 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
3742 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
3743 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
3744 Adjust users.
3745
3746 2012-08-07 Chong Yidong <cyd@gnu.org>
3747
3748 * window.c (Fwindow_edges, Fwindow_pixel_edges)
3749 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
3750 (Fdelete_window_internal): Signal an error if the window is not on
3751 a live frame (Bug#12025).
3752
3753 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3754
3755 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
3756 * frame.h (FGET): Remove.
3757 (struct frame): Do not use INTERNAL_FIELD.
3758 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
3759 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
3760 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
3761 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
3762
3763 2012-08-06 Juanma Barranquero <lekktu@gmail.com>
3764
3765 * w32.c: Silence compiler warnings.
3766 (map_w32_filename): Remove unused variable `is_fat'.
3767 (chase_symlinks): Add parentheses around expression.
3768
3769 2012-08-06 Glenn Morris <rgm@gnu.org>
3770
3771 * sysdep.c: Respect BROKEN_GETWD.
3772
3773 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
3774 Let configure handle it.
3775 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
3776
3777 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3778
3779 Use GCALIGNMENT where appropriate.
3780 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
3781 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
3782 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
3783
3784 2012-08-06 Eli Zaretskii <eliz@gnu.org>
3785
3786 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
3787 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
3788
3789 2012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
3790
3791 * buffer.h (struct buffer): Revert `indirections' to a simple int;
3792 that should be sufficient for everyone.
3793
3794 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
3795
3796 * keyboard.c (timer_check_2): Add break so timer_check returns next
3797 timeout.
3798
3799 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3800
3801 Fix Windows build errors introduced after converting to WGET and WSET.
3802 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
3803 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
3804
3805 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
3806
3807 * nsterm.m (ns_frame_rehighlight): Use FSET.
3808
3809 * nsmenu.m (ns_update_menubar): Use FSET.
3810
3811 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3812
3813 Separate read and write access to Lisp_Object slots of Lisp_Process.
3814 * process.h (PGET, PSET): New macros similar to AREF and ASET.
3815 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
3816
3817 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3818
3819 Separate read and write access to Lisp_Object slots of struct window.
3820 * window.h (WGET, WSET): New macros similar to AREF and ASET.
3821 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
3822 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
3823 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
3824 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
3825 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
3826 Adjust users.
3827
3828 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3829
3830 Fix Windows build errors introduced after converting to FGET and FSET.
3831 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
3832 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
3833 (w32_judge_scroll_bars): Change to use FSET.
3834 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
3835
3836 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3837
3838 Fix replacement typo.
3839 * window.c (replace_window): Set root_window instead of
3840 selected_window. This fixes a total window subsystem
3841 malfunction reported by Bastien Guerry <bzg@gnu.org>.
3842
3843 2012-08-06 Glenn Morris <rgm@gnu.org>
3844
3845 * lisp.mk (lisp): Add language/persian.elc.
3846
3847 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3848
3849 Separate read and write access to Lisp_Object slots of struct frame.
3850 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
3851 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
3852 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
3853 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
3854 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
3855
3856 2012-08-05 Andreas Schwab <schwab@linux-m68k.org>
3857
3858 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
3859
3860 2012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
3861
3862 Generalize common compile-time constants.
3863 * lisp.h (header_size, bool_header_size, word_size): Now here.
3864 (struct Lisp_Vector): Add comment.
3865 (struct Lisp_Bool_Vector): Move up to define handy constants.
3866 (VECSIZE, PSEUDOVECSIZE): Simplify.
3867 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
3868 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
3869 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
3870 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
3871 * xfont.c, xmenu.c: Use word_size where appropriate.
3872
3873 2012-08-05 Lawrence Mitchell <wence@gmx.li>
3874
3875 * search.c (Freplace_match): Treat \? in the replacement text
3876 literally (Bug#8161).
3877
3878 2012-08-05 Chong Yidong <cyd@gnu.org>
3879
3880 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
3881 * frame.c (Vdelete_frame_functions):
3882 * emacs.c (Vkill_emacs_hook): Doc fix.
3883
3884 2012-08-04 Eli Zaretskii <eliz@gnu.org>
3885
3886 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
3887 --with-x-toolkit=no builds.
3888 Reported by Carsten Mattner <carstenmattner@gmail.com>.
3889
3890 2012-08-04 Chong Yidong <cyd@gnu.org>
3891
3892 * syntax.c (Fmodify_syntax_entry): Doc fix.
3893
3894 2012-08-04 Eli Zaretskii <eliz@gnu.org>
3895
3896 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
3897 * w32.c (init_environment): Change the default values of many
3898 environment variables in dflt_envvars[] to NULL, to avoid pushing
3899 them into environment when they were not already defined.
3900 Remove the code that deletes site-lisp subdirectories from the default
3901 value of EMACSLOADPATH, as it is no longer needed.
3902 (check_windows_init_file): Now external, not static.
3903 Use Vload_path as is, without adding anything, as this function is now
3904 called when Vload_path is already set up.
3905
3906 * w32.h (check_windows_init_file): Add prototype.
3907
3908 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
3909 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
3910 compatibility with Posix platforms.
3911 (main): Move the call to check_windows_init_file to here from
3912 w32.c.
3913 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
3914 any, in the DEFALT argument into the root of the Emacs build or
3915 installation tree, as appropriate.
3916
3917 * callproc.c (init_callproc_1): Call decode_env_path instead of
3918 doing its equivalent by hand.
3919 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
3920 the code that sets Vexec_path run on MS-Windows.
3921
3922 * lread.c (init_lread): Add comments to #ifdef's.
3923
3924 * msdos.c (dos_set_window_size, IT_update_begin)
3925 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
3926 instead of direct references.
3927
3928 2012-08-04 Paul Eggert <eggert@cs.ucla.edu>
3929
3930 Export DEFAULT_REHASH_* to GDB.
3931 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
3932 Now constants, not macros.
3933
3934 2012-08-03 Paul Eggert <eggert@cs.ucla.edu>
3935
3936 Remove unnecessary casts involving pointers.
3937 These casts are no longer needed now that we assume C89 or later,
3938 since they involve casting to or from void *.
3939 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
3940 (make_pure_float, make_pure_vector):
3941 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
3942 * macros.c (Fstart_kbd_macro):
3943 * menu.c (find_and_return_menu_selection):
3944 * minibuf.c (read_minibuf_noninteractive):
3945 * sysdep.c (closedir):
3946 * xdisp.c (x_produce_glyphs):
3947 * xfaces.c (compare_fonts_by_sort_order):
3948 * xfns.c (x_real_positions, select_visual):
3949 * xselect.c (x_stop_queuing_selection_requests)
3950 (x_get_window_property, x_get_window_property_as_lisp_data):
3951 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
3952 Remove unnecessary pointer casts.
3953 * alloc.c (record_xmalloc): New function.
3954 * lisp.h (record_xmalloc): New decl.
3955 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
3956 more like a function. This is because the pointer cast is not
3957 needed. All uses changed.
3958 * print.c (print_string, print_error_message): Avoid length recalc.
3959
3960 Improve fix for macroexp crash with debugging (Bug#12118).
3961 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
3962 ARRAY_MARK_FLAG when checking subscripts, because ASET is
3963 not supposed to be invoked from the garbage collector.
3964 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
3965 (gc_aset): New function, which is like ASET but can be
3966 used in the garbage collector.
3967 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
3968 (set_hash_index): Use it instead of ASET.
3969
3970 2012-08-03 Eli Zaretskii <eliz@gnu.org>
3971
3972 Support symlinks on latest versions of MS-Windows.
3973 * w32.c: Include winioctl.h and aclapi.h.
3974 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
3975 (revert_to_self): Forward declarations of static functions.
3976 <static BOOL g_b_init_get_security_info>:
3977 <g_b_init_create_symbolic_link>: New static flags.
3978 (globals_of_w32): Initialize them to zero.
3979 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
3980 (map_w32_filename): Improve commentary. Simplify switch.
3981 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
3982 headers (most versions of MinGW w32api don't).
3983 (get_security_info, create_symbolic_link)
3984 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
3985 New functions.
3986 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
3987 in the argument file name.
3988 (sys_access): Call unc_volume_file_attributes only if
3989 GetFileAttributes fails with network-related error codes.
3990 (sys_rename): Diagnose renaming of a symlink when the user doesn't
3991 have the required privileges.
3992 (get_file_security_desc_by_name): Rename from
3993 get_file_security_desc.
3994 (stat_worker): New function, with most of the guts of 'stat', and
3995 with addition of handling of symlinks and support for 'lstat'.
3996 If possible, get file's attributes and security information by
3997 handle, not by name. Produce S_IFLNK bit for symlinks, when
3998 called from 'lstat'.
3999 (stat, lstat): New functions, call 'stat_worker'.
4000 (symlink, readlink, careadlinkat): Rewritten to create and resolve
4001 symlinks when the underlying filesystem supports them.
4002
4003 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
4004
4005 Fix macroexp crash on Windows with debugging (Bug#12118).
4006 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
4007 checking subscripts; problem introduced with the recent
4008 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
4009 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
4010 since it's used in non-static inline functions now.
4011
4012 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
4013 Don't assume buffer size fits in 'int'. Remove unused local.
4014
4015 Use C99-style 'extern inline' if available.
4016 * buffer.h (BUFFER_INLINE):
4017 * category.h (CATEGORY_INLINE):
4018 * character.h (CHARACTER_INLINE):
4019 * charset.h (CHARSET_INLINE):
4020 * composite.h (COMPOSITE_INLINE):
4021 * dispextern.h (DISPEXTERN_INLINE):
4022 * lisp.h (LISP_INLINE):
4023 * systime.h (SYSTIME_INLINE):
4024 New macro, replacing 'static inline' in this header.
4025 * buffer.h, category.h, character.h, charset.h, composite.h:
4026 * dispextern.h, lisp.h, systime.h:
4027 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
4028 * alloc.c (LISP_INLINE):
4029 * buffer.c (BUFFER_INLINE):
4030 * category.c (CATEGORY_INLINE):
4031 * character.c (CHARACTER_INLINE):
4032 * charset.c (CHARSET_INLINE):
4033 * composite.c (COMPOSITE_INLINE):
4034 * dispnew.c (DISPEXTERN_INLINE):
4035 * sysdep.c (SYSTIME_INLINE):
4036 Define to EXTERN_INLINE, so that the corresponding functions
4037 are compiled into code.
4038 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
4039 (INLINE_HEADER_END): New macros.
4040 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
4041 since it's used in non-static inline functions now.
4042 (VALMASK) [!USE_LSB_TAG]: Likewise.
4043
4044 2012-08-02 Glenn Morris <rgm@gnu.org>
4045
4046 * s/: Remove empty directory.
4047
4048 * s/ms-w32.h: Move to ../nt/inc.
4049 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
4050 Update for new ms-w32.h location.
4051
4052 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
4053
4054 Port to Solaris 8.
4055 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
4056
4057 2012-08-02 Glenn Morris <rgm@gnu.org>
4058
4059 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
4060 hard-coding the path separator.
4061
4062 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
4063
4064 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
4065 This how ASET and AREF are supposed to work, and makes
4066 it easier to think about future improvements. See
4067 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
4068 * charset.h (set_charset_attr): New function.
4069 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
4070 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
4071 (aref_addr): New function. All uses of &AREF(...) changed.
4072 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
4073 (set_hash_index): New functions. All lvalue-style uses of
4074 HASH_KEY etc. changed.
4075 * keyboard.c (set_prop): New function. All lvalue-style uses
4076 of PROP changed.
4077
4078 2012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
4079
4080 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
4081 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
4082 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
4083 * nsfns.m (ns_set_name_as_filename): Likewise.
4084 * nsmenu.m (ns_update_menubar): Likewise.
4085 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
4086
4087 2012-08-01 Eli Zaretskii <eliz@gnu.org>
4088
4089 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
4090 Adapt to latest changes in field names of the corresponding Lisp
4091 objects.
4092
4093 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
4094
4095 2012-08-01 Glenn Morris <rgm@gnu.org>
4096
4097 * s/msdos.h: Remove file.
4098 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
4099 * Makefile.in (S_FILE): Remove.
4100 (config_h): Remove S_FILE.
4101
4102 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
4103
4104 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
4105 Remove; moved to nt/config.nt.
4106
4107 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4108
4109 Use INTERNAL_FIELD for conses and overlays.
4110 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
4111 Remove obsolete comment.
4112 (MVAR): New macro.
4113 (struct Lisp_Overlay): Use INTERNAL_FIELD.
4114 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
4115
4116 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4117
4118 Use INTERNAL_FIELD for symbols.
4119 * lisp.h (SVAR): New macro. Adjust users.
4120 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
4121 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
4122
4123 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4124
4125 Use INTERNAL_FIELD for processes.
4126 * process.h (PVAR): New macro. Adjust style.
4127 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
4128 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
4129
4130 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4131
4132 Use INTERNAL_FIELD for windows.
4133 * window.h (WVAR): New macro.
4134 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
4135 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
4136 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
4137 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
4138 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
4139 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
4140
4141 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
4142
4143 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
4144
4145 2012-08-01 Glenn Morris <rgm@gnu.org>
4146
4147 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
4148 Move to configure.ac.
4149
4150 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
4151
4152 * makefile.w32-in (CONFIG_H): Update dependencies.
4153 (CONF_POST_H): New macro.
4154
4155 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
4156
4157 2012-07-31 Glenn Morris <rgm@gnu.org>
4158
4159 * Makefile.in (S_FILE): No longer set by configure.
4160
4161 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
4162 is available.
4163 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
4164
4165 * process.h (NULL_DEVICE):
4166 * emacs.c (SEPCHAR):
4167 * editfns.c (USER_FULL_NAME): Let configure set them.
4168
4169 * s/README, s/template.h: Remove files.
4170
4171 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
4172
4173 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
4174 Move to configure.ac.
4175
4176 2012-07-31 Eli Zaretskii <eliz@gnu.org>
4177
4178 * .gdbinit (xframe): Adapt to introduction of FVAR and the
4179 resulting renaming of 'struct frame' members.
4180
4181 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
4182
4183 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
4184 after introduction of FVAR.
4185
4186 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
4187
4188 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
4189
4190 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
4191 instead of compositeToPoint.
4192 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
4193
4194 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
4195
4196 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4197
4198 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
4199 * lisp.h (INTERNAL_FIELD): New macro.
4200 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
4201 (BVAR): Change to use INTERNAL_FIELD.
4202 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
4203 (KVAR): Change to use INTERNAL_FIELD.
4204 * frame.h (FVAR): New macro.
4205 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
4206 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
4207 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
4208 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
4209 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
4210
4211 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4212
4213 Miscellaneous fixes for non-default X toolkits.
4214 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
4215 * xterm.c (x_frame_of_widget): Remove redundant prototype.
4216 Move under #ifdef USE_LUCID.
4217 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
4218 definition and usage to avoid warnings.
4219
4220 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
4221
4222 * nsterm.m (openFiles): Fix previous checkin.
4223
4224 2012-07-31 Paul Eggert <eggert@cs.ucla.edu>
4225
4226 * indent.c (compute_motion): Remove unused local.
4227
4228 2012-07-31 Glenn Morris <rgm@gnu.org>
4229
4230 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
4231
4232 * conf_post.h [USG5_4]:
4233 Move remaining contents of s/usg5-4-common.h here.
4234 * s/usg5-4-common.h: Remove file.
4235
4236 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
4237 * s/irix6-5.h: Remove file.
4238
4239 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
4240 * s/darwin.h: Remove file.
4241
4242 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
4243 * s/hpux10-20.h: Remove file, which is now empty.
4244
4245 2012-07-30 Glenn Morris <rgm@gnu.org>
4246
4247 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
4248 * Makefile.in (config_h): Add conf_post.h.
4249 * makefile.w32-in (CONFIG_H): Add conf_post.h.
4250
4251 2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
4252
4253 * nsterm.m (ns_do_open_file): New variable.
4254 (ns_term_init): Set ns_do_open_file to YES after run returns.
4255 (openFile, openTempFile, openFileWithoutUI, openFiles):
4256 Open files only if ns_do_open_file.
4257
4258 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4259
4260 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
4261 This no-op macro hasn't been needed for many years.
4262 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
4263
4264 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
4265 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
4266 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
4267 gdb_make_enums_visible.
4268 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
4269 (DIRECTORY_SEP): Now a constant, not a macro.
4270
4271 2012-07-30 Eli Zaretskii <eliz@gnu.org>
4272
4273 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
4274 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
4275
4276 * w32term.c <w32_keyboard_codepage>: Renamed from
4277 keyboard_codepage and now external. All users changed.
4278
4279 * w32term.h: Add declaration of w32_keyboard_codepage.
4280
4281 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
4282 the codepage to translate keys to Unicode. If this argument is
4283 -1, use the value returned by GetConsoleCP. All callers changed.
4284
4285 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4286
4287 Update .PHONY listings in makefiles.
4288 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
4289 bootstrap-clean, distclean, maintainer-clean, versioclean,
4290 extraclean, frc.
4291
4292 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
4293 This is a bit clearer. Fix some commentary typos.
4294
4295 2012-07-30 Glenn Morris <rgm@gnu.org>
4296
4297 * s/netbsd.h: Let configure include signal.h if needed.
4298 Remove file, which is now empty.
4299
4300 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
4301 Let configure set them.
4302 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
4303 No more need to undefine.
4304
4305 2012-07-30 Andreas Schwab <schwab@linux-m68k.org>
4306
4307 * keymap.c (Fkey_description): Don't remove 0x80 bit from
4308 non-single-byte char when adding meta modifier. (Bug#12090)
4309
4310 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4311
4312 Convert safe_call to use variable number of arguments.
4313 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
4314 (safe_call2): Fix comment.
4315 * lisp.h (safe_call): Adjust prototype.
4316 * coding.c (encode_coding_object): Change to use safe_call2.
4317 * xfaces.c (merge_face_heights): Change to use safe_call1.
4318
4319 2012-07-30 Glenn Morris <rgm@gnu.org>
4320
4321 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
4322 does that unconditionally. Remove file, which is now empty.
4323
4324 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
4325 Remove empty files.
4326
4327 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4328
4329 Export to GDB most of lisp.h's remaining object-like macros.
4330 * lisp.h (min, max): Move earlier, because they're used earlier now.
4331 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
4332 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
4333 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
4334 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
4335 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
4336 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
4337 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
4338 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
4339 Now constants, for GDB. They need not be macros.
4340 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
4341 Now constants, for GDB, as well as macros, for static initializers.
4342 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
4343 Move to after the definition of struct Lisp_Char_Table,
4344 since the former now needs that type defined.
4345 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
4346 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
4347 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
4348 New enums, for gdb_make_enums_visible.
4349 (GLYPH_MODE_LINE_FACE): Remove; unused.
4350 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
4351 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
4352 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
4353 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
4354 enum maxargs, enum MAX_ALLOCA.
4355 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
4356 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
4357 no longer needed, now that they are done in lisp.h.
4358
4359 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4360
4361 Cleanup string bytes checking.
4362 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
4363 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
4364 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
4365 (check_sblock, compact_small_strings): Simplify.
4366
4367 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4368
4369 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
4370 These macros are confusing and no longer need to be defined, as
4371 the enum values now suffice. All uses replaced with definiens.
4372 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
4373
4374 2012-07-29 Juanma Barranquero <lekktu@gmail.com>
4375
4376 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
4377 ($(BLD)/w32console.$(O)): Update dependencies.
4378
4379 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4380
4381 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
4382 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
4383 time. Adjust users.
4384 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
4385
4386 2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
4387
4388 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
4389 setting sitelisp (Bug#12010).
4390
4391 2012-07-29 Eli Zaretskii <eliz@gnu.org>
4392
4393 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
4394
4395 * w32heap.c (cache_system_info):
4396 * w32.c (sys_rename):
4397 * w32proc.c (find_child_console, sys_kill): All users changed.
4398
4399 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4400
4401 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
4402
4403 2012-07-29 Eli Zaretskii <eliz@gnu.org>
4404
4405 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
4406
4407 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4408
4409 Cleanup statistics calculation in Fgarbage_collect.
4410 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
4411 Fix zombies percentage calculation. Simplify elapsed time calculation.
4412
4413 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4414
4415 Generalize marker debugging code under MARKER_DEBUG and use eassert.
4416 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
4417 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
4418 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
4419 (replace_range, replace_range_2, del_range_2): Change to eassert.
4420 * marker.c (byte_char_debug_check): Adjust style.
4421
4422 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4423
4424 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
4425 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
4426 long-ago-commented-out code that talks about "WIN32".
4427 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
4428 All uses changed.
4429
4430 2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
4431
4432 Use Gnulib stdalign module (Bug#9772, Bug#9960).
4433 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
4434 Simplify by using alignof.
4435 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
4436 * lisp.h: Include <stdalign.h>.
4437 (GCALIGNMENT): New macro and constant.
4438 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
4439 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
4440 (stdalign): New macro, if not already defined.
4441
4442 2012-07-28 Eli Zaretskii <eliz@gnu.org>
4443
4444 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
4445 * w32inevt.c: Include w32inevt.h.
4446 (w32_read_console_input): New inline function, calls either
4447 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
4448 w32_console_unicode_input.
4449 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
4450 (w32_kbd_patch_key, key_event): Use the codepage returned by
4451 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
4452 (key_event): use uChar.UnicodeChar only if
4453 w32_console_unicode_input is non-zero.
4454
4455 * w32console.c: Include w32heap.h.
4456 <w32_console_unicode_input>: New global variable.
4457 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
4458 family of Windows, zero otherwise.
4459
4460 * w32inevt.h: Declare w32_console_unicode_input.
4461
4462 * xdisp.c (init_iterator): Don't reference tip_frame in a build
4463 --without-x. (Bug#11742)
4464
4465 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
4466
4467 Adjust GDB to reflect pvec_type changes (Bug#12036).
4468 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
4469 2012-07-04 changes to pseudovector representation.
4470 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
4471
4472 2012-07-27 Michael Albinus <michael.albinus@gmx.de>
4473
4474 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
4475 bus address.
4476 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
4477
4478 2012-07-27 Eli Zaretskii <eliz@gnu.org>
4479
4480 * alloc.c (listn): Fix the order the arguments are consed onto the
4481 list.
4482
4483 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
4484 enumeration constants, as PURE and HEAP are too general, and clash
4485 with other headers and sources, such as gmalloc.c and the
4486 MS-Windows system headers. All users changed.
4487
4488 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4489
4490 Revert last save_excursion_save and save_excursion_restore changes.
4491 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
4492 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
4493
4494 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4495
4496 Fix recently-introduced typos in Windows port.
4497 Reported by Martin Rudalics <rudalics@gmx.at>.
4498 * w32.c (init_environment): Replace comma with semicolon.
4499 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
4500
4501 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
4502
4503 Improve GDB symbol export (Bug#12036).
4504 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
4505 arms of an 'if', not using conditional expressions; otherwise GDB
4506 complains about the types in the unevaluated arm when the argument
4507 is an integer literal.
4508 (xgetint): Simplify expression.
4509 * alloc.c (gdb_make_enums_visible): New constant. This ports to
4510 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
4511 Zaretskii in <http://bugs.gnu.org/12036#13>.
4512 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
4513 needed now that we have gdb_make_enums_visible.
4514 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
4515 (enum enum_USE_LSB_TAG):
4516 New enum types, packaging up enums that need to be exported to GDB.
4517
4518 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4519
4520 Utility function to make a list from specified amount of objects.
4521 * lisp.h (enum constype): New datatype.
4522 (listn): New prototype.
4523 * alloc.c (listn): New function.
4524 (Fmemory_use_count, syms_of_alloc): Use it.
4525 * buffer.c (syms_of_buffer): Likewise.
4526 * callint.c (syms_of_callint): Likewise.
4527 * charset.c (define_charset_internal): Likewise.
4528 * coding.c (syms_of_coding): Likewise.
4529 * keymap.c (syms_of_keymap): Likewise.
4530 * search.c (syms_of_search): Likewise.
4531 * syntax.c (syms_of_syntax): Likewise.
4532 * w32.c (init_environment): Likewise.
4533 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
4534 * xdisp.c (syms_of_xdisp): Likewise.
4535 * xfns.c (syms_of_xfns): Likewise.
4536
4537 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4538
4539 Fast save_excursion_save and save_excursion_restore.
4540 * lisp.h (struct Lisp_Excursion): New data type.
4541 (PVEC_EXCURSION): New pseudovector type.
4542 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
4543 to deal with it. Adjust comments.
4544 (init_marker, attach_marker): New prototype.
4545 (unchain_marker): Adjust prototype.
4546 * marker.c (attach_marker): Change to global.
4547 (init_marker): New function.
4548 * alloc.c (Fmake_marker, build_marker): Use it.
4549 (build_marker): More easserts.
4550 (mark_object): Handle struct Lisp_Excursion.
4551 * editfns.c (save_excursion_save, save_excursion_restore):
4552 Reimplement to use struct Lisp_Excursion. Add comments.
4553
4554 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
4555
4556 Fix export of symbols to GDB (Bug#12036).
4557 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
4558 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
4559 emacs.c, as this is a more-suitable home. Had this been done earlier
4560 the fix for 12036 would have avoided some of the problems noted in
4561 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
4562 would have been more obvious.
4563 * emacs.c: Do not include <verify.h>; no longer needed.
4564 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
4565 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
4566 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
4567 Remove; now done in lisp.h.
4568 * lisp.h (PUBLISH_TO_GDB): New macro.
4569 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
4570 (DATA_SEG_BITS): Use it.
4571 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
4572 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
4573 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
4574 not be usable in #if. This simplifies things.
4575
4576 2012-07-26 Juanma Barranquero <lekktu@gmail.com>
4577
4578 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
4579
4580 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
4581
4582 Simplify export of symbols to GDB (Bug#12036).
4583 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
4584 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
4585 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
4586 Adjust to changes in lisp.h and emacs.c, by using
4587 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
4588 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
4589 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
4590 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
4591 instead of gdb_valbits.
4592 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
4593 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
4594 instead of gdb_array_mark_flag.
4595 (xboolvector): Get size from $->size, not $->header.size.
4596 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
4597 (xreload, hook-run, hookpost-run): Remove.
4598 * emacs.c: Include <verify.h>.
4599 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
4600 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
4601 Remove.
4602 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
4603 (gdb_USE_LSB_TAG): New enum constants.
4604 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
4605 Also define these as enum constants, so they're visible to GDB.
4606 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
4607 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
4608 as constants, so they're visible to GDB.
4609 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
4610 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
4611 Now enum constants, not macros, so they're visible to GDB.
4612 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
4613 more convenient now. All uses changed.
4614 (VALMASK) [USE_LSB_TAG]: Also define in this case.
4615 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
4616
4617 2012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
4618
4619 Explicitly free restriction data that are not needed anymore.
4620 * editfns.c (save_restriction_restore): Free restriction data.
4621
4622 2012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
4623
4624 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
4625 add argument, tune behavior, and adjust all callers.
4626
4627 2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
4628
4629 Use typedef for EMACS_INT, EMACS_UINT.
4630 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
4631 than macros. This simplifies debugging in the usual case, since
4632 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
4633 and it allows expressions involving EMACS_INT casts.
4634 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
4635
4636 2012-07-25 Jan Djärv <jan.h.d@swipnet.se>
4637
4638 * nsterm.m (ns_read_socket): Return early if there is a modal
4639 window (Bug#12043).
4640
4641 2012-07-25 Martin Rudalics <rudalics@gmx.at>
4642
4643 * frame.c (Fredirect_frame_focus): In doc-string don't mention
4644 that FOCUS-FRAME can be omitted.
4645
4646 2012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
4647
4648 Adjust buffer text indirection counters at the end of Fkill_buffer.
4649 * buffer.c (Fkill_buffer): Adjust indirection counters when the
4650 buffer is definitely dead. This should really fix an issue reported
4651 by Christoph Scholtes again. (Bug#12007).
4652 (init_buffer_once): Initialize indirection counters of
4653 buffer_defaults and buffer_local_symbols (for sanity and safety).
4654
4655 2012-07-24 Eli Zaretskii <eliz@gnu.org>
4656
4657 * xdisp.c (init_iterator): Don't compute dimensions of truncation
4658 and continuation glyphs on tooltip frames, leave them at zero.
4659 Avoids continued lines in tooltips. (Bug#11832)
4660
4661 2012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
4662
4663 Simplify copy_overlay.
4664 * buffer.c (copy_overlay): Simplify. Use build_marker.
4665 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
4666
4667 2012-07-23 Eli Zaretskii <eliz@gnu.org>
4668
4669 * print.c (print_object): Don't crash when a frame's name is nil
4670 or invalid. (Bug#12025)
4671
4672 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
4673 it signals an error when a tooltip frame is being created.
4674
4675 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
4676
4677 Cleanup miscellaneous objects allocation and initialization.
4678 * alloc.c (allocate_misc): Change to static. Add argument to
4679 specify the subtype. Adjust comment and users.
4680 (build_overlay): New function.
4681 * buffer.c (copy_overlays, Fmake_overlay): Use it.
4682 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
4683 (allocate_misc): Remove prototype.
4684 (build_overlay): Add prototype.
4685
4686 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
4687
4688 Swap buffer text indirection counters in Fbuffer_swap_text.
4689 * buffer.c (Fbuffer_swap_text): Swap indirections too.
4690 This avoids crash reported by Christoph Scholtes at
4691 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
4692
4693 2012-07-22 Jan Djärv <jan.h.d@swipnet.se>
4694
4695 * nsmenu.m (Popdown_data): New struct.
4696 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
4697 free Popdown_data.
4698 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
4699 (initWithContentRect): Make imgView and contentView non-static
4700 and autorelease them. Also autorelease img and matrix (Bug#12005).
4701 (dealloc): Remove (Bug#12005).
4702
4703 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
4704
4705 Adjust consing_since_gc when objects are explicitly freed.
4706 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
4707 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
4708 (free_cons, free_misc): Subtract object size from consing_since_gc.
4709
4710 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
4711
4712 Simplify and cleanup markers positioning code.
4713 * marker.c (attach_marker): More useful eassert.
4714 (live_buffer, set_marker_internal): New function.
4715 (Fset_marker, set_marker_restricted): Use set_marker_internal.
4716 (set_marker_both, set_marker_restricted_both): Use live_buffer.
4717
4718 2012-07-22 Paul Eggert <eggert@cs.ucla.edu>
4719
4720 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
4721 as it's limited by the amount of memory, not by INT_MAX.
4722
4723 2012-07-21 Eli Zaretskii <eliz@gnu.org>
4724
4725 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
4726 in special-event-map. See the discussion at
4727 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
4728 for the reasons.
4729
4730 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
4731 info.dwItemData. Fixes crashes on 64-bit Windows.
4732 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
4733
4734 2012-07-21 Jan Djärv <jan.h.d@swipnet.se>
4735
4736 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4737 (conversationIdentifier): Return value is NSInteger.
4738 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
4739
4740 2012-07-21 Chong Yidong <cyd@gnu.org>
4741
4742 * window.c (decode_any_window): Signal an error if the window is
4743 on a dead frame (Bug#11984).
4744
4745 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4746
4747 Add indirection counting to speed up Fkill_buffer.
4748 * buffer.h (struct buffer): New member.
4749 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
4750 (Fmake_indirect_buffer): Set indirection counter to -1, increment
4751 base buffer indirection counter.
4752 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
4753 (Fkill_buffer): Adjust indirection counters as needed, don't walk
4754 through buffer list if indirection counter is 0.
4755
4756 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4757
4758 Extend the value returned by Fgarbage_collect with heap statistics.
4759 * alloc.c (Qheap): New symbol.
4760 (syms_of_alloc): DEFSYM it.
4761 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
4762 (Fmemory_free): Remove.
4763 (syms_of_alloc): Don't defsubr it.
4764 * buffer.c (Fcompact_buffer): Remove.
4765 (syms_of_buffer): Don't defsubr it.
4766
4767 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4768
4769 Make maybe_gc inline.
4770 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
4771 * lisp.h (consing_since_gc, gc_relative_threshold)
4772 (memory_full_cons_threshold): Revert declaration.
4773 (maybe_gc): Remove prototype, define as inline.
4774 * alloc.c: Remove old commented-out code.
4775 (consing_since_gc, gc_relative_threshold)
4776 (memory_full_cons_threshold): Revert to global.
4777 (maybe_gc): Remove.
4778
4779 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4780
4781 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
4782 * lisp.h (build_unibyte_string): New function.
4783 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
4784 * sysdep.c, w32fns.c, xfns.c: Use it.
4785 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
4786 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
4787 Adjust users accordingly.
4788 * font.h (font_open_by_name): Adjust prototype.
4789
4790 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4791
4792 Cleanup calls to Fgarbage_collect.
4793 * lisp.h (maybe_gc): New prototype.
4794 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
4795 Remove declarations.
4796 * alloc.c (maybe_gc): New function.
4797 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
4798 Make them static.
4799 * bytecode.c (MAYBE_GC): Use maybe_gc.
4800 * eval.c (eval_sub, Ffuncall): Likewise.
4801 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
4802 to avoid dependency from auto-save feature.
4803
4804 2012-07-19 Paul Eggert <eggert@cs.ucla.edu>
4805
4806 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
4807 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
4808 'for_each_per_buffer_object_at'.
4809 All uses changed. It's better to use upper-case for macros that
4810 cannot be implemented as functions, to give the reader a clue
4811 that they're special.
4812
4813 2012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
4814
4815 * alloc.c (Fgarbage_collect): Tweak docstring.
4816
4817 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
4818
4819 Tweak the value returned from Fgarbage_collect again.
4820 * alloc.c (Fgarbage_collect): New return value, as confirmed in
4821 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
4822 Adjust documentation.
4823 (total_vector_bytes): Rename to total_vector_slots, adjust
4824 accounting.
4825 (total_free_vector_bytes): Rename to total_free_vector_slots,
4826 adjust accounting.
4827 (Qstring_bytes, Qvector_slots): New symbols.
4828 (syms_of_alloc): DEFSYM them.
4829
4830 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
4831
4832 Buffer compaction primitive which may be used from Lisp.
4833 * buffer.c (compact_buffer, Fcompact_buffer): New function.
4834 (syms_of_buffer): Register Fcompact_buffer.
4835 * alloc.c (Fgarbage_collect): Use compact_buffer.
4836 * buffer.h (compact_buffer): New prototype.
4837 (struct buffer_text): New member.
4838
4839 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
4840
4841 New macro to iterate over all buffers, miscellaneous cleanups.
4842 * lisp.h (all_buffers): Remove declaration.
4843 * buffer.h (all_buffers): Add declaration, with comment.
4844 (for_each_buffer): New macro.
4845 * alloc.c (Fgarbage_collect, mark_object): Use it.
4846 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
4847 (init_buffer): Likewise.
4848 * data.c (Fset_default): Likewise.
4849 * coding.c (code_conversion_restore): Remove redundant check
4850 for dead buffer.
4851 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
4852
4853 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
4854
4855 Fix bug that created negative-length intervals.
4856 * intervals.c (merge_interval_right, merge_interval_left):
4857 Do not zero out this interval if it is absorbed by its children,
4858 as this interval's total length doesn't change in that case. See
4859 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
4860
4861 2012-07-18 Paul Eggert <eggert@cs.ucla.edu>
4862
4863 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
4864 when invoking (make-bool-vector N t) and N is a positive
4865 multiple of 8 -- the last 8 bits were mistakenly cleared.
4866
4867 Remove some struct layout assumptions in bool vectors.
4868 * alloc.c (bool_header_size): New constant.
4869 (header_size, word_size): Move earlier, as they're now used earlier.
4870 Use 'word_size' in a few more places, where it's appropriate.
4871 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
4872 padding before the data member of a bool vector.
4873 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
4874 than doing the check by hand with an abort ().
4875
4876 2012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
4877
4878 * eval.c (Fdefvar): Don't check constants since we only set the var if
4879 it's not yet defined anyway (bug#11904).
4880
4881 * lisp.h (last_undo_boundary): Declare new var.
4882 * keyboard.c (command_loop_1): Set it.
4883 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
4884 were auto-added by the command loop (bug#11774).
4885
4886 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
4887
4888 * w32font.c (Qsymbol): Remove local definition.
4889 (syms_of_w32font): Don't DEFSYM it.
4890
4891 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
4892
4893 Fix sweep_vectors to handle large bool vectors correctly.
4894 * alloc.c (sweep_vectors): Account total_vector_bytes for
4895 bool vectors larger than VBLOCK_BYTES_MAX.
4896
4897 2012-07-18 Chong Yidong <cyd@gnu.org>
4898
4899 * frame.c (x_set_frame_parameters): Revert bogus change introduced
4900 in 2012-05-25 commit by Paul Eggert (Bug#11738).
4901
4902 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
4903
4904 Return more descriptive data from Fgarbage_collect.
4905 Suggested by Stefan Monnier in
4906 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
4907 * alloc.c (bounded_number): New function.
4908 (total_buffers, total_vectors): New variable.
4909 (total_string_size): Rename to total_string_bytes, adjust users.
4910 (total_vector_size): Rename to total_vector_bytes, adjust users.
4911 (sweep_vectors): Account total_vectors and total_vector_bytes.
4912 (Fgarbage_collect): New return value. Adjust documentation.
4913 (gc_sweep): Account total_buffers.
4914 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
4915 (VECTOR_SIZE): Remove.
4916 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
4917 (Qinterval, Qmisc): New symbols.
4918 (syms_of_data): Initialize them.
4919 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
4920 (Qcons, Qbuffer): New declarations.
4921
4922 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
4923
4924 * alloc.c (Fmemory_free): Account for memory-free's own storage.
4925 Round up, not down. Improve doc.
4926
4927 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4928
4929 Restore old code in allocate_string_data to avoid Faset breakage.
4930 Reported by Julien Danjou <julien@danjou.info> in
4931 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
4932 * alloc.c (allocate_string_data): Restore old code with minor
4933 adjustments, fix comment to explain this subtle issue.
4934
4935 2012-07-17 Eli Zaretskii <eliz@gnu.org>
4936
4937 Remove FILE_SYSTEM_CASE.
4938 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
4939
4940 * fileio.c (FILE_SYSTEM_CASE): Don't define.
4941 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
4942 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
4943 call-process-region passes it through expand-file-name.
4944
4945 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
4946
4947 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
4948
4949 Fix crash when creating indirect buffer (Bug#11917)
4950 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
4951 Don't handle unbound variables specially if non-zero.
4952 (Fbuffer_local_variables): Pass zero.
4953 (clone_per_buffer_values): Pass non-zero.
4954
4955 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
4956
4957 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
4958 to make the loop interruptible.
4959
4960 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
4961
4962 * gnutls.c (emacs_gnutls_handshake): Only retry if
4963 GNUTLS_E_INTERRUPTED.
4964
4965 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4966
4967 Cleanup and convert miscellaneous checks to eassert.
4968 * alloc.c (mark_interval): Fix comment, partially rephrase
4969 old comment from intervals.h (see below).
4970 * intervals.c (find_interval, adjust_intervals_for_insertion)
4971 (delete_interval, adjust_intervals_for_deletion)
4972 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
4973 Convert to eassert.
4974 (adjust_intervals_for_insertion, make_new_interval):
4975 Remove obsolete and unused code.
4976 * intervals.h (struct interval): Remove obsolete comment.
4977 * textprotp.c (erase_properties): Remove unused code.
4978 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
4979 (Fremove_list_of_text_properties): Convert to eassert.
4980
4981 2012-07-17 Chong Yidong <cyd@gnu.org>
4982
4983 * editfns.c (Finsert_char): Doc fix.
4984
4985 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4986
4987 Fix previous change to make Fmemory_free always accurate.
4988 * alloc.c (make_interval): Update total_free_intervals.
4989 (make_float): Likewise for total_free_floats.
4990 (free_cons, Fcons): Likewise for total_free_conses.
4991 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
4992 Likewise for total_free_vector_bytes.
4993 (Fmake_symbol): Likewise for total_free_symbols.
4994 (bytes_free): Remove.
4995
4996 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4997
4998 Simple free memory accounting feature.
4999 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
5000 (sweep_vectors): Accumulate size of free vectors.
5001 (Fgarbage_collect): Setup bytes_free.
5002 (Fmemory_free): New function.
5003 (syms_of_alloc): Register it.
5004
5005 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
5006
5007 Cleanup overlays checking.
5008 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
5009 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
5010 eassert and OVERLAYP.
5011 (sort_overlays): Change to use OVERLAYP.
5012
5013 2012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
5014
5015 * editfns.c (Finsert_char): Make it interactive, and make the
5016 second arg optional. Copy interactive spec and docstring from
5017 ucs-insert.
5018
5019 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
5020
5021 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
5022 Unlike the other wrapped functions, fabs has an unspecified
5023 effect on errno.
5024
5025 2012-07-16 Jan Djärv <jan.h.d@swipnet.se>
5026
5027 * nsterm.m (keyDown): Interpret flags without left/right bits
5028 as the left key (Bug#11670).
5029
5030 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
5031
5032 Remove empty and useless init functions.
5033 * lisp.h (init_character_once, init_fns, init_image)
5034 (init_filelock, init_sound): Remove prototype.
5035 * character.c (init_character_once): Remove.
5036 * filelock.c (init_filelock): Likewise.
5037 * fns.c (init_fns): Likewise.
5038 * image.c (init_image): Likewise.
5039 * sound.c (init_sound): Likewise.
5040 * emacs.c (main): Adjust accordingly.
5041
5042 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
5043
5044 * gtkutil.h: Tiny cleanups.
5045 (use_old_gtk_file_dialog): Remove useless declaration.
5046 (xg_uses_old_file_dialog): Add suggested const attribute.
5047
5048 2012-07-15 Eli Zaretskii <eliz@gnu.org>
5049
5050 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
5051 (bidi_paragraph_init): Use it to limit search forward for a strong
5052 directional character in abnormally large paragraphs full of
5053 neutral or weak characters. (Bug#11943)
5054
5055 2012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
5056
5057 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
5058 the toolbar (Bug#9451).
5059 (xg_make_tool_item): Give the widget event box a transparent
5060 background.
5061
5062 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
5063
5064 Cleanup basic allocation variables and functions.
5065 * alloc.c (ignore_warnings, init_intervals, init_float)
5066 (init_cons, init_symbol, init_marker): Remove.
5067 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
5068 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
5069 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
5070 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
5071 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
5072 (staticidx, init_alloc_once, init_strings, free_ablock):
5073 Remove redundant initialization.
5074 * fns.c (init_weak_hash_tables): Remove.
5075 * lisp.h (init_weak_hash_tables): Remove prototype.
5076
5077 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
5078
5079 Use zero_vector where appropriate.
5080 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
5081 accordingly.
5082 * lisp.h (zero_vector): New declaration.
5083 * font.c (null_vector): Remove.
5084 (syms_of_font): Remove initialization and staticpro.
5085 (font_list_entities, font_find_for_lface): Change to use zero_vector.
5086 * keymap.c (Faccessible_keymaps): Likewise.
5087
5088 2012-07-15 Leo Liu <sdl.web@gmail.com>
5089
5090 * fringe.c: Fix typo in comments.
5091
5092 2012-07-14 Leo Liu <sdl.web@gmail.com>
5093
5094 * fringe.c: Add a new bitmap exclamation-mark.
5095
5096 2012-07-14 Eli Zaretskii <eliz@gnu.org>
5097
5098 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
5099
5100 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
5101 (HAVE_MENUS): Don't define, defined by editing config.in with
5102 msdos/sed2v2.inp.
5103 (GMALLOC_INHIBIT_VALLOC): Don't define.
5104 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
5105
5106 2012-07-14 Juanma Barranquero <lekktu@gmail.com>
5107
5108 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
5109
5110 2012-07-14 Glenn Morris <rgm@gnu.org>
5111
5112 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
5113 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
5114 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
5115
5116 2012-07-13 Glenn Morris <rgm@gnu.org>
5117
5118 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
5119
5120 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
5121 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
5122
5123 2012-07-13 Jan Djärv <jan.h.d@swipnet.se>
5124
5125 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
5126 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
5127 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
5128 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
5129 where appropriate.
5130 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
5131 as boolean expression.
5132 (x_set_window_size): Remove unused variable toolbar.
5133 (ns_get_color_default, ns_mod_to_lisp): Remove.
5134 (ns_mouse_position): Remove unused variables xchar and ychar.
5135 (ns_compute_glyph_string_overhangs): Remove unused variable face.
5136 (ns_set_vertical_scroll_bar): Remove unused variable count.
5137 (ns_delete_terminal): Remove unused variable i.
5138 (ns_term_init): Remove unused variables r, g and b.
5139 (mouseDown): Remove unused variable window.
5140 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
5141 (initFrameFromEmacs): Remove unused variable vbextra.
5142 (mouseEntered): Remove unused variables p and dpyinfo.
5143 (mouseExited): Remove unused variables p and r.
5144 (ns_define_frame_cursor, ns_clear_frame_area)
5145 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
5146 (menuDown): Assign [sender tag] to variable and cast the variable.
5147
5148 * nsterm.h (menuDown): Add id as type to argument sender.
5149 (ns_display_info_for_name): Add Lisp_Object argument.
5150 (ns_term_init): Add Lisp_Object argument.
5151 (ns_map_event_to_object): Add void argument.
5152 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
5153 prototype with arguments and only declare if __OBJC__.
5154 (nxatoms_of_nsselect): Add void argument.
5155 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
5156 (ns_alloc_autorelease_pool): Add void argument.
5157 (ns_release_autorelease_pool): Add void* argument.
5158 (ns_get_defaults_value): Add const char* argument.
5159
5160 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
5161 (initFromContents): Use SSDATA where appropriate.
5162 (ns_update_menubar): Add braces to ambigous if-else.
5163 (initWithTitle): Put () around assignment in if statement.
5164 (ns_menu_show): Remove unused variables window and keymap.
5165 (update_frame_tool_bar): Remove unused variable selected_p.
5166 (initWithContentRect): Remove unused variable this_cmd_name.
5167
5168 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
5169 appropriate.
5170 (setXBMColor): Remove unused variable len.
5171 (setPixmapData): Put () around assignment in loop statement.
5172
5173 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
5174 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
5175 where appropriate.
5176 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
5177 around assignment in loop statement.
5178 (nsfont_open): Remove unused variable i.
5179 (nsfont_open): Remove unused variable len.
5180 (nsfont_draw): Remove unused variable cs.
5181
5182 * nsfns.m (x_set_icon_name, ns_set_name_internal)
5183 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
5184 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
5185 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
5186 (Fns_font_name, Fns_perform_service)
5187 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
5188 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
5189 (ns_set_name): Remove unused variable view.
5190 (x_set_menu_bar_lines): Remove unused variable olines.
5191 (x_set_tool_bar_lines): Remove unused variable root_window.
5192 (Fns_list_colors): Put () around assignment in while statement.
5193 (Fns_perform_service): Remove unused variable len.
5194 (Fns_display_usable_bounds): Remove unused variable top.
5195 (syms_of_nsfns): Remove unused variable i.
5196
5197 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
5198 memcpy (Bug#11907).
5199
5200 2012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
5201
5202 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
5203 and free it with DestroyExceptionInfo (Bug#11558).
5204
5205 2012-07-13 Juanma Barranquero <lekktu@gmail.com>
5206
5207 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
5208 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
5209 Set here, not in nt/config.nt.
5210
5211 2012-07-13 Eli Zaretskii <eliz@gnu.org>
5212
5213 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
5214 cursor overflow into the last glyph on display line when the right
5215 fringe is off. (Bug#11832)
5216
5217 2012-07-13 Paul Eggert <eggert@cs.ucla.edu>
5218
5219 * xdisp.c (produce_special_glyphs): Now static.
5220 * dispextern.h (produce_special_glyphs): Remove decl.
5221
5222 2012-07-13 Glenn Morris <rgm@gnu.org>
5223
5224 * s/bsd-common.h, s/cygwin.h: Remove empty files.
5225 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
5226
5227 * s/usg5-4-common.h (USG, USG5):
5228 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
5229 * s/sol2-6.h (SOLARIS2):
5230 * s/irix6-5.h (IRIX6_5):
5231 * s/hpux10-20.h (USG, USG5, HPUX):
5232 * s/gnu-linux.h (USG, GNU_LINUX):
5233 * s/freebsd.h (BSD_SYSTEM):
5234 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
5235 * s/cygwin.h (CYGWIN):
5236 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
5237 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
5238
5239 2012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
5240
5241 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
5242
5243 2012-07-13 Glenn Morris <rgm@gnu.org>
5244
5245 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
5246
5247 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
5248
5249 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
5250 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
5251
5252 2012-07-12 Glenn Morris <rgm@gnu.org>
5253
5254 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
5255
5256 * process.c (init_process_emacs): Rename from init_process.
5257 The old name is also the name of a Mach system call.
5258 * lisp.h, emacs.c: Update for this name change.
5259 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
5260 longer needed.
5261
5262 2012-07-12 Eli Zaretskii <eliz@gnu.org>
5263
5264 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
5265 memmove call that removes glyphs covered by the left truncation
5266 glyph. Improve commentary.
5267 (display_line): Fix display of continuation glyphs on GUI frames
5268 when the right fringe is turned off and variable-size fonts are
5269 used in the window. Move the code that appends a stretch glyph to
5270 produce_special_glyphs, so that it could be used for truncation
5271 and continuation glyphs alike.
5272 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
5273 glyph of a suitably computed width, to align the special glyphs at
5274 the window margin. Code moved from display_line. (Bug#11832)
5275
5276 2012-07-12 Glenn Morris <rgm@gnu.org>
5277
5278 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
5279
5280 * s/gnu-linux.h, s/hpux10-20.h:
5281 Do not unconditionally define HAVE_XRMSETDATABASE.
5282
5283 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
5284
5285 2012-07-12 Paul Eggert <eggert@cs.ucla.edu>
5286
5287 Fix typos that broke OS X build.
5288 Reported by Randal L. Schwartz in
5289 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
5290 * nsterm.m (ns_timeout): Add missing local decl.
5291 (ns_get_color): snprintf -> sprintf, to fix typo.
5292
5293 2012-07-12 Glenn Morris <rgm@gnu.org>
5294
5295 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
5296 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
5297 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
5298 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
5299
5300 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
5301 Move PTY_OPEN to configure.
5302
5303 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
5304 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
5305 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
5306
5307 2012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
5308
5309 Use empty_unibyte_string where applicable.
5310 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
5311 * lread.c (read1): Likewise.
5312 * xsettings.c (syms_of_xsettings): Likewise.
5313
5314 2012-07-12 Glenn Morris <rgm@gnu.org>
5315
5316 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
5317 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
5318 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
5319 * s/hpux10-20.h (RUN_TIME_REMAP):
5320 * s/bsd-common.h (TABDLY): Move to configure.
5321
5322 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
5323
5324 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
5325
5326 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
5327 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
5328
5329 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
5330
5331 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
5332 * s/template.h: Move NARROWPROTO to configure.
5333
5334 2012-07-11 Glenn Morris <rgm@gnu.org>
5335
5336 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
5337 unused since 2011-01-17 change to systty.h.
5338
5339 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
5340 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
5341 Move HAVE_PTYS and HAVE_SOCKETS to configure.
5342
5343 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
5344
5345 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
5346
5347 2012-07-11 Glenn Morris <rgm@gnu.org>
5348
5349 * s/darwin.h, s/gnu-linux.h, s/template.h:
5350 Move INTERRUPT_INPUT to configure.
5351
5352 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5353
5354 Minor adjustments to interning code.
5355 * lisp.h (intern, intern_c_string): Redefine as static inline
5356 wrappers for intern_1 and intern_c_string_1, respectively.
5357 (intern_1, intern_c_string_1): Rename prototypes.
5358 * lread.c (intern_1, intern_c_string_1, oblookup):
5359 Simplify Vobarray checking.
5360 * font.c (font_intern_prop): Likewise. Adjust comment.
5361 * w32font.c (intern_font_name): Likewise.
5362
5363 2012-07-11 Andreas Schwab <schwab@linux-m68k.org>
5364
5365 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
5366
5367 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
5368 of Fcar/Fcdr if possible.
5369 * font.c (check_otf_features): Likewise.
5370 * fontset.c (Fnew_fontset): Likewise.
5371 * gnutls.c (Fgnutls_boot): Likewise.
5372 * minibuf.c (read_minibuf): Likewise.
5373 * msdos.c (IT_set_frame_parameters): Likewise.
5374 * xmenu.c (Fx_popup_dialog): Likewise.
5375 * w32menu.c (Fx_popup_dialog): Likewise.
5376
5377 2012-07-11 Glenn Morris <rgm@gnu.org>
5378
5379 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
5380 since nothing has defined it on these platforms.
5381
5382 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
5383 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
5384
5385 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
5386 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
5387 Move CLASH_DETECTION to configure.
5388
5389 * s/gnu.h: Remove file, which is now empty.
5390
5391 * s/gnu.h, s/gnu-linux.h:
5392 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
5393
5394 2012-07-11 John Wiegley <johnw@newartisans.com>
5395
5396 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
5397 function attribute, so we only use it if it exists in the
5398 compiler.
5399
5400 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5401
5402 Avoid call to strlen in fast_c_string_match_ignore_case.
5403 * search.c (fast_c_string_match_ignore_case): Change to use
5404 length argument. Adjust users accordingly.
5405 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
5406
5407 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
5408
5409 Assume mkdir, rmdir.
5410 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
5411 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
5412
5413 Assume rename.
5414 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
5415
5416 Assume perror.
5417 * s/hpux10-20.h (HAVE_PERROR): Remove.
5418 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
5419 Remove dummy definition, as this problem was obsolete long ago.
5420
5421 Assume strerror.
5422 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
5423
5424 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5425
5426 Avoid calls to strlen in font processing functions.
5427 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
5428 (font_open_by_name): Change to use length argument.
5429 Adjust users accordingly.
5430 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
5431 Adjust prototypes.
5432 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
5433 Change to return ptrdiff_t.
5434 (xfont_list_pattern, xfont_match): Use length returned by
5435 xfont_decode_coding_xlfd.
5436 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
5437
5438 2012-07-11 Glenn Morris <rgm@gnu.org>
5439
5440 * s/darwin.h, s/freebsd.h, s/netbsd.h:
5441 Move DONT_REOPEN_PTY to configure.
5442
5443 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
5444 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
5445
5446 2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
5447
5448 Remove "#define unix" that is no longer needed (Bug#11905).
5449 * s/aix4-2.h (unix): Remove; no longer needed.
5450
5451 EMACS_TIME simplification (Bug#11875).
5452 This replaces macros (which typically do not work in GDB)
5453 with functions, typedefs and enums, making the code easier to debug.
5454 The functional style also makes code easier to read and maintain.
5455 * systime.h: Include <sys/time.h> on all hosts, not just if
5456 WINDOWSNT, since 'struct timeval' is needed in general.
5457 (EMACS_TIME): Now a typedef, not a macro.
5458 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
5459 not macros.
5460 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
5461 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
5462 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
5463 (EMACS_TIME_LE): Now functions, not macros.
5464 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
5465 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
5466 which are not functions. All uses rewritten to use:
5467 (make_emacs_time): New function.
5468 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
5469 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
5470 not functions. All uses rewritten to use the following, respectively:
5471 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
5472 (add_emacs_time, sub_emacs_time): New functions.
5473 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
5474 * fileio.c (Fcopy_file):
5475 * xterm.c (XTflash): Get the current time closer to when it's used.
5476 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
5477
5478 * bytecode.c (targets): Suppress -Woverride-init warnings.
5479
5480 Simplify by avoiding confusing use of strncpy etc.
5481 * doc.c (Fsnarf_documentation):
5482 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
5483 * frame.c (Fmake_terminal_frame):
5484 * gtkutil.c (get_utf8_string):
5485 * lread.c (openp):
5486 * nsmenu.m (ns_update_menubar):
5487 * regex.c (regerror):
5488 Prefer memcpy to strncpy and strncat when either will do.
5489 * fileio.c (Fsubstitute_in_file_name):
5490 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
5491 (menu_separator_name_p):
5492 * nsmenu.m (ns_update_menubar):
5493 Prefer memcmp to strncmp when either will do.
5494 * nsterm.m: Include <ftoastr.h>.
5495 (ns_get_color):
5496 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
5497 Prefer snprintf to strncpy.
5498 * nsterm.m (ns_term_init):
5499 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
5500 * nsterm.m (ns_term_init):
5501 Avoid the need for strncpy, by using build_string or
5502 make_unibyte_string directly. Use dtoastr, not snprintf.
5503 * process.c (Fmake_network_process): Diagnose service names that
5504 are too long, rather than silently truncating them or creating
5505 non-null-terminated names.
5506 (Fnetwork_interface_info): Likewise, for interface names.
5507 * sysdep.c (system_process_attributes) [GNU_LINUX]:
5508 Prefer sprintf to strncat.
5509 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
5510 Prefer vsnprintf to vsprintf + strncpy.
5511
5512 2012-07-10 Glenn Morris <rgm@gnu.org>
5513
5514 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
5515 Clarify fallback case.
5516
5517 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5518
5519 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
5520 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
5521 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
5522 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
5523 where argument type is known to be a Lisp_Cons.
5524
5525 2012-07-10 Tom Tromey <tromey@redhat.com>
5526
5527 * bytecode.c (BYTE_CODE_THREADED): New macro.
5528 (BYTE_CODES): New macro. Replaces all old byte-code defines.
5529 (enum byte_code_op): New type.
5530 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
5531 (exec_byte_code): Use them. Use token threading when applicable.
5532
5533 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5534
5535 Optimize pure C strings initialization.
5536 * lisp.h (make_pure_string): Fix prototype.
5537 (build_pure_c_string): New function, defined as static inline. This
5538 provides a better opportunity to optimize away calls to strlen when
5539 the function is called with compile-time constant argument.
5540 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
5541 argument, adjust users accordingly. Use build_pure_c_string where
5542 appropriate.
5543 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
5544 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
5545 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
5546
5547 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5548
5549 Avoid calls to strlen in miscellaneous functions.
5550 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
5551 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
5552 * lread.c (openp): Likewise.
5553
5554 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5555
5556 Avoid calls to strlen in path processing functions.
5557 * fileio.c (file_name_as_directory): Add comment. Change to add
5558 srclen argument and return the length of result. Adjust users
5559 accordingly.
5560 (directory_file_name): Fix comment. Change to add srclen argument,
5561 swap 1st and 2nd arguments to obey the common convention.
5562 Adjust users accordingly.
5563 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
5564
5565 2012-07-10 Glenn Morris <rgm@gnu.org>
5566
5567 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
5568 Move PENDING_OUTPUT_COUNT definition to configure.
5569
5570 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
5571 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
5572 * s/gnu.h (DATA_START): Move definitions to configure.
5573
5574 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
5575 We include usg5-4-common.h, which defines them both.
5576
5577 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
5578 O_RDONLY already includes it).
5579
5580 Stop ns builds setting the EMACSLOADPATH environment variable.
5581 * nsterm.m (ns_load_path): Rename from ns_init_paths.
5582 Now it does not set EMACSLOADPATH, just returns the load-path string.
5583 * nsterm.h: Update accordingly.
5584 * lread.c [HAVE_NS]: Include nsterm.h.
5585 (init_lread) [HAVE_NS]: Use ns_load_path.
5586 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
5587
5588 2012-07-09 Glenn Morris <rgm@gnu.org>
5589
5590 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
5591 since the included bsd-common.h does so.
5592
5593 Stop ns builds setting the EMACSPATH environment variable.
5594 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
5595 (ns_init_paths): Do not set EMACSPATH.
5596 * nsterm.h (ns_exec_path): Add it.
5597 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
5598 Use ns_exec_path.
5599
5600 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
5601
5602 2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
5603
5604 * process.c (wait_reading_process_output): 'waitchannels' was unset
5605 when read_kbd || !NILP (wait_for_cell); fix this.
5606
5607 Add GCC-style 'const' attribute to functions that can use it.
5608 * character.h (char_resolve_modifier_mask):
5609 * keyboard.h (make_ctrl_char):
5610 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
5611 (init_character_once, next_almost_prime, init_fns, init_image)
5612 (flush_pending_output, init_sound):
5613 * mem-limits.h (start_of_data):
5614 * menu.h (finish_menu_items):
5615 Add ATTRIBUTE_CONST.
5616 * emacs.c (DEFINE_DUMMY_FUNCTION):
5617 Declare the dummy function with ATTRIBUTE_CONST.
5618 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
5619 Add decls with ATTRIBUTE_CONST.
5620
5621 Minor improvements to make_formatted_string.
5622 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
5623 where int is good enough, as vsprintf returns an int.
5624 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
5625
5626 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
5627
5628 Use make_formatted_string to avoid double length calculation.
5629 * lisp.h (make_formatted_string): New prototype.
5630 * alloc.c (make_formatted_string): New function.
5631 * buffer.c (Fgenerate_new_buffer_name): Use it.
5632 * dbus.c (syms_of_dbusbind): Likewise.
5633 * editfns.c (Fcurrent_time_zone): Likewise.
5634 * filelock.c (get_boot_time): Likewise.
5635 * frame.c (make_terminal_frame, set_term_frame_name)
5636 (x_report_frame_params): Likewise.
5637 * image.c (gs_load): Likewise.
5638 * minibuf.c (get_minibuffer): Likewise.
5639 * msdos.c (dos_set_window_size): Likewise.
5640 * process.c (make_process): Likewise.
5641 * xdisp.c (ensure_echo_area_buffers): Likewise.
5642 * xsettings.c (apply_xft_settings): Likewise.
5643
5644 2012-07-09 Glenn Morris <rgm@gnu.org>
5645
5646 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
5647 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
5648 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
5649 * nsterm.h (ns_etc_directory): Add it.
5650 * callproc.c [HAVE_NS]: Include nsterm.h.
5651 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
5652
5653 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
5654
5655 Move marker debugging code under MARKER_DEBUG.
5656 * marker.c (MARKER_DEBUG): Move marker debugging code under
5657 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
5658 for bootstrap with --enable-checking (~3x slowdown reported
5659 by Juanma Barranquero <lekktu@gmail.com>).
5660 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
5661
5662 2012-07-08 Paul Eggert <eggert@cs.ucla.edu>
5663
5664 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
5665 See <http://bugs.gnu.org/11825#29>.
5666
5667 2012-07-08 Eli Zaretskii <eliz@gnu.org>
5668
5669 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
5670 has no font, use the frame's font. (Bug#11813)
5671 (display_line): Add commentary about displaying truncation glyphs
5672 on GUI frames.
5673 (produce_special_glyphs): Move here from term.c.
5674
5675 * term.c (produce_special_glyphs): Move to xdisp.c.
5676
5677 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
5678 section.
5679
5680 2012-07-07 Andreas Schwab <schwab@linux-m68k.org>
5681
5682 * xdisp.c (display_line): Avoid warning about implicit declaration
5683 of FRAME_FONT.
5684
5685 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
5686
5687 * lisp.h: Remove empty conditional.
5688
5689 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
5690
5691 * lread.c (load_path_check): Now static.
5692
5693 Fix some minor --with-ns problems found by static checking.
5694 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
5695 (x_set_font) [!HAVE_X_WINDOWS]:
5696 * image.c (xpm_load_image) [HAVE_NS]:
5697 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
5698 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
5699 Remove unused local.
5700 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
5701 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
5702 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
5703 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
5704 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
5705 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
5706 Fix pointer signedness problem.
5707 * xfaces.c (FRAME_X_FONT_TABLE):
5708 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
5709
5710 2012-07-07 Glenn Morris <rgm@gnu.org>
5711
5712 * lread.c (load_path_check): New function, split from init_lread.
5713 (init_lread): Reorganize. Motivation:
5714 If EMACSLOADPATH is set, check/warn about that rather than the
5715 defaults, which we are not going to use. Hence we can remove
5716 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
5717 Don't warn if site-lisp directories are missing.
5718 If not installed, start from a blank load-path, since
5719 PATH_LOADSEARCH refers to the eventual installation directories.
5720
5721 2012-07-07 Eli Zaretskii <eliz@gnu.org>
5722
5723 Support truncation and continuation glyphs on GUI frames, when
5724 fringes are disabled. (Bug#11832)
5725 * xdisp.c (init_iterator): Get dimensions of truncation and
5726 continuation glyphs even if on GUI frames.
5727 Adjust it->last_visible_x on GUI frames when the left or right fringes,
5728 or both, are absent.
5729 (start_display, move_it_in_display_line_to): Handle the case of a
5730 GUI frame without a fringe to display continuation or truncation
5731 glyphs.
5732 (insert_left_trunc_glyphs): Support GUI frames: make sure
5733 truncation glyphs overwrite enough glyphs from the current line to
5734 have sufficient space in pixels.
5735 (display_line): Support truncation and continuation glyphs on GUI
5736 frames. If some spare pixels are left on the line after inserting
5737 the truncation glyphs, fill that space with a stretch glyph of a
5738 suitably computed width.
5739
5740 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
5741 produce_glyphs, to support GUI sessions.
5742
5743 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
5744
5745 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
5746
5747 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
5748
5749 Do not require float-time's arg to fit in time_t (Bug#11825).
5750 This works better on hosts where time_t is unsigned, and where
5751 float-time is applied to the (negative) difference between two times.
5752 * editfns.c (decode_time_components): Last arg is now double *,
5753 not int *, and means to store all the result as a double, without
5754 worrying about whether the seconds part fits in time_t.
5755 All callers changed.
5756 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
5757 All callers changed.
5758 (Ffloat_time): Do not fail merely because the specified time falls
5759 outside of time_t range.
5760
5761 2012-07-07 Glenn Morris <rgm@gnu.org>
5762
5763 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
5764 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
5765 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
5766
5767 2012-07-07 Juanma Barranquero <lekktu@gmail.com>
5768
5769 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
5770 Update dependencies.
5771
5772 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
5773
5774 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
5775
5776 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
5777 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
5778 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
5779 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
5780 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
5781 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
5782
5783 * xfont.c (compare_font_names): Redo to omit the need for casts.
5784
5785 2012-07-06 Andreas Schwab <schwab@linux-m68k.org>
5786
5787 * xfns.c (Fx_change_window_property): Doc fix.
5788 * w32fns.c (Fx_change_window_property): Doc fix.
5789
5790 * w32fns.c (Fx_window_property): Accept the same arguments as the
5791 X Windows version. Doc fix.
5792 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
5793
5794 2012-07-06 Juanma Barranquero <lekktu@gmail.com>
5795 Eli Zaretskii <eliz@gnu.org>
5796
5797 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
5798 Windows-specific code from nt/config.nt moved here.
5799 Obsolete settings removed.
5800
5801 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
5802
5803 * process.c: Avoid unnecessary calls to gettime.
5804 (wait_reading_process_output): Don't get the time of day
5805 when gobbling data immediately and not waiting, as there's no need
5806 for it in that case. This removes a FIXME.
5807
5808 2012-07-06 Jan Djärv <jan.h.d@swipnet.se>
5809
5810 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
5811 is defined (Bug#11768).
5812
5813 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5814
5815 Fix marker debugging code.
5816 * marker.c (byte_char_debug_check): Do not perform the check
5817 if buffer is not multibyte.
5818 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
5819 Call byte_char_debug_check with correct arguments.
5820
5821 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5822
5823 Compile marker debugging code only if ENABLE_CHECKING is defined.
5824 * marker.c (byte_char_debug_check, count_markers):
5825 Use only if ENABLE_CHECKING is defined.
5826 (byte_debug_flag): Remove.
5827 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
5828 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
5829
5830 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5831
5832 Avoid code repetition in marker-related functions.
5833 * marker.c (attach_marker): New function.
5834 (Fset_marker, set_marker_restricted, set_marker_both)
5835 (set_marker_restricted_both): Use it.
5836 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
5837 Consistently rename charno to charpos.
5838 (marker_position): Add eassert.
5839 (marker_byte_position): Convert to eassert.
5840
5841 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5842
5843 Simplify list operations in unchain_overlay and unchain_marker.
5844 * buffer.c (unchain_overlay): Simplify. Add comment.
5845 * marker.c (unchain_marker): Simplify. Fix comments.
5846
5847 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5848
5849 Introduce fast path for the widely used marker operation.
5850 * alloc.c (build_marker): New function.
5851 * lisp.h (build_marker): New prototype.
5852 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
5853 * composite.c (autocmp_chars): Likewise.
5854 * editfns.c (buildmark): Remove.
5855 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
5856 (save_restriction_save): Use build_marker.
5857 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
5858 * window.c (save_window_save): Likewise.
5859
5860 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5861
5862 Do not use Fdelete_overlay in delete_all_overlays
5863 to avoid redundant calls to unchain_overlay.
5864 * buffer.c (drop_overlay): New function.
5865 (delete_all_overlays, Fdelete_overlay): Use it.
5866 * minibuf.c (get_minibuffer): Fix comment.
5867
5868 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
5869
5870 Port to OpenBSD 5.1 amd64.
5871 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
5872 This is needed for OpenBSD, and should be harmless on all BSD systems.
5873 Also, include <sys/sysctl.h>, as it should be available on all
5874 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
5875 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
5876 use p_pid member, not kp_proc.pid.
5877
5878 2012-07-06 Glenn Morris <rgm@gnu.org>
5879
5880 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
5881
5882 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
5883
5884 More xmalloc and related cleanup.
5885 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
5886 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
5887 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
5888 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
5889 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
5890 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
5891 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
5892 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
5893 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
5894 * xterm.c:
5895 Omit needless casts involving void * pointers and allocation.
5896 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
5897 as the former is more robust if P's type is changed.
5898 Prefer xzalloc to xmalloc + memset 0.
5899 Simplify malloc-or-realloc to realloc.
5900 Don't worry about xmalloc returning a null pointer.
5901 Prefer xstrdup to xmalloc + strcpy.
5902 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
5903 growing it.
5904 * keyboard.c (apply_modifiers_uncached): Prefer local array to
5905 alloca of a constant.
5906
5907 2012-07-05 Eli Zaretskii <eliz@gnu.org>
5908
5909 * xdisp.c (display_line): Fix horizontal pixel coordinates when
5910 hscroll is larger than the line width. Fixes long and futile
5911 looping inside extend_face_to_end_of_line (on a TTY) producing
5912 glyphs that are not needed and thrown away.
5913
5914 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
5915
5916 * marker.c (set_marker_restricted_both): Simplify by using
5917 clip_to_bounds.
5918
5919 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
5920
5921 * editfns.c (region_limit): Simplify by using clip_to_bounds.
5922
5923 2012-07-05 Jan Djärv <jan.h.d@swipnet.se>
5924
5925 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
5926 not defined (Bug#11768).
5927 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
5928 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
5929 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
5930 followed by gtk_box_set_homogeneous (Bug#11768).
5931 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
5932 (update_theme_scrollbar_width, xg_create_scroll_bar):
5933 Use gtk_scrollbar_new (Bug#11768).
5934 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
5935 (is_box_type): New function (Bug#11768).
5936 (xg_tool_item_stale_p): Call is_box_type.
5937 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
5938 with default display (Bug#11768).
5939
5940 2012-07-05 Eli Zaretskii <eliz@gnu.org>
5941
5942 * xdisp.c (window_hscroll_limited): New function.
5943 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
5944 coordinates when window's hscroll is set to insanely large
5945 values. (Bug#11857)
5946
5947 2012-07-05 Juanma Barranquero <lekktu@gmail.com>
5948
5949 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
5950 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
5951
5952 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
5953
5954 Cleanup xmalloc.
5955 * lisp.h (xzalloc): New prototype. Omit needless casts.
5956 * alloc.c (xzalloc): New function. Omit needless casts.
5957 * charset.c: Omit needless casts. Convert all calls to
5958 xmalloc with following memset to xzalloc.
5959 * dispnew.c: Likewise.
5960 * fringe.c: Likewise.
5961 * image.c: Likewise.
5962 * sound.c: Likewise.
5963 * term.c: Likewise.
5964 * w32fns.c: Likewise.
5965 * w32font.c: Likewise.
5966 * w32term.c: Likewise.
5967 * xfaces.c: Likewise.
5968 * xfns.c: Likewise.
5969 * xterm.c: Likewise.
5970 * atimer.c: Omit needless casts.
5971 * buffer.c: Likewise.
5972 * callproc.c: Likewise.
5973 * ccl.c: Likewise.
5974 * coding.c: Likewise.
5975 * composite.c: Likewise.
5976 * doc.c: Likewise.
5977 * doprnt.c: Likewise.
5978 * editfns.c: Likewise.
5979 * emacs.c: Likewise.
5980 * eval.c: Likewise.
5981 * filelock.c: Likewise.
5982 * fns.c: Likewise.
5983 * gtkutil.c: Likewise.
5984 * keyboard.c: Likewise.
5985 * lisp.h: Likewise.
5986 * lread.c: Likewise.
5987 * minibuf.c: Likewise.
5988 * msdos.c: Likewise.
5989 * print.c: Likewise.
5990 * process.c: Likewise.
5991 * region-cache.c: Likewise.
5992 * search.c: Likewise.
5993 * sysdep.c: Likewise.
5994 * termcap.c: Likewise.
5995 * terminal.c: Likewise.
5996 * tparam.c: Likewise.
5997 * w16select.c: Likewise.
5998 * w32.c: Likewise.
5999 * w32reg.c: Likewise.
6000 * w32select.c: Likewise.
6001 * w32uniscribe.c: Likewise.
6002 * widget.c: Likewise.
6003 * xdisp.c: Likewise.
6004 * xmenu.c: Likewise.
6005 * xrdb.c: Likewise.
6006 * xselect.c: Likewise.
6007
6008 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
6009
6010 * fileio.c (time_error_value): Check the right error number.
6011 Problem reported by Troels Nielsen in
6012 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
6013
6014 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6015
6016 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
6017 This should be fixed in a better way; see Eli Zaretskii in
6018 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
6019 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
6020
6021 * fileio.c (time_error_value): Rename from special_mtime.
6022 The old name's problems were noted by Eli Zaretskii in
6023 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
6024
6025 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
6026 This variable's comment says Emacs needs at least one GDB-visible
6027 symbol of type enum pvec_type, to work around GDB problems.
6028 The symbol's value doesn't matter.
6029
6030 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
6031 that causes compilation to fail on pre-C99 compilers.
6032
6033 2012-07-04 Juanma Barranquero <lekktu@gmail.com>
6034
6035 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
6036 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
6037
6038 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
6039
6040 * buffer.c (init_buffer_once): Fix initialization of
6041 headers for buffer_defaults and buffer_local_symbols.
6042 Reported by Juanma Barranquero <lekktu@gmail.com>.
6043
6044 2012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
6045
6046 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
6047 * lisp.h (enum pvec_type): Use fewer bits.
6048 (PSEUDOVECTOR_SIZE_BITS): New constant.
6049 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
6050 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
6051 change in pvec_type.
6052 (PSEUDOVECTOR_TYPEP): New macro.
6053 (TYPED_PSEUDOVECTORP): Use it.
6054 * fns.c (internal_equal): Adapt code to extract pvectype.
6055 * emacs.c (gdb_pvec_type): Update type.
6056 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
6057 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
6058 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
6059 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
6060 (sweep_vectors): Use it. Use local var `total_bytes' instead of
6061 abusing vector->header.next.nbytes.
6062 (live_vector_p): Use PVEC_TYPE.
6063 (mark_object): Adapt code to extract pvectype. Use switch.
6064
6065 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6066
6067 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
6068 Tighten new eassert a bit.
6069
6070 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
6071
6072 Fix compilation with --enable-gcc-warnings and -O1
6073 optimization level.
6074 * doprnt.c (doprnt): Change type of tem to int, initialize
6075 to avoid compiler warning. Add eassert.
6076 * search.c (simple_search): Initialize match_byte to avoid
6077 compiler warning. Add eassert.
6078
6079 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6080
6081 Avoid weird behavior with large horizontal scrolls.
6082 Without this change, for example, large hscroll values would
6083 mess up Emacs's display on Fedora 15 x86, presumably due to
6084 overflows in int calculations in the display code.
6085 Also, if buffers had long lines, Emacs would freeze.
6086 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
6087 (set_window_hscroll): New function, containing the old guts of
6088 Fset_window_hscroll. Return the clipped value.
6089 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
6090 This avoids the need to check against PTRDIFF_MAX.
6091
6092 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
6093
6094 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
6095
6096 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
6097
6098 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
6099
6100 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
6101 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
6102 since GCC 4.4.6 issues a bogus warning for them.
6103
6104 Fix bugs in file timestamp newness comparisons.
6105 * fileio.c (Ffile_newer_than_file_p):
6106 * lread.c (Fload): Use full timestamp resolution of files,
6107 not just the 1-second resolution, so that files that are only
6108 slightly newer still count as newer.
6109 * fileio.c (Ffile_newer_than_file_p): Don't assume file
6110 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
6111
6112 2012-07-03 Paul Eggert <eggert@cs.ucla.edu>
6113
6114 * fileio.c: Improve handling of file time marker. (Bug#11852)
6115 (special_mtime): New function.
6116 (Finsert_file_contents, Fverify_visited_file_modtime):
6117 Use it to set special mtime values consistently.
6118
6119 2012-07-03 Andreas Schwab <schwab@linux-m68k.org>
6120
6121 * fileio.c (Finsert_file_contents): Properly handle st_mtime
6122 marker for non-existing file. (Bug#11852)
6123
6124 2012-07-03 Glenn Morris <rgm@gnu.org>
6125
6126 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
6127 and did not make it into globals.h).
6128
6129 2012-07-03 Tom Tromey <tromey@redhat.com>
6130
6131 * window.c (Fset_window_margins, Fset_window_fringes)
6132 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
6133 * textprop.c (Fprevious_property_change): No longer static.
6134 * syntax.c (Fsyntax_table_p): No longer static.
6135 * process.c (Fget_process, Fprocess_datagram_address): No longer
6136 static.
6137 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
6138 * keyboard.c (Fcommand_execute): No longer static.
6139 Remove EXFUN.
6140 * insdel.c (Fcombine_after_change_execute): No longer static.
6141 * image.c (Finit_image_library): No longer static.
6142 * fileio.c (Fmake_symbolic_link): No longer static.
6143 * eval.c (Ffetch_bytecode): No longer static.
6144 * editfns.c (Fuser_full_name): No longer static.
6145 * doc.c (Fdocumentation_property, Fsnarf_documentation):
6146 No longer static.
6147 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
6148 static.
6149 * dired.c (Ffile_attributes): No longer static.
6150 * composite.c (Fcomposition_get_gstring): No longer static.
6151 * callproc.c (Fgetenv_internal): No longer static.
6152
6153 * ccl.h: Remove EXFUNs.
6154 * buffer.h: Remove EXFUNs.
6155 * dispextern.h: Remove EXFUNs.
6156 * intervals.h: Remove EXFUNs.
6157 * fontset.h: Remove EXFUN.
6158 * font.h: Remove EXFUNs.
6159 * dosfns.c (system_process_attributes): Remove EXFUN.
6160 * keymap.h: Remove EXFUNs.
6161 * lisp.h: Remove EXFUNs.
6162 * w32term.h: Remove EXFUNs.
6163 * window.h: Remove EXFUNs.
6164 * xsettings.h: Remove EXFUN.
6165 * xterm.h: Remove EXFUN.
6166
6167 2012-07-03 Glenn Morris <rgm@gnu.org>
6168
6169 * lisp.h (Frandom): Make it visible to C.
6170 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
6171 buffer for invisible buffers. (Bug#1229)
6172
6173 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6174
6175 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
6176 values which aren't power of 2.
6177 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
6178 Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
6179 accordingly.
6180
6181 2012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
6182
6183 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
6184
6185 * alloc.c (mark_object): Revert part of last patch to use `switch'.
6186
6187 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6188
6189 * alloc.c (allocate_vector_block): Remove redundant
6190 calls to mallopt if DOUG_LEA_MALLOC is defined.
6191 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
6192 avoid calls to mallopt if zero_vector is returned.
6193
6194 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6195
6196 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
6197 is enabled, avoid dereferencing NULL current_sblock if
6198 running undumped.
6199
6200 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
6201
6202 Cleanup basic buffer management.
6203 * buffer.h (struct buffer): Change layout to use generic vector
6204 marking code. Fix some comments. Change type of 'clip_changed'
6205 to bitfield. Remove unused #ifndef old.
6206 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
6207 (GET_OVERLAYS_AT): Fix indentation.
6208 (for_each_per_buffer_object_at): New macro.
6209 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
6210 (Fbuffer_local_variables): Use it.
6211 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
6212 * alloc.c (allocate_buffer): Adjust to match new layout of
6213 struct buffer. Fix comment.
6214 (mark_overlay): New function.
6215 (mark_buffer): Use it. Use mark_vectorlike to mark normal
6216 Lisp area of struct buffer.
6217 (mark_object): Use it. Adjust marking of misc objects
6218 and related comments.
6219
6220 2012-07-02 Paul Eggert <eggert@cs.ucla.edu>
6221
6222 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
6223 wrapper that is not needed because the wrapped code is a no-op (zero
6224 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
6225 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
6226
6227 2012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
6228
6229 * alloc.c (mark_buffer): Simplify. Remove prototype.
6230 (mark_object): Add comment. Reorganize marking of vector-like
6231 objects. Use CHECK_LIVE for all vector-like objects except buffers
6232 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
6233 Avoid redundant calls to mark_vectorlike for bool vectors.
6234
6235 2012-06-30 Glenn Morris <rgm@gnu.org>
6236
6237 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
6238
6239 * epaths.in (PATH_SITELOADSEARCH): New.
6240 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
6241 This is rather than relying on --enable-locallisppath elements
6242 having "site-lisp" in their names. (Bug#10208#25, 11658)
6243
6244 2012-06-30 Eli Zaretskii <eliz@gnu.org>
6245
6246 * w32proc.c (sys_select): Accept and ignore one more argument.
6247
6248 * w32.c (emacs_gnutls_pull): Call select with one more argument.
6249
6250 * sysselect.h [DOS_NT]: Don't include sys/select.h.
6251 (pselect) [!MS_DOS]: Redirect to sys_select.
6252
6253 * sysdep.c: Don't include dos.h and dosfns.h.
6254
6255 * process.c (sys_select):
6256 * msdos.c (sys_select): Accept one more argument and ignore it.
6257
6258 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
6259 adapt data types and code to that.
6260
6261 * dosfns.c:
6262 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
6263 which clashes with the gnulib function of the same name.
6264
6265 2012-06-30 Andreas Schwab <schwab@linux-m68k.org>
6266
6267 * font.c (font_style_to_value, font_style_symbolic)
6268 (font_prop_validate_style): Add type checks for values in
6269 font_style_table.
6270
6271 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
6272 argument.
6273 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
6274 uses.
6275
6276 2012-06-29 Eli Zaretskii <eliz@gnu.org>
6277
6278 * xdisp.c (try_window_id): Undo last change.
6279
6280 * w32.c (getwd): Adjust commentary about startup_dir.
6281 (init_environment): Always call sys_access, even in non-MSVC
6282 builds. Don't chdir to the directory of the Emacs executable.
6283 This undoes code from 1997 which was justified by the need to
6284 "avoid conflicts when removing and renaming directories". But its
6285 downside was that every relative file name was being interpreted
6286 relative to the directory of the Emacs executable, which can never
6287 be TRT. In particular, it broke sys_access when called with
6288 relative file names.
6289 (sys_access): Map GetLastError to errno.
6290
6291 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6292
6293 * window.h (struct window): Change type of 'fringes_outside_margins'
6294 to bitfield. Fix comment. Adjust users accordingly.
6295 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
6296 Adjust comment.
6297 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
6298 to ptrdiff_t.
6299
6300 2012-06-29 Andreas Schwab <schwab@linux-m68k.org>
6301
6302 * gnutls.c (emacs_gnutls_handshake):
6303 Add QUIT to make the loop interruptible.
6304
6305 2012-06-29 Glenn Morris <rgm@gnu.org>
6306
6307 * charset.c (init_charset): Make lack of etc/charsets fatal.
6308
6309 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6310
6311 * editfns.c (region_limit): Fix type mismatch.
6312
6313 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6314
6315 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
6316 undefined. Convert from xassert to eassert.
6317 * nsmenu.m: Convert from xassert to eassert.
6318 * nsterm.m: Likewise.
6319
6320 2012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
6321
6322 * editfns.c (region_limit): Clip to narrowing (bug#11770).
6323
6324 2012-06-28 Paul Eggert <eggert@cs.ucla.edu>
6325
6326 Avoid integer overflow on scroll-left and scroll-right.
6327 * window.c (HSCROLL_MAX): New macro.
6328 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
6329 overflow when requested scroll falls outside ptrdiff_t range.
6330
6331 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6332
6333 * window.h (struct window): Change type of 'hscroll',
6334 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
6335 'last_modified' and 'last_overlay_modified' to EMACS_INT.
6336 Adjust users accordingly.
6337 * xdisp.c (try_cursor_movement): Replace type check with eassert.
6338 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
6339 from EMACS_INT to ptrdiff_t.
6340 (make_window): Omit redundant initialization.
6341
6342 2012-06-28 Juanma Barranquero <lekktu@gmail.com>
6343
6344 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
6345
6346 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6347
6348 * window.h (struct window): Change type of 'use_time' and
6349 'sequence_number' from Lisp_Object to int.
6350 * frame.c (make_frame): Adjust users accordingly.
6351 * print.c (print_object): Likewise.
6352 * window.c (select_window, Fwindow_use_time, make_parent_window)
6353 (make_window): Likewise.
6354
6355 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6356
6357 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
6358 enabled with --enable-checking=[all,glyphs] configure option.
6359 Fix GLYPH_DEBUG usage assuming that it may be undefined,
6360 adjust comments accordingly.
6361 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
6362 undefined, adjust comments accordingly.
6363 * image.c: Likewise.
6364 * scroll.c: Likewise.
6365 * w32fns.c: Likewise.
6366 * w32term.c: Likewise.
6367 * xdisp.c: Likewise.
6368 * xfaces.c: Likewise.
6369 * xfns.c: Likewise.
6370 * xterm.c: Likewise.
6371
6372 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6373
6374 Generalize run-time debugging checks.
6375 * dispextern.h (XASSERTS): Remove.
6376 * fontset.c (xassert): Remove.
6377 Convert from xassert to eassert.
6378 * alloc.c: Convert from xassert to eassert.
6379 * bidi.c: Likewise.
6380 * dispnew.c: Likewise.
6381 * fns.c: Likewise.
6382 * fringe.c: Likewise.
6383 * ftfont.c: Likewise.
6384 * gtkutil.c: Likewise.
6385 * image.c: Likewise.
6386 * keyboard.c: Likewise.
6387 * menu.c: Likewise.
6388 * process.c: Likewise.
6389 * scroll.c: Likewise.
6390 * sound.c: Likewise.
6391 * term.c: Likewise.
6392 * w32console.c: Likewise.
6393 * w32fns.c: Likewise.
6394 * w32term.c: Likewise.
6395 * window.c: Likewise.
6396 * xdisp.c: Likewise.
6397 * xfaces.c: Likewise.
6398 * xfns.c: Likewise.
6399 * xselect.c: Likewise.
6400 * xterm.c: Likewise.
6401
6402 2012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
6403
6404 * fns.c (maybe_resize_hash_table): Output message when growing the
6405 purify-hashtable.
6406
6407 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6408
6409 * alloc.c (allocate_string_data): Remove dead code.
6410 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
6411 avoid GCC warning about unused macro.
6412
6413 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6414
6415 * alloc.c (allocate_string): Omit intervals initialization.
6416 * alloc.c (make_uninit_multibyte_string): Initialize intervals
6417 as in make_pure_string and make_pure_c_string.
6418
6419 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6420
6421 * alloc.c (allocate_string): Fix last change.
6422
6423 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6424
6425 * alloc.c (allocate_string): Remove two redundant calls
6426 to memset, add explicit initialization where appropriate.
6427
6428 2012-06-27 Glenn Morris <rgm@gnu.org>
6429
6430 * lisp.mk (lisp): Remove paths.elc.
6431
6432 2012-06-27 Chong Yidong <cyd@gnu.org>
6433
6434 * doc.c (Fsubstitute_command_keys): Fix punctuation.
6435
6436 2012-06-26 John Wiegley <johnw@newartisans.com>
6437
6438 * unexmacosx.c (copy_data_segment): Add two section names used
6439 on Mac OS X Lion: __mod_init_func and __mod_term_func.
6440
6441 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
6442 when building with Clang.
6443
6444 2012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
6445
6446 * eval.c (Fapply): Allow calling it with a single argument.
6447
6448 2012-06-26 Eli Zaretskii <eliz@gnu.org>
6449
6450 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
6451 _stricmp and _strnicmp.
6452 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
6453
6454 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
6455
6456 * alloc.c (allocate_window): Zero out non-Lisp part of newly
6457 allocated window.
6458 (allocate_process): Likewise for new process.
6459 (allocate_terminal): Change to use offsetof.
6460 (allocate_frame): Likewise.
6461 * frame.c (make_frame): Omit redundant initialization.
6462 * window.c (make_parent_window): Use memset.
6463 (make_window): Omit redundant initialization.
6464 * process.c (make_process): Omit redundant initialization.
6465 * terminal.c (create_terminal): Likewise.
6466
6467 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
6468
6469 * term.c (delete_tty): Remove redundant call to memset.
6470
6471 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
6472
6473 * alloc.c: Remove build_string.
6474 * lisp.h: Define build_string as static inline. This provides
6475 a better opportunity to optimize away calls to strlen when the
6476 function is called with compile-time constant argument.
6477 * image.c (imagemagick_error): Convert to build_string.
6478 * w32proc.c (sys_spawnve): Likewise.
6479 * xterm.c (x_term_init): Likewise.
6480
6481 2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
6482
6483 Use sprintf return value instead of invoking strlen on result.
6484 In the old days this wasn't portable, since some sprintf
6485 implementations returned char *. But they died out years ago and
6486 Emacs already assumes sprintf returns int.
6487 Similarly for float_to_string.
6488 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
6489 * ccl.c (ccl_driver):
6490 * character.c (string_escape_byte8):
6491 * data.c (Fnumber_to_string):
6492 * doprnt.c (doprnt):
6493 * print.c (print_object):
6494 * xdisp.c (message_dolog):
6495 * xfns.c (syms_of_xfns):
6496 Use sprintf or float_to_string result to avoid need to call strlen.
6497 * data.c (Fnumber_to_string):
6498 Use make_unibyte_string, since the string must be ASCII.
6499 * lisp.h, print.c (float_to_string): Now returns int length.
6500 * term.c (produce_glyphless_glyph):
6501 Use sprintf result rather than recomputing it.
6502
6503 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
6504 * Makefile.in (ALL_CFLAGS):
6505 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
6506 * gmalloc.c, regex.c: Include <config.h> unconditionally.
6507
6508 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6509
6510 * dispextern.h (xstrcasecmp): Define to library function
6511 strcasecmp if available.
6512 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
6513
6514 2012-06-25 Andreas Schwab <schwab@linux-m68k.org>
6515
6516 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
6517 Avoid comma operator.
6518 * menu.c (push_submenu_start, push_submenu_end)
6519 (push_left_right_boundary, push_menu_pane): Likewise.
6520 * msdos.c (dos_rawgetc): Likewise.
6521
6522 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6523
6524 * xfns.c (xic_create_fontsetname): Remove redundant calls
6525 to memset.
6526
6527 2012-06-25 Paul Eggert <eggert@cs.ucla.edu>
6528
6529 * gtkutil.c (get_utf8_string): Remove redundant assignment.
6530 sprintf already null-terminates its output.
6531
6532 * xfns.c (x_window): Remove redundant cast.
6533
6534 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6535
6536 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
6537 `const char *' to `char *' to avoid compiler warning.
6538
6539 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
6540
6541 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
6542 instead of truncating it to 63 (admittedly a generous limit).
6543
6544 * process.c: Fix spelling and caps in comments.
6545
6546 2012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
6547
6548 * emacs.c (setpgrp): Remove definition, unused.
6549 * sysdep.c (setpgrp): Remove definition, not used in this file.
6550
6551 2012-06-24 Juanma Barranquero <lekktu@gmail.com>
6552
6553 * makefile.w32-in: Update dependencies.
6554
6555 2012-06-24 Eli Zaretskii <eliz@gnu.org>
6556
6557 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
6558 (SYSTIME_H): Add nt/inc/sys/time.h.
6559
6560 * systime.h [WINDOWSNT]: Include sys/time.h.
6561
6562 * s/ms-w32.h (struct timespec): Definition moved from
6563 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
6564
6565 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
6566
6567 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
6568 * buffer.h (buffer_slot_type_mismatch):
6569 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
6570 * eval.c (unwind_to_catch):
6571 * image.c (my_png_error, my_error_exit):
6572 * keyboard.c (quit_throw_to_read_char, user_error)
6573 (Fexit_recursive_edit, Fabort_recursive_edit):
6574 * lisp.h (die, args_out_of_range, args_out_of_range_3)
6575 (wrong_type_argument, buffer_overflow, __executable_start)
6576 (memory_full, buffer_memory_full, string_overflow, Fthrow)
6577 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
6578 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
6579 (fatal):
6580 (child_setup) [!DOS_NT]:
6581 * lread.c (end_of_file_error, invalid_syntax):
6582 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
6583 * puresize.h (pure_write_error):
6584 * search.c (matcher_overflow):
6585 * sound.c (sound_perror, alsa_sound_perror):
6586 * sysdep.c, syssignal.h (croak):
6587 * term.c (maybe_fatal, vfatal):
6588 * textprop.c (text_read_only):
6589 * undo.c (user_error):
6590 * unexmacosx.c (unexec_error):
6591 * xterm.c (x_ins_del_lines, x_delete_glyphs):
6592 Use _Noreturn rather than NO_RETURN.
6593 No need for separate decl merely because of _Noreturn.
6594 * sound.c (sound_warning, parse_sound):
6595 Remove unnecessary forward decls.
6596
6597 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
6598
6599 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
6600 * lisp.h (WAIT_READING_MAX): New macro.
6601 * dispnew.c (Fsleep_for, sit_for):
6602 * keyboard.c (kbd_buffer_get_event):
6603 * process.c (Faccept_process_output):
6604 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
6605 This improves on the previous patch, which introduced a bug
6606 when time_t is unsigned and as wide as intmax_t.
6607 See <http://bugs.gnu.org/9000#51>.
6608
6609 2012-06-23 Eli Zaretskii <eliz@gnu.org>
6610
6611 * dispnew.c (sit_for, Fsleep_for):
6612 * keyboard.c (kbd_buffer_get_event):
6613 * process.c (Faccept_process_output): Avoid compiler warnings when
6614 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
6615
6616 2012-06-23 Juanma Barranquero <lekktu@gmail.com>
6617
6618 * makefile.w32-in: Update dependencies.
6619
6620 * w32.c (ltime): Add return type and declare static.
6621 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
6622
6623 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
6624
6625 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
6626 Privately reported by Herbert J. Skuhra.
6627 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
6628 All uses changed.
6629 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
6630 not make_lisp_timeval, when the argument is of type EMACS_TIME.
6631
6632 2012-06-23 Eli Zaretskii <eliz@gnu.org>
6633
6634 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
6635 last argument of make_unibyte_string.
6636
6637 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
6638 language ID in the event parameters.
6639
6640 * w32term.c (w32_read_socket): Put the new keyboard codepage into
6641 event.code, not the obscure "character set ID".
6642
6643 2012-06-23 Chong Yidong <cyd@gnu.org>
6644
6645 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
6646
6647 2012-06-23 Eli Zaretskii <eliz@gnu.org>
6648
6649 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
6650 * w32.c (fdutimens): New function.
6651
6652 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
6653
6654 * s/ms-w32.h (pselect): Redirect to sys_select.
6655
6656 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
6657
6658 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
6659 in the logic of incrementing and decrementing the value of
6660 use_relocatable_buffers.
6661
6662 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
6663
6664 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
6665 Privately reported by Herbert J. Skuhra.
6666 [__FreeBSD__]: Remove "*/" typo after "#include".
6667 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
6668 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
6669 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
6670 Don't assume EMACS_TIME and struct timeval are the same type.
6671
6672 2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
6673
6674 Support higher-resolution time stamps (Bug#9000).
6675 The time stamps are only nanosecond-resolution at the C level,
6676 since that's the best that any real-world system supports now.
6677 But they are picosecond-resolution at the Lisp level, as that's
6678 easy, and leaves room for future OS improvements.
6679
6680 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
6681 (LIBES): Use it.
6682
6683 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
6684 Don't get current time unless it's needed.
6685
6686 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
6687 now provides it if it's absent.
6688 (start_atimer): Port to higher-res time stamps.
6689 Check for time stamp overflow. Don't get current time more
6690 often than is needed.
6691
6692 * buffer.h (struct buffer): Buffer modtime now has high resolution.
6693 Include systime.h, not time.h.
6694 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
6695
6696 * dired.c: Include stat-time.h.
6697 (Ffile-attributes): File times now have higher resolution.
6698
6699 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
6700 (struct image): Timestamp now has higher resolution.
6701
6702 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
6703 has at least microseconds now. All uses removed.
6704 (update_frame, update_single_window, update_window, update_frame_1)
6705 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
6706 (duration_to_sec_usec): Remove; no longer needed.
6707
6708 * editfns.c (time_overflow): Now extern.
6709 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
6710 (float-time, Fformat_time_string, Fcurrent_time_string)
6711 (Fcurrent_time_zone): Accept and generate higher-resolution
6712 time stamps.
6713 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
6714 (decode_time_components, lisp_seconds_argument): New functions.
6715 (make_time): Now static.
6716 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
6717 Report an error if the time is invalid, rather than having the caller
6718 do that.
6719
6720 * fileio.c: Include <stat-time.h>
6721 (Fcopy_file): Copy higher-resolution time stamps.
6722 Prefer to set the time stamp via a file descriptor if that works.
6723 (Fset_file_times, Finsert_file_contents, Fwrite_region)
6724 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
6725 (Fvisited_file_modtime, Fset_visited_file_modtime):
6726 Support higher-resolution time stamps.
6727
6728 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
6729
6730 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
6731
6732 * image.c (prepare_image_for_display, clear_image_cache)
6733 (lookup_image): Port to higer-resolution time stamps.
6734
6735 * keyboard.c (start_polling, bind_polling_period):
6736 Check for time stamp overflow.
6737 (read_char, kbd_buffer_get_event, timer_start_idle)
6738 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
6739 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
6740 Port to higher-resolution time stamps. Do not assume time_t is signed.
6741 (decode_timer): New function. Timers are now vectors of length 9,
6742 not 8, to accommodate the picosecond component.
6743 (timer_check_2): Use it.
6744
6745 * nsterm.m (select_timeout, timeval_subtract): Remove.
6746 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
6747 as they're a bit more accurate and handle overflow better.
6748 (ns_select): Change prototype to be compatible with pselect.
6749 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
6750 * nsterm.h (ns_select): Adjust prototype.
6751
6752 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
6753 us-resolution time stamps.
6754 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
6755
6756 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
6757
6758 * lisp.h (time_overflow): New decl.
6759 (wait_reading_process_output): First arg is now intmax_t, not int,
6760 to accommodate larger waits.
6761
6762 * process.h (struct Lisp_Process.read_output_delay):
6763 Now counts nanoseconds, not microseconds.
6764 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
6765 EMACS_HAS_USECS.
6766 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
6767 (wait_reading_process_output):
6768 Port to ns-resolution time stamps.
6769 (Faccept_process_output, wait_reading_process_output):
6770 Check for time stamp overflow. Do not assume time_t is signed.
6771 (select_wrapper): Remove; we now use pselect.
6772 (Fprocess_attributes): Now generates ns-resolution time stamps.
6773
6774 * sysdep.c: Include utimens.h. Don't include utime.h
6775 or worry about struct utimbuf; gnulib does that for us now.
6776 (gettimeofday): Remove; gnulib provides a substitute.
6777 (make_timeval): New function.
6778 (set_file_times): Now sets ns-resolution time stamps.
6779 New arg FD; all uses changed.
6780 (time_from_jiffies, ltime_from_jiffies, get_up_time)
6781 (system_process_attributes):
6782 Now returns ns-resolution time stamp. All uses changed.
6783 Check for time stamp overflow.
6784
6785 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
6786 provides a substitute now.
6787
6788 * systime.h: Include timespec.h rather than sys/time.h and time.h,
6789 since it guarantees struct timespec.
6790 (EMACS_TIME): Now struct timespec, so that we can support
6791 ns-resolution time stamps.
6792 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
6793 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
6794 (EMACS_USECS): Remove.
6795 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
6796 so multiply the arg by 1000 before storing it.
6797 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
6798 New macros.
6799 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
6800 Port to ns-resolution time stamps.
6801 (EMACS_TIME_NEG_P): Remove; replaced by....
6802 (EMACS_TIME_SIGN): New macro.
6803 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
6804 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
6805 (set_file_times, make_time, lisp_time_argument): Adjust signature.
6806 (make_timeval, make_lisp_time, decode_time_components): New decls.
6807 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
6808 that it mishandled time_t overflow. You can't compare by subtracting!
6809 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
6810 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
6811
6812 * term.c: Include <sys/time.h>.
6813 (timeval_to_Time): New function, for proper overflow wraparound.
6814 (term_mouse_position, term_mouse_click): Use it.
6815
6816 * undo.c (record_first_change): Support higher-resolution time stamps
6817 in the undo buffer.
6818 (Fprimitive_undo): Use them when restoring time stamps.
6819
6820 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
6821 (w32_get_internal_run_time):
6822 Port to higher-resolution Emacs time stamps.
6823 (ltime): Now accepts single 64-bit integer, as that's more convenient
6824 for callers.
6825
6826 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
6827
6828 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
6829 for compatibility with pselect. Support ns-resolution time stamps.
6830
6831 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
6832
6833 * xselect.c (wait_for_property_change, x_get_foreign_selection):
6834 Check for time stamp overflow, and support ns-resolution time stamps.
6835
6836 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
6837 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
6838 (timeval_subtract): Remove; no longer needed.
6839 (XTflash, XTring_bell, x_wait_for_event):
6840 Port to ns-resolution time stamps. Don't assume time_t is signed.
6841
6842 2012-06-22 Chong Yidong <cyd@gnu.org>
6843
6844 * xdisp.c (x_consider_frame_title): Revert last change.
6845
6846 2012-06-22 Eli Zaretskii <eliz@gnu.org>
6847
6848 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
6849 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
6850 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
6851 staticidx goes up to 1597 out of 1600 = 0x640.)
6852
6853 2012-06-20 Paul Eggert <eggert@cs.ucla.edu>
6854
6855 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
6856 Otherwise, the umask might be mistakenly 0 while handling input signals.
6857
6858 2012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
6859
6860 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
6861
6862 2012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
6863
6864 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
6865 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
6866 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
6867 access to `contents' member of Lisp_Vector objects with AREF and ASET
6868 where appropriate.
6869
6870 2012-06-19 Chong Yidong <cyd@gnu.org>
6871
6872 * frame.c (delete_frame): When selecting a frame on a different
6873 text terminal, do not alter the terminal's top-frame.
6874
6875 * xdisp.c (format_mode_line_unwind_data): Record the target
6876 frame's selected window and its terminal's top-frame.
6877 (unwind_format_mode_line): Restore them.
6878 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
6879 Callers changed.
6880 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
6881 since tty frames can be explicitly named.
6882 (prepare_menu_bars): Likewise.
6883
6884 * term.c (Ftty_top_frame): New function.
6885
6886 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
6887
6888 Port byte-code-meter to modern targets.
6889 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
6890 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
6891 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
6892 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
6893 (METER_1, METER_2): Simplify.
6894
6895 2012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
6896
6897 * data.c (Fdefalias): Return `symbol' (bug#11686).
6898
6899 2012-06-18 Martin Rudalics <rudalics@gmx.at>
6900
6901 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
6902 gets killed during executing of this function (Bug#11665).
6903 Try to always return Qt when the buffer has been actually killed.
6904 (Vkill_buffer_query_functions): In doc-string say that functions
6905 run by this hook should not change the current buffer.
6906
6907 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
6908
6909 Fix recently-introduced process.c problems found by static checking.
6910 * process.c (write_queue_push, write_queue_pop, send_process):
6911 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
6912 (write_queue_pop): Fix pointer signedness problem.
6913 (send_process): Remove unused local.
6914
6915 2012-06-17 Chong Yidong <cyd@gnu.org>
6916
6917 * xdisp.c (redisplay_internal): No need to redisplay terminal
6918 frames that are not on top.
6919
6920 2012-06-17 Troels Nielsen <bn.troels@gmail.com>
6921
6922 * process.c (make_process): Initialize write_queue.
6923 (write_queue_push, write_queue_pop): New functions.
6924 (send_process): Use them to maintain correct ordering of process
6925 writes (Bug#10815).
6926
6927 2012-06-17 Paul Eggert <eggert@cs.ucla.edu>
6928
6929 * lisp.h (eassert): Assume C89 or later.
6930 This removes the need for CHECK.
6931 (CHECK): Remove. Its comments about always evaluating its
6932 argument were confusing, as 'eassert' typically does not evaluate
6933 its argument.
6934
6935 * coding.c (produce_chars): Use ptrdiff_t, not int.
6936
6937 * xterm.c (x_draw_underwave): Check for integer overflow.
6938 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
6939
6940 2012-06-17 Jan Djärv <jan.h.d@swipnet.se>
6941
6942 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
6943 referenced (Bug#11583).
6944
6945 2012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
6946
6947 Implement wave-style variant of underlining.
6948 * dispextern.h (face_underline_type): New enum.
6949 (face): Add field for underline type.
6950 * nsterm.m (ns_draw_underwave): New function.
6951 (ns_draw_text_decoration): Use it.
6952 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
6953 New functions.
6954 (x_draw_glyph_string): Use them.
6955 * xfaces.c (Qline, Qwave): New Lisp objects.
6956 (check_lface_attrs, merge_face_ref)
6957 (Finternal_set_lisp_face_attribute, realize_x_face):
6958 Handle wave-style underline face attributes.
6959 * xterm.c (x_draw_underwave): New function.
6960 (x_draw_glyph_string): Use it.
6961
6962 2012-06-16 Juanma Barranquero <lekktu@gmail.com>
6963
6964 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
6965 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
6966 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
6967 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
6968 ($(BLD)/w32select.$(O)): Update dependencies.
6969
6970 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
6971
6972 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
6973 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
6974 * character.c (_fetch_multibyte_char_p): Remove.
6975 * alloc.c: Include "character.h" before "buffer.h".
6976 * bidi.c: Likewise.
6977 * buffer.c: Likewise.
6978 * bytecode.c: Likewise.
6979 * callint.c: Likewise.
6980 * callproc.c: Likewise.
6981 * casefiddle.c: Likewise.
6982 * casetab.c: Likewise.
6983 * category.c: Likewise.
6984 * cmds.c: Likewise.
6985 * coding.c: Likewise.
6986 * composite.c: Likewise.
6987 * dired.c: Likewise.
6988 * dispnew.c: Likewise.
6989 * doc.c: Likewise.
6990 * dosfns.c: Likewise.
6991 * editfns.c: Likewise.
6992 * emacs.c: Likewise.
6993 * fileio.c: Likewise.
6994 * filelock.c: Likewise.
6995 * font.c: Likewise.
6996 * fontset.c: Likewise.
6997 * fringe.c: Likewise.
6998 * indent.c: Likewise.
6999 * insdel.c: Likewise.
7000 * intervals.c: Likewise.
7001 * keyboard.c: Likewise.
7002 * keymap.c: Likewise.
7003 * lread.c: Likewise.
7004 * macros.c: Likewise.
7005 * marker.c: Likewise.
7006 * minibuf.c: Likewise.
7007 * nsfns.m: Likewise.
7008 * nsmenu.m: Likewise.
7009 * print.c: Likewise.
7010 * process.c: Likewise.
7011 * regex.c: Likewise.
7012 * region-cache.c: Likewise.
7013 * search.c: Likewise.
7014 * syntax.c: Likewise.
7015 * term.c: Likewise.
7016 * textprop.c: Likewise.
7017 * undo.c: Likewise.
7018 * unexsol.c: Likewise.
7019 * w16select.c: Likewise.
7020 * w32fns.c: Likewise.
7021 * w32menu.c: Likewise.
7022 * window.c: Likewise.
7023 * xdisp.c: Likewise.
7024 * xfns.c: Likewise.
7025 * xmenu.c: Likewise.
7026 * xml.c: Likewise.
7027 * xselect.c: Likewise.
7028
7029 2012-06-16 Eli Zaretskii <eliz@gnu.org>
7030
7031 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
7032 If all the glyphs of the glyph row came from strings, and we have no
7033 cursor positioning clues, put the cursor on the first glyph of the
7034 row.
7035 (handle_face_prop): Use chunk-relative overlay string index when
7036 indexing into it->string_overlays array. (Bug#11653)
7037 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
7038 the rightmost. (Bug#11720)
7039
7040 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
7041
7042 * category.h (CHAR_HAS_CATEGORY): Define as inline.
7043 (CATEGORY_MEMBER): Enforce 1/0 value.
7044 * category.c (_temp_category_set): Remove.
7045
7046 2012-06-16 Eli Zaretskii <eliz@gnu.org>
7047
7048 * window.c (Fdelete_other_windows_internal)
7049 (Fdelete_window_internal): Don't access frame's mouse highlight
7050 info of the initial frame. (Bug#11677)
7051
7052 2012-06-14 Paul Eggert <eggert@cs.ucla.edu>
7053
7054 * .gdbinit (xgetint): Fix recently-introduced paren typo.
7055 Assume USE_2_TAGS_FOR_INTS.
7056 (xreload): Adjust $tagmask width to match recent lisp.h change.
7057
7058 Simplify lisp.h in minor ways that should not affect code.
7059 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
7060 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
7061 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
7062 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
7063 (INTTYPEBITS): New macro, for clarity.
7064 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
7065 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
7066 Simplify now that USE_LSB_TAG is always defined.
7067 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
7068 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
7069
7070 2012-06-13 Juanma Barranquero <lekktu@gmail.com>
7071
7072 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
7073
7074 2012-06-13 Glenn Morris <rgm@gnu.org>
7075
7076 * s/bsd-common.h (BSD4_3):
7077 * s/usg5-4-common.h (USG5_4): No longer define; unused.
7078
7079 2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
7080
7081 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
7082 instead of union.
7083 (XLI, XIL): Define.
7084 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
7085 Use them.
7086 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
7087 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
7088 * alloc.c (widen_to_Lisp_Object): Remove.
7089 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
7090 * frame.c (delete_frame): Remove outdated comment.
7091 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
7092 USE_LISP_UNION_TYPE.
7093 (Fw32_unregister_hot_key): Likewise.
7094 (Fw32_toggle_lock_key): Likewise.
7095 * w32menu.c (add_menu_item): Likewise.
7096 (w32_menu_display_help): Use XIL instead of checking
7097 USE_LISP_UNION_TYPE.
7098 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
7099 (init_heap): Likewise.
7100 * w32term.c (w32_read_socket): Update comment.
7101
7102 2012-06-13 Glenn Morris <rgm@gnu.org>
7103
7104 * s/usg5-4-common.h, src/s/unixware.h:
7105 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
7106
7107 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
7108
7109 2012-06-13 Paul Eggert <eggert@cs.ucla.edu>
7110
7111 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
7112 * alloc.c (make_number) [!defined make_number]:
7113 Remove, as lisp.h always defines this now.
7114 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
7115 (roundup_size): Verify that it is a power of 2.
7116 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
7117 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
7118 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
7119 -DUSE_LSB_TAG=0, to override the automatically-selected default.
7120 USE_LSB_TAG now is always defined to be either 0 or 1.
7121 All uses changed.
7122 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
7123 code works fine either way, and efficiency is not a concern here,
7124 as the union type is for debugging, not for production.
7125 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
7126 Use an inline function on all platforms when using the union type,
7127 since this is simpler and 'static inline' can be used portably
7128 within Emacs now.
7129 (LISP_INITIALLY_ZERO): New macro.
7130 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
7131 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
7132
7133 2012-06-12 Glenn Morris <rgm@gnu.org>
7134
7135 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
7136
7137 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
7138
7139 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
7140 Move BROKEN_SIGIO to configure.
7141
7142 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
7143 Move NO_TERMIO to configure.
7144
7145 2012-06-12 Chong Yidong <cyd@gnu.org>
7146
7147 * image.c (imagemagick_load_image): Use MagickFlattenImage if
7148 MagickMergeImageLayers is undefined. Use pixel pusher loop if
7149 MagickExportImagePixels is undefined.
7150
7151 2012-06-12 Paul Eggert <eggert@cs.ucla.edu>
7152
7153 * image.c (imagemagick_load_image): Remove unused label.
7154
7155 2012-06-11 Glenn Morris <rgm@gnu.org>
7156
7157 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
7158 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
7159 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
7160 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
7161
7162 2012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
7163
7164 * alloc.c (make_byte_code): New function.
7165 (Fmake_byte_code): Use it. Don't purify here.
7166 * lread.c (read1): Use it as well to avoid extra allocation.
7167
7168 2012-06-11 Chong Yidong <cyd@gnu.org>
7169
7170 * image.c (imagemagick_load_image): Implement transparency.
7171
7172 2012-06-10 Andreas Schwab <schwab@linux-m68k.org>
7173
7174 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
7175 account for preceding backslashes. (Bug#11663)
7176
7177 2012-06-09 Chong Yidong <cyd@gnu.org>
7178
7179 * term.c: Support italics in capable terminals (Bug#9652).
7180 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
7181 (turn_on_face): Output using TS_enter_italic_mode if available.
7182 Don't handle unused blinking and alt-charset cases.
7183 (turn_off_face): Handle italic case; discard unused tty_blinking_p
7184 and tty_alt_charset_p cases.
7185 (tty_capable_p, init_tty): Support italics.
7186
7187 * termchar.h (struct tty_display_info): Add field for italics.
7188 Remove unused blink field.
7189
7190 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
7191 Handle slant.
7192
7193 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
7194 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
7195 tty_alt_charset_p. Add tty_italic_p.
7196
7197 2012-06-09 Michael Albinus <michael.albinus@gmx.de>
7198
7199 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
7200 dbus_type_is_basic if available.
7201 (xd_extract_signed, xd_extract_unsigned): Rename from
7202 extract_signed and extract_unsigned, respectively. Adapt callers.
7203
7204 2012-06-09 Chong Yidong <cyd@gnu.org>
7205
7206 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
7207
7208 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
7209 case (Bug#9752).
7210
7211 2012-06-08 Paul Eggert <eggert@cs.ucla.edu>
7212
7213 * xdisp.c (vmessage): Treat frame message as multibyte.
7214 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
7215 would generate the diagnostic "Making \302\247 buffer-local while
7216 let-bound!".
7217
7218 2012-06-08 Eli Zaretskii <eliz@gnu.org>
7219
7220 * dispnew.c (showing_window_margins_p): Undo last change, which
7221 was done due to an inadvertent commit.
7222 (adjust_frame_glyphs_for_frame_redisplay): Do call
7223 showing_window_margins_p.
7224
7225 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
7226
7227 * eval.c (Fmake_var_non_special): New primitive.
7228 (syms_of_eval): Defsubr it.
7229 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
7230
7231 2012-06-08 Juanma Barranquero <lekktu@gmail.com>
7232
7233 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
7234 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
7235
7236 2012-06-08 Eli Zaretskii <eliz@gnu.org>
7237
7238 * alloc.c (allocate_vectorlike): Fix last change.
7239
7240 2012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
7241
7242 Block-based vector allocation of small vectors.
7243 * lisp.h (struct vectorlike_header): New field `nbytes',
7244 adjust comment accordingly.
7245 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
7246 to denote vector blocks. Adjust users (live_vector_p,
7247 mark_maybe_pointer, valid_lisp_object_p) accordingly.
7248 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
7249 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
7250 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
7251 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
7252 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
7253 (roundup_size): New constant.
7254 (struct vector_block): New data type.
7255 (vector_blocks, vector_free_lists, zero_vector): New variables.
7256 (all_vectors): Rename to `large_vectors'.
7257 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
7258 (sweep_vectors): New functions.
7259 (allocate_vectorlike): Return `zero_vector' as the only vector of
7260 0 items. Allocate new vector from block if vector size is less than
7261 or equal to VBLOCK_BYTES_MAX.
7262 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
7263 (init_alloc_once): Add call to init_vectors.
7264
7265 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
7266
7267 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
7268
7269 2012-06-07 Paul Eggert <eggert@cs.ucla.edu>
7270
7271 * doprnt.c (doprnt): Truncate multibyte char correctly.
7272 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
7273 would mishandle a string argument "Xc" if X was a multibyte
7274 character of length 2: it would truncate after X's first byte
7275 rather than including all of X.
7276
7277 2012-06-06 Chong Yidong <cyd@gnu.org>
7278
7279 * buffer.c (word_wrap): Doc fix.
7280
7281 2012-06-04 Paul Eggert <eggert@cs.ucla.edu>
7282
7283 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
7284
7285 2012-06-03 Glenn Morris <rgm@gnu.org>
7286
7287 * xdisp.c (tool-bar-style): Doc fix.
7288
7289 2012-06-03 Ulrich Müller <ulm@gentoo.org>
7290
7291 * Makefile.in (PAXCTL): Define.
7292 (temacs$(EXEEXT)): Disable memory randomization for the temacs
7293 binary via PaX flags if the paxctl utility is available.
7294 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
7295 Restore PaX flags to their default. (Bug#11398)
7296
7297 2012-06-03 Chong Yidong <cyd@gnu.org>
7298
7299 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
7300 buffer (Bug#11226).
7301
7302 2012-06-03 Chong Yidong <cyd@gnu.org>
7303
7304 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
7305 (note_mode_line_or_margin_highlight): If there is no help echo,
7306 use mode-line-default-help-echo. Handle the case where the mouse
7307 position is past the end of the mode line string.
7308
7309 * buffer.c (buffer_local_value_1): New function, split from
7310 Fbuffer_local_value; can return Qunbound.
7311 (Fbuffer_local_value): Use it.
7312 (Vmode_line_format): Docstring tweaks.
7313
7314 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
7315
7316 * sysdep.c (system_process_attributes): Improve comment.
7317
7318 2012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
7319
7320 * keyboard.c: Export real-this-command to Elisp.
7321 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
7322 and DEFVAR it. Update all users.
7323
7324 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
7325
7326 * minibuf.c (Fassoc_string): Remove duplicate declaration.
7327
7328 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
7329 Convert pctcpu and pctmem to Lisp float properly.
7330 Let the compiler fold better, as 100.0/0x8000 is exact.
7331
7332 2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
7333
7334 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
7335 cons_block.
7336
7337 2012-06-01 Paul Eggert <eggert@cs.ucla.edu>
7338
7339 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
7340
7341 2012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
7342
7343 For a 'struct window', replace some Lisp_Object fields to
7344 bitfields where appropriate, remove unused fields.
7345 * window.h (struct window): Remove unused 'last_mark_x' and
7346 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
7347 change it's type from Lisp_Object to bitfield.
7348 Change type of 'force_start', 'optional_new_start',
7349 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
7350 fields from Lisp_Object to bitfield. Adjust users accordingly.
7351
7352 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
7353
7354 Pacify gcc -Wdouble-precision when using Xaw.
7355 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
7356 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
7357 Use 'float' consistently, rather than 'float' in most places
7358 and 'double' in a couple of places.
7359
7360 2012-05-31 Eli Zaretskii <eliz@gnu.org>
7361
7362 * xdisp.c (handle_stop): Detect whether we have overlay strings
7363 loaded by testing it->current.overlay_string_index to be
7364 non-negative, instead of checking whether n_overlay_strings is
7365 positive. (Bug#11587)
7366
7367 2012-05-31 Chong Yidong <cyd@gnu.org>
7368
7369 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
7370
7371 * doc.c (Fsubstitute_command_keys): Doc fix.
7372
7373 2012-05-31 Eli Zaretskii <eliz@gnu.org>
7374
7375 * search.c (search_buffer): Remove calls to
7376 r_alloc_inhibit_buffer_relocation, as it is now called by
7377 maybe_unify_char, which was the cause of relocation of buffer text
7378 in bug#11519.
7379
7380 2012-05-31 Eli Zaretskii <eliz@gnu.org>
7381
7382 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
7383 for the duration of call to load_charset, to avoid problems with
7384 callers of maybe_unify_char that access buffer text through C
7385 pointers.
7386
7387 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
7388 decrement the inhibition flag, instead of just setting or
7389 resetting it.
7390
7391 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
7392
7393 Remove obsolete '#define static' cruft.
7394 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
7395 This #undef was "temporary" in 2000; it is no longer needed
7396 now that '#define static' has gone away.
7397 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
7398 (gray_bitmap_bits): Remove; no longer needed.
7399 All uses replaced with definiens.
7400 * xterm.c: Include "bitmaps/gray.xbm".
7401
7402 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
7403
7404 Clean up __executable_start, monstartup when --enable-profiling.
7405 The following changes affect the code only when profiling.
7406 * dispnew.c (__executable_start): Rename from safe_bcopy.
7407 Define only on platforms that need it.
7408 * emacs.c: Include <sys/gmon.h> when profiling.
7409 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
7410 (__executable_start): Remove decl, since lisp.h does it now.
7411 (safe_bcopy): Remove decl; no longer has that name.
7412 (main): Coalesce #if into single bit of code, for simplicity.
7413 Cast pointers to uintptr_t, since standard libraries want integers
7414 and not pointers.
7415 * lisp.h (__executable_start): New decl.
7416
7417 2012-05-31 Glenn Morris <rgm@gnu.org>
7418
7419 * image.c (Fimagemagick_types): Doc fix.
7420
7421 2012-05-30 Jim Meyering <meyering@redhat.com>
7422
7423 * callproc.c (Fcall_process_region): Include directory component
7424 in mkstemp error message (Bug#11586).
7425
7426 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
7427
7428 * alloc.c, lisp.h (make_pure_vector): Now static.
7429
7430 2012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
7431
7432 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
7433 Move to byte-run.el.
7434 (Fautoload): Do the hash-doc more carefully.
7435 * data.c (Fdefalias): Purify definition, except for keymaps.
7436 (Qdefun): Move from eval.c.
7437 * lisp.h (Qdefun): Remove.
7438 * lread.c (read1): Tiny simplification.
7439
7440 2012-05-29 Troels Nielsen <bn.troels@gmail.com>
7441
7442 Do not create empty overlays with the evaporate property (Bug#9642).
7443 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
7444 Bug#9642, but explicitly check that the buffer the overlay would
7445 be moved to is live and rearrange lines to make sure that errors
7446 will not put the overlay in an inconsistent state.
7447 (Fdelete_overlay): Cosmetics.
7448
7449 2012-05-28 Eli Zaretskii <eliz@gnu.org>
7450
7451 * w32term.c (my_bring_window_to_top): New function.
7452 (x_raise_frame): Use handle returned by DeferWindowPos, which
7453 could be different from the original one.
7454 Call my_bring_window_to_top instead of my_set_foreground_window.
7455 (Bug#11513)
7456
7457 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
7458 by calling BringWindowToTop.
7459
7460 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
7461 (WM_EMACS_END): Increase by one.
7462
7463 2012-05-28 Paul Eggert <eggert@cs.ucla.edu>
7464
7465 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
7466 This avoids undefined behavior that might cause the eassert
7467 to not catch an out-of-range value.
7468
7469 2012-05-28 Juanma Barranquero <lekktu@gmail.com>
7470
7471 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
7472 Update dependencies.
7473
7474 2012-05-27 Eli Zaretskii <eliz@gnu.org>
7475
7476 * bidi.c (bidi_mirror_char): Fix last change.
7477
7478 2012-05-27 Andreas Schwab <schwab@linux-m68k.org>
7479
7480 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
7481 when referring to sectname field in printf format.
7482
7483 2012-05-27 Paul Eggert <eggert@cs.ucla.edu>
7484
7485 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
7486 Only r_alloc_inhibit_buffer_relocation needed to be added;
7487 the others were already declared.
7488
7489 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
7490 before checking whether it's out of range. Put the check inside
7491 eassert. See
7492 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
7493
7494 2012-05-27 Ken Brown <kbrown@cornell.edu>
7495
7496 * callproc.c (Fcall_process): Restore a line that was accidentally
7497 commented out in the 2011-02-13 change (bug#11547).
7498
7499 2012-05-27 Eli Zaretskii <eliz@gnu.org>
7500
7501 * lisp.h [REL_ALLOC]: Add prototypes for external functions
7502 defined on ralloc.c.
7503
7504 * buffer.c [REL_ALLOC]: Remove prototypes of
7505 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
7506 they are now on lisp.h.
7507
7508 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
7509
7510 * search.c (search_buffer): Use it to inhibit relocation of buffer
7511 text while re_search_2 is doing its job, because re_search_2 is
7512 passed C pointers to buffer text. (Bug#11519)
7513
7514 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
7515 Update value to 24.
7516
7517 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
7518 state after an additional call to move_it_in_display_line_to, keep
7519 the values of it->max_ascent and it->max_descent found for the
7520 entire line.
7521 (pos_visible_p): Revert the comparison against bottom_y to what it
7522 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
7523 (Bug#11464)
7524
7525 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
7526
7527 Fix coding-related core dumps with gcc -ftrapv.
7528 The code was computing A - B, where A and B are pointers, and B is
7529 random garbage. This can lead to core dumps on platforms that
7530 have special pointer registers, and it also leads to core dumps on
7531 x86-64 when compiled with gcc -ftrapv. The fix is to compute
7532 A - B only when B is initialized properly.
7533 * coding.c (coding_set_source, coding_set_destination): Return void.
7534 (coding_change_source, coding_change_destinations): New functions,
7535 with the old behaviors of coding_set_source and coding_set_destination.
7536 All callers that need an offset changed to use these new functions.
7537
7538 2012-05-26 Glenn Morris <rgm@gnu.org>
7539
7540 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
7541
7542 2012-05-26 Eli Zaretskii <eliz@gnu.org>
7543
7544 Extend mouse support on W32 text-mode console.
7545 * xdisp.c (draw_row_with_mouse_face):
7546 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
7547
7548 * w32console.c: Include window.h.
7549 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
7550 New functions.
7551 (initialize_w32_display): Initialize mouse-highlight data.
7552
7553 * w32inevt.c: Include termchar.h and window.h.
7554 (do_mouse_event): Support mouse-autoselect-window. When the mouse
7555 moves, call note_mouse_highlight. If help_echo changed, call
7556 gen_help_event to produce help-echo message in the echo area.
7557 Call clear_mouse_face if mouse_face_hidden is set in the mouse
7558 highlight info.
7559
7560 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
7561
7562 * lread.c (read1): Simplify slightly to avoid an overflow warning
7563 with GCC 4.7.0 on x86-64.
7564
7565 2012-05-26 Eli Zaretskii <eliz@gnu.org>
7566
7567 * bidi.c (bidi_mirror_char): Revert last change: an int is
7568 definitely wide enough here.
7569
7570 2012-05-25 Paul Eggert <eggert@cs.ucla.edu>
7571
7572 Fix integer width and related bugs (Bug#9874).
7573 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
7574 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
7575 (string_bytes, check_sblock, allocate_string_data):
7576 (compact_small_strings, Fmake_bool_vector, make_string)
7577 (make_unibyte_string, make_multibyte_string)
7578 (make_string_from_bytes, make_specified_string)
7579 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
7580 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
7581 (mark_vectorlike):
7582 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7583 (allocate_pseudovector):
7584 Use int, not EMACS_INT, where int is wide enough.
7585 (inhibit_garbage_collection, Fgarbage_collect):
7586 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7587 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
7588 int might not be wide enough.
7589 (bidi_cache_search, bidi_cache_find, bidi_init_it)
7590 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
7591 (bidi_at_paragraph_end, bidi_find_paragraph_start)
7592 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
7593 (bidi_level_of_next_char, bidi_move_to_visually_next):
7594 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7595 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
7596 (Fkill_buffer, Fset_buffer_major_mode)
7597 (advance_to_char_boundary, Fbuffer_swap_text)
7598 (Fset_buffer_multibyte, overlays_at, overlays_in)
7599 (overlay_touches_p, struct sortvec, record_overlay_string)
7600 (overlay_strings, recenter_overlay_lists)
7601 (adjust_overlays_for_insert, adjust_overlays_for_delete)
7602 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
7603 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
7604 (Foverlay_recenter, last_overlay_modification_hooks_used)
7605 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
7606 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7607 (validate_region): Omit unnecessary test for b <= e,
7608 since that's guaranteed by the previous test.
7609 (adjust_overlays_for_delete): Avoid pos + length overflow.
7610 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
7611 (report_overlay_modification):
7612 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7613 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
7614 Omit pointer cast, which isn't needed anyway, and doesn't work
7615 after the EMACS_INT -> ptrdiff_t change.
7616 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
7617 * buffer.h: Adjust decls to match defn changes elsewhere.
7618 (struct buffer_text, struct buffer):
7619 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7620 Use EMACS_INT, not int, where int might not be wide enough.
7621 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
7622 not int, to avoid needless 32-bit limit on 64-bit hosts.
7623 (exec_byte_code): Use tighter memory-full test, one that checks
7624 for alloca overflow. Don't compute the address of the object just
7625 before an array, as that's not portable. Use EMACS_INT, not
7626 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
7627 * callint.c (Fcall_interactively):
7628 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7629 * callproc.c (call_process_kill, Fcall_process):
7630 Don't assume pid_t fits into an Emacs fixnum.
7631 (call_process_cleanup, Fcall_process, child_setup):
7632 Don't assume pid_t fits into int.
7633 (call_process_cleanup, Fcall_process, delete_temp_file)
7634 (Fcall_process_region):
7635 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7636 (Fcall_process): Simplify handling of volatile integers.
7637 Use int, not EMACS_INT, where int will do.
7638 * casefiddle.c (casify_object, casify_region, operate_on_word)
7639 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
7640 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7641 (casify_object): Avoid integer overflow when overallocating buffer.
7642 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
7643 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
7644 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
7645 * category.h (CATEGORYP): Don't assume arg is nonnegative.
7646 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
7647 integers are now checked earlier. All uses replaced with XINT.
7648 (ccl_driver):
7649 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7650 For CCL_MapSingle, check that content and value are in int range.
7651 (ccl_driver, Fregister_code_conversion_map):
7652 Check that Vcode_version_map_vector is a vector.
7653 (resolve_symbol_ccl_program): Check that vector header is in range.
7654 Always copy the vector, so that we can check its contents reliably
7655 now rather than having to recheck each instruction as it's being
7656 executed. Check that vector words fit in 'int'.
7657 (ccl_get_compiled_code, Fregister_ccl_program)
7658 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
7659 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
7660 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
7661 contents are in range.
7662 (Fccl_execute_on_string): Check that status is in range.
7663 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
7664 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
7665 Accept and return EMACS_INT, not int, because callers can pass values
7666 out of 'int' range.
7667 (c_string_width, strwidth, lisp_string_width, chars_in_text)
7668 (multibyte_chars_in_text, parse_str_as_multibyte)
7669 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
7670 (str_as_unibyte, str_to_unibyte, string_count_byte8)
7671 (string_escape_byte8, Fget_byte):
7672 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7673 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
7674 avoid mishandling large integers.
7675 * character.h: Adjust decls to match defn changes elsewhere.
7676 * charset.c (load_charset_map_from_file, find_charsets_in_text)
7677 (Ffind_charset_region):
7678 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7679 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
7680 (load_charset_map_from_vector, Fdefine_charset_internal):
7681 Don't assume fixnum fits in int.
7682 (load_charset_map_from_vector, Fmap_charset_chars):
7683 Remove now-unnecessary CHECK_NATNUMs.
7684 (Fdefine_charset_internal): Check ranges here, more carefully.
7685 Don't rely on undefined behavior with signed left shift overflow.
7686 Don't assume unsigned int fits into fixnum, or that fixnum fits
7687 into unsigned int. Don't require max_code to be a valid fixnum;
7688 that's not true for gb10830 4-byte on a 32-bit host. Allow
7689 invalid_code to be a cons, for the same reason. Require code_offset
7690 to be a character. Avoid int overflow if max_char is close
7691 to INT_MAX.
7692 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
7693 this is intended anyway and avoids some undefined behavior.
7694 (load_charset_map): Pass unsigned, not int, as 2nd arg of
7695 INDEX_TO_CODE_POINT, as that's what it expects.
7696 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
7697 * charset.h (DECODE_CHAR): Return int, not unsigned;
7698 this is what was intended anyway, and it avoids undefined behavior.
7699 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
7700 integer-overflow issues.
7701 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
7702 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
7703 where the argument is EMACS_INT, and this behavior is not intended.
7704 * chartab.c (Fmake_char_table, Fset_char_table_range)
7705 (uniprop_get_decoder, uniprop_get_encoder):
7706 Don't assume fixnum fits in int.
7707 * cmds.c (move_point): New function, that does the gist of
7708 Fforward_char and Fbackward_char, but does so while checking
7709 for integer overflow more accurately.
7710 (Fforward_char, Fbackward_char): Use it.
7711 (Fforward_line, Fend_of_line, internal_self_insert)
7712 (internal_self_insert):
7713 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7714 Fix a FIXME, by checking for integer overflow when calculating
7715 target_clm and actual_clm.
7716 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
7717 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
7718 (ASSURE_DESTINATION, coding_alloc_by_realloc)
7719 (coding_alloc_by_making_gap, alloc_destination)
7720 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
7721 (encode_coding_utf_16, detect_coding_emacs_mule)
7722 (decode_coding_emacs_mule, encode_coding_emacs_mule)
7723 (detect_coding_iso_2022, decode_coding_iso_2022)
7724 (encode_invocation_designation, encode_designation_at_bol)
7725 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
7726 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
7727 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
7728 (encode_coding_ccl, encode_coding_raw_text)
7729 (detect_coding_charset, decode_coding_charset)
7730 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
7731 (produce_composition, produce_charset, produce_annotation)
7732 (decode_coding, handle_composition_annotation)
7733 (handle_charset_annotation, consume_chars, decode_coding_gap)
7734 (decode_coding_object, encode_coding_object, detect_coding_system)
7735 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
7736 (code_convert_region, code_convert_string)
7737 (Fdefine_coding_system_internal)
7738 (coding_set_source, coding_set_destination):
7739 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7740 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
7741 (Fdefine_coding_system_internal):
7742 Don't assume fixnums fit in int.
7743 (decode_coding_gap, decode_coding_object, encode_coding_object)
7744 (Fread_coding_system, Fdetect_coding_region)
7745 (Funencodable_char_position, Fcheck_coding_systems_region)
7746 (get_translation, handle_composition_annotation, consume_chars):
7747 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7748 (consume_chars): Rewrite to not calculate an address outside buffer.
7749 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7750 Don't access memory outside of the args array.
7751 (Fdefine_coding_system_internal): Check for charset-id overflow.
7752 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
7753 result of ENCODE_CHAR.
7754 * coding.h: Adjust decls to match defn changes elsewhere.
7755 (struct coding_system):
7756 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7757 * composite.c (get_composition_id, find_composition)
7758 (run_composition_function, update_compositions)
7759 (compose_text, composition_gstring_put_cache)
7760 (composition_gstring_p, composition_gstring_width)
7761 (fill_gstring_header, fill_gstring_body, autocmp_chars)
7762 (composition_compute_stop_pos, composition_reseat_it)
7763 (composition_update_it, struct position_record)
7764 (find_automatic_composition, composition_adjust_point)
7765 (Fcomposition_get_gstring, Ffind_composition_internal):
7766 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7767 (update_compositions):
7768 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7769 * composite.h: Adjust decls to match defn changes elsewhere.
7770 (struct composition):
7771 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7772 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
7773 Do not attempt to compute the address of the object just before a
7774 buffer; this is not portable.
7775 (Faref, Faset):
7776 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7777 (Faset): Use int, not EMACS_INT, where int is wide enough.
7778 (Fstring_to_number): Don't assume fixnums fit in int.
7779 (Frem): Don't assume arg is nonnegative.
7780 * dbusbind.c (xd_append_arg): Check for integers out of range.
7781 (Fdbus_call_method): Don't overflow the timeout int.
7782 (extract_signed, extract_unsigned): New functions.
7783 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
7784 (xd_get_connection_references): Return ptrdiff_t, not int.
7785 All uses changed.
7786 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
7787 (xd_read_message_1):
7788 Use int, not unsigned, where the dbus API uses int.
7789 (Fdbus_message_internal): Don't overflow mtype.
7790 (syms_of_dbusbind): Allocate right-sized buffer for integers.
7791 * dired.c (directory_files_internal, file_name_completion, scmp)
7792 (file_name_completion_stat):
7793 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7794 (file_name_completion): Don't overflow matchcount.
7795 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
7796 * dispextern.h: Adjust decls to match defn changes elsewhere.
7797 (struct text_pos, struct glyph, struct bidi_saved_info)
7798 (struct bidi_string_data, struct bidi_it, struct composition_it)
7799 (struct it):
7800 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7801 (struct display_pos, struct composition_it, struct it):
7802 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7803 * dispnew.c (increment_matrix_positions)
7804 (increment_row_positions, mode_line_string)
7805 (marginal_area_string):
7806 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7807 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
7808 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7809 (duration_to_sec_usec): New function, to check for overflow better.
7810 (Fsleep_for, sit_for): Use it.
7811 * doc.c (get_doc_string, store_function_docstring):
7812 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7813 (get_doc_string, Fsnarf_documentation):
7814 Use int, not EMACS_INT, where int is wide enough.
7815 (get_doc_string):
7816 Use SAFE_ALLOCA, not alloca.
7817 Check for overflow when converting EMACS_INT to off_t.
7818 * doprnt.c (doprnt):
7819 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7820 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
7821 Don't assume uid_t fits into fixnum.
7822 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
7823 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
7824 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
7825 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
7826 (general_insert_function)
7827 (Finsert_char, make_buffer_string, make_buffer_string_both)
7828 (update_buffer_properties, Fbuffer_substring)
7829 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
7830 (Fsubst_char_in_region, check_translation)
7831 (Ftranslate_region_internal, save_restriction_restore, Fformat)
7832 (transpose_markers, Ftranspose_regions):
7833 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7834 (clip_to_bounds): Move to lisp.h as an inline function).
7835 (Fconstrain_to_field): Don't assume integers are nonnegative.
7836 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
7837 (Fsubst_char_in_region, Fsave_restriction):
7838 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7839 (Femacs_pid): Don't assume pid_t fits into fixnum.
7840 (lo_time): Use int, not EMACS_INT, when int suffices.
7841 (lisp_time_argument): Check for usec out of range.
7842 (Fencode_time): Don't assume fixnum fits in int.
7843 (Fuser_login_name, Fuser_full_name): Signal an error
7844 if a uid argument is out of range, rather than relying on
7845 undefined behavior.
7846 (Fformat_time_string): Remove now-unnecessary check.
7847 lisp_time_argument checks for out-of-range usec now.
7848 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
7849 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
7850 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
7851 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
7852 (init_cmdargs, Fdump_emacs):
7853 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7854 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
7855 the bottom (typically) 32 bits of the fixnum.
7856 * eval.c (specpdl_size, call_debugger):
7857 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7858 (when_entered_debugger, Fbacktrace_debug):
7859 Don't assume fixnum can fit in int.
7860 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
7861 the object just before a buffer; this is not portable.
7862 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
7863 (grow_specpdl, unbind_to):
7864 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7865 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
7866 (grow_specpdl): Simplify allocation by using xpalloc.
7867 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
7868 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
7869 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
7870 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7871 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
7872 (a_write, e_write):
7873 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7874 (Fcopy_file, non_regular_nbytes, read_non_regular)
7875 (Finsert_file_contents):
7876 Use int, not EMACS_INT, where int is wide enough.
7877 (READ_BUF_SIZE): Verify that it fits in int.
7878 (Finsert_file_contents): Check that counts are in proper range,
7879 rather than assuming fixnums fit into ptrdiff_t etc.
7880 Don't assume fixnums fit into int.
7881 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
7882 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
7883 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
7884 (string_char_to_byte, string_byte_to_char)
7885 (string_make_multibyte, string_to_multibyte)
7886 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
7887 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
7888 (substring_both, Fdelete, internal_equal, Ffillarray)
7889 (Fclear_string, mapcar1)
7890 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
7891 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
7892 (larger_vector, make_hash_table, maybe_resize_hash_table)
7893 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
7894 (Fmaphash, secure_hash):
7895 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7896 (concat): Check for string index and length overflow.
7897 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
7898 (Frequire):
7899 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7900 (larger_vector): New API (vec, incr_min, size_max) replaces old
7901 one (vec, new_size, init). This catches size overflow.
7902 INIT was removed because it was always Qnil.
7903 All callers changed.
7904 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
7905 the upper bound on a hash table index size.
7906 (make_hash_table, maybe_resize_hash_table): Use it.
7907 (secure_hash): Computer start_byte and end_byte only after
7908 they're known to be in ptrdiff_t range.
7909 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
7910 (Ffont_get_glyphs, Ffont_at):
7911 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7912 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
7913 (Flist_fonts, Fopen_font):
7914 Don't assume fixnum can fit in int.
7915 (check_gstring): Don't assume index can fit in int.
7916 (font_match_p): Check that fixnum is a character, not a nonnegative
7917 fixnum, since the later code needs to stuff it into an int.
7918 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
7919 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
7920 conversion overflow issues.
7921 (Fopen_font): Check for integer out of range.
7922 (Ffont_get_glyphs): Don't assume index can fit in int.
7923 * font.h: Adjust decls to match defn changes elsewhere.
7924 * fontset.c (reorder_font_vector): Redo score calculation to avoid
7925 integer overflow.
7926 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
7927 printmax_t, where ptrdiff_t is wide enough.
7928 (Finternal_char_font):
7929 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7930 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
7931 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
7932 (Fset_frame_position, x_set_frame_parameters)
7933 (x_set_line_spacing, x_set_border_width)
7934 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
7935 Check that fixnums are in proper range for system types.
7936 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
7937 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7938 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
7939 Use SAFE_ALLOCA_LISP, not alloca.
7940 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
7941 intptr_t is wide enough.
7942 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
7943 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
7944 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
7945 Check for fixnum out of range.
7946 * ftfont.c (ftfont_list): Don't assume index fits in int.
7947 Check that fixnums are in proper range for system types.
7948 (ftfont_shape_by_flt):
7949 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7950 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
7951 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7952 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
7953 Check that fixnums are in proper range for system types.
7954 * gnutls.h: Adjust decls to match defn changes elsewhere.
7955 * gtkutil.c (xg_dialog_run):
7956 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7957 (update_frame_tool_bar):
7958 Check that fixnums are in proper range for system types.
7959 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
7960 (lookup_image): Check that fixnums are in range for system types.
7961 * indent.c (last_known_column, last_known_column_point):
7962 (current_column_bol_cache):
7963 (skip_invisible, current_column, check_display_width):
7964 (check_display_width, scan_for_column, current_column_1)
7965 (Findent_to, Fcurrent_indentation, position_indentation)
7966 (indented_beyond_p, Fmove_to_column, compute_motion):
7967 (Fcompute_motion, Fvertical_motion):
7968 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7969 (last_known_column_modified): Use EMACS_INT, not int.
7970 (check_display_width):
7971 (Fcompute_motion):
7972 Check that fixnums and floats are in proper range for system types.
7973 (compute_motion): Don't assume index or fixnum fits in int.
7974 (compute_motion, Fcompute_motion):
7975 Use int, not EMACS_INT, when it is wide enough.
7976 (vmotion): Omit local var start_hpos that is always 0; that way
7977 we don't need to worry about overflow in expressions involving it.
7978 * indent.h: Adjust decls to match defn changes elsewhere.
7979 (struct position):
7980 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7981 Use int, not EMACS_INT, where int is wide enough.
7982 Remove unused members ovstring_chars_done and tab_offset;
7983 all uses removed.
7984 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
7985 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
7986 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
7987 (make_gap, copy_text, insert, insert_and_inherit)
7988 (insert_before_markers, insert_before_markers_and_inherit)
7989 (insert_1, count_combining_before, count_combining_after)
7990 (insert_1_both, insert_from_string)
7991 (insert_from_string_before_markers, insert_from_string_1)
7992 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
7993 (adjust_after_replace, adjust_after_insert, replace_range)
7994 (replace_range_2, del_range, del_range_1, del_range_byte)
7995 (del_range_both, del_range_2, modify_region)
7996 (prepare_to_modify_buffer, signal_before_change)
7997 (signal_after_change, Fcombine_after_change_execute):
7998 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7999 * intervals.c (traverse_intervals, rotate_right, rotate_left)
8000 (balance_an_interval, split_interval_right, split_interval_left)
8001 (find_interval, next_interval, update_interval)
8002 (adjust_intervals_for_insertion, delete_node, delete_interval)
8003 (interval_deletion_adjustment, adjust_intervals_for_deletion)
8004 (static_offset_intervals, offset_intervals)
8005 (merge_interval_right, merge_interval_left, make_new_interval)
8006 (graft_intervals_into_buffer, temp_set_point_both)
8007 (temp_set_point, set_point, adjust_for_invis_intang)
8008 (set_point_both, move_if_not_intangible, get_property_and_range)
8009 (get_local_map, copy_intervals, copy_intervals_to_string)
8010 (compare_string_intervals, set_intervals_multibyte_1):
8011 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8012 * intervals.h: Adjust decls to match defn changes elsewhere.
8013 (struct interval):
8014 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8015 * keyboard.c (this_command_key_count, this_single_command_key_start)
8016 (before_command_key_count, before_command_echo_length, echo_now)
8017 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
8018 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
8019 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
8020 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
8021 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8022 (last_non_minibuf_size, last_point_position, echo_truncate)
8023 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
8024 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
8025 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
8026 (stuff_buffered_input):
8027 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8028 (last_auto_save, command_loop_1, read_char):
8029 Use EMACS_INT, not int, to avoid integer overflow.
8030 (record_char): Avoid overflow in total_keys computation.
8031 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
8032 * keyboard.h: Adjust decls to match defn changes elsewhere.
8033 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
8034 (Fkey_description, Fdescribe_vector, Flookup_key):
8035 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8036 (click_position): New function, to check that positions are in range.
8037 (Fcurrent_active_maps):
8038 (describe_command):
8039 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8040 (Faccessible_keymaps, Fkey_description):
8041 (preferred_sequence_p):
8042 Don't assume fixnum can fit into int.
8043 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
8044 Check for integer overflow in size calculations.
8045 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
8046 avoid mishandling large integers.
8047 * lisp.h: Adjust decls to match defn changes elsewhere.
8048 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
8049 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
8050 (struct Lisp_Marker):
8051 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8052 (clip_to_bounds): Now an inline function, moved here from editfns.c.
8053 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
8054 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
8055 All callers changed.
8056 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
8057 Assume the arg has valid form, since it always does.
8058 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
8059 unsigned integer system type.
8060 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
8061 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
8062 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8063 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
8064 (duration_to_sec_usec): New decl.
8065 * lread.c (read_from_string_index, read_from_string_index_byte)
8066 (read_from_string_limit, readchar, unreadchar, openp)
8067 (read_internal_start, read1, oblookup):
8068 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8069 (Fload, readevalloop, Feval_buffer, Feval_region):
8070 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8071 (openp): Check for out-of-range argument to 'access'.
8072 (read1): Use int, not EMACS_INT, where int is wide enough.
8073 Don't assume fixnum fits into int.
8074 Fix off-by-one error that can read outside a buffer.
8075 (read_filtered_event): Use duration_to_sec_usec
8076 to do proper overflow checking on durations.
8077 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
8078 in size calculation.
8079 (Fexecute_kbd_macro):
8080 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8081 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
8082 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
8083 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
8084 (set_marker_both, set_marker_restricted_both, marker_position)
8085 (marker_byte_position, Fbuffer_has_markers_at):
8086 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8087 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
8088 * menu.c (ensure_menu_items): Rename from grow_menu_items.
8089 It now merely ensures that the menu is large enough, without
8090 necessarily growing it, as this avoids some integer overflow issues.
8091 All callers changed.
8092 (keymap_panes, parse_single_submenu, Fx_popup_menu):
8093 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8094 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
8095 Use SAFE_ALLOCA_LISP, not alloca.
8096 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
8097 to EMACS_INT. Check that fixnums are in proper range for system types.
8098 * minibuf.c (minibuf_prompt_width, string_to_object)
8099 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
8100 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
8101 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8102 (get_minibuffer, read_minibuf_unwind):
8103 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8104 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
8105 this simplifies overflow checking. All callers changed.
8106 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
8107 (Ftest_completion):
8108 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8109 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
8110 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
8111 Check that fixnums are in proper range for system types.
8112 (Fx_create_frame, Fx_show_tip):
8113 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8114 * nsfont.m (ns_findfonts, nsfont_list_family):
8115 Don't assume fixnum fits in long.
8116 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
8117 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8118 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
8119 wide enough.
8120 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
8121 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8122 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
8123 (PRINTDECLARE, PRINTPREPARE):
8124 (strout, print_string):
8125 (print, print_preprocess, print_check_string_charset_prop)
8126 (print_object):
8127 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8128 (PRINTDECLARE):
8129 (temp_output_buffer_setup, Fprin1_to_string, print_object):
8130 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8131 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
8132 (printchar, strout): Use xpalloc to catch size calculation overflow.
8133 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
8134 (print_error_message): Use SAFE_ALLOCA, not alloca.
8135 (print_object): Use int, not EMACS_INT, where int is wide enough.
8136 (print_depth, new_backquote_output, print_number_index):
8137 Use ptrdiff_t, not int, where int might not be wide enough.
8138 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
8139 (Fset_process_window_size, Fformat_network_address)
8140 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
8141 (sigchld_handler):
8142 Check that fixnums are in proper range for system types.
8143 (Fsignal_process): Simplify by avoiding a goto.
8144 Check for process-ids out of pid_t range rather than relying on
8145 undefined behavior.
8146 (process_tick, update_tick): Use EMACS_INT, not int.
8147 (Fformat_network_address, read_process_output, send_process)
8148 (Fprocess_send_region, status_notify):
8149 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8150 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
8151 (wait_reading_process_output, read_process_output, exec_sentinel):
8152 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8153 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
8154 (Faccept_process_output): Use duration_to_sec_usec to do proper
8155 overflow checking on durations.
8156 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
8157 Don't assume pid_t fits in int.
8158 * process.h (struct Lisp_Process): Members tick and update_tick
8159 are now of type EMACS_INT, not int.
8160 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
8161 configured --with-wide-int.
8162 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
8163 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
8164 * search.c (looking_at_1, string_match_1):
8165 (fast_string_match, fast_c_string_match_ignore_case)
8166 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
8167 (scan_newline, find_before_next_newline, search_command)
8168 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
8169 (set_search_regs, wordify):
8170 (Freplace_match):
8171 (Fmatch_data):
8172 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8173 (string_match_1, search_buffer, set_search_regs):
8174 (Fmatch_data):
8175 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8176 (wordify): Check for overflow in size calculation.
8177 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
8178 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
8179 Check that fixnums are in proper range for system types.
8180 * sound.c (struct sound_device)
8181 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
8182 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8183 (Fplay_sound_internal):
8184 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8185 * syntax.c (struct lisp_parse_state, find_start_modiff)
8186 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
8187 (Fparse_partial_sexp):
8188 Don't assume fixnums can fit in int.
8189 (struct lisp_parse_state, find_start_pos, find_start_value)
8190 (find_start_value_byte, find_start_begv)
8191 (update_syntax_table, char_quoted, dec_bytepos)
8192 (find_defun_start, prev_char_comend_first, back_comment):
8193 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
8194 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
8195 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8196 (Finternal_describe_syntax_value): Check that match_lisp is a
8197 character, not an integer, since the code stuffs it into int.
8198 (scan_words, scan_sexps_forward):
8199 Check that fixnums are in proper range for system types.
8200 (Fforward_word):
8201 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8202 (scan_sexps_forward):
8203 Use CHARACTERP, not INTEGERP, since the value must fit into int.
8204 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
8205 * syntax.h: Adjust decls to match defn changes elsewhere.
8206 (struct gl_state_s):
8207 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8208 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
8209 MOST_POSITIVE_FIXNUM.
8210 * sysdep.c (wait_for_termination_1, wait_for_termination)
8211 (interruptible_wait_for_termination, mkdir):
8212 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
8213 (emacs_read, emacs_write):
8214 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8215 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
8216 and double all fit in int.
8217 * term.c (set_tty_color_mode):
8218 Check that fixnums are in proper range for system types.
8219 * termhooks.h (struct input_event):
8220 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8221 * textprop.c (validate_interval_range, interval_of)
8222 (Fadd_text_properties, set_text_properties_1)
8223 (Fremove_text_properties, Fremove_list_of_text_properties)
8224 (Ftext_property_any, Ftext_property_not_all)
8225 (copy_text_properties, text_property_list, extend_property_ranges)
8226 (verify_interval_modification):
8227 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8228 (Fnext_single_char_property_change)
8229 (Fprevious_single_char_property_change):
8230 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8231 (copy_text_properties):
8232 Check for integer overflow in index calculation.
8233 * undo.c (last_boundary_position, record_point, record_insert)
8234 (record_delete, record_marker_adjustment, record_change)
8235 (record_property_change):
8236 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8237 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
8238 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8239 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
8240 (Fx_hide_tip, Fx_file_dialog):
8241 * w32menu.c (set_frame_menubar):
8242 Use ptrdiff_t, not int, for consistency with rest of code.
8243 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
8244 (select_window, Fdelete_other_windows_internal)
8245 (window_scroll_pixel_based, window_scroll_line_based)
8246 (Frecenter, Fset_window_configuration):
8247 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8248 (Fset_window_hscroll, run_window_configuration_change_hook)
8249 (set_window_buffer, temp_output_buffer_show, scroll_command)
8250 (Fscroll_other_window, Frecenter):
8251 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8252 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
8253 Don't assume fixnum fits in int.
8254 (Fset_window_scroll_bars):
8255 Check that fixnums are in proper range for system types.
8256 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
8257 (string_pos, c_string_pos, number_of_chars, init_iterator)
8258 (in_ellipses_for_invisible_text_p, init_from_display_pos)
8259 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
8260 (compute_display_string_end, handle_face_prop)
8261 (face_before_or_after_it_pos, handle_invisible_prop)
8262 (handle_display_prop, handle_display_spec, handle_single_display_spec)
8263 (display_prop_intangible_p, string_buffer_position_lim)
8264 (string_buffer_position, handle_composition_prop, load_overlay_strings)
8265 (get_overlay_strings_1, get_overlay_strings)
8266 (iterate_out_of_display_property, forward_to_next_line_start)
8267 (back_to_previous_visible_line_start, reseat, reseat_to_string)
8268 (get_next_display_element, set_iterator_to_next)
8269 (get_visually_first_element, compute_stop_pos_backwards)
8270 (handle_stop_backwards, next_element_from_buffer)
8271 (move_it_in_display_line_to, move_it_in_display_line)
8272 (move_it_to, move_it_vertically_backward, move_it_by_lines)
8273 (add_to_log, message_dolog, message_log_check_duplicate)
8274 (message2, message2_nolog, message3, message3_nolog
8275 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
8276 (current_message_1, truncate_echo_area, truncate_message_1)
8277 (set_message, set_message_1, store_mode_line_noprop)
8278 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
8279 (text_outside_line_unchanged_p, check_point_in_composition)
8280 (reconsider_clip_changes)
8281 (redisplay_internal, set_cursor_from_row, try_scrolling)
8282 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
8283 (redisplay_window, find_last_unchanged_at_beg_row)
8284 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
8285 (trailing_whitespace_p, find_row_edges, display_line)
8286 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
8287 (display_mode_element, store_mode_line_string)
8288 (pint2str, pint2hrstr, decode_mode_spec)
8289 (display_count_lines, display_string, draw_glyphs)
8290 (x_produce_glyphs, x_insert_glyphs)
8291 (rows_from_pos_range, mouse_face_from_buffer_pos)
8292 (fast_find_string_pos, mouse_face_from_string_pos)
8293 (note_mode_line_or_margin_highlight, note_mouse_highlight):
8294 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8295 (safe_call, init_from_display_pos, handle_fontified_prop)
8296 (handle_single_display_spec, load_overlay_strings)
8297 (with_echo_area_buffer, setup_echo_area_for_printing)
8298 (display_echo_area, echo_area_display)
8299 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
8300 (update_tool_bar, hscroll_window_tree, redisplay_internal)
8301 (redisplay_window, dump_glyph_row, display_mode_line)
8302 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
8303 (handle_display_spec, display_prop_string_p):
8304 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8305 (handle_single_display_spec, build_desired_tool_bar_string)
8306 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
8307 (get_specified_cursor_type):
8308 Check that fixnums are in proper range for system types.
8309 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
8310 (Flookup_image_map):
8311 Don't assume fixnums fit in int.
8312 (compare_overlay_entries):
8313 Avoid mishandling comparisons due to subtraction overflow.
8314 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
8315 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
8316 (handle_tool_bar_click):
8317 Use int, not unsigned, since we prefer signed and the signedness
8318 doesn't matter here.
8319 (get_next_display_element, next_element_from_display_vector):
8320 Use int, not EMACS_INT, when int is wide enough.
8321 (start_hourglass): Use duration_to_sec_usec to do proper
8322 overflow checking on durations.
8323 * xfaces.c (Fbitmap_spec_p):
8324 Check that fixnums are in proper range for system types.
8325 (compare_fonts_by_sort_order):
8326 Avoid mishandling comparisons due to subtraction overflow.
8327 (Fx_family_fonts, realize_basic_faces):
8328 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8329 (Fx_family_fonts):
8330 Don't assume fixnum fits in int.
8331 Use SAFE_ALLOCA_LISP, not alloca.
8332 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
8333 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
8334 (face_at_buffer_position, face_for_overlay_string)
8335 (face_at_string_position):
8336 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8337 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
8338 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
8339 (Fx_show_tip):
8340 Check that fixnums are in proper range for system types.
8341 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
8342 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
8343 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8344 (Fx_change_window_property): Don't assume fixnums fit in int.
8345 * xfont.c (xfont_chars_supported):
8346 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8347 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
8348 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
8349 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8350 * xml.c (parse_region):
8351 * xrdb.c (magic_file_p):
8352 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8353 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
8354 (x_get_local_selection, x_reply_selection_request)
8355 (x_handle_selection_request, wait_for_property_change):
8356 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8357 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
8358 short is wide enough.
8359 (x_send_client_event): Don't assume fixnum fits in int.
8360 * xterm.c (x_x_to_emacs_modifiers):
8361 Don't assume EMACS_INT overflows nicely into int.
8362 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
8363 may come from Lisp.
8364 (handle_one_xevent): NATNUMP can eval its arg twice.
8365 (x_connection_closed):
8366 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8367 * xterm.h: Adjust decls to match defn changes elsewhere.
8368 (struct scroll_bar): Use struct vectorlike_header
8369 rather than rolling our own approximation.
8370 (SCROLL_BAR_VEC_SIZE): Remove; not used.
8371
8372 2012-05-25 Glenn Morris <rgm@gnu.org>
8373
8374 * lisp.mk (lisp): Update for more files being compiled now.
8375
8376 2012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
8377
8378 * lread.c: Remove `read_pure' which makes no difference.
8379 (read_pure): Remove var.
8380 (unreadpure): Remove function.
8381 (readevalloop): Don't call read_list with -1 flag.
8382 (read1, read_vector): Don't test read_pure any more.
8383 (read_list): Simplify.
8384
8385 * fileio.c, character.h: Minor style tweaks.
8386
8387 2012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
8388
8389 * window.h (clip_changed): Remove useless declaration.
8390
8391 2012-05-22 Juanma Barranquero <lekktu@gmail.com>
8392
8393 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
8394 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
8395
8396 2012-05-22 Paul Eggert <eggert@cs.ucla.edu>
8397
8398 Remove src/m/*.
8399 This directory predates autoconf and is no longer needed nowadays.
8400 Move its few remaining bits of functionality to where they're needed.
8401 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
8402 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
8403 * m/template.h: Remove.
8404 * Makefile.in (M_FILE): Remove. All uses removed.
8405 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
8406 * lisp.h (USE_LSB_TAG):
8407 * mem-limits.h (EXCEEDS_LISP_PTR):
8408 Use VAL_MAX, not VALBITS, in #if.
8409 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
8410 (EMACS_UINT): Define unconditionally now.
8411 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
8412 (BITS_PER_EMACS_INT): New constants, replacing
8413 what used to be in config.h, but not useful in #if.
8414 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
8415 define them any more.
8416 (VAL_MAX): New macro.
8417 (VALMASK): Use it.
8418 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
8419 BITS_PER_EMACS_INT, in #if.
8420 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
8421 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
8422 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
8423 * s/ms-w32.h (DATA_START):
8424 Move here from removed file m/intel386.h.
8425 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
8426 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
8427
8428 2012-05-21 Paul Eggert <eggert@cs.ucla.edu>
8429
8430 Assume C89 or later.
8431 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
8432 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
8433 (xrealloc):
8434 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
8435 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
8436 * textprop.c, tparam.c (NULL): Remove.
8437 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
8438 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
8439 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
8440 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
8441 * xterm.c (input_signal_count): Assume volatile works.
8442
8443 2012-05-21 Ken Brown <kbrown@cornell.edu>
8444
8445 * xgselect.c (xg_select): Fix first argument in call to 'select'
8446 (bug#11508).
8447
8448 2012-05-20 Ken Brown <kbrown@cornell.edu>
8449
8450 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
8451 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
8452
8453 2012-05-19 Ken Brown <kbrown@cornell.edu>
8454
8455 * xfns.c (x_in_use): Remove `static' qualifier.
8456 * xterm.h (x_in_use): Declare.
8457 * xgselect.c: Include xterm.h.
8458 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
8459 and `display_arg' (bug#9754).
8460
8461 2012-05-19 Paul Eggert <eggert@cs.ucla.edu>
8462
8463 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
8464
8465 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
8466 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
8467
8468 2012-05-18 Eli Zaretskii <eliz@gnu.org>
8469
8470 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
8471
8472 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
8473 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
8474
8475 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
8476 reference to image_cache->refcount.
8477 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
8478
8479 2012-05-17 Juri Linkov <juri@jurta.org>
8480
8481 * search.c (Fword_search_regexp, Fword_search_backward)
8482 (Fword_search_forward, Fword_search_backward_lax)
8483 (Fword_search_forward_lax): Move functions to isearch.el
8484 (bug#10145, bug#11381).
8485
8486 2012-05-16 Paul Eggert <eggert@cs.ucla.edu>
8487
8488 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
8489
8490 2012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
8491
8492 * lread.c (init_obarray): Declare Qt and Qnil as special.
8493
8494 2012-05-14 Glenn Morris <rgm@gnu.org>
8495
8496 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
8497 Put "libexec" before "bin", for the sake of init_callproc_1.
8498
8499 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
8500
8501 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
8502
8503 * unexaix.c: Port to more-recent AIX compilers.
8504 (report_error, report_error_1, make_hdr, copy_sym)
8505 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
8506 Make arguments const char *, not char *, to avoid violations of C
8507 standard and to fix some AIX warnings reported by Gilles Pion.
8508
8509 2012-05-14 Eli Zaretskii <eliz@gnu.org>
8510
8511 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
8512 already have overlays loaded.
8513 (handle_single_display_spec): Before returning without displaying
8514 fringe bitmap, synchronize the bidi iterator with the main display
8515 iterator, by calling iterate_out_of_display_property.
8516 (iterate_out_of_display_property): Detect buffer iteration by
8517 testing that it->string is a Lisp string.
8518 (get_next_display_element): When the current object is exhausted,
8519 and there's something on it->stack, call set_iterator_to_next to
8520 proceed with what's on the stack, instead of returning zero.
8521 (set_iterator_to_next): If called at the end of a Lisp string,
8522 proceed to consider_string_end without incrementing string
8523 position. Don't increment display vector index past the end of
8524 the display vector. (Bug#11417)
8525 (pos_visible_p): Don't report a position visible when move_it_to
8526 stopped at the last line of window, which happens to be scanned
8527 backwards by the bidi iteration. (Bug#11464)
8528
8529 2012-05-14 Eli Zaretskii <eliz@gnu.org>
8530
8531 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
8532 and right-margin display specs even if the spec is invalid or we
8533 are on a TTY, and thus unable to display on the fringes.
8534 That's because the text with the property will not be displayed anyway,
8535 so we need to signal to the caller that this is a "replacing"
8536 display spec. This fixes display when the spec is invalid or we
8537 are on a TTY.
8538
8539 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
8540
8541 * unexaix.c (make_hdr): Fix typo in prototype.
8542 This bug broke the build on AIX. Problem reported by Gilles Pion.
8543
8544 2012-05-14 Michael Albinus <michael.albinus@gmx.de>
8545
8546 * keyboard.c (kbd_buffer_get_event): Read special events also in
8547 batch mode. (Bug#11415)
8548
8549 2012-05-12 Glenn Morris <rgm@gnu.org>
8550
8551 * ns.mk: Update for ns_appbindir no longer having trailing "/".
8552
8553 2012-05-12 Eli Zaretskii <eliz@gnu.org>
8554
8555 * lisp.mk (lisp): Add newcomment.elc.
8556
8557 2012-05-12 Glenn Morris <rgm@gnu.org>
8558
8559 * Makefile.in (MKDIR_P): New, set by configure.
8560 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
8561
8562 2012-05-11 Paul Eggert <eggert@cs.ucla.edu>
8563
8564 Remove unused function hourglass_started.
8565 * dispextern.h (hourglass_started):
8566 * w32fns.c (hourglass_started):
8567 * xdisp.c (hourglass_started): Remove.
8568
8569 2012-05-10 Juanma Barranquero <lekktu@gmail.com>
8570
8571 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
8572 Update dependencies.
8573
8574 2012-05-10 Paul Eggert <eggert@cs.ucla.edu>
8575
8576 * xgselect.c (xg_select): Put maxfds+1 into a var.
8577 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
8578
8579 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
8580
8581 2012-05-10 Dave Abrahams <dave@boostpro.com>
8582
8583 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
8584 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
8585
8586 2012-05-09 Michael Albinus <michael.albinus@gmx.de>
8587
8588 * dbusbind.c (xd_registered_buses): New internal Lisp object.
8589 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
8590 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
8591 Initialize xd_registered_buses.
8592
8593 2012-05-09 Paul Eggert <eggert@cs.ucla.edu>
8594
8595 Untag more efficiently if USE_LSB_TAG.
8596 This is based on a proposal by YAMAMOTO Mitsuharu in
8597 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
8598 For an admittedly artificial (nth 8000 longlist) benchmark on
8599 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
8600 Emacs's overall text size by 1%.
8601 * lisp.h (XUNTAG): New macro.
8602 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
8603 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
8604 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
8605 * eval.c (Fautoload):
8606 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
8607 * frame.h (XFRAME): Use XUNTAG.
8608
8609 Port recent dbusbind.c changes to 32-bit --with-wide-int.
8610 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
8611 Remove unportable assumptions about print widths of types like
8612 dbus_uint32_t.
8613 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
8614 intptr_t when converting between pointer and integer, to avoid GCC
8615 warnings about wrong width.
8616
8617 2012-05-09 Eli Zaretskii <eliz@gnu.org>
8618
8619 * w32proc.c (new_child): Force Windows to reserve only 64KB of
8620 stack for each reader_thread, instead of defaulting to 8MB
8621 determined by the linker. This avoids failures in creating
8622 subprocesses on Windows 7, see the discussion in this thread:
8623 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
8624
8625 2012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
8626
8627 Fix up display of the *Minibuf-0* buffer in the mini window.
8628 * keyboard.c (read_char): Don't clear the echo area if there's no
8629 message to clear.
8630 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
8631 contents of *Minibuf-0*) if there's no message displayed in its stead.
8632
8633 2012-05-07 Michael Albinus <michael.albinus@gmx.de>
8634
8635 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
8636 batch mode.
8637
8638 2012-05-06 Chong Yidong <cyd@gnu.org>
8639
8640 * lisp.mk (lisp): Update.
8641
8642 2012-05-05 Jim Meyering <meyering@redhat.com>
8643
8644 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
8645
8646 2012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
8647
8648 * data.c (PUT_ERROR): New macro.
8649 (syms_of_data): Use it. Add new error type `user-error'.
8650 * undo.c (user_error): New function.
8651 (Fprimitive_undo): Use it.
8652 * print.c (print_error_message): Adjust print style for `user-error'.
8653 * keyboard.c (user_error): New function.
8654 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
8655
8656 2012-05-03 Paul Eggert <eggert@cs.ucla.edu>
8657
8658 Do not limit current-time-string to years 1000..9999.
8659 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
8660 (Fcurrent_time_string): Support any year that is supported by the
8661 underlying localtime representation. Don't use asctime, as it
8662 has undefined behavior for years outside the range -999..9999.
8663
8664 2012-05-02 Paul Eggert <eggert@cs.ucla.edu>
8665
8666 Fix race conditions involving setenv, gmtime, localtime, asctime.
8667 Without this fix, interrupts could mess up code that uses these
8668 nonreentrant functions, since setting TZ invalidates existing
8669 tm_zone or tzname values, and since most of these functions return
8670 pointers to static storage.
8671 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
8672 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
8673 Grow the critical sections to include not just invoking
8674 localtime/gmtime, but also accessing these functions' results
8675 including their tm_zone values if any, and any related TZ setting.
8676 (format_time_string): Last arg is now struct tm *, not struct tm **,
8677 so that the struct tm is saved in the critical section.
8678 All callers changed. Simplify allocation of initial buffer, partly
8679 motivated by the fact that memory allocation needs to be outside
8680 the critical section.
8681
8682 2012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
8683
8684 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
8685 with RESET_INTERVAL.
8686
8687 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
8688 Remove duplicated buffer name initialization.
8689
8690 2012-05-02 Jim Meyering <jim@meyering.net>
8691
8692 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
8693
8694 * xfns.c (x_window): Use xstrdup (Bug#11375).
8695
8696 2012-05-02 Eli Zaretskii <eliz@gnu.org>
8697
8698 * xdisp.c (pos_visible_p): If already at a newline from the
8699 display string before the 'while' loop, don't walk back the glyphs
8700 from it3.glyph_row. Solves assertion violation when the display
8701 string begins with a newline (egg.el). (Bug#11367)
8702
8703 2012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
8704
8705 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
8706 Move to simple.el.
8707
8708 2012-05-01 Glenn Morris <rgm@gnu.org>
8709
8710 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
8711 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
8712 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
8713 All were removed before 23.1.
8714
8715 * dispnew.c: Remove HAVE_LIBNCURSES test;
8716 it is always true on relevant platforms.
8717
8718 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
8719 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
8720
8721 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
8722
8723 2012-04-30 Andreas Schwab <schwab@linux-m68k.org>
8724
8725 * .gdbinit (xpr): Remove checks for no longer existing misc types.
8726 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
8727 Remove.
8728
8729 2012-04-28 Paul Eggert <eggert@cs.ucla.edu>
8730
8731 Do not avoid creating empty evaporating overlays (Bug#9642).
8732 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
8733 That is, do not delete an evaporating overlay if it becomes
8734 empty after its bounds are adjusted to fit within its buffer.
8735 This fix caused other problems, and I'm reverting it until we get
8736 to the bottom of them.
8737
8738 2012-04-27 Chong Yidong <cyd@gnu.org>
8739
8740 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
8741
8742 2012-04-27 Eli Zaretskii <eliz@gnu.org>
8743
8744 * xdisp.c (pos_visible_p): If the window start position is beyond
8745 ZV, start the display from buffer beginning. Prevents assertion
8746 violation in init_iterator when the minibuffer window is scrolled
8747 via the scroll bar.
8748
8749 * window.c (window_scroll_pixel_based): Likewise.
8750
8751 2012-04-27 Chong Yidong <cyd@gnu.org>
8752
8753 * keymap.c (where_is_internal): Doc fix (Bug#10872).
8754
8755 2012-04-27 Glenn Morris <rgm@gnu.org>
8756
8757 * fileio.c (Fcopy_file, Fset_file_selinux_context):
8758 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
8759
8760 2012-04-27 Eli Zaretskii <eliz@gnu.org>
8761
8762 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
8763 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
8764
8765 2012-04-26 Eli Zaretskii <eliz@gnu.org>
8766
8767 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
8768 display element, check also the underlying string or buffer
8769 character. (Bug#11341)
8770
8771 * w32menu.c: Include w32heap.h.
8772 (add_menu_item): If the call to AppendMenuW (via
8773 unicode_append_menu) fails, disable Unicode menus only if we are
8774 running on Windows 9X/Me.
8775
8776 2012-04-24 Andreas Schwab <schwab@linux-m68k.org>
8777
8778 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
8779 (xgetint): Add missing shift for LSB tags.
8780
8781 2012-04-24 Martin Rudalics <rudalics@gmx.at>
8782
8783 * keyboard.c (read_char): Don't wipe echo area for select window
8784 events: These might get delayed via `mouse-autoselect-window'
8785 (Bug#11304).
8786
8787 2012-04-24 Juanma Barranquero <lekktu@gmail.com>
8788
8789 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
8790 manipulation of :loaded-from data.
8791
8792 2012-04-23 Juanma Barranquero <lekktu@gmail.com>
8793
8794 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
8795 now a cons (bug#11311).
8796
8797 2012-04-23 Paul Eggert <eggert@cs.ucla.edu>
8798
8799 Do not create empty overlays with the evaporate property (Bug#9642).
8800 * buffer.c (Fmove_overlay): Delete an evaporating overlay
8801 if it becomes empty after its bounds are adjusted to fit within
8802 its buffer. Without this fix, in a nonempty buffer (let ((o
8803 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
8804 yields an empty overlay that has the evaporate property, which is
8805 not supposed to happen.
8806
8807 Fix minor GTK3 problems found by static checking.
8808 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
8809 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
8810 (struct _EmacsFixedClass, emacs_fixed_get_type):
8811 Move decls here from emacsgtkfixed.h, since they needn't be public.
8812 (emacs_fixed_get_type): Now static.
8813 (emacs_fixed_class_init): Omit unused local.
8814 (emacs_fixed_child_type): Remove; unused.
8815 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
8816 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
8817 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
8818 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
8819 (EMACS_FIXED_GET_CLASS): Remove; unused.
8820 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
8821
8822 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
8823 Problem reported by Juanma Barranquero for Windows -Wunused-function.
8824
8825 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
8826
8827 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
8828 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
8829 (__malloc_size_t, __malloc_ptrdiff_t):
8830 Remove. All uses removed, replaced by the definiens if needed,
8831 since we can assume C89 or better now.
8832 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
8833 (protect_malloc_state, align, get_contiguous_space)
8834 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
8835 (malloc_atfork_handler_child, malloc_enable_thread)
8836 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
8837 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
8838 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
8839 (special_realloc, _realloc_internal_nolock, _realloc_internal)
8840 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
8841 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
8842 Define using prototypes, not old style.
8843 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
8844 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
8845 (align): Don't assume that signed integer overflow wraps around.
8846 Omit unused local var.
8847 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
8848 (_free_internal_nolock, memalign, mallochook, reallochook):
8849 Omit no-longer-needed casts.
8850 (valloc): Use getpagesize, not __getpagesize.
8851 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
8852 (struct hdr): The 'magic' member is now size_t, not unsigned long.
8853
8854 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
8855
8856 2012-04-22 Michael Albinus <michael.albinus@gmx.de>
8857
8858 Move functions from C to Lisp. Make non-blocking method calls
8859 the default. Implement further D-Bus standard interfaces.
8860
8861 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
8862 (QCdbus_request_name_allow_replacement)
8863 (QCdbus_request_name_replace_existing)
8864 (QCdbus_request_name_do_not_queue)
8865 (QCdbus_request_name_reply_primary_owner)
8866 (QCdbus_request_name_reply_in_queue)
8867 (QCdbus_request_name_reply_exists)
8868 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
8869 (QCdbus_registered_serial, QCdbus_registered_method)
8870 (QCdbus_registered_signal): New Lisp objects.
8871 (XD_DEBUG_MESSAGE): Use sizeof.
8872 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
8873 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
8874 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
8875 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
8876 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
8877 (xd_signature, xd_append_arg): Allow float for integer types.
8878 (xd_get_connection_references): New function.
8879 (xd_get_connection_address): Rename from xd_initialize.
8880 Return cached address.
8881 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
8882 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
8883 level.
8884 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
8885 Return number of refcounts.
8886 (Fdbus_get_unique_name): Make stronger parameter check.
8887 (Fdbus_message_internal): New defun.
8888 (Fdbus_call_method, Fdbus_call_method_asynchronously)
8889 (Fdbus_method_return_internal, Fdbus_method_error_internal)
8890 (Fdbus_send_signal, Fdbus_register_service)
8891 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
8892 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
8893 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
8894 (Vdbus_compiled_version, Vdbus_runtime_version)
8895 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
8896 (Vdbus_message_type_method_return, Vdbus_message_type_error)
8897 (Vdbus_message_type_signal): New defvars.
8898 (Vdbus_registered_buses, Vdbus_registered_objects_table):
8899 Adapt docstring.
8900
8901 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
8902
8903 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
8904 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
8905 Do not assume ptrdiff_t is the same width as 'int'.
8906
8907 * alloc.c: Handle unusual debugging option combinations.
8908 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
8909 since the two debugging options are incompatible.
8910 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
8911 is defined.
8912 (mem_init, mem_insert, mem_insert_fixup):
8913 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
8914 (NEED_MEM_INSERT): Remove; no longer needed.
8915
8916 2012-04-22 Leo Liu <sdl.web@gmail.com>
8917
8918 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
8919
8920 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
8921
8922 * sysdep.c [__FreeBSD__]: Minor cleanups.
8923 (list_system_processes, system_process_attributes) [__FreeBSD__]:
8924 Use Emacs indenting style more consistently. Avoid some casts.
8925 Use 'double' consistently rather than mixing 'float' and 'double'.
8926
8927 2012-04-21 Eduard Wiebe <usenet@pusto.de>
8928
8929 * sysdep.c (list_system_processes, system_process_attributes):
8930 Add implementation for FreeBSD (Bug#5243).
8931
8932 2012-04-21 Andreas Schwab <schwab@linux-m68k.org>
8933
8934 * lisp.mk (lisp): Update.
8935
8936 2012-04-20 Paul Eggert <eggert@cs.ucla.edu>
8937
8938 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
8939 It is never used otherwise.
8940
8941 2012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
8942
8943 * print.c (print_preprocess): Only check print_depth if print-circle
8944 is nil.
8945 (print_object): Check for cycles even when print-circle is nil and
8946 print-gensym is t, but only check print_depth if print-circle is nil.
8947
8948 2012-04-20 Chong Yidong <cyd@gnu.org>
8949
8950 * process.c (wait_reading_process_output): If EIO occurs on a pty,
8951 set the status to "failed" and ensure that sentinel is run.
8952
8953 2012-04-20 Glenn Morris <rgm@gnu.org>
8954
8955 * process.c (Fset_process_inherit_coding_system_flag)
8956 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
8957 (Fmake_network_process, Fmake_serial_process): Doc fix.
8958
8959 2012-04-20 Eli Zaretskii <eliz@gnu.org>
8960
8961 * xdisp.c (string_buffer_position_lim): Limit starting position to
8962 BEGV.
8963 (set_cursor_from_row): If called for a mode-line or header-line
8964 row, return zero immediately.
8965 (try_cursor_movement): If inside continuation line, don't back up
8966 farther than the first row after the header line, if any.
8967 Don't consider the header-line row as "partially visible", even if
8968 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
8969
8970 2012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
8971
8972 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
8973 (bug#11238).
8974
8975 2012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
8976 2012-04-18 Paul Eggert <eggert@cs.ucla.edu>
8977
8978 configure: new option --enable-gcc-warnings (Bug#11207)
8979 * Makefile.in (C_WARNINGS_SWITCH): Remove.
8980 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
8981 (ALL_CFLAGS): Use new macros rather than old.
8982 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
8983 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
8984 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
8985 -Wunused-result, -Wunused-variable. This should go away once
8986 the Emacs and Gnulib regex code is merged.
8987 (xmalloc, xrealloc): Now static.
8988
8989 2012-04-17 Paul Eggert <eggert@cs.ucla.edu>
8990
8991 * dired.c (Fsystem_groups): Remove unused local.
8992
8993 2012-04-17 Glenn Morris <rgm@gnu.org>
8994
8995 * dired.c (Fsystem_users): Doc fix.
8996
8997 2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
8998
8999 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
9000 (syms_of_dired): Add them.
9001
9002 2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
9003
9004 Fix minor alloc.c problems found by static checking.
9005 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
9006 New extern decls, to avoid calling undeclared functions.
9007 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
9008 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
9009 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
9010 (NEED_MEM_INSERT): New macro.
9011 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
9012 Remove one incorrect comment and fix another.
9013
9014 Fix minor ralloc.c problems found by static checking.
9015 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
9016 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
9017 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
9018 (r_alloc_sbrk): Now static.
9019
9020 Improve ralloc.c interface checking.
9021 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
9022 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
9023 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
9024 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
9025 [REL_ALLOC]: ... to here, to check interface.
9026 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
9027 Remove decls. This fixes an "It stinks!".
9028
9029 * alloc.c (which_symbols): Fix alignment issue / type clash.
9030
9031 2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
9032
9033 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
9034 (struct Lisp_Misc_Any): Likewise.
9035 (struct Lisp_Free): Likewise.
9036 * alloc.c (union aligned_Lisp_Symbol): Define.
9037 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
9038 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
9039 (union aligned_Lisp_Misc): Define.
9040 (MARKER_BLOCK_SIZE, struct marker_block): Use union
9041 aligned_Lisp_Misc instead of union Lisp_Misc.
9042 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
9043
9044 2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
9045
9046 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
9047 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
9048 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
9049 * s/netbsd.h, s/sol2-6.h:
9050 Remove definition of GC_MARK_STACK, since the default now works.
9051 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
9052 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
9053 no longer the default.
9054 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
9055
9056 2012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
9057
9058 * lread.c (lisp_file_lexically_bound_p):
9059 Fix hang at ";-*-\n" (bug#11238).
9060
9061 2012-04-14 Eli Zaretskii <eliz@gnu.org>
9062
9063 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
9064 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
9065
9066 2012-04-14 Jan Djärv <jan.h.d@swipnet.se>
9067
9068 * nsterm.m (constrainFrameRect): Always constrain when there is only
9069 one screen (Bug#10962).
9070
9071 2012-04-13 Ken Brown <kbrown@cornell.edu>
9072
9073 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
9074
9075 2012-04-13 Reuben Thomas <rrt@sc3d.org>
9076
9077 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
9078
9079 2012-04-11 Daniel Colascione <dancol@dancol.org>
9080
9081 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
9082 against is gone. It's better to use vfork now so that when Cygwin
9083 gains a new, working vfork, we use it automatically (bug#10398).
9084
9085 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
9086
9087 * window.c (save_window_save): Obey window-point-insertion-type.
9088
9089 2012-04-11 Glenn Morris <rgm@gnu.org>
9090
9091 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
9092
9093 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
9094
9095 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
9096
9097 2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
9098
9099 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
9100 (force_quit_count): New var.
9101 (handle_interrupt): Use it.
9102
9103 2012-04-10 Juanma Barranquero <lekktu@gmail.com>
9104
9105 * w32.c (w32_delayed_load): Record the full path of the library
9106 being loaded (bug#10424).
9107
9108 2012-04-09 Glenn Morris <rgm@gnu.org>
9109
9110 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
9111 not just in the obarray, before snarfing them. (Bug#11036)
9112
9113 * Makefile.in ($(leimdir)/leim-list.el):
9114 Pass EMACS rather than BUILT_EMACS.
9115
9116 2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
9117
9118 * process.c (make_process):
9119 * process.h: Add integer `gnutls_handshakes_tried' member to
9120 process struct.
9121
9122 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
9123 Add convenience `GNUTLS_LOG2i' macro.
9124
9125 * gnutls.c (gnutls_log_function2i): Convenience log function.
9126 (emacs_gnutls_read): Use new log functions,
9127 `gnutls_handshakes_tried' process member, and
9128 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
9129 attempts per process (connection).
9130
9131 2012-04-09 Chong Yidong <cyd@gnu.org>
9132
9133 * eval.c (Fuser_variable_p, user_variable_p_eh)
9134 (lisp_indirect_variable): Functions deleted.
9135 (Fdefvar): Caller changed.
9136
9137 * callint.c (Finteractive, Fcall_interactively):
9138 * minibuf.c (Fread_variable): Callers changed.
9139
9140 2012-04-09 Eli Zaretskii <eliz@gnu.org>
9141
9142 * xdisp.c (set_cursor_from_row): If the display string appears in
9143 the buffer at position that is closer to point than the position
9144 after the display string, display the cursor on the first glyph of
9145 the display string. Fixes cursor display when a 'display' text
9146 property immediately follows invisible text. (Bug#11094)
9147
9148 2012-04-09 Paul Eggert <eggert@cs.ucla.edu>
9149
9150 composite.c: use 'double' consistently
9151 * composite.c (get_composition_id): Use 'double' consistently
9152 instead of converting 'float' to 'double' and vice versa; this is
9153 easier to understand and avoids a GCC warning.
9154
9155 2012-04-09 Glenn Morris <rgm@gnu.org>
9156
9157 * Makefile.in: Generate leim-list with bootstrap-emacs, in
9158 preparation for dumping it with emacs. (Bug#4789)
9159 (leimdir): New variable.
9160 ($(leimdir)/leim-list.el): New rule.
9161 (emacs$(EXEEXT)): Depend on leim-list.el.
9162
9163 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
9164 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
9165 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
9166
9167 2012-04-08 Andreas Schwab <schwab@linux-m68k.org>
9168
9169 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
9170 proper alignment.
9171
9172 2012-04-07 Juanma Barranquero <lekktu@gmail.com>
9173
9174 * xml.c (init_libxml2_functions) [WINDOWSNT]:
9175 Remove unused local variable.
9176
9177 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
9178
9179 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
9180 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
9181 (mark_memory): Mark Lisp_Objects only if pointers might hide in
9182 objects, as mark_maybe_pointer will catch them otherwise.
9183 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
9184 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
9185
9186 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
9187
9188 Fix typo that broke non-Windows builds.
9189 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
9190
9191 2012-04-07 Eli Zaretskii <eliz@gnu.org>
9192
9193 Support building on MS-Windows with libxml2.
9194
9195 * makefile.w32-in (OBJ2): Add xml.$(O).
9196 (GLOBAL_SOURCES): Add xml.c.
9197 ($(BLD)/xml.$(O)): New dependency list.
9198
9199 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
9200 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
9201 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
9202 [!WINDOWSNT]: New macros.
9203 (init_libxml2_functions, libxml2_loaded_p): New functions.
9204 (parse_region): Call fn_xmlCheckVersion instead of using the macro
9205 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
9206 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
9207 Calls xmlCleanupParser only if libxml2 was loaded (or statically
9208 linked in).
9209 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
9210 Call init_libxml2_functions before calling libxml2 functions.
9211 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
9212
9213 * emacs.c: Don't include libxml/parser.h.
9214 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
9215 xmlCleanupParser directly.
9216
9217 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
9218
9219 2012-04-07 Eli Zaretskii <eliz@gnu.org>
9220
9221 * indent.c (Fvertical_motion): If there is a display string at
9222 point, use it.vpos to compute how many lines to backtrack after
9223 move_it_to point. (Bug#11133)
9224
9225 2012-04-06 Eli Zaretskii <eliz@gnu.org>
9226
9227 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
9228 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
9229 about subtle differences between FETCH_CHAR* and STRING_CHAR*
9230 macros related to unification of CJK characters. For the details,
9231 see the discussion following the message here:
9232 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
9233
9234 2012-04-04 Chong Yidong <cyd@gnu.org>
9235
9236 * keyboard.c (Vdelayed_warnings_list): Doc fix.
9237
9238 2012-04-01 Eli Zaretskii <eliz@gnu.org>
9239
9240 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
9241 instead of alloca. (Bug#11138)
9242
9243 2012-04-01 Andreas Schwab <schwab@linux-m68k.org>
9244
9245 * w32menu.c (is_simple_dialog): Properly check lisp types.
9246 (Bug#11141)
9247
9248 2012-03-31 Eli Zaretskii <eliz@gnu.org>
9249
9250 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
9251 position we get to after a call to move_it_to fails the
9252 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
9253 only if we wind up in a string from display property. (Bug#11063)
9254
9255 * window.c (Fdelete_other_windows_internal): Invalidate the row
9256 and column information about mouse highlight, so that redisplay
9257 restores it after reallocating the glyph matrices. (Bug#7464)
9258
9259 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
9260 string comes from a `display' text property, use the buffer
9261 position of that property as if we actually saw that position in
9262 the row's glyphs.
9263 (move_it_by_lines): Remove the assertion that
9264 "it->current_x == 0 && it->hpos == 0" which can be legitimately
9265 violated when there's a before-string at the beginning of a line.
9266 (Bug#11063)
9267
9268 2012-03-30 Eli Zaretskii <eliz@gnu.org>
9269
9270 * xdisp.c (append_space_for_newline): If the default face was
9271 remapped, use the remapped face for the appended newline.
9272 (extend_face_to_end_of_line): Use the remapped default face for
9273 extending the face to the end of the line.
9274 (display_line): Call extend_face_to_end_of_line when the default
9275 face was remapped. (Bug#11068)
9276
9277 2012-03-29 Eli Zaretskii <eliz@gnu.org>
9278
9279 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
9280
9281 2012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
9282
9283 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
9284
9285 2012-03-27 Glenn Morris <rgm@gnu.org>
9286
9287 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
9288 Doc fixes.
9289
9290 2012-03-26 Kenichi Handa <handa@m17n.org>
9291
9292 * dispextern.h (struct glyph): Fix previous change. Change the
9293 bit length of glyphless.ch to 25 (Bug#11082).
9294
9295 2012-03-26 Chong Yidong <cyd@gnu.org>
9296
9297 * keyboard.c (Vselection_inhibit_update_commands): New variable.
9298 (command_loop_1): Use it; inhibit selection update for
9299 handle-select-window too (Bug#8996).
9300
9301 2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
9302
9303 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
9304
9305 2012-03-25 Kenichi Handa <handa@m17n.org>
9306
9307 * dispextern.h (struct glyph): Change the bit length of
9308 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
9309
9310 2012-03-24 Eli Zaretskii <eliz@gnu.org>
9311
9312 * s/ms-w32.h (tzname): Include time.h before redirecting to
9313 _tzname. Fixes the MSVC build. (Bug#9960)
9314
9315 2012-03-24 Andreas Schwab <schwab@linux-m68k.org>
9316
9317 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
9318 characters.
9319
9320 * xterm.c (XTread_socket): Only modify handling_signal if
9321 !SYNC_INPUT. (Bug#11080)
9322
9323 2012-03-23 Eli Zaretskii <eliz@gnu.org>
9324
9325 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
9326 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
9327 when fetching a multibyte character consumes more bytes than
9328 CHAR_BYTES returns, due to unification of CJK characters in
9329 string_char. (Bug#11073)
9330
9331 2012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
9332
9333 * process.c (wait_reading_process_output): Handle pty disconnect
9334 by refraining from sending oneself a SIGCHLD (bug#10933).
9335
9336 2012-03-22 Chong Yidong <cyd@gnu.org>
9337
9338 * dispextern.h (struct it): New member string_from_prefix_prop_p.
9339
9340 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9341 Mark string as coming from a prefix property.
9342 (handle_face_prop): Use default face for prefix strings (Bug#4281).
9343 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
9344
9345 2012-03-21 Chong Yidong <cyd@gnu.org>
9346
9347 * xfaces.c (Vface_remapping_alist): Doc fix.
9348
9349 2012-03-20 Eli Zaretskii <eliz@gnu.org>
9350
9351 * w32proc.c (Fw32_set_console_codepage)
9352 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
9353 Doc fixes.
9354
9355 2012-03-20 Chong Yidong <cyd@gnu.org>
9356
9357 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
9358 to reflect default non-nil value of redisplay-dont-pause.
9359
9360 2012-03-19 Kenichi Handa <handa@m17n.org>
9361
9362 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
9363 it fit in a valid range (Bug#11003).
9364
9365 2012-03-18 Eli Zaretskii <eliz@gnu.org>
9366
9367 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
9368 that is not from display property, accept the row as a "cursor
9369 row" if one of the string's character has a non-nil `cursor'
9370 property. Fixes cursor positioning when there are newlines in
9371 overlay strings, e.g. in icomplete.el. (Bug#11035)
9372
9373 2012-03-12 Paul Eggert <eggert@cs.ucla.edu>
9374
9375 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
9376
9377 2012-03-12 Chong Yidong <cyd@gnu.org>
9378
9379 * eval.c (inhibit_lisp_code): Rename from
9380 inhibit_window_configuration_change_hook; move from window.c.
9381
9382 * xfns.c (unwind_create_frame_1, Fx_create_frame):
9383 * window.c (run_window_configuration_change_hook)
9384 (syms_of_window): Callers changed.
9385
9386 2012-03-11 Chong Yidong <cyd@gnu.org>
9387
9388 * keymap.c (Fkey_description): Doc fix (Bug#9700).
9389
9390 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
9391
9392 2012-03-10 Chong Yidong <cyd@gnu.org>
9393
9394 * frame.c (other_visible_frames): Don't assume the selected frame
9395 is visible (Bug#10955).
9396
9397 2012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
9398
9399 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
9400
9401 2012-03-08 Jan Djärv <jan.h.d@swipnet.se>
9402
9403 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
9404 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
9405 zero (Bug#10954).
9406
9407 2012-03-03 Glenn Morris <rgm@gnu.org>
9408
9409 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
9410
9411 2012-03-02 Eli Zaretskii <eliz@gnu.org>
9412
9413 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
9414 position past the first glyph_row that ends at ZV. (Bug#10902)
9415 (redisplay_window, next_element_from_string): Fix typos in
9416 comments.
9417 (redisplay_window): Pass to move_it_vertically the margin in
9418 pixels, not in screen lines.
9419
9420 2012-03-02 Glenn Morris <rgm@gnu.org>
9421
9422 * buffer.c (buffer-list-update-hook): Doc fix.
9423
9424 2012-02-29 Eli Zaretskii <eliz@gnu.org>
9425
9426 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
9427 push_it before setting up the iterator for the first overlay
9428 string, even if we have an empty string loaded.
9429 (next_overlay_string): If there's an empty string on the iterator
9430 stack, pop the stack. (Bug#10903)
9431
9432 2012-02-25 Paul Eggert <eggert@cs.ucla.edu>
9433
9434 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
9435 Suggested by Stefan Monnier in
9436 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
9437 * alloc.c (widen_to_Lisp_Object): New static function.
9438 (mark_memory): Also mark Lisp_Objects by fetching pointer words
9439 and widening them to Lisp_Objects. This would work even if
9440 USE_LSB_TAG is defined and wide integers are used, which might
9441 happen in a future version of Emacs.
9442
9443 2012-02-25 Chong Yidong <cyd@gnu.org>
9444
9445 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
9446 Doc fix.
9447
9448 * xselect.c (Fx_selection_exists_p): Doc fix.
9449 (x_clipboard_manager_save_all): Print an informative message
9450 before saving to clipboard manager.
9451
9452 2012-02-24 Chong Yidong <cyd@gnu.org>
9453
9454 * keyboard.c (process_special_events): Handle all X selection
9455 requests in kbd_buffer, not just the next one (Bug#8869).
9456
9457 2012-02-23 Chong Yidong <cyd@gnu.org>
9458
9459 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
9460 call when setting menu-bar-lines and tool-bar-lines parameters.
9461 (unwind_create_frame_1): New helper function.
9462
9463 * window.c (inhibit_window_configuration_change_hook): New var.
9464 (run_window_configuration_change_hook): Obey it.
9465 (syms_of_window): Initialize it.
9466
9467 2012-02-22 Chong Yidong <cyd@gnu.org>
9468
9469 * xterm.c (x_draw_image_relief): Add missing type check for
9470 Vtool_bar_button_margin (Bug#10743).
9471
9472 2012-02-21 Chong Yidong <cyd@gnu.org>
9473
9474 * fileio.c (Vfile_name_handler_alist): Doc fix.
9475
9476 * buffer.c (Fget_file_buffer): Protect against invalid file
9477 handler return value.
9478
9479 2012-02-20 Paul Eggert <eggert@cs.ucla.edu>
9480
9481 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
9482 when computing $valmask.
9483
9484 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
9485 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
9486 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
9487 It's useless in that case, and it can cause problems on hosts
9488 that allocate halves of EMACS_INT values separately.
9489 Reported by Dan Horák. Diagnosed by Andreas Schwab in
9490 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
9491 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
9492 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
9493 it avoids undefined behavior on hosts where shifting right by more
9494 than the word width has undefined behavior.
9495
9496 2012-02-19 Chong Yidong <cyd@gnu.org>
9497
9498 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
9499 (Funhandled_file_name_directory, Ffile_name_as_directory)
9500 (Fdirectory_file_name, Fexpand_file_name)
9501 (Fsubstitute_in_file_name): Protect against invalid file handler
9502 return values (Bug#10845).
9503
9504 2012-02-18 Eli Zaretskii <eliz@gnu.org>
9505
9506 * .gdbinit (pitx): Fix incorrect references to fields of the
9507 iterator stack.
9508
9509 2012-02-17 Chong Yidong <cyd@gnu.org>
9510
9511 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
9512
9513 2012-02-15 Paul Eggert <eggert@cs.ucla.edu>
9514
9515 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
9516 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
9517
9518 2012-02-15 Chong Yidong <cyd@gnu.org>
9519
9520 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
9521 marked as special. Also, starting docstrings with * is obsolete.
9522
9523 2012-02-13 Andreas Schwab <schwab@linux-m68k.org>
9524
9525 * gnutls.c (emacs_gnutls_write): Fix last change.
9526
9527 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
9528
9529 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
9530 send_process.
9531
9532 2012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
9533
9534 * keymap.c (Fsingle_key_description): Handle char ranges.
9535
9536 2012-02-12 Chong Yidong <cyd@gnu.org>
9537
9538 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
9539 as that creates a dangerous corner case.
9540
9541 * window.c (Fdelete_window_internal): Invalidate the mouse
9542 highlight (Bug#9904).
9543
9544 2012-02-12 Glenn Morris <rgm@gnu.org>
9545
9546 * xselect.c (Fx_own_selection_internal)
9547 (Fx_get_selection_internal, Fx_disown_selection_internal)
9548 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
9549 * nsselect.m (Fx_own_selection_internal)
9550 (Fx_disown_selection_internal, Fx_selection_exists_p)
9551 (Fx_selection_owner_p, Fx_get_selection_internal):
9552 Sync docs and argument specs with the xselect.c versions.
9553
9554 2012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
9555
9556 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
9557
9558 2012-02-11 Eli Zaretskii <eliz@gnu.org>
9559
9560 * w32select.c (Fx_selection_exists_p): Sync doc string and
9561 argument list with xselect.c. (Bug#10783)
9562
9563 * w16select.c (Fx_selection_exists_p): Sync doc string and
9564 argument list with xselect.c. (Bug#10783)
9565
9566 2012-02-10 Glenn Morris <rgm@gnu.org>
9567
9568 * fns.c (Fsecure_hash): Doc fix.
9569
9570 2012-02-09 Kenichi Handa <handa@m17n.org>
9571
9572 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
9573
9574 2012-02-07 Chong Yidong <cyd@gnu.org>
9575
9576 * buffer.c (Fbuffer_local_variables)
9577 (buffer_lisp_local_variables): Handle unbound vars correctly;
9578 don't let Qunbound leak into Lisp.
9579
9580 2012-02-07 Glenn Morris <rgm@gnu.org>
9581
9582 * image.c (Fimagemagick_types): Doc fix.
9583
9584 * image.c (imagemagick-render-type): Change it from a lisp object
9585 to an integer. Move the doc here from the lisp manual.
9586 Treat all values not equal to 0 the same.
9587
9588 2012-02-06 Chong Yidong <cyd@gnu.org>
9589
9590 * doc.c (store_function_docstring): Avoid applying docstring of
9591 alias to base function (Bug#2603).
9592
9593 2012-02-04 Andreas Schwab <schwab@linux-m68k.org>
9594
9595 * .gdbinit (pp1, pv1): Remove redundant defines.
9596 (pr): Use pp.
9597
9598 2012-02-04 Chong Yidong <cyd@gnu.org>
9599
9600 * nsterm.m: Declare a global (Bug#10694).
9601
9602 2012-02-04 Eli Zaretskii <eliz@gnu.org>
9603
9604 * w32.c (get_emacs_configuration_options):
9605 Include --enable-checking, if specified, in the return value.
9606
9607 2012-02-04 Martin Rudalics <rudalics@gmx.at>
9608
9609 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
9610 after rounding frame sizes. (Bug#9723)
9611
9612 2012-02-04 Eli Zaretskii <eliz@gnu.org>
9613
9614 * keyboard.c (adjust_point_for_property): Don't position point
9615 before BEGV. (Bug#10696)
9616
9617 2012-02-03 Paul Eggert <eggert@cs.ucla.edu>
9618
9619 Handle overflow when computing char display width (Bug#9496).
9620 * character.c (char_width): Return EMACS_INT, not int.
9621 (char_width, c_string_width): Check for overflow when
9622 computing the width; this is possible now that individual
9623 characters can have unbounded width. Problem introduced
9624 by merge from Emacs 23 on 2012-01-19.
9625
9626 2012-02-02 Michael Albinus <michael.albinus@gmx.de>
9627
9628 * dbusbind.c (Fdbus_register_method): Mention the return value
9629 :ignore in the docstring.
9630
9631 2012-02-02 Glenn Morris <rgm@gnu.org>
9632
9633 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
9634
9635 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
9636 Unconditionally set to t. (Bug#10673)
9637 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
9638 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
9639 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
9640
9641 2012-02-02 Kenichi Handa <handa@m17n.org>
9642
9643 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
9644 0, do not call append_composite_glyph.
9645
9646 2012-02-02 Kenichi Handa <handa@m17n.org>
9647
9648 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
9649 NULL (Bug#6988).
9650 (x_produce_glyphs): If the component of a composition is a null
9651 string, set it->pixel_width to 1 to avoid zero-width glyph.
9652
9653 2012-02-01 Eli Zaretskii <eliz@gnu.org>
9654
9655 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
9656 first 2 arguments are identical. This makes inserting large
9657 output from a subprocess an order of magnitude faster on
9658 MS-Windows, where all sbrk'ed memory is always contiguous.
9659
9660 2012-01-31 Glenn Morris <rgm@gnu.org>
9661
9662 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
9663 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
9664 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
9665
9666 2012-01-29 Glenn Morris <rgm@gnu.org>
9667
9668 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
9669
9670 2012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
9671
9672 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
9673
9674 2012-01-28 Chong Yidong <cyd@gnu.org>
9675
9676 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
9677
9678 2012-01-26 Chong Yidong <cyd@gnu.org>
9679
9680 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
9681
9682 * search.c (Fsearch_forward, Fsearch_backward): Document negative
9683 repeat counts (Bug#10507).
9684
9685 2012-01-26 Glenn Morris <rgm@gnu.org>
9686
9687 * lread.c (syms_of_lread): Doc fix.
9688
9689 2012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
9690
9691 * coding.c (encode_designation_at_bol): Change return value to
9692 EMACS_INT.
9693
9694 2012-01-25 Chong Yidong <cyd@gnu.org>
9695
9696 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
9697
9698 2012-01-21 Chong Yidong <cyd@gnu.org>
9699
9700 * floatfns.c (Fcopysign): Make the second argument non-optional,
9701 since nil is not allowed anyway.
9702
9703 2012-01-21 Andreas Schwab <schwab@linux-m68k.org>
9704
9705 * process.c (read_process_output): Use p instead of XPROCESS (proc).
9706 (send_process): Likewise.
9707
9708 2012-01-19 Martin Rudalics <rudalics@gmx.at>
9709
9710 * window.c (save_window_save, Fcurrent_window_configuration)
9711 (Vwindow_persistent_parameters): Do not use Qstate.
9712 Rewrite doc-strings.
9713
9714 2012-01-19 Kenichi Handa <handa@m17n.org>
9715
9716 * character.c (char_width): New function.
9717 (Fchar_width, c_string_width, lisp_string_width):
9718 Use char_width (Bug#9496).
9719
9720 2012-01-16 Martin Rudalics <rudalics@gmx.at>
9721
9722 * window.c (Vwindow_persistent_parameters): New variable.
9723 (Fset_window_configuration, save_window_save): Handle persistent
9724 window parameters.
9725
9726 2012-01-14 Eli Zaretskii <eliz@gnu.org>
9727
9728 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
9729 thrashing the stack of the thread. (Bug#9087)
9730
9731 2012-01-12 Paul Eggert <eggert@cs.ucla.edu>
9732
9733 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
9734
9735 2012-01-11 Eli Zaretskii <eliz@gnu.org>
9736
9737 * xdisp.c (rows_from_pos_range): Handle the case where the
9738 highlight ends on a newline. (Bug#10464)
9739 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
9740 he end column for display of highlight that ends on a newline
9741 before a R2L line.
9742
9743 2012-01-11 Glenn Morris <rgm@gnu.org>
9744
9745 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
9746 from load-path also when installation-directory is nil. (Bug#10208)
9747
9748 2012-01-10 Glenn Morris <rgm@gnu.org>
9749
9750 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
9751
9752 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
9753 Update template values to be closer to their typical values these days.
9754
9755 2012-01-09 Eli Zaretskii <eliz@gnu.org>
9756
9757 * xdisp.c (rows_from_pos_range): Accept additional argument
9758 DISP_STRING, and accept any glyph in a row whose object is that
9759 string as eligible for mouse highlight. Fixes mouse highlight of
9760 display strings from overlays. (Bug#10464)
9761
9762 2012-01-07 Paul Eggert <eggert@cs.ucla.edu>
9763
9764 emacs: fix an auto-save permissions race condition (Bug#10400)
9765 * fileio.c (auto_saving_dir_umask): New static var.
9766 (Fmake_directory_internal): Use it.
9767 (do_auto_save_make_dir): Set it, instead of invoking chmod after
9768 creating the directory. The old code temporarily assigns
9769 too-generous permissions to the directory.
9770 (do_auto_save_eh): Clear it.
9771 (Fdo_auto_save): Catch all errors, not just file errors, so
9772 that the var is always cleared.
9773
9774 2012-01-07 Eli Zaretskii <eliz@gnu.org>
9775
9776 * search.c (scan_buffer): Pass character positions to
9777 know_region_cache, not byte positions. (Bug#6540)
9778
9779 2012-01-07 LynX <_LynX@bk.ru> (tiny change)
9780
9781 * w32.c (sys_rename): Report EXDEV when rename of a directory
9782 fails because the target is on another logical disk. (Bug#10284)
9783
9784 2012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
9785
9786 * xterm.c (x_embed_request_focus): New function.
9787
9788 * xterm.h: Add prototype.
9789
9790 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
9791
9792 2012-01-05 Glenn Morris <rgm@gnu.org>
9793
9794 * emacs.c (emacs_copyright): Update short copyright year to 2012.
9795
9796 2012-01-01 Eli Zaretskii <eliz@gnu.org>
9797
9798 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
9799 Load gnutls_transport_set_lowat only if GnuTLS version is below
9800 2.11.1.
9801 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
9802 GnuTLS versions below 2.11.1.
9803
9804 2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
9805
9806 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
9807 to the doc string advising against its use for altering the way
9808 windows are scrolled.
9809
9810 2011-12-28 Kenichi Handa <handa@m17n.org>
9811
9812 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
9813 coding-system ASCII compatible only when it does not produce BOM
9814 on encoding (Bug#10383).
9815
9816 2011-12-26 Jan Djärv <jan.h.d@swipnet.se>
9817
9818 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
9819 can scroll.
9820 (create_and_show_popup_menu): Always use menu_position_func for
9821 Gtk3 (Bug#10361).
9822
9823 2011-12-24 Andreas Schwab <schwab@linux-m68k.org>
9824
9825 * callint.c (Fcall_interactively): Don't truncate prompt string.
9826
9827 2011-12-23 Eli Zaretskii <eliz@gnu.org>
9828
9829 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
9830 property that ends at ZV, so that the bidi iteration could be
9831 resumed from there (after widening). (Bug#10360)
9832
9833 2011-12-22 Jan Djärv <jan.h.d@swipnet.se>
9834
9835 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
9836
9837 2011-12-21 Jan Djärv <jan.h.d@swipnet.se>
9838
9839 * nsterm.m (x_free_frame_resources):
9840 Release f->output_data.ns->miniimage.
9841 (ns_index_color): Fix indentation. Do not retain
9842 color_table->colors[i].
9843
9844 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
9845 before returning.
9846
9847 * nsfns.m (x_set_background_color): Assign return value from
9848 ns_index_color to face-background instead of NSColor*.
9849 (ns_implicitly_set_icon_type): Fix indentation.
9850 Change assignment in for loop to comparison.
9851
9852 * emacs.c (ns_pool): New variable.
9853 (main): Assign ns_pool.
9854 (Fkill_emacs): Call ns_release_autorelease_pool.
9855
9856 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
9857 autorelease fdesc, release fdAttrs and tdict.
9858 (ns_get_covering_families): Release charset.
9859 (ns_findfonts): Release NSFontDescriptor created with new.
9860 (ns_uni_to_glyphs): Fix indentation.
9861 (setString): Release attrStr before assigning new value.
9862
9863 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
9864
9865 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
9866 and NS_IMPL_COCOA.
9867 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
9868 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
9869
9870 2011-12-18 David Reitter <reitter@cmu.edu>
9871
9872 * nsterm.m (ns_term_init): Subscribe for notifications
9873 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
9874 to method trackingNotification in EmacsMenu.
9875
9876 * nsmenu.m (trackingMenu): New variable.
9877 (trackingNotification): New method (from Aquamacs).
9878 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
9879 from Aquamacs (Bug#7030).
9880
9881 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
9882
9883 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
9884 (symbol_to_nsstring): Fix indentation.
9885 (ns_symbol_to_pb): New function.
9886 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
9887 (Fns_rotate_cut_buffers_internal): Remove.
9888 (Fns_store_selection_internal): Rename from
9889 Fns_store_cut_buffer_internal.
9890 (ns_get_foreign_selection, Fx_own_selection_internal)
9891 (Fx_disown_selection_internal, Fx_selection_exists_p)
9892 (Fns_get_selection_internal, Fns_store_selection_internal):
9893 Use ns_symbol_to_pb and check if return value is nil.
9894 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
9895 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
9896 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
9897 renamed to Sns_store_selection_internal.
9898 (ns_handle_selection_request): Move code to Fx_own_selection_internal
9899 and remove this function.
9900 (ns_handle_selection_clear): Remove, never used.
9901 (Fx_own_selection_internal): Move code from ns_handle_selection_request
9902 here.
9903
9904 2011-12-17 Ken Brown <kbrown@cornell.edu>
9905
9906 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
9907 GID is unknown (Bug#10257).
9908
9909 2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
9910
9911 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
9912 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
9913 which caused a build failure on GNU/Linux IA-64. This problem was
9914 introduced by my 2011-10-07 patch.
9915
9916 2011-12-15 Juri Linkov <juri@jurta.org>
9917
9918 * image.c (imagemagick_error): New function. (Bug#10112)
9919 (imagemagick_load_image): Comment out `MagickSetResolution' call.
9920 Use `imagemagick_error' where ImageMagick functions return
9921 `MagickFalse'.
9922 (Fimagemagick_types): Add `Fnreverse' to return the list in the
9923 proper order.
9924
9925 2011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9926
9927 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
9928 fill background (Bug#8992).
9929
9930 2011-12-13 Martin Rudalics <rudalics@gmx.at>
9931
9932 * window.c (Vwindow_combination_resize)
9933 (Vwindow_combination_limit): Use t instead of non-nil in
9934 doc-strings.
9935 (Vrecenter_redisplay): Add first sentence of doc-string on
9936 separate line.
9937 (Frecenter): Fix doc-string typo.
9938
9939 2011-12-11 Kenichi Handa <handa@m17n.org>
9940
9941 * coding.c (Funencodable_char_position): Pay attention to the
9942 buffer text relocation (Bug#9389).
9943
9944 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
9945
9946 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
9947 gtk_init (Bug#10100).
9948
9949 2011-12-10 Eli Zaretskii <eliz@gnu.org>
9950
9951 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
9952 IT->string is nil. (Bug#10263)
9953
9954 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
9955
9956 * nsterm.h (x_free_frame_resources): Declare.
9957
9958 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
9959 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
9960
9961 * nsterm.h (ns_get_defaults_value): Declare.
9962
9963 * nsterm.m (ns_default): Call ns_get_defaults_value.
9964
9965 2011-12-09 Eli Zaretskii <eliz@gnu.org>
9966
9967 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
9968 (Bug#10170)
9969
9970 2011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9971
9972 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
9973 that where the value of an _OBJC_* symbol points to is in the .bss
9974 section (Bug#10240).
9975
9976 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
9977
9978 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
9979 after the loop to call ccl_driver at least once (Bug#8619).
9980
9981 2011-12-08 Kenichi Handa <handa@m17n.org>
9982
9983 * ftfont.c (get_adstyle_property): Fix previous change
9984 (Bug#10233).
9985
9986 2011-12-07 Juanma Barranquero <lekktu@gmail.com>
9987
9988 * w32.c (init_environment): If no_site_lisp, remove site-lisp
9989 dirs from the default value of EMACSLOADPATH (bug#10208).
9990
9991 2011-12-07 Glenn Morris <rgm@gnu.org>
9992
9993 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
9994 installation and source directories as well. (Bug#10208)
9995
9996 2011-12-06 Chong Yidong <cyd@gnu.org>
9997
9998 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
9999
10000 2011-12-06 Glenn Morris <rgm@gnu.org>
10001
10002 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
10003 as an error, not just -1. (Bug#10217)
10004
10005 2011-12-05 Chong Yidong <cyd@gnu.org>
10006
10007 * keyboard.c (process_special_events): New function.
10008 (swallow_events, Finput_pending_p): Use it (Bug#10195).
10009
10010 2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
10011
10012 * coding.c (encode_designation_at_bol): Don't use uninitialized
10013 local variable (Bug#9318).
10014
10015 2011-12-05 Kenichi Handa <handa@m17n.org>
10016
10017 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
10018 return Qnil (Bug#8046, Bug#10193).
10019
10020 2011-12-05 Kenichi Handa <handa@m17n.org>
10021
10022 * coding.c (encode_designation_at_bol): New args charbuf_end and
10023 dst. Return the number of produced bytes. Callers changed.
10024 (coding_set_source): Return how many bytes coding->source was
10025 relocated.
10026 (coding_set_destination): Return how many bytes
10027 coding->destination was relocated.
10028 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
10029 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
10030
10031 2011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
10032
10033 * coding.c (CODING_CHAR_CHARSET_P): New macro.
10034 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
10035 macro (Bug#9318).
10036
10037 2011-12-05 Andreas Schwab <schwab@linux-m68k.org>
10038
10039 The following changes are to fix Bug#9318.
10040
10041 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
10042 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
10043 (encode_coding_iso_2022, encode_coding_sjis)
10044 (encode_coding_big5, encode_coding_charset): Use the above macros.
10045
10046 2011-12-05 Juanma Barranquero <lekktu@gmail.com>
10047
10048 * lisp.h (process_quit_flag): Fix external declaration.
10049
10050 2011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
10051
10052 Don't macro-inline non-performance-critical code.
10053 * eval.c (process_quit_flag): New function.
10054 * lisp.h (QUIT): Use it.
10055
10056 2011-12-04 Jan Djärv <jan.h.d@swipnet.se>
10057
10058 * nsfns.m (get_geometry_from_preferences): New function.
10059 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
10060
10061 2011-12-04 Andreas Schwab <schwab@linux-m68k.org>
10062
10063 * emacs.c (Qkill_emacs): Define.
10064 (syms_of_emacs): Initialize it.
10065 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
10066 Qquit_flag to `kill-emacs' instead.
10067 (quit_throw_to_read_char): Add parameter `from_signal'.
10068 All callers changed. Call Fkill_emacs if requested and safe.
10069 * lisp.h (QUIT): Call Fkill_emacs if requested.
10070
10071 2011-12-03 Jan Djärv <jan.h.d@swipnet.se>
10072
10073 * widget.c (update_wm_hints): Return if wmshell is null.
10074 (widget_update_wm_size_hints): New function.
10075
10076 * widget.h (widget_update_wm_size_hints): Declare.
10077
10078 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
10079 widget_update_wm_size_hints (Bug#10104).
10080
10081 2011-12-03 Eli Zaretskii <eliz@gnu.org>
10082
10083 * xdisp.c (handle_invisible_prop): If the invisible text ends just
10084 before a newline, prepare the bidi iterator for consuming the
10085 newline, and keep the current paragraph direction. (Bug#10183)
10086 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
10087
10088 2011-12-02 Juri Linkov <juri@jurta.org>
10089
10090 * search.c (Fword_search_regexp): New Lisp function created from
10091 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
10092 (Fword_search_backward, Fword_search_forward)
10093 (Fword_search_backward_lax, Fword_search_forward_lax):
10094 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
10095 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
10096
10097 2011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
10098
10099 * fileio.c (Finsert_file_contents): Move after-change-function call
10100 to before the "handled:" label, since all "goto handled" appear in
10101 cases where the *-change-functions have already been properly called
10102 (bug#10117).
10103
10104 2011-12-01 Andreas Schwab <schwab@linux-m68k.org>
10105
10106 * keyboard.c (interrupt_signal): Don't call kill-emacs when
10107 waiting for input. (Bug#10169)
10108
10109 2011-11-30 Eli Zaretskii <eliz@gnu.org>
10110
10111 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
10112 verifies glyph row's hash code--we have just reallocated the
10113 glyphs, so their contents can be complete garbage. (Bug#10164)
10114
10115 2011-11-30 Juanma Barranquero <lekktu@gmail.com>
10116
10117 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
10118
10119 2011-11-30 Eli Zaretskii <eliz@gnu.org>
10120
10121 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
10122 attributes are tested _before_ calling verify_row_hash, to protect
10123 against GCC re-ordering of the tests. (Bug#10164)
10124
10125 2011-11-29 Jan Djärv <jan.h.d@swipnet.se>
10126
10127 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
10128
10129 * xterm.c (handle_one_xevent): Only set async_visible and friends
10130 if net_wm_state_hidden_seen is non-zero (Bug#10002)
10131 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
10132 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
10133
10134 2011-11-28 Paul Eggert <eggert@cs.ucla.edu>
10135
10136 Remove GCPRO-related macros that exist only to avoid shadowing locals.
10137 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
10138 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
10139 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
10140 All uses changed to use GCPRO1 etc.
10141 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
10142 Revert to old implementation (i.e., before 2011-03-11).
10143
10144 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10145
10146 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
10147 of scroll runs so as to avoid assigning disabled bogus rows and
10148 unnecessary graphics copy operations.
10149
10150 2011-11-27 Eli Zaretskii <eliz@gnu.org>
10151
10152 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
10153 (snprintf) [_MSC_VER]: Redirect to _snprintf.
10154 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
10155 (malloc, free, realloc, calloc): Redirect to e_* only when
10156 compiling Emacs.
10157
10158 * lisp.h (GCTYPEBITS): Move before first use.
10159 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
10160 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
10161 this macro definition.
10162
10163 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
10164 _MSC_VER.
10165
10166 2011-11-27 Jan Djärv <jan.h.d@swipnet.se>
10167
10168 * gtkutil.c (xg_create_frame_widgets):
10169 Call gtk_window_set_has_resize_grip (FALSE) if that function is
10170 present with Gtk+ 2.0.
10171
10172 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
10173
10174 * fileio.c (Finsert_file_contents): Undo previous change; see
10175 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
10176
10177 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
10178
10179 Rename locals to avoid shadowing.
10180 * fileio.c (Finsert_file_contents):
10181 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
10182 * process.c (wait_reading_process_output):
10183 Rename inner 'proc' to 'p' to avoid shadowing.
10184 Indent for consistency with usual Emacs style.
10185
10186 2011-11-25 Eli Zaretskii <eliz@gnu.org>
10187
10188 * xdisp.c (redisplay_window): If cursor row is not fully visible
10189 after recentering, and scroll-conservatively is set to a large
10190 number, scroll window by a few more lines to make the cursor fully
10191 visible and out of scroll-margin. (Bug#10105)
10192 (start_display): Don't move to the next line if the display should
10193 start at a newline that is part of a display vector or an overlay
10194 string. (Bug#10119)
10195
10196 2011-11-24 Juri Linkov <juri@jurta.org>
10197
10198 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
10199 after the `MagickPingImage' call. (Bug#10112)
10200
10201 2011-11-23 Chong Yidong <cyd@gnu.org>
10202
10203 * window.c (Fcoordinates_in_window_p): Accept only live windows.
10204
10205 2011-11-23 Martin Rudalics <rudalics@gmx.at>
10206
10207 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
10208 making another buffer current. (Bug#10114)
10209
10210 2011-11-23 Glenn Morris <rgm@gnu.org>
10211
10212 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
10213
10214 2011-11-23 Chong Yidong <cyd@gnu.org>
10215
10216 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
10217 using it (Bug#5984).
10218
10219 2011-11-22 Eli Zaretskii <eliz@gnu.org>
10220
10221 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
10222 and header-lines, as they don't have one computed for them.
10223 (Bug#10098)
10224
10225 * .gdbinit (prow): Make displayed values more self-explaining.
10226 Add row's hash code.
10227
10228 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
10229
10230 * process.c (wait_reading_process_output): Fix asynchrounous
10231 GnuTLS socket handling on some versions of the GnuTLS library.
10232 (wait_reading_process_output): Add comment and URL.
10233
10234 2011-11-21 Jan Djärv <jan.h.d@swipnet.se>
10235
10236 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
10237
10238 2011-11-21 Chong Yidong <cyd@gnu.org>
10239
10240 * window.c (Fnext_window, Fprevious_window): Doc fix.
10241
10242 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
10243
10244 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
10245
10246 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
10247
10248 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
10249
10250 2011-11-20 Martin Rudalics <rudalics@gmx.at>
10251
10252 * window.c (Fset_window_combination_limit): Rename argument
10253 STATUS to LIMIT.
10254 (Vwindow_combination_limit): Remove "status" from doc-string.
10255
10256 2011-11-20 Andreas Schwab <schwab@linux-m68k.org>
10257
10258 * m/ibms390.h: Remove.
10259 * m/ibms390x.h: Don't include "ibms390.h".
10260
10261 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
10262
10263 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
10264 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
10265
10266 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
10267
10268 * casetab.c (Fset_case_table):
10269 * charset.c (Fcharset_after): Fix typos.
10270
10271 2011-11-20 Paul Eggert <eggert@cs.ucla.edu>
10272
10273 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
10274 Otherwise, valgrind does not work on some platforms.
10275 Problem reported by Andreas Schwab in
10276 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
10277 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
10278 is set, removing the need for VIRT_ADDRESS_VARIES.
10279 (PURE_P): Use a more-efficient implementation that needs just one
10280 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
10281 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
10282 to 4 (xorl, subq, cmpq, setbe).
10283 * alloc.c (pure): Always extern now, since that's the
10284 VIRT_ADDR_VARIES behavior.
10285 (PURE_POINTER_P): Use a single comparison, not two, for
10286 consistency with the new puresize.h.
10287 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
10288 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
10289 Remove VIRT_ADDR_VARIES no longer needed.
10290
10291 2011-11-19 Eli Zaretskii <eliz@gnu.org>
10292
10293 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
10294 (erase_phys_cursor, update_window_cursor, show_mouse_face)
10295 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
10296 behave as if the cursor position were at the window margin.
10297
10298 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
10299 and the cursor position is out of bounds, behave as if the cursor
10300 position were at the window margin. (Bug#10075)
10301
10302 2011-11-18 Chong Yidong <cyd@gnu.org>
10303
10304 * window.c (Fwindow_combination_limit): Make first argument
10305 non-optional, since it is meaningless for live windows like the
10306 selected window.
10307
10308 2011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
10309
10310 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
10311
10312 2011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
10313
10314 * intervals.c: Fix grafting over the whole buffer (bug#10071).
10315 (graft_intervals_into_buffer): Simplify.
10316
10317 2011-11-18 Eli Zaretskii <eliz@gnu.org>
10318
10319 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
10320 hash values of the two rows.
10321 (copy_row_except_pointers): Preserve the used[] arrays and the
10322 hash values of the two rows. (Bug#10035)
10323 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
10324
10325 * xdisp.c (row_hash): New function, body extracted from
10326 compute_line_metrics.
10327 (compute_line_metrics): Call row_hash, instead of computing the
10328 hash code inline.
10329
10330 * dispnew.c (verify_row_hash): Call row_hash for computing the
10331 hash code of a row, instead of duplicating code from xdisp.c.
10332
10333 * dispextern.h (row_hash): Add prototype.
10334
10335 2011-11-18 Tassilo Horn <tassilo@member.fsf.org>
10336
10337 * frame.c (delete_frame): Don't delete the terminal when the last
10338 X frame is closed if emacs is built with GTK toolkit.
10339
10340 2011-11-17 Juanma Barranquero <lekktu@gmail.com>
10341
10342 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
10343
10344 2011-11-17 Martin Rudalics <rudalics@gmx.at>
10345
10346 * window.c (Vwindow_splits): Rename to
10347 Vwindow_combination_resize. Suggested by Juri Linkov.
10348 (Fsplit_window_internal): Use Vwindow_combination_resize instead
10349 of Vwindow_splits.
10350
10351 2011-11-16 Juanma Barranquero <lekktu@gmail.com>
10352
10353 * nsfns.m (Fns_font_name):
10354 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
10355
10356 2011-11-16 Martin Rudalics <rudalics@gmx.at>
10357
10358 * window.h (window): Rename slot "nest" to "combination_limit".
10359 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
10360 (Fset_window_nest): Rename to Fset_window_combination_limit.
10361 (Vwindow_nest): Rename to Vwindow_combination_limit.
10362 (recombine_windows, make_parent_window, make_window)
10363 (Fsplit_window_internal, saved_window)
10364 (Fset_window_configuration, save_window_save): Rename all
10365 occurrences of window_nest to window_combination_limit.
10366
10367 2011-11-15 Juanma Barranquero <lekktu@gmail.com>
10368
10369 * image.c (imagemagick_load_image): Fix typo.
10370
10371 2011-11-14 Eli Zaretskii <eliz@gnu.org>
10372
10373 * xdisp.c (display_line): Move the call to
10374 highlight_trailing_whitespace before the call to
10375 compute_line_metrics, since the latter needs to see the final
10376 faces of all the glyphs to compute ROW's hash value.
10377 Fixes assertion violations in row_equal_p. (Bug#10035)
10378
10379 2011-11-14 Juanma Barranquero <lekktu@gmail.com>
10380
10381 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
10382 just return (bug#10044).
10383
10384 2011-11-12 Eli Zaretskii <eliz@gnu.org>
10385
10386 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
10387 with user-defined heap size. Bump the default size of the temacs
10388 heap to 27MB, to avoid memory warning when running temacs.
10389 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
10390
10391 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
10392 current_matrix and desired_matrix. (Bug#9990)
10393 (verify_row_hash) [XASSERTS]: New function.
10394 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
10395 that the hash value of glyph rows is correct.
10396
10397 2011-11-12 Martin Rudalics <rudalics@gmx.at>
10398
10399 * window.h (window): Remove splits slot.
10400 * window.c (Fwindow_splits, Fset_window_splits): Remove.
10401 (Fdelete_other_windows_internal, make_parent_window)
10402 (make_window, Fsplit_window_internal, Fdelete_window_internal)
10403 (Fset_window_configuration, save_window_save): Don't deal with
10404 split status of windows.
10405 (saved_window): Remove splits slot.
10406 (Vwindow_splits): Rewrite doc-string.
10407
10408 2011-11-11 Jan Djärv <jan.h.d@swipnet.se>
10409
10410 * xfns.c (unwind_create_frame):
10411 * nsfns.m (unwind_create_frame):
10412 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
10413 Vframe_list (Bug#9999).
10414
10415 2011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
10416
10417 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
10418
10419 2011-11-11 Kenichi Handa <handa@m17n.org>
10420
10421 * callproc.c (Fcall_process): Set the member dst_multibyte of
10422 process_coding.
10423
10424 2011-11-11 Johan Bockgård <bojohan@gnu.org>
10425
10426 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
10427 avoid a crash (bug#9496).
10428
10429 2011-11-09 Chong Yidong <cyd@gnu.org>
10430
10431 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
10432 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
10433
10434 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
10435
10436 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
10437
10438 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
10439
10440 Avoid some portability problems by eschewing 'extern inline' functions.
10441 The trivial performance wins aren't worth the portability hassles; see
10442 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
10443 et seq.
10444 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
10445 (window_box_width, window_box_left, window_box_left_offset)
10446 (window_box_right, window_box_right_offset): Undo previous change,
10447 by removing the "extern"s.
10448 * intervals.c (adjust_intervals_for_insertion)
10449 (adjust_intervals_for_deletion): Undo previous change,
10450 making these static again.
10451 (offset_intervals, temp_set_point_both, temp_set_point)
10452 (copy_intervals_to_string): No longer inline.
10453 * xdisp.c (window_text_bottom_y, window_box_width)
10454 (window_box_height, window_box_left_offset)
10455 (window_box_right_offset, window_box_left, window_box_right)
10456 (window_box): No longer inline.
10457
10458 2011-11-08 Chong Yidong <cyd@gnu.org>
10459
10460 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
10461 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
10462 Signal an error if not a live window.
10463 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
10464 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
10465
10466 2011-11-07 Juanma Barranquero <lekktu@gmail.com>
10467
10468 * lisp.h (syms_of_abbrev): Remove declaration.
10469 Reported by CHENG Gao <chenggao@royau.me>.
10470
10471 2011-11-07 Eli Zaretskii <eliz@gnu.org>
10472
10473 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
10474 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
10475 of temacs in GUI mode.
10476
10477 2011-11-07 Martin Rudalics <rudalics@gmx.at>
10478
10479 * window.h: Declare delete_all_child_windows instead of
10480 delete_all_subwindows.
10481 * window.c (Fwindow_nest, Fset_window_nest)
10482 (Fset_window_new_total, Fset_window_new_normal)
10483 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
10484 (delete_all_subwindows): Rename to delete_all_child_windows.
10485 (Fdelete_other_windows_internal, Fset_window_configuration):
10486 Call delete_all_child_windows instead of delete_all_subwindows.
10487 * frame.c (delete_frame): Call delete_all_child_windows instead
10488 of delete_all_subwindows.
10489
10490 2011-11-07 Paul Eggert <eggert@cs.ucla.edu>
10491
10492 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
10493 This is also needed for porting to any host where GC_MARK_STACK is
10494 not GC_MAKE_GCPROS_NOOPS.
10495 (which_symbols): Use it.
10496
10497 2011-11-07 Kenichi Handa <handa@m17n.org>
10498
10499 * coding.c (coding_set_destination): Check coding->src_pos only
10500 when coding->src_object is a buffer (bug#9910).
10501
10502 * process.c (send_process): Set the member src_multibyte of coding
10503 to 0 (bug#9911) when sending a unibyte text.
10504
10505 * callproc.c (Fcall_process): Set the member src_multibyte of
10506 process_coding to 0 (bug#9912).
10507
10508 2011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10509
10510 * xmenu.c (cleanup_widget_value_tree): New function.
10511 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
10512 calling free_menubar_widget_value_tree directly (Bug#9830).
10513
10514 2011-11-06 Paul Eggert <eggert@cs.ucla.edu>
10515
10516 Fix some portability problems with 'inline'.
10517 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
10518 (window_box_width, window_box_left, window_box_left_offset)
10519 (window_box_right, window_box_right_offset): Declare extern.
10520 Otherwise, these inline functions do not conform to C99 and
10521 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
10522 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
10523 * intervals.c (adjust_intervals_for_insertion)
10524 (adjust_intervals_for_deletion): Now extern, because otherwise the
10525 extern inline functions 'offset_intervals' couldn't refer to it.
10526 (static_offset_intervals): Remove.
10527 (offset_intervals): Rewrite using the old contents of
10528 static_offset_intervals. The old version didn't conform to C99
10529 because an extern inline function contained a reference to an
10530 identifier with static linkage.
10531
10532 2011-11-06 Andreas Schwab <schwab@linux-m68k.org>
10533
10534 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
10535 GC.
10536
10537 2011-11-06 Eli Zaretskii <eliz@gnu.org>
10538
10539 * xdisp.c (init_iterator, reseat_to_string): Don't set the
10540 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
10541 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
10542 return Qleft_to_right.
10543
10544 2011-11-06 Chong Yidong <cyd@gnu.org>
10545
10546 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
10547 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
10548 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
10549 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
10550 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
10551 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
10552 (Fwindow_vscroll): Doc fix.
10553 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
10554 argument, since it makes no sense to pass a live window and for
10555 consistency with window-child.
10556
10557 2011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
10558
10559 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
10560 support MSVC.
10561
10562 2011-11-05 Jason Rumney <jasonr@gnu.org>
10563
10564 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
10565 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
10566 fonts (Bug#6029).
10567 (add_font_entity_to_list): Fix logic errors in mixed boolean and
10568 bitwise arithmetic preventing use of unicode-sip and non-truetype
10569 opentype fonts.
10570
10571 2011-11-05 Eli Zaretskii <eliz@gnu.org>
10572
10573 * s/ms-w32.h (fstat, stat, utime): Move redirections to
10574 "emacs"-only part.
10575
10576 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
10577 initialization code to keep similarity to xfns.c after changes
10578 from 2011-11-05.
10579
10580 2011-11-05 Jan Djärv <jan.h.d@swipnet.se>
10581
10582 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
10583 (unwind_create_frame): New function (Bug#9943).
10584 (Fx_create_frame): Restructure code to be more similar to the one in
10585 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
10586 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
10587 Move terminal->reference_count++ just before making the frame official
10588 (Bug#9943).
10589
10590 * nsterm.m (x_free_frame_resources): New function.
10591 (x_destroy_window): Move code to x_free_frame_resources.
10592
10593 * xfns.c (unwind_create_frame): Fix comment.
10594 (Fx_create_frame, x_create_tip_frame):
10595 Move terminal->reference_count++ just before making the frame
10596 official. Move initialization of image_cache_refcount and
10597 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
10598
10599 2011-11-05 Eli Zaretskii <eliz@gnu.org>
10600
10601 Support MSVC build with newer versions of Visual Studio.
10602 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
10603 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
10604 nt/gmake.defs.
10605
10606 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
10607 which are not supported by MSVC.
10608 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
10609 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
10610 bitfields.
10611 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
10612 types in bitfields.
10613 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
10614
10615 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
10616
10617 2011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
10618
10619 Support MSVC build with newer versions of Visual Studio.
10620 * w32.c: Don't include w32api.h for MSVC.
10621 (init_environment) [_MSC_VER]: Call sys_access, not _access.
10622
10623 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
10624 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
10625 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
10626 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
10627 e_* cousins.
10628 (alloca) [_MSC_VER]: Define to _alloca.
10629
10630 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
10631
10632 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
10633
10634 2011-11-04 Eli Zaretskii <eliz@gnu.org>
10635
10636 * xdisp.c (note_mouse_highlight): If either of
10637 previous/next-single-property-change returns nil, treat that as
10638 the beginning or the end of the buffer. (Bug#9955)
10639
10640 2011-11-04 Jan Djärv <jan.h.d@swipnet.se>
10641
10642 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
10643 label is not null (Bug#9951).
10644 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
10645 may be NULL.
10646
10647 2011-11-04 Eli Zaretskii <eliz@gnu.org>
10648
10649 * window.c (Fwindow_body_size): Mention in the doc string that the
10650 return value is in frame's canonical units. (Bug#9949)
10651
10652 2011-11-03 Eli Zaretskii <eliz@gnu.org>
10653
10654 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
10655
10656 * w32fns.c (unwind_create_frame): If needed, free the glyph
10657 matrices of the partially constructed frame. (Bug#9943)
10658 * xfns.c (unwind_create_frame): Likewise.
10659
10660 2011-11-01 Eli Zaretskii <eliz@gnu.org>
10661
10662 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
10663 Don't stop backward scan on the continuation glyph, even though
10664 its CHARPOS is positive.
10665 (mouse_face_from_buffer_pos, note_mouse_highlight):
10666 Rename cover_string to disp_string.
10667
10668 2011-11-01 Martin Rudalics <rudalics@gmx.at>
10669
10670 * window.c (temp_output_buffer_show): Don't use
10671 Vtemp_buffer_show_specifiers.
10672 (Vtemp_buffer_show_specifiers): Remove unused variable.
10673
10674 2011-10-30 Eli Zaretskii <eliz@gnu.org>
10675
10676 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
10677 past the beginning of the current glyph matrix.
10678
10679 2011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
10680
10681 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
10682 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
10683 HAVE_GTK3 (Bug#9869).
10684
10685 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
10686 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
10687
10688 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
10689
10690 * xterm.c: Declare x_handle_net_wm_state to return int.
10691 (handle_one_xevent): Check if we are iconified but don't have
10692 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
10693 (get_current_wm_state): Return non-zero if not hidden,
10694 check for _NET_WM_STATE_HIDDEN (Bug#9893).
10695 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
10696 (x_handle_net_wm_state): Return what get_current_wm_state returns.
10697 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
10698
10699 2011-10-29 Paul Eggert <eggert@cs.ucla.edu>
10700
10701 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
10702 so that this new function doesn't get optimized away by a
10703 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
10704
10705 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
10706
10707 * frame.h (MOUSE_HL_INFO): Remove excess parens.
10708
10709 2011-10-29 Eli Zaretskii <eliz@gnu.org>
10710
10711 Fix the `xbytecode' command.
10712 * .gdbinit (xprintbytestr): New command.
10713 (xwhichsymbols): Rename from `which'; all callers changed.
10714 (xbytecode): Print the byte-code string as well.
10715
10716 2011-10-29 Kim Storm <storm@cua.dk>
10717
10718 * alloc.c (which_symbols): New function.
10719
10720 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
10721
10722 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
10723 line. (Bug#9903)
10724
10725 2011-10-29 Glenn Morris <rgm@gnu.org>
10726
10727 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
10728 Not clear what it was for, and it causes various bugs. (Bug#9839)
10729
10730 2011-10-28 Eli Zaretskii <eliz@gnu.org>
10731
10732 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
10733 possible random value that matches one of those tested as
10734 condition to clear the mouse face.
10735
10736 2011-10-28 Chong Yidong <cyd@gnu.org>
10737
10738 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
10739
10740 2011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
10741
10742 * window.c (make_window): Initialize phys_cursor_on_p.
10743
10744 2011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
10745
10746 * lisp.h (struct Lisp_Symbol): Update comments.
10747
10748 2011-10-28 Juanma Barranquero <lekktu@gmail.com>
10749
10750 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
10751
10752 2011-10-28 Eli Zaretskii <eliz@gnu.org>
10753
10754 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
10755 <oslsachem@gmail.com> for helping to debug this.
10756
10757 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
10758 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
10759 (g_b_init_get_glyph_outline_w): New static variables.
10760 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
10761 (GetGlyphOutlineW_Proc): New typedefs.
10762 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
10763 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
10764 New functions.
10765 (w32font_open_internal, compute_metrics):
10766 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
10767 instead of calling the "wide" APIs directly.
10768
10769 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
10770
10771 * w32.h (syms_of_w32font): Add prototype.
10772
10773 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
10774
10775 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
10776 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
10777 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
10778 (Fmove_to_window_line): Doc fix.
10779
10780 2011-10-27 Chong Yidong <cyd@gnu.org>
10781
10782 * process.c (make_process): Set gnutls_state to NULL.
10783
10784 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
10785 non-NULL, regardless of GNUTLS_INITSTAGE.
10786 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
10787 an error. Set process slots as soon as we allocate them.
10788
10789 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
10790
10791 2011-10-27 Chong Yidong <cyd@gnu.org>
10792
10793 * gnutls.c (emacs_gnutls_deinit): New function.
10794 Deallocate credentials structures as well as calling gnutls_deinit.
10795 (Fgnutls_deinit, Fgnutls_boot): Use it.
10796
10797 * process.c (make_process): Initialize GnuTLS credentials to NULL.
10798 (deactivate_process): Call emacs_gnutls_deinit.
10799
10800 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
10801
10802 * image.c (x_create_x_image_and_pixmap):
10803 * w32.c (sys_rename, w32_delayed_load):
10804 * w32font.c (fill_in_logfont):
10805 * w32reg.c (x_get_string_resource): Silence compiler warnings.
10806
10807 2011-10-26 Juanma Barranquero <lekktu@gmail.com>
10808
10809 * w32fns.c (w32_default_color_map): New function,
10810 extracted from Fw32_default_color_map.
10811 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
10812
10813 2011-10-25 Paul Eggert <eggert@cs.ucla.edu>
10814
10815 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
10816
10817 2011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
10818
10819 * keyboard.c (test_undefined): New function (bug#9751).
10820 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
10821
10822 2011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
10823
10824 * sysdep.c (init_sys_modes): Fix the check for the controlling
10825 terminal (Bug#6649).
10826
10827 2011-10-20 Eli Zaretskii <eliz@gnu.org>
10828
10829 * dispextern.h (struct bidi_it): New member next_en_type.
10830
10831 * bidi.c (bidi_line_init): Initialize the next_en_type member.
10832 (bidi_resolve_explicit_1): When next_en_pos is valid for the
10833 current character, check also for next_en_type being WEAK_EN.
10834 (bidi_resolve_weak): Don't enter the expensive loop if the current
10835 position is before next_en_pos. Record the bidi type of the first
10836 non-ET, non-BN character we find, in addition to its position.
10837 (bidi_level_of_next_char): Invalidate next_en_type when
10838 next_en_pos is over-stepped.
10839
10840 2011-10-20 Paul Eggert <eggert@cs.ucla.edu>
10841
10842 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
10843 * editfns.c: Rewrite current-time-zone so that it invokes
10844 the equivalent of (format-time-string "%Z") to get the time zone name.
10845 This fixes a bug when the time zone name contains characters that
10846 need converting from the system time locale to Emacs internal format.
10847 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
10848 that patch fixed format-time-string to do the conversion, but
10849 I forgot to fix current-time-zone.
10850 (format_time_string): New function, containing most of
10851 what Fformat_time_string used to contain.
10852 (Fformat_time_string): Rewrite in terms of format_time_string.
10853 This doesn't change this function's behavior.
10854 (current-time-zone): Rewrite to use format_time_string.
10855 This fixes the bug reported by Michael Schierl in
10856 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
10857 Jason Rumney's 2007-06-07 change worked around this bug, but
10858 didn't fix it.
10859 * systime.h (tzname, timezone): Remove no-longer-used declarations.
10860
10861 2011-10-19 Eli Zaretskii <eliz@gnu.org>
10862
10863 * xdisp.c (start_display): If the character at POS is displayed
10864 via a display vector, reset IT->current.dpvec_index to zero.
10865 (try_window_reusing_current_matrix): If a line ends in a display
10866 vector or the next line starts in a display vector, continue
10867 redrawing the window even though the character position of
10868 start_row was reached.
10869 (Bug#9771, part 2)
10870
10871 2011-10-18 Chong Yidong <cyd@gnu.org>
10872
10873 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
10874 with nobreak-char-display too.
10875
10876 2011-10-18 Eli Zaretskii <eliz@gnu.org>
10877
10878 Fix part 3 of bug#9771.
10879 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
10880 (bidi_resolve_neutral): Don't enter the expensive loop looking for
10881 non-neutral characters if the current character is a paragraph
10882 separator (a.k.a. Newline). This avoids running the same
10883 expensive loop twice, once when we consume the preceding newline
10884 and the other time when the line actually needs to be displayed.
10885 Avoid the loop when we see neutrals on the base embedding level
10886 following a character whose directionality is the same as the
10887 paragraph's. This avoids running the expensive loop when a line
10888 ends in a long sequence of neutrals, like control characters.
10889 Add assertion against STRONG_AL type. Slightly rearrange code
10890 that determines the type of a neutral given the first non-neutral
10891 that follows it.
10892 (bidi_level_of_next_char): Set next_en_pos to zero when
10893 invalidating its info.
10894
10895 2011-10-17 Eli Zaretskii <eliz@gnu.org>
10896
10897 * xdisp.c (push_display_prop): Determine whether to record string
10898 or buffer position by IT->string, not by IT->method. Allow
10899 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
10900 (move_it_vertically_backward): Don't look for character position
10901 immediately after the newline when in a continuation line.
10902 (Bug#9771, part 1)
10903
10904 2011-10-15 Martin Rudalics <rudalics@gmx.at>
10905
10906 * window.c (coordinates_in_window): Rewrite and delabelize
10907 vertical border check. (Bug#5357) (Bug#9618)
10908
10909 2011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
10910
10911 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
10912 errors in XSetWindowBorder (bug#9310).
10913
10914 2011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
10915
10916 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
10917 avoid crash when xmalloc overrun checking is enabled.
10918
10919 2011-10-13 Eli Zaretskii <eliz@gnu.org>
10920
10921 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
10922 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
10923 cursor motion with <left> and <right> arrow keys.
10924
10925 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
10926 some callers set that themselves.
10927
10928 2011-10-12 Eli Zaretskii <eliz@gnu.org>
10929
10930 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
10931 display string and the previous row comes from the same string and
10932 is empty. (Bug#9739) (Bug#9738)
10933
10934 2011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
10935
10936 * doc.c (get_doc_string): Encode file name (bug#9735).
10937
10938 2011-10-12 Eli Zaretskii <eliz@gnu.org>
10939
10940 * bidi.c (bidi_level_of_next_char):
10941 * xdisp.c (get_visually_first_element): Remove old incorrect
10942 comments regarding the Unicode Line Separator character.
10943
10944 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
10945
10946 2011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
10947
10948 * alloc.c (Fgc_status): Do not access beyond zombies array
10949 boundary if nzombies > MAX_ZOMBIES.
10950 * alloc.c (dump_zombies): Add missing format specifier.
10951
10952 2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
10953
10954 * xdisp.c (set_cursor_from_row): Simplify conditionals,
10955 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
10956
10957 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
10958 Some packages use them to denote characters with modifiers.
10959
10960 2011-10-11 Andreas Schwab <schwab@linux-m68k.org>
10961
10962 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
10963 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
10964 matching a pp-number. Rename parameter var to var1.
10965
10966 2011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
10967
10968 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
10969
10970 2011-10-08 Glenn Morris <rgm@gnu.org>
10971
10972 * callint.c (Fcall_interactively): Give a more explicit error for the
10973 'c' case with a non-character input. (Bug#8479)
10974
10975 2011-10-08 Eli Zaretskii <eliz@gnu.org>
10976
10977 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
10978 lines.
10979 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
10980 lines that are hscrolled on the left.
10981
10982 * dispnew.c (buffer_posn_from_coords): Account for a possible
10983 presence of header-line. (Bug#4426)
10984
10985 2011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
10986
10987 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
10988 Don't advertise functionality which we discourage or doesn't work.
10989
10990 2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
10991
10992 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
10993 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
10994 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
10995 this makes Emacs dump core during garbage collection on rare
10996 occasions. sizeof is obviously inferior to offsetof here, so
10997 stick with offsetof.
10998 (GC_POINTER_ALIGNMENT): New macro.
10999 (mark_memory): Omit 3rd (offset) arg; caller changed.
11000 Don't assume EMACS_INT alignment is the same as pointer alignment.
11001
11002 2011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
11003
11004 * keyboard.c (read_key_sequence_remapped): New var.
11005 (read_key_sequence): Compute remapping in the right buffer.
11006 (command_loop_1): Use read_key_sequence's remapping directly.
11007
11008 2011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
11009
11010 * dired.c (file_name_completion): Don't expand file name.
11011 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
11012 before checking file name handler.
11013
11014 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
11015 they've been requested explicitly (bug#9591).
11016
11017 2011-10-01 Andreas Schwab <schwab@linux-m68k.org>
11018
11019 * keymap.c (Fsingle_key_description): Use make_specified_string
11020 instead of build_string to build string from push_key_description.
11021 (Bug#5193)
11022
11023 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
11024
11025 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
11026 This fixes a Y2038 bug on 64-bit hosts.
11027 * buffer.c (reset_buffer):
11028 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
11029 (Fclear_buffer_auto_save_failure):
11030 Use 0, not -1, to represent an unset failure time, since time_t
11031 might not be signed.
11032
11033 Remove dependency on glibc malloc internals.
11034 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11035 Move back here from lisp.h, but with their new implementations.
11036 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
11037 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
11038 * charset.c (charset_table_init): New static var.
11039 (syms_of_charset): Use it instead of xmalloc. This removes a
11040 dependency on glibc malloc internals. See Eli Zaretskii's comment in
11041 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
11042 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11043 Move back to alloc.c.
11044 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
11045 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
11046
11047 2011-09-30 Jan Djärv <jan.h.d@swipnet.se>
11048
11049 * nsterm.m (windowDidResize): Call x_set_window_size only when
11050 ns_in_resize is true. Otherwise set pixelwidth/height and
11051 call change_frame_size (Bug#9628).
11052
11053 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
11054
11055 Port --enable-checking=all to Fedora 14 x86-64.
11056 * charset.c (syms_of_charset): Also account for glibc malloc's
11057 internal overhead when calculating the initial malloc maximum.
11058
11059 Port --enable-checking=all to Fedora 14 x86.
11060 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11061 Move to lisp.h.
11062 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
11063 (overrun_check_realloc, overrun_check_free):
11064 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
11065 That way, xmalloc returns a properly-aligned pointer even if
11066 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
11067 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
11068 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
11069 into account when calculating the initial malloc maximum.
11070 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
11071 Move here from alloc.c, so that charset.c can use it too.
11072 Properly align; the old code wasn't right for common 32-bit hosts
11073 when configured with --enable-checking=all.
11074 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
11075 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
11076
11077 2011-09-29 Eli Zaretskii <eliz@gnu.org>
11078
11079 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
11080 use EDOM.
11081
11082 2011-09-28 Eli Zaretskii <eliz@gnu.org>
11083
11084 * xdisp.c (compute_display_string_end): If there's no display
11085 string at CHARPOS, return -1.
11086
11087 * bidi.c (bidi_fetch_char): When compute_display_string_end
11088 returns a negative value, treat the character as a normal
11089 character not covered by a display string. (Bug#9624)
11090
11091 2011-09-28 Juanma Barranquero <lekktu@gmail.com>
11092
11093 * lread.c (Fread_from_string): Fix typo in docstring.
11094
11095 2011-09-27 Eli Zaretskii <eliz@gnu.org>
11096
11097 * xdisp.c (handle_invisible_prop): If invisible text ends on a
11098 newline, reseat the iterator instead of bidi-iterating there one
11099 character at a time. (Bug#9610)
11100 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
11101 TO_CHARPOS if the bidi iterator is at base embedding level.
11102
11103 2011-09-27 Andreas Schwab <schwab@linux-m68k.org>
11104
11105 * lread.c (readevalloop): Use correct code for NBSP.
11106 (read1): Likewise. (Bug#9608)
11107
11108 2011-09-25 Michael Albinus <michael.albinus@gmx.de>
11109
11110 * dbusbind.c (Fdbus_register_signal): When service is not
11111 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
11112
11113 2011-09-25 Glenn Morris <rgm@gnu.org>
11114
11115 * buffer.c (truncate-lines): Doc fix.
11116
11117 2011-09-24 Chong Yidong <cyd@stupidchicken.com>
11118
11119 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
11120 (Fset_window_next_buffers): Doc fix.
11121
11122 2011-09-24 Glenn Morris <rgm@gnu.org>
11123
11124 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
11125
11126 2011-09-24 Paul Eggert <eggert@cs.ucla.edu>
11127
11128 Fix minor problems found by static checking.
11129 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
11130 * indent.c (Fvertical_motion): Fix == vs = typo.
11131
11132 2011-09-24 Eli Zaretskii <eliz@gnu.org>
11133
11134 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
11135 Default value is now t. Doc fix.
11136
11137 * indent.c (Fvertical_motion): Compute and apply the overshoot
11138 logic when moving up, not only when moving down. Fix the
11139 confusing name and values of the it_overshoot_expected variable;
11140 logic changes accordingly. (Bug#9254) (Bug#9549)
11141
11142 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
11143 CHARPOS is covered by a display string which includes newlines.
11144 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
11145 is covered by a display string with embedded newlines.
11146
11147 2011-09-24 Michael Albinus <michael.albinus@gmx.de>
11148
11149 * dbusbind.c (Fdbus_register_signal): Add match rule to
11150 Vdbus_registered_objects_table. (Bug#9581)
11151 (Fdbus_register_method, Vdbus_registered_objects_table):
11152 Fix docstring.
11153
11154 2011-09-24 Jim Meyering <meyering@redhat.com>
11155
11156 do not ignore write error for any output size
11157 The previous change was incomplete.
11158 While it makes emacs --batch detect the vast majority of stdout
11159 write failures, errors were still ignored whenever the output size is
11160 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
11161 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
11162 && echo FAIL: ignored write error
11163 FAIL: ignored write error
11164 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
11165 && echo FAIL: ignored write error
11166 FAIL: ignored write error
11167 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
11168
11169 2011-09-23 Andreas Schwab <schwab@linux-m68k.org>
11170
11171 * emacs.c (Fkill_emacs): In noninteractive mode exit
11172 non-successfully if a write error occurred on stdout. (Bug#9574)
11173
11174 2011-09-21 Eli Zaretskii <eliz@gnu.org>
11175
11176 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
11177 the xassert test.
11178
11179 * dispextern.h (struct it): Update the comment documenting what
11180 can it->OBJECT be.
11181
11182 2011-09-20 Eli Zaretskii <eliz@gnu.org>
11183
11184 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
11185 a display string, extend search for cursor position to end of row.
11186 (find_row_edges): If the row ends in a newline from a display
11187 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
11188 Handle the case of a display string with multiple newlines.
11189 (Fcurrent_bidi_paragraph_direction): Fix search for previous
11190 non-empty line. Fixes confusing cursor motion with arrow keys at
11191 the beginning of a line that starts with whitespace.
11192
11193 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
11194
11195 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
11196 (bug#9493).
11197
11198 2011-09-18 Chong Yidong <cyd@stupidchicken.com>
11199
11200 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
11201 boolean (Bug#9154).
11202
11203 2011-09-18 Eli Zaretskii <eliz@gnu.org>
11204
11205 * xdisp.c (display_line): Record maximum and minimum buffer
11206 positions even if no glyphs were produced (e.g., by a zero-width
11207 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
11208 buffer positions that will be removed from the glyph row because
11209 they don't fit.
11210 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
11211 column is beyond frame width: don't subtract 1 "pixel" when
11212 computing width of the stretch.
11213 (reseat_at_next_visible_line_start): Undo the change made on
11214 2011-09-17 that saved paragraph information and restored it after
11215 the call to `reseat'. (Bug#9545)
11216
11217 2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
11218
11219 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
11220 and turn window cursor on if cleared (Bug#9415).
11221
11222 2011-09-18 Andreas Schwab <schwab@linux-m68k.org>
11223
11224 * search.c (boyer_moore): Take unibyte characters from pattern
11225 literally. (Bug#9458)
11226
11227 2011-09-18 Eli Zaretskii <eliz@gnu.org>
11228
11229 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
11230
11231 2011-09-18 Paul Eggert <eggert@cs.ucla.edu>
11232
11233 Fix minor problem found by static checking.
11234 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
11235 initialized, to pacify gcc -Wuninitialized.
11236
11237 * fileio.c: Report proper errno when syscall falls.
11238 (Finsert_file_contents): Save and restore errno,
11239 so that report_file_error outputs the correct diagnostic.
11240 (Fwrite_region) [CLASH_DETECTION]: Likewise.
11241
11242 2011-09-18 Eli Zaretskii <eliz@gnu.org>
11243
11244 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
11245
11246 2011-09-17 Eli Zaretskii <eliz@gnu.org>
11247
11248 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
11249 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
11250
11251 2011-09-17 Eli Zaretskii <eliz@gnu.org>
11252
11253 * xdisp.c (reseat_at_next_visible_line_start): Keep information
11254 about the current paragraph and restore it after the call to reseat.
11255
11256 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
11257 (bidi_find_paragraph_start): Search back for paragraph beginning
11258 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
11259 (bidi_move_to_visually_next): Only trigger paragraph-related
11260 computations when the last character is a newline or at EOB, not
11261 just any NEUTRAL_B. (Bug#9470)
11262
11263 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
11264 truncated lines if point is covered by a display string. (Bug#9524)
11265
11266 2011-09-16 Paul Eggert <eggert@cs.ucla.edu>
11267
11268 * xselect.c: Relax test for outgoing X longs (Bug#9498).
11269 (cons_to_x_long): New function.
11270 (lisp_data_to_selection_data): Use it. Correct the test for
11271 short-versus-long data; it was negated. Break out of vector
11272 loop, for efficiency, when a long datum is discovered.
11273
11274 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
11275
11276 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
11277
11278 2011-09-16 Eli Zaretskii <eliz@gnu.org>
11279
11280 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
11281 GCC PR/17406) by declaring this function with external scope.
11282
11283 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
11284
11285 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
11286 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
11287
11288 2011-09-15 Andreas Schwab <schwab@linux-m68k.org>
11289
11290 * editfns.c (Fformat): Correctly handle text properties on "%%".
11291
11292 2011-09-15 Eli Zaretskii <eliz@gnu.org>
11293
11294 * xterm.c (x_draw_composite_glyph_string_foreground):
11295 * w32term.c (x_draw_composite_glyph_string_foreground):
11296 * term.c (encode_terminal_code):
11297 * composite.c (composition_update_it, get_composition_id):
11298 * xdisp.c (get_next_display_element)
11299 (fill_composite_glyph_string): Add comments about special meaning
11300 of TAB characters in a composition.
11301
11302 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
11303
11304 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
11305 This occurs when processing a multibyte format.
11306 Problem reported by Wolfgang Jenker.
11307
11308 2011-09-15 Johan Bockgård <bojohan@gnu.org>
11309
11310 * xdisp.c (try_cursor_movement): Only check for exact match if
11311 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
11312
11313 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
11314
11315 Remove unused external symbols.
11316 * dispextern.h (calc_pixel_width_or_height): Remove decl.
11317 * xdisp.c (calc_pixel_width_or_height): Now static.
11318 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
11319 * indent.c (check_display_width):
11320 * w32term.c: Fix comment to match code.
11321 * xterm.c, xterm.h (x_catching_errors): Remove.
11322
11323 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
11324
11325 * xselect.c: Use signed conversions more consistently (Bug#9498).
11326 (selection_data_to_lisp_data): Assume incoming selection data are
11327 signed integers, not unsigned. This is to be consistent with
11328 outgoing selection data, which was modified to use signed integers
11329 in as part of the fix to Bug#9196 in response to Jan D.'s comment
11330 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
11331 expects long, not unsigned long.
11332
11333 2011-09-14 Eli Zaretskii <eliz@gnu.org>
11334
11335 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
11336 computation of loop end. Reported by Johan Bockgård
11337 <bojohan@gnu.org>.
11338
11339 2011-09-13 Chong Yidong <cyd@stupidchicken.com>
11340
11341 * frame.c (Fother_visible_frames_p): Function deleted.
11342
11343 2011-09-12 Eli Zaretskii <eliz@gnu.org>
11344
11345 * indent.c (compute_motion): Process display vector front to back
11346 rather than the other way around. (Bug#2496)
11347
11348 2011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
11349
11350 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
11351
11352 2011-09-11 Chong Yidong <cyd@stupidchicken.com>
11353
11354 * minibuf.c (Fread_from_minibuffer): Doc fix.
11355
11356 2011-09-11 Eli Zaretskii <eliz@gnu.org>
11357
11358 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
11359 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
11360
11361 2011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
11362
11363 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
11364 value for non-existent files.
11365
11366 2011-09-11 Eli Zaretskii <eliz@gnu.org>
11367
11368 * fileio.c (Finsert_file_contents): If the file cannot be opened,
11369 set its "size" to -1. This will set the modtime_size field of
11370 the corresponding buffer to -1, which is what
11371 verify-visited-file-modtime expects for files that do not exist.
11372 (Bug#9139)
11373
11374 2011-09-11 Paul Eggert <eggert@cs.ucla.edu>
11375
11376 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
11377 here ...
11378 * lisp.h: ... from here. push_key_description is no longer
11379 defined in keyboard.c, so its declaration should not be in
11380 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
11381 logically belongs with push_key_description.
11382
11383 2011-09-10 Paul Eggert <eggert@cs.ucla.edu>
11384
11385 * buffer.h: Include <sys/types.h> instead of <time.h>.
11386 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
11387 Problem reported by Herbert J. Skuhra.
11388
11389 2011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
11390
11391 * xml.c (parse_region): Make the parsing work for
11392 non-comment-starting XML files again (bug#9144).
11393
11394 2011-09-10 Andreas Schwab <schwab@linux-m68k.org>
11395
11396 * image.c (gif_load): Fix calculation of bottom and right corner.
11397 (Bug#9468)
11398
11399 2011-09-10 Eli Zaretskii <eliz@gnu.org>
11400
11401 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
11402 redisplay in small windows.
11403
11404 2011-09-09 Eli Zaretskii <eliz@gnu.org>
11405
11406 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
11407
11408 2011-09-08 Martin Rudalics <rudalics@gmx.at>
11409
11410 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
11411 Operate on live windows only.
11412
11413 2011-09-08 Juanma Barranquero <lekktu@gmail.com>
11414
11415 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
11416
11417 2011-09-07 Eli Zaretskii <eliz@gnu.org>
11418
11419 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
11420 only under bidi iteration.
11421
11422 2011-09-07 Jan Djärv <jan.h.d@swipnet.se>
11423
11424 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
11425
11426 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
11427
11428 isnan: Fix porting problem to Solaris 10 with bundled gcc.
11429 Without this fix, the command to link temacs failed due to an
11430 undefined symbol __builtin_isnan. This is because
11431 /usr/include/iso/math_c99.h #defines isnan(x) to
11432 __builtin_isnan(x), but the bundled gcc, which identifies itself
11433 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
11434 a __builtin_isnan.
11435 * floatfns.c (isnan): #undef, and then #define to a clone of
11436 what's in data.c.
11437 (Fisnan): Always define, since it's always available now.
11438 (syms_of_floatfns): Always define isnan at the Lisp level.
11439
11440 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
11441
11442 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
11443
11444 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
11445
11446 * fileio.c: Fix bugs with large file offsets (Bug#9428).
11447 The previous code assumed that file offsets (off_t values) fit in
11448 EMACS_INT variables, which is not true on typical 32-bit hosts.
11449 The code messed up by falsely reporting buffer overflow in cases
11450 such as (insert-file-contents "big" nil 1 2) into an empty buffer
11451 when "big" contains more than 2**29 bytes, even though this
11452 inserts just one byte and does not overflow the buffer.
11453 (Finsert_file_contents): Store file offsets as off_t
11454 values, not as EMACS_INT values. Check for overflow when
11455 converting between EMACS_INT and off_t. When checking for
11456 buffer overflow or for overlap, take the offsets into account.
11457 Don't use EMACS_INT for small values where int suffices.
11458 When checking for overlap, fix a typo: ZV was used where
11459 ZV_BYTE was intended.
11460 (Fwrite_region): Don't assume off_t fits into 'long'.
11461 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
11462
11463 2011-09-05 Michael Albinus <michael.albinus@gmx.de>
11464
11465 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
11466
11467 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
11468
11469 sprintf-related integer and memory overflow issues (Bug#9412).
11470
11471 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
11472 (esprintf, exprintf, evxprintf): New functions.
11473 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
11474 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
11475 (modify_event_symbol): Do not assume that the length of
11476 name_alist_or_stem is safe to alloca and fits in int.
11477 (Fexecute_extended_command): Likewise for function name and binding.
11478 (Frecursion_depth): Wrap around reliably on integer overflow.
11479 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
11480 since some callers pass EMACS_INT values.
11481 (Fsingle_key_description): Don't crash if symbol name contains more
11482 than MAX_ALLOCA bytes.
11483 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
11484 (get_minibuffer): Arg is now EMACS_INT, not int.
11485 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
11486 (esprintf, exprintf, evxprintf): New decls.
11487 * window.h (command_loop_level, minibuf_level): Reflect API changes.
11488
11489 * dbusbind.c (signature_cat): New function.
11490 (xd_signature, Fdbus_register_signal):
11491 Do not overrun buffer; instead, report string overflow.
11492
11493 * dispnew.c (add_window_display_history): Don't overrun buffer.
11494 Truncate instead; this is OK since it's just a log.
11495
11496 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
11497 even if the time zone offset is outlandishly large.
11498 Don't mishandle offset == INT_MIN.
11499
11500 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
11501 when creating daemon; the previous buffer-overflow check was incorrect.
11502
11503 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
11504 which has the guts of the old verror function.
11505
11506 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
11507 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
11508
11509 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
11510 (font_unparse_xlfd): Don't blindly alloca long strings.
11511 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
11512 fits in int, when using sprintf. Use single snprintf to count
11513 length of string rather than counting it via multiple sprintfs;
11514 that's simpler and more reliable.
11515 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
11516 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
11517 sprintf, in case result does not fit in int.
11518
11519 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
11520 (fontset_from_font): Print it.
11521
11522 * frame.c (tty_frame_count): Now printmax_t, not int.
11523 (make_terminal_frame, set_term_frame_name): Print it.
11524 (x_report_frame_params): In X, window IDs are unsigned long,
11525 not signed long, so print them as unsigned.
11526 (validate_x_resource_name): Check for implausibly long names,
11527 and don't assume name length fits in 'int'.
11528 (x_get_resource_string): Don't blindly alloca invocation name;
11529 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
11530 not fit in int.
11531
11532 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
11533 (xg_check_special_colors, xg_set_geometry):
11534 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
11535
11536 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
11537 Use esprintf, not sprintf, in case result does not fit in int.
11538
11539 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
11540 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
11541 it as a large positive number.
11542 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
11543 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
11544
11545 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
11546 in case result does not fit in int.
11547
11548 * print.c (float_to_string): Detect width overflow more reliably.
11549 (print_object): Make sprintf buffer a bit bigger, to avoid potential
11550 buffer overrun. Don't assume list length fits in 'int'. Treat
11551 print length of 0 as 0, not as infinity; to be consistent with other
11552 uses of print length in this function. Don't overflow print length
11553 index. Don't assume hash table size fits in 'long', or that
11554 vectorlike size fits in 'unsigned long'.
11555
11556 * process.c (make_process): Use printmax_t, not int, to format
11557 process-name gensyms.
11558
11559 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
11560
11561 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
11562 to avoid potential buffer overrun.
11563
11564 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
11565 if X resource line is longer than 512 bytes.
11566
11567 * xfns.c (x_window): Make sprintf buffer a bit bigger
11568 to avoid potential buffer overrun.
11569
11570 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
11571
11572 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
11573
11574 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
11575
11576 Integer overflow fixes for scrolling, etc.
11577 Without these, Emacs silently mishandles large integers sometimes.
11578 For example, "C-u 4294967297 M-x recenter" was treated as if
11579 it were "C-u 1 M-x recenter" on a typical 64-bit host.
11580
11581 * xdisp.c (try_window_id): Check Emacs fixnum range before
11582 converting to 'int'.
11583
11584 * window.c (window_scroll_line_based, Frecenter):
11585 Check that an Emacs fixnum is in range before assigning it to 'int'.
11586 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
11587 values converted from Emacs fixnums.
11588 (Frecenter): Don't wrap around a line count if it is out of 'int'
11589 range; instead, treat it as an extreme value.
11590 (Fset_window_configuration, compare_window_configurations):
11591 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
11592
11593 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
11594 that can exceed INT_MAX. Check that EMACS_INT value is in range
11595 before assigning it to the (possibly-narrower) index.
11596 (match_limit): Don't assume that a fixnum can fit in 'int'.
11597
11598 * print.c (print_object): Use ptrdiff_t, not int, for index that can
11599 exceed INT_MAX.
11600
11601 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
11602 (Fvertical_motion): Don't wrap around LINES values that don't fit
11603 in 'int'. Instead, treat them as extreme values. This is good
11604 enough for windows, which can't have more than INT_MAX lines anyway.
11605
11606 2011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
11607
11608 * Require libxml/parser.h to avoid compilation warning.
11609
11610 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
11611
11612 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
11613 since this reportedly can destroy thread storage.
11614
11615 2011-08-30 Chong Yidong <cyd@stupidchicken.com>
11616
11617 * syntax.c (find_defun_start): Update all cache variables if
11618 exiting early (Bug#9401).
11619
11620 2011-08-30 Eli Zaretskii <eliz@gnu.org>
11621
11622 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
11623
11624 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
11625 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
11626 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
11627
11628 * term.c (tty_append_glyph): New function.
11629 (produce_stretch_glyph): Static function and its prototype deleted.
11630
11631 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
11632 Add prototypes.
11633
11634 2011-08-29 Paul Eggert <eggert@cs.ucla.edu>
11635
11636 * image.c (parse_image_spec): Check for nonnegative, not for positive,
11637 when checking :margin (Bug#9390).
11638 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
11639 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
11640 so that the name doesn't mislead. All uses changed.
11641
11642 2011-08-28 Johan Bockgård <bojohan@gnu.org>
11643
11644 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
11645 set_tty_hooks.
11646
11647 2011-08-27 Eli Zaretskii <eliz@gnu.org>
11648
11649 * xdisp.c (move_it_to): Don't bail out early when reaching
11650 position beyond to_charpos, if we are scanning backwards.
11651 (move_it_vertically_backward): When DY == 0, make sure we get to
11652 the first character in the line after the newline.
11653
11654 2011-08-27 Paul Eggert <eggert@cs.ucla.edu>
11655
11656 * ccl.c: Improve and simplify overflow checking (Bug#9196).
11657 (ccl_driver): Do not generate an out-of-range pointer.
11658 (Fccl_execute_on_string): Remove unnecessary check for
11659 integer overflow, noted by Stefan Monnier in
11660 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
11661 Remove a FIXME that didn't need fixing.
11662 Simplify the newly-introduced buffer reallocation code.
11663
11664 2011-08-27 Juanma Barranquero <lekktu@gmail.com>
11665
11666 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
11667
11668 2011-08-26 Paul Eggert <eggert@cs.ucla.edu>
11669
11670 Integer and memory overflow issues (Bug#9196).
11671
11672 * doc.c (get_doc_string): Rework so that
11673 get_doc_string_buffer_size is the actual buffer size, rather than
11674 being 1 less than the actual buffer size; this makes xpalloc more
11675 convenient.
11676
11677 * image.c (x_allocate_bitmap_record, cache_image):
11678 * xselect.c (Fx_register_dnd_atom):
11679 Simplify previous changes by using xpalloc.
11680
11681 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
11682 since either will do and ptrdiff_t is convenient with xpalloc.
11683
11684 * charset.c (charset_table_size)
11685 (struct charset_sort_data.priority): Now ptrdiff_t.
11686 (charset_compare): Don't overflow if priorities differ greatly.
11687 (Fsort_charsets): Don't assume list length fits in int.
11688 Check for size-calculation overflow when allocating sort data.
11689 (syms_of_charset): Allocate an initial charset table that is
11690 just under 64 KiB, to avoid problems with glibc malloc and mmap.
11691
11692 * cmds.c (internal_self_insert): Check for size-calculation overflow.
11693
11694 * composite.h (struct composition.glyph_len): Now int, not unsigned.
11695 The actual value is always <= INT_MAX, and leaving it unsigned made
11696 overflow checking harder.
11697
11698 * dispextern.h (struct glyph_matrix.rows_allocated)
11699 (struct face_cache.size): Now ptrdiff_t, for convenience in use
11700 with xpalloc. The values are still always <= INT_MAX.
11701
11702 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
11703
11704 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
11705 (SAFE_NALLOCA): New macro.
11706
11707 * region-cache.c (struct boundary.pos, find_cache_boundary)
11708 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
11709 (set_cache_region, invalidate_region_cache)
11710 (revalidate_region_cache, know_region_cache, region_cache_forward)
11711 (region_cache_backward, pp_cache):
11712 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
11713 so that ptrdiff_t * can be passed to xpalloc.
11714 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
11715 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
11716 (pp_cache): Don't assume cache_len fits in int.
11717 * region-cache.h: Adjust extern decls to match.
11718
11719 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
11720 EMACS_INT, since either will do, for xpalloc.
11721
11722 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
11723 (xnmalloc, xnrealloc, xpalloc): New functions.
11724
11725 * bidi.c (bidi_shelve_header_size): New constant.
11726 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
11727 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
11728
11729 * bidi.c (bidi_cache_shrink):
11730 * buffer.c (overlays_at, overlays_in, record_overlay_string)
11731 (overlay_strings):
11732 Don't update size of array until after memory allocation succeeds,
11733 because xmalloc/xrealloc may not return.
11734 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
11735 now that we have proper integer overflow checking.
11736 (record_overlay_string, overlay_strings): Catch overflows when
11737 calculating size of overlay_str_buf.
11738
11739 * callproc.c (Fcall_process): Check for size overflow when
11740 calculating size of args2.
11741 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
11742 Normally we prefer signed values, but sticking with ptrdiff_t would
11743 require adding more-complicated checks.
11744
11745 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
11746 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
11747 Redo buffer-overflow calculations to avoid integer overflow.
11748 Add a FIXME comment where memory seems to be over-allocated.
11749
11750 * character.c (Fstring): Check for size-calculation overflow.
11751
11752 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
11753 unnecessary integer overflow. Check for size overflow.
11754 (encode_coding_object): Don't update size until xmalloc succeeds.
11755
11756 * composite.c (get_composition_id): Check for overflow in glyph
11757 length calculations.
11758
11759 Integer and memory overflow fixes for display code.
11760 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
11761 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
11762 (scrolling_window): Check for overflow in size calculations.
11763 (line_draw_cost, realloc_glyph_pool, add_row_entry):
11764 Don't assume glyph table len fits in int.
11765 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
11766 (row_table_size): Now ptrdiff_t, not int.
11767 (scrolling_window): Avoid overflow in size calculations.
11768 Don't update size until allocation succeeds.
11769 * fns.c (concat): Check for overflow in size calculations.
11770 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
11771 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
11772 (NEXT_ALMOST_PRIME_LIMIT): New constant.
11773
11774 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
11775 (get_doc_string): Check for size calculation overflow.
11776 Don't update size until allocation succeeds.
11777 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
11778 EMACS_INT, where ptrdiff_t will do.
11779 (Fsubstitute_command_keys): Check for string overflow.
11780
11781 * editfns.c (set_time_zone_rule): Don't assume environment length
11782 fits in int.
11783 (message_length): Now ptrdiff_t, not int.
11784 (Fmessage_box): Don't update size until allocation succeeds.
11785 Don't assume message length fits in int.
11786 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
11787
11788 * emacs.c (main): Do not reallocate argv, since there is a null at
11789 the end that can be overwritten, and this way there's no need to
11790 worry about size-calculation overflow.
11791 (sort_args): Check for size-calculation overflow.
11792
11793 * eval.c (init_eval_once, grow_specpdl): Don't update size until
11794 alloc succeeds.
11795 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
11796
11797 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
11798 (x_set_scroll_bar_width, x_figure_window_size):
11799 Check for integer overflow.
11800 (x_set_alpha): Do not assume XINT fits in int.
11801
11802 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
11803 This is for the members text_lines, text_cols, total_lines, total_cols,
11804 where the system imposes an 'int' limit.
11805
11806 * fringe.c (Fdefine_fringe_bitmap):
11807 Don't update size until alloc works.
11808
11809 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
11810 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
11811
11812 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
11813 Check for size-calculation overflow.
11814 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
11815 do, as we prefer signed integers.
11816 (id_to_widget.max_size, id_to_widget.used)
11817 (xg_store_widget_in_map, xg_remove_widget_from_map)
11818 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
11819 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
11820 Use and return ptrdiff_t, not int.
11821 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
11822 * gtkutil.h: Change prototypes to match the above.
11823
11824 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
11825 are duplicate now that they've been promoted to lisp.h.
11826 (x_allocate_bitmap_record, x_alloc_image_color)
11827 (make_image_cache, cache_image, xpm_load):
11828 Don't update size until alloc is done.
11829 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
11830 (x_detect_edges):
11831 Check for size calculation overflow.
11832 (ct_colors_allocated_max): New constant.
11833 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
11834 overflow.
11835
11836 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
11837 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
11838 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
11839 Use ptrdiff_t, not int, to count maps.
11840 (read_char_minibuf_menu_prompt): Check for overflow in size
11841 calculations. Don't update size until allocation succeeds.
11842 Redo calculations to avoid overflow.
11843 * keyboard.h: Change prototypes to match the above.
11844
11845 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
11846 to count maps.
11847 (current_minor_maps): Check for size calculation overflow.
11848 * keymap.h: Change prototypes to match the above.
11849
11850 * lread.c (read1, init_obarray): Don't update size until alloc done.
11851
11852 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
11853 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
11854
11855 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
11856 Now ptrdiff_t, not int.
11857 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
11858 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
11859
11860 * process.c (Fnetwork_interface_list): Check for overflow
11861 in size calculation.
11862
11863 * region-cache.c (move_cache_gap): Check for size calculation overflow.
11864
11865 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
11866 overflow. Don't bother calling xmalloc when xrealloc will do.
11867
11868 * search.c (Freplace_match): Check for size calculation overflow.
11869 (Fset_match_data): Don't assume list lengths fit in 'int'.
11870
11871 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
11872 for command line length. Do not attempt to address one before the
11873 beginning of an array, as that's not portable.
11874
11875 * term.c (max_frame_lines): Remove; unused.
11876 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
11877 not int.
11878 (encode_terminal_code, calculate_costs): Check for size
11879 calculation overflow.
11880 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
11881 table lengths and related sizes. Don't update size until alloc
11882 done. Redo calculations to avoid overflow.
11883 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
11884
11885 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
11886 subtracting pointers.
11887 (gobble_line): Check for overflow more carefully. Don't update size
11888 until alloc done.
11889
11890 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
11891 Don't update size until alloc done.
11892 Redo size calculations to avoid overflow.
11893 Check for size calculation overflow.
11894 (main) [DEBUG]: Fix typo in invoking tparam1.
11895
11896 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
11897 Use ptrdiff_t, not int, for sizes.
11898 (store_mode_line_noprop_char): Don't update size until alloc done.
11899
11900 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
11901 Use ptrdiff_t, not int, for sizes.
11902 (Finternal_make_lisp_face, cache_face):
11903 Check for size calculation overflow.
11904 (cache_face): Treat size calculation overflows as if they were
11905 memory exhaustion (the usual treatment), rather than aborting.
11906
11907 * xfns.c (x_encode_text, x_set_name_internal)
11908 (Fx_change_window_property): Use ptrdiff_t, not int, to count
11909 sizes, since they can exceed INT_MAX in size. Check for size
11910 calculation overflow.
11911
11912 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
11913 (xg_select): Check for size calculation overflow.
11914 Don't update size until alloc done.
11915
11916 * xrdb.c (get_environ_db): Don't assume path length fits in int,
11917 as sprintf is limited to int lengths.
11918
11919 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
11920 (X_LONG_MIN): New macros.
11921 Use them to make the following changes clearer.
11922 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
11923 This change doesn't affect the value now, but it may help remind
11924 future maintainers not to raise the value too much later.
11925 (SELECTION_QUANTUM): Remove, replacing with ...
11926 (selection_quantum): ... new function, which avoids overflow.
11927 All uses changed.
11928 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
11929 assumption that selection length fits in 'int'.
11930 (x_reply_selection_request, x_handle_selection_request)
11931 (x_get_window_property, receive_incremental_selection)
11932 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
11933 (lisp_data_to_selection_data, clean_local_selection_data):
11934 Use ptrdiff_t, not int, to record length of selection.
11935 (x_reply_selection_request, x_get_window_property)
11936 (receive_incremental_selection, x_property_data_to_lisp):
11937 Redo calculations to avoid overflow.
11938 (x_reply_selection_request): When sending hint, ceiling it at
11939 X_LONG_MAX rather than relying on wraparound overflow to send
11940 something.
11941 (x_get_window_property, receive_incremental_selection)
11942 (lisp_data_to_selection_data, x_property_data_to_lisp):
11943 Check for size-calculation overflow.
11944 (x_get_window_property, receive_incremental_selection)
11945 (lisp_data_to_selection_data, Fx_register_dnd_atom):
11946 Don't store size until memory allocation succeeds.
11947 (x_get_window_property): Plug memory leak on memory exhaustion.
11948 Don't double-block input; malloc is safe here. Don't assume 2**34
11949 - 4 fits in unsigned long. Add an xassert to check
11950 XGetWindowProperty overflow. Be more careful about overflow
11951 calculations, and distinguish size from memory overflow better.
11952 (receive_incremental_selection): When tracing, don't assume
11953 unsigned int is less than INT_MAX.
11954 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
11955 harmful) conversions of unsigned short to int.
11956 (lisp_data_to_selection_data): Don't assume that integers
11957 in the range -65535 through -1 fit in an X unsigned short.
11958 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
11959 result parameters unless successful. Rely on cons_to_unsigned
11960 to report problems with elements; the old code wasn't right anyway.
11961 (x_check_property_data): Check for int overflow; we cannot use
11962 a wider type due to X limits.
11963 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
11964
11965 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
11966
11967 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
11968 (x_term_init): Check for size calculation overflow.
11969 (x_color_cells): Don't store size until memory allocation succeeds.
11970 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
11971 Don't assume alloca size is less than MAX_ALLOCA.
11972 (x_term_init): Don't assume length fits in int (sprintf is limited
11973 to int size).
11974
11975 Use ptrdiff_t for composition IDs.
11976 * character.c (lisp_string_width):
11977 * composite.c (composition_table_size, n_compositions)
11978 (get_composition_id, composition_gstring_from_id):
11979 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
11980 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
11981 * window.c (Frecenter):
11982 Use ptrdiff_t, not int, for composition IDs.
11983 * composite.c (get_composition_id): Check for integer overflow.
11984 * composite.h: Adjust prototypes to match the above changes.
11985
11986 Use ptrdiff_t for hash table indexes.
11987 * category.c (hash_get_category_set):
11988 * ccl.c (ccl_driver):
11989 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
11990 * coding.c (coding_system_charset_list, detect_coding_system):
11991 * coding.h (struct coding_system.id):
11992 * composite.c (get_composition_id, gstring_lookup_cache):
11993 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
11994 * image.c (xpm_get_color_table_h):
11995 * lisp.h (hash_lookup, hash_put):
11996 * minibuf.c (Ftest_completion):
11997 Use ptrdiff_t for hash table indexes, not int (which is too
11998 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
11999 32-bit --with-wide-int hosts).
12000
12001 * charset.c (Fdefine_charset_internal): Check for integer overflow.
12002 Add a FIXME comment about memory leaks.
12003 (syms_of_charset): Don't assume xmalloc returns.
12004
12005 Don't assume that stated character widths fit in int.
12006 * character.c (Fchar_width, c_string_width, lisp_string_width):
12007 * character.h (CHAR_WIDTH):
12008 * indent.c (MULTIBYTE_BYTES_WIDTH):
12009 Use sanitize_char_width to avoid undefined and/or bad behavior
12010 with outlandish widths.
12011 * character.h (sanitize_tab_width): Rename from sanitize_width,
12012 now that we have two such functions. All uses changed.
12013 (sanitize_char_width): New inline function.
12014
12015 Don't assume that tab-width fits in int.
12016 * character.h (sanitize_width): New inline function.
12017 (SANE_TAB_WIDTH): New macro.
12018 (ASCII_CHAR_WIDTH): Use it.
12019 * indent.c (sane_tab_width): Remove. All uses replaced by
12020 SANE_TAB_WIDTH (current_buffer).
12021 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
12022
12023 * fileio.c: Integer overflow issues with file modes.
12024 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
12025
12026 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
12027 Remove unreachable code.
12028 (read_hex, load_charset_map_from_file): Check for integer overflow.
12029
12030 * xterm.c: Don't go over XClientMessageEvent limit.
12031 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
12032 (x_send_scroll_bar_event): Likewise. Check that the size does not
12033 exceed limits imposed by XClientMessageEvent, as well as the usual
12034 ptrdiff_t and size_t limits.
12035
12036 * keyboard.c: Overflow, signedness and related fixes.
12037 (make_lispy_movement): Use same integer type in forward decl
12038 that is used in the definition.
12039 (read_key_sequence, keyremap_step):
12040 Change bufsize argument back to int, undoing my 2011-03-30 change.
12041 We prefer signed types, and int is wide enough here.
12042 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
12043 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
12044 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
12045 length, not size_t. Use ptrdiff_t for index, not int.
12046 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
12047 possibility of integer overflow.
12048
12049 Overflow, signedness and related fixes for images.
12050
12051 * dispextern.h (struct it.stack[0].u.image.image_id)
12052 (struct_it.image_id, struct image.id, struct image_cache.size)
12053 (struct image_cache.used, struct image_cache.ref_count):
12054 * gtkutil.c (update_frame_tool_bar):
12055 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
12056 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
12057 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
12058 * nsmenu.m (update_frame_tool_bar):
12059 * xdisp.c (calc_pixel_width_or_height):
12060 * xfns.c (image_cache_refcount):
12061 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
12062 on typical 64-bit hosts.
12063
12064 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
12065 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
12066 Omit unnecessary casts to int.
12067 (parse_image_spec): Check that integers fall into 'int' range
12068 when the callers expect that.
12069 (image_ascent): Redo ascent calculation to avoid int overflow.
12070 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
12071 (lookup_image): Remove unnecessary tests.
12072 (xbm_image_p): Locals are now of int, not EMACS_INT,
12073 since parse_image_check makes sure they fit into int.
12074 (png_load, gif_load, svg_load_image):
12075 Prefer int to unsigned where either will do.
12076 (tiff_handler): New function, combining the cores of the
12077 old tiff_error_handler and tiff_warning_handler.
12078 This function is rewritten to use vsnprintf and thereby avoid
12079 stack buffer overflows. It uses only the features of vsnprintf
12080 that are common to both POSIX and native Microsoft.
12081 (tiff_error_handler, tiff_warning_handler): Use it.
12082 (tiff_load, gif_load, imagemagick_load_image):
12083 Don't assume :index value fits in 'int'.
12084 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
12085 (imagemagick_load_image): Check that crop parameters fit into
12086 the integer types that MagickCropImage accepts. Don't assume
12087 Vimagemagick_render_type has a nonnegative value. Don't assume
12088 size_t fits in 'long'.
12089 (gs_load): Use printmax_t to print the widest integers possible.
12090 Check for integer overflow when computing image height and width.
12091
12092 2011-08-26 Eli Zaretskii <eliz@gnu.org>
12093
12094 * xdisp.c (redisplay_window): Don't force window start if point
12095 will be invisible in the resulting window. (Bug#9324)
12096
12097 2011-08-25 Eli Zaretskii <eliz@gnu.org>
12098
12099 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
12100 the display spec is of the form `(space ...)'.
12101 (handle_display_spec): Return the value returned by
12102 handle_single_display_spec, not just 1 or zero.
12103 (handle_single_display_spec): If the display spec is of the form
12104 `(space ...)', and specifies display in the text area, return 2
12105 rather than 1.
12106 (try_cursor_movement): Check for the need to scroll more
12107 accurately, and prefer exact match for point under bidi.
12108 Don't advance `row' beyond the last row of the window.
12109
12110 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
12111 into disp_prop; all users changed.
12112
12113 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
12114 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
12115 for the text covered by the display property.
12116
12117 2011-08-25 Chong Yidong <cyd@stupidchicken.com>
12118
12119 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
12120 Change return value to nil.
12121 (Frecord_buffer): Delete unused function.
12122
12123 2011-08-24 Eli Zaretskii <eliz@gnu.org>
12124
12125 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
12126 buffers, return left-to-right.
12127 (set_cursor_from_row): Consider candidate row a win if its glyph
12128 represents a newline and point is on that newline. Fixes cursor
12129 positioning on the newline at EOL of R2L text within L2R
12130 paragraph, and vice versa.
12131 (try_cursor_movement): Check continued rows, in addition to
12132 continuation rows. Fixes unwarranted scroll when point enters a
12133 continued line of R2L text within an L2R paragraph, or vice versa.
12134 (cursor_row_p): Consider the case of point being equal to
12135 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
12136 from the end of a short line to the beginning of a continued line
12137 of R2L text within L2R paragraph.
12138 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
12139 composed characters.
12140
12141 * bidi.c (bidi_check_type): Use xassert.
12142 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
12143 members.
12144
12145 2011-08-23 Eli Zaretskii <eliz@gnu.org>
12146
12147 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
12148 a character.
12149
12150 2011-08-23 Chong Yidong <cyd@stupidchicken.com>
12151
12152 * nsfont.m (ns_otf_to_script): Fix typo.
12153
12154 2011-08-22 Kenichi Handa <handa@m17n.org>
12155
12156 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
12157 extra slot even if the purpose is char-code-property-table.
12158
12159 2011-08-23 Eli Zaretskii <eliz@gnu.org>
12160
12161 * xdisp.c (redisplay_window): When computing centering_position,
12162 account for the height of the header line. (Bug#8874)
12163
12164 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
12165 instead of CHAR_TO_BYTE. Fixes a crash when a completion
12166 candidate is selected by the mouse, and that candidate has a
12167 composed character under the mouse.
12168
12169 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
12170 coordinates reported by pos-visible-in-window-p for a composed
12171 character in column zero.
12172
12173 2011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
12174
12175 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
12176
12177 2011-08-22 Eli Zaretskii <eliz@gnu.org>
12178
12179 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
12180 consider it a hit if to_charpos is anywhere in the range of the
12181 composed buffer positions.
12182
12183 2011-08-22 Chong Yidong <cyd@stupidchicken.com>
12184
12185 * image.c (gif_load): Don't assume that each subimage has the same
12186 dimensions as the base image. Handle disposal method that is
12187 "undefined" by the gif spec (Bug#9335).
12188
12189 2011-08-20 Chong Yidong <cyd@stupidchicken.com>
12190
12191 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
12192 (Fcondition_case): Document `debug' symbol in error handler.
12193
12194 2011-08-19 Eli Zaretskii <eliz@gnu.org>
12195
12196 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
12197 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
12198 from an Org mode buffer to a Speedbar frame.
12199
12200 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
12201 a composition, take its buffer position from IT->cmp_it.charpos.
12202 Fixes cursor positioning at the beginning of a line that begins
12203 with a composed character.
12204
12205 2011-08-18 Eli Zaretskii <eliz@gnu.org>
12206
12207 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
12208 character bidirectional type, use STRONG_L instead. Fixes crashes
12209 in a buffer produced by `describe-categories'.
12210
12211 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
12212 members before the level stack, so they would be saved and
12213 restored when copying iterator state. Fixes incorrect reordering
12214 around TABs covered by display properties.
12215
12216 2011-08-18 Andreas Schwab <schwab@linux-m68k.org>
12217
12218 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
12219
12220 2011-08-17 Chong Yidong <cyd@stupidchicken.com>
12221
12222 * eval.c (internal_condition_case, internal_condition_case_1)
12223 (internal_condition_case_2, internal_condition_case_n):
12224 Remove unnecessary aborts (Bug#9081).
12225
12226 2011-08-17 Eli Zaretskii <eliz@gnu.org>
12227
12228 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
12229 has no `load' handler, try opening the file locally. (Bug#9311)
12230
12231 2011-08-16 Ken Brown <kbrown@cornell.edu>
12232
12233 * gmalloc.c: Expand comment.
12234
12235 2011-08-16 Eli Zaretskii <eliz@gnu.org>
12236
12237 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
12238 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
12239
12240 2011-08-16 Ken Brown <kbrown@cornell.edu>
12241
12242 Fix memory allocation problems in Cygwin build (Bug#9273).
12243
12244 * unexcw.c ( __malloc_initialized): Declare external variable.
12245 (fixup_executable): Force the dumped emacs to reinitialize malloc.
12246
12247 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
12248 New variables.
12249 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
12250 dumped emacs.
12251 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
12252 in the static heap.
12253 [CYGWIN] (special_realloc): New function.
12254 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
12255 requests to realloc storage in the static heap.
12256
12257 2011-08-15 Paul Eggert <eggert@cs.ucla.edu>
12258
12259 * bidi.c (bidi_initialize): Remove unused local.
12260
12261 2011-08-15 Eli Zaretskii <eliz@gnu.org>
12262
12263 * bidimirror.h:
12264 * biditype.h: Remove file.
12265 * makefile.w32-in ($(BLD)/bidi.$(O)):
12266 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
12267
12268 * dispextern.h: Fix a typo in the comment to bidi_type_t.
12269
12270 * chartab.c: Improve commentary for the uniprop_table API.
12271
12272 * bidi.c (bidi_paragraph_init): Support zero value of
12273 bidi_ignore_explicit_marks_for_paragraph_level.
12274 (bidi_initialize): Use uniprop_table instead of including
12275 biditype.h and bidimirror.h.
12276
12277 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
12278 coordinates of the iterator when restoring from ppos_it.
12279 (Bug#9296)
12280
12281 2011-08-14 Kenichi Handa <handa@m17n.org>
12282
12283 * process.c (create_process): Call setup_process_coding_systems
12284 after the pid of the process is set to -1 (Bug#8162).
12285
12286 2011-08-14 Eli Zaretskii <eliz@gnu.org>
12287
12288 * xdisp.c (move_it_in_display_line_to): Don't invoke
12289 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
12290 ppos_it. Fixes vertical cursor motion when line beginning is
12291 covered by an image. (Bug#9296)
12292
12293 2011-08-14 Jan Djärv <jan.h.d@swipnet.se>
12294
12295 * nsterm.h (ns_run_ascript): Declare.
12296 (NSAPP_DATA2_RUNASSCRIPT): Define.
12297
12298 * nsfns.m (as_script, as_result, as_status): New static variables.
12299 (ns_run_ascript): New function.
12300 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
12301 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
12302 the event loop. Get status from as_status (Bug#7276).
12303
12304 * nsterm.m (sendEvent): If event is NSApplicationDefined and
12305 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
12306 the event loop (Bug#7276).
12307
12308 2011-08-14 Andreas Schwab <schwab@linux-m68k.org>
12309
12310 * gnutls.c (QCgnutls_bootprop_priority)
12311 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
12312 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
12313 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
12314 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
12315 (QCgnutls_bootprop_verify_hostname_error)
12316 (QCgnutls_bootprop_callbacks_verify): Rename from
12317 Qgnutls_bootprop_..., all uses changed.
12318
12319 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
12320 uses changed.
12321
12322 2011-08-14 Paul Eggert <eggert@cs.ucla.edu>
12323
12324 * xfaces.c (Qframe_set_background_mode): Now static.
12325 * dispextern.h (Qframe_set_background_mode): Remove decl.
12326
12327 * process.c (Fnetwork_interface_info): Declare local only if needed.
12328
12329 2011-08-13 Jan Djärv <jan.h.d@swipnet.se>
12330
12331 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
12332 (Fnetwork_interface_list): Allocate in increments of bytes instead
12333 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
12334 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
12335 sockaddr.
12336 (struct ifflag_def): notrailers is smart on OSX.
12337 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
12338 Get hardware address with getifaddrs if available.
12339
12340 2011-08-12 Eli Zaretskii <eliz@gnu.org>
12341
12342 * xdisp.c (iterate_out_of_display_property): xassert that
12343 IT->position is set to within IT->object's boundaries. Break from
12344 the loop as soon as EOB is reached; avoids infloops in redisplay
12345 when IT->position is set up wrongly due to some bug.
12346 Set IT->current to match the bidi iterator unconditionally.
12347 (push_display_prop): Allow GET_FROM_STRING as IT->method on
12348 entry. Force push_it to save on the stack the current
12349 buffer/string position, to be restored by pop_it. Fix flags in
12350 the iterator structure wrt the object coming from a display
12351 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
12352 properties. (Bug#9284)
12353
12354 2011-08-09 Andreas Schwab <schwab@linux-m68k.org>
12355
12356 * fontset.c (fontset_get_font_group): Add proper type checks.
12357 (Bug#9172)
12358
12359 2011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12360
12361 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
12362 and LC_VERSION_MIN_MACOSX.
12363 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
12364 (dump_it) [LC_FUNCTION_STARTS]: Use it.
12365
12366 2011-08-08 Eli Zaretskii <eliz@gnu.org>
12367
12368 * xdisp.c (forward_to_next_line_start): Allow to use the
12369 no-display-properties-and-no-overlays under bidi display.
12370 Set disp_pos in the bidi iterator to avoid searches for display
12371 properties and overlays.
12372
12373 2011-08-08 Chong Yidong <cyd@stupidchicken.com>
12374
12375 * editfns.c (Fset_time_zone_rule): Document relationship with the
12376 setenv function.
12377
12378 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
12379 the font entity extracted from the cache (Bug#8109).
12380
12381 2011-08-07 Chong Yidong <cyd@stupidchicken.com>
12382
12383 * composite.c (autocmp_chars): Don't reset point. That is done by
12384 restore_point_unwind (Bug#5984).
12385
12386 2011-08-07 Juri Linkov <juri@jurta.org>
12387
12388 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
12389 to show the arg `TIME' instead of `TIMEVAL'.
12390
12391 2011-08-06 Eli Zaretskii <eliz@gnu.org>
12392
12393 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
12394 display property strides EOL and includes a newline, as in
12395 longlines-mode. (Bug#9254)
12396 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
12397 word-wrap under bidirectional display. (Bug#9224)
12398
12399 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
12400 is non-zero, even if the data buffer is NULL. Fixes a crash in
12401 vertical-motion with longlines-mode. (Bug#9254)
12402
12403 2011-08-05 Eli Zaretskii <eliz@gnu.org>
12404
12405 * bidi.c <bidi_cache_total_alloc>: Now static.
12406 (bidi_initialize): Initialize bidi_cache_total_alloc.
12407
12408 * xdisp.c (display_line): Release buffer allocated for shelved bidi
12409 cache. (Bug#9221)
12410
12411 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
12412 amount allocated this far in `bidi_cache_total_alloc'.
12413 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
12414 non-zero, only free the data buffer without restoring the cache
12415 contents. All callers changed.
12416
12417 * dispextern.h (bidi_unshelve_cache): Update prototype.
12418
12419 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
12420 (move_it_in_display_line, move_it_to)
12421 (move_it_vertically_backward, move_it_by_lines): Replace the call
12422 to xfree to an equivalent call to bidi_unshelve_cache.
12423 (move_it_in_display_line_to): Fix logic of returning
12424 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
12425
12426 2011-08-05 Eli Zaretskii <eliz@gnu.org>
12427
12428 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
12429 came from a string character with a `cursor' property. (Bug#9229)
12430
12431 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
12432
12433 * Makefile.in (LIB_PTHREAD): New variable.
12434 (LIBES): Add LIB_PTHREAD (Bug#9216).
12435
12436 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
12437 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
12438
12439 2011-08-04 Andreas Schwab <schwab@linux-m68k.org>
12440
12441 * regex.c (re_iswctype): Remove some redundant boolean conversions.
12442
12443 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
12444
12445 * xterm.c (x_find_topmost_parent): New function.
12446 (x_set_frame_alpha): Find topmost parent window with
12447 x_find_topmost_parent and set the property there also (bug#9181).
12448 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
12449
12450 2011-08-04 Paul Eggert <eggert@cs.ucla.edu>
12451
12452 * callproc.c (Fcall_process): Avoid vfork clobbering
12453 the local vars buffer, coding_systems, current_dir.
12454
12455 2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
12456
12457 * keymap.c (Fmake_composed_keymap): Move to subr.el.
12458
12459 2011-08-03 Paul Eggert <eggert@cs.ucla.edu>
12460
12461 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
12462 so that it is not optimized away.
12463
12464 * xdisp.c (compute_display_string_pos): Remove unused local.
12465
12466 2011-08-02 Eli Zaretskii <eliz@gnu.org>
12467
12468 Fix slow cursor motion and scrolling in large buffers with
12469 selective display, like Org Mode buffers. (Bug#9218)
12470
12471 * dispextern.h (struct bidi_it): New member disp_prop_p.
12472
12473 * xdisp.c: Remove one-slot cache of display string positions.
12474 (compute_display_string_pos): Accept an additional argument
12475 DISP_PROP_P; callers changed. Scan at most 5K characters forward
12476 for a display string or property. If found, set DISP_PROP_P
12477 non-zero.
12478
12479 * bidi.c (bidi_fetch_char): Accept an additional argument
12480 DISP_PROP_P, and pass it to compute_display_string_pos.
12481 Only handle text covered by a display string if DISP_PROP_P is returned
12482 non-zero. All callers of bidi_fetch_char changed.
12483
12484 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
12485
12486 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
12487
12488 2010-12-03 Don March <don@ohspite.net>
12489
12490 * keymap.c (Fdefine_key): Fix non-prefix key error message when
12491 last character M-[char] is translated to ESC [char] (bug#7541).
12492
12493 2011-08-02 Kenichi Handa <handa@m17n.org>
12494
12495 * lisp.h (uniprop_table): Extern it.
12496
12497 * chartab.c (uniprop_table): Make it non-static.
12498
12499 2011-08-01 Eli Zaretskii <eliz@gnu.org>
12500
12501 * xdisp.c (forward_to_next_line_start): Accept additional argument
12502 BIDI_IT_PREV, and store into it the state of the bidi iterator had
12503 on the newline.
12504 (reseat_at_next_visible_line_start): Use the bidi iterator state
12505 returned by forward_to_next_line_start to restore the state of
12506 it->bidi_it after backing up to previous newline. (Bug#9212)
12507
12508 2011-07-30 Andreas Schwab <schwab@linux-m68k.org>
12509
12510 * regex.c (re_comp): Protoize.
12511 (re_exec): Fix return type.
12512 (regexec): Fix type of `ret'. (Bug#9203)
12513
12514 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12515
12516 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
12517 This is needed if max-image-size is a floating-point number.
12518
12519 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
12520
12521 * print.c (print_object): Print empty symbol as ##.
12522
12523 * lread.c (read1): Read ## as empty symbol.
12524
12525 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
12526
12527 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
12528 setting frame foreground color (Bug#9175).
12529 (x_set_background_color): Likewise.
12530
12531 * nsmenu.m (-setText): Size tooltip dimensions precisely to
12532 contents (Bug#9176).
12533 (EmacsTooltip -init): Remove bezels and add shadows to
12534 tooltip windows.
12535
12536 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
12537 or scroll bar (Bug#8470).
12538
12539 * nsfont.m (nsfont_open): Remove assignment to voffset and
12540 unnecessary vars hshink, expand, hd, full_height, min_height.
12541 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
12542
12543 * nsterm.h (nsfont_info): Remove voffset field.
12544
12545 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
12546
12547 Implement strike-through and overline on NextStep (Bug#8863).
12548
12549 * nsfont.m (nsfont_open): Use underline position provided by font,
12550 instead of hard-coded value of 2.
12551 (nsfont_draw): Call ns_draw_text_decoration instead.
12552
12553 * nsterm.h: Add declaration for ns_draw_text_decoration.
12554
12555 * nsterm.m (ns_draw_text_decoration): New function for drawing
12556 underline, overline, and strike-through.
12557 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
12558 ns_draw_text_decoration. Change treatment of cursor drawing to
12559 accommodate underlining, etc.
12560
12561 2011-07-28 Eli Zaretskii <eliz@gnu.org>
12562
12563 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
12564 default.
12565
12566 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12567
12568 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
12569 Without this fix, if a signal arrives just after memory fills up,
12570 'malloc' might be invoked reentrantly.
12571
12572 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
12573 In other words, assume that every image size is allowed, on non-X
12574 hosts. This assumption is probably wrong, but it lets Emacs compile.
12575
12576 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
12577
12578 * regex.c (re_iswctype): Convert return values to boolean.
12579
12580 2011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
12581
12582 * xdisp.c (compute_display_string_pos): Don't use cached display
12583 string position if the buffer had its restriction changed.
12584 (Bug#9184)
12585
12586 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12587
12588 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
12589
12590 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12591
12592 Integer signedness and overflow and related fixes. (Bug#9079)
12593
12594 * bidi.c: Integer size and overflow fixes.
12595 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
12596 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
12597 (bidi_cache_find_level_change, bidi_cache_ensure_space)
12598 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
12599 (bidi_find_other_level_edge):
12600 Use ptrdiff_t instead of EMACS_INT where either will do.
12601 This works better on 32-bit hosts configured --with-wide-int.
12602 (bidi_cache_ensure_space): Check for size-calculation overflow.
12603 Use % rather than repeated addition, for better worst-case speed.
12604 Don't set bidi_cache_size until after xrealloc returns, because it
12605 might not return.
12606 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
12607 (bidi_cache_ensure_space): Also check that the bidi cache size
12608 does not exceed that of the largest Lisp string or buffer. See Eli
12609 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
12610
12611 * alloc.c (__malloc_size_t): Remove.
12612 All uses replaced by size_t. See Andreas Schwab's note
12613 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
12614
12615 * image.c: Improve checking for integer overflow.
12616 (check_image_size): Assume that f is nonnull, since
12617 it is always nonnull in practice. This is one less thing to
12618 worry about when checking for integer overflow later.
12619 (x_check_image_size): New function, which checks for integer
12620 overflow issues inside X.
12621 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
12622 This removes the need for a memory_full check.
12623 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
12624 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
12625 (xbm_read_bitmap_data): Change locals back to 'int', since
12626 their values must fit in 'int'.
12627 (xpm_load_image, png_load, tiff_load):
12628 Invoke x_create_x_image_and_pixmap earlier,
12629 to avoid much needless work if the image is too large.
12630 (tiff_load): Treat overly large images as if
12631 x_create_x_image_and_pixmap failed, not as malloc failures.
12632 (gs_load): Use x_check_image_size.
12633
12634 * gtkutil.c: Omit integer casts.
12635 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
12636 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
12637
12638 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
12639
12640 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
12641 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
12642 would wrongly return t on a 64-bit host.
12643
12644 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
12645 The plain *_OVERFLOW macros run afoul of GCC bug 49705
12646 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
12647 and therefore cause GCC to emit a bogus diagnostic in some cases.
12648
12649 * image.c: Integer signedness and overflow and related fixes.
12650 This is not an exhaustive set of fixes, but it's time to
12651 record what I've got.
12652 (lookup_pixel_color, check_image_size): Remove redundant decls.
12653 (check_image_size): Don't assume that arbitrary EMACS_INT values
12654 fit in 'int', or that arbitrary 'double' values fit in 'int'.
12655 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
12656 (tiff_load, imagemagick_load_image):
12657 Check for overflow in size calculations.
12658 (x_create_x_image_and_pixmap): Remove unnecessary test for
12659 xmalloc returning NULL; that can't happen.
12660 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
12661 (xpm_color_bucket): Use better integer hashing function.
12662 (xpm_cache_color): Don't possibly over-allocate memory.
12663 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
12664 (gif_memory_source):
12665 Use ptrdiff_t, not int or size_t, to record sizes.
12666 (png_load): Don't assume values greater than 2**31 fit in 'int'.
12667 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
12668 either works, as we prefer signed integers.
12669 (tiff_read_from_memory, tiff_write_from_memory):
12670 Return tsize_t, not size_t, since that's what the TIFF API wants.
12671 (tiff_read_from_memory): Don't fail simply because the read would
12672 go past EOF; instead, return a short read.
12673 (tiff_load): Omit no-longer-needed casts.
12674 (Fimagemagick_types): Don't assume size fits into 'int'.
12675
12676 Improve hashing quality when configured --with-wide-int.
12677 * fns.c (hash_string): New function, taken from sxhash_string.
12678 Do not discard information about ASCII character case; this
12679 discarding is no longer needed.
12680 (sxhash-string): Use it. Change sig to match it. Caller changed.
12681 * lisp.h: Declare it.
12682 * lread.c (hash_string): Remove, since we now use fns.c's version.
12683 The fns.c version returns a wider integer if --with-wide-int is
12684 specified, so this should help the quality of the hashing a bit.
12685
12686 * emacs.c: Integer overflow minor fix.
12687 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
12688 Define only if GNU_LINUX.
12689 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
12690
12691 * dispnew.c: Integer signedness and overflow fixes.
12692 Remove unnecessary forward decls, that were a maintenance hassle.
12693 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
12694 All uses changed.
12695 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
12696 (scrolling_window): Use ptrdiff_t, not int, for byte count.
12697 (prepare_desired_row, line_draw_cost):
12698 Use int, not unsigned, where either works.
12699 (save_current_matrix, restore_current_matrix):
12700 Use ptrdiff_t, not size_t, where either works.
12701 (init_display): Check for overflow more accurately, and without
12702 relying on undefined behavior.
12703
12704 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
12705 Remove, replacing with the new symbols in lisp.h. All uses changed.
12706 * fileio.c (make_temp_name):
12707 * filelock.c (lock_file_1, lock_file):
12708 * xdisp.c (message_dolog):
12709 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
12710 Use pMd etc. instead.
12711 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
12712 replacing the pWIDE etc. symbols removed from editfns.c.
12713
12714 * keyboard.h (num_input_events): Now uintmax_t.
12715 This is (very slightly) less likely to mess up due to wraparound.
12716 All uses changed.
12717
12718 * buffer.c: Integer signedness fixes.
12719 (alloc_buffer_text, enlarge_buffer_text):
12720 Use ptrdiff_t rather than size_t when either will do, as we prefer
12721 signed integers.
12722
12723 * alloc.c: Integer signedness and overflow fixes.
12724 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
12725 (__malloc_size_t): Default to size_t, not to int.
12726 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
12727 (Fgarbage_collect, mark_object_loop_halt, mark_object):
12728 Prefer ptrdiff_t to size_t when either would do, as we prefer
12729 signed integers.
12730 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
12731 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
12732 Now const. Initialize with values that are in range even if char
12733 is signed.
12734 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
12735 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
12736 These functions do the right thing with sizes > 2**32.
12737 (check_depth): Now ptrdiff_t, not int.
12738 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
12739 Adjust to new way of storing sizes. Check for size overflow bugs
12740 in rest of code.
12741 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
12742 slightly wrong anyway, as it missed one instance of
12743 XMALLOC_OVERRUN_CHECK_OVERHEAD.
12744 (refill_memory_reserve): Omit needless cast to size_t.
12745 (mark_object_loop_halt): Mark as externally visible.
12746
12747 * xselect.c: Integer signedness and overflow fixes.
12748 (Fx_register_dnd_atom, x_handle_dnd_message):
12749 Use ptrdiff_t, not size_t, since we prefer signed.
12750 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
12751 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
12752 x_dnd_atoms_size and x_dnd_atoms_length.
12753
12754 * doprnt.c: Prefer signed to unsigned when either works.
12755 * eval.c (verror):
12756 * doprnt.c (doprnt):
12757 * lisp.h (doprnt):
12758 * xdisp.c (vmessage):
12759 Use ptrdiff_t, not size_t, when using or implementing doprnt,
12760 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
12761 prefer signed arithmetic to avoid comparison confusion.
12762 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
12763 but is a bit tricky.
12764
12765 Assume freestanding C89 headers, string.h, stdlib.h.
12766 * data.c, doprnt.c, floatfns.c, print.c:
12767 Include float.h unconditionally.
12768 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
12769 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
12770 * regex.c: Likewise for stddef.h, string.h.
12771 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
12772 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
12773 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
12774 (STDC_HEADERS): Remove obsolete defines.
12775 * sysdep.c: Include limits.h unconditionally.
12776
12777 Assume support for memcmp, memcpy, memmove, memset.
12778 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
12779 * regex.c (memcmp, memcpy):
12780 Remove; we assume C89 now.
12781
12782 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
12783 (__malloc_safe_bcopy): Remove; no longer needed.
12784
12785 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
12786 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
12787 well either way, and we prefer signed to unsigned.
12788
12789 2011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
12790
12791 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
12792 closes the connection while we're reading (bug#9182).
12793
12794 2011-07-25 Jan Djärv <jan.h.d@swipnet.se>
12795
12796 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
12797 are specified (Bug#9168).
12798
12799 2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
12800
12801 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
12802 Found by GCC static checking and --with-wide-int on a 32-bit host.
12803
12804 2011-07-25 Eli Zaretskii <eliz@gnu.org>
12805
12806 * xdisp.c (compute_display_string_pos): Fix logic of caching
12807 previous display string position. Initialize cached_prev_pos to
12808 -1. Fixes slow-down at the beginning of a buffer.
12809
12810 2011-07-24 Eli Zaretskii <eliz@gnu.org>
12811
12812 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
12813 for attrs[LFACE_FONTSET_INDEX].
12814
12815 2011-07-23 Paul Eggert <eggert@cs.ucla.edu>
12816
12817 * xml.c (parse_region): Remove unused local
12818 that was recently introduced.
12819
12820 2011-07-23 Eli Zaretskii <eliz@gnu.org>
12821
12822 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
12823 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
12824
12825 * xdisp.c (move_it_in_display_line_to): Record the best matching
12826 position for TO_CHARPOS while scanning the line, and restore it on
12827 exit if none of the characters scanned was an exact match.
12828 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
12829 when exact match is impossible due to invisible text, and the
12830 lines are truncated.
12831
12832 2011-07-23 Jan Djärv <jan.h.d@swipnet.se>
12833
12834 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
12835 for OSX >= 10.7.
12836
12837 2011-07-22 Eli Zaretskii <eliz@gnu.org>
12838
12839 Fix a significant slow-down of cursor motion with C-n, C-p,
12840 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
12841 auto-repeat under bidi redisplay in fontified buffers.
12842 * xdisp.c (compute_stop_pos_backwards): New function.
12843 (next_element_from_buffer): Call compute_stop_pos_backwards to
12844 find a suitable prev_stop when we find ourselves before
12845 base_level_stop.
12846 (reseat): Don't look for prev_stop, as that could mean a very long
12847 run.
12848 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
12849 <cached_disp_overlay_modiff>: Cache for last found display string
12850 position.
12851 (compute_display_string_pos): Return the cached position if asked
12852 about the same buffer in the same area of character positions, and
12853 the buffer wasn't changed since the time the display string
12854 position was cached.
12855
12856 2011-07-22 Eli Zaretskii <eliz@gnu.org>
12857
12858 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
12859 is an integer, which is important for empty lines. (Bug#9149)
12860
12861 2011-07-22 Chong Yidong <cyd@stupidchicken.com>
12862
12863 * frame.c (Fmodify_frame_parameters): In tty case, update the
12864 default face if necessary (Bug#4238).
12865
12866 2011-07-21 Chong Yidong <cyd@stupidchicken.com>
12867
12868 * editfns.c (Fstring_to_char): No need to explain what a character
12869 is in the docstring (Bug#6576).
12870
12871 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
12872
12873 * xml.c (parse_region): Make sure we always return a tree.
12874
12875 2011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
12876
12877 * xml.c (parse_region): If a document contains only comments,
12878 return that, too.
12879
12880 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
12881
12882 * xml.c (make_dom): Return comments, too.
12883
12884 2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
12885
12886 Port to OpenBSD.
12887 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
12888 and the surrounding thread.
12889 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
12890 rather than fgets, and retry after EINTR. Otherwise, 'emacs
12891 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
12892 timer goes off.
12893 * s/openbsd.h (BROKEN_SIGIO): Define.
12894 * unexelf.c (unexec) [__OpenBSD__]:
12895 Don't update the .mdebug section of the Alpha COFF symbol table.
12896
12897 2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
12898
12899 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
12900 (bug#8460).
12901
12902 2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
12903
12904 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
12905 This fixes some race conditions on the permissions of any newly
12906 created file.
12907
12908 * alloc.c (valid_pointer_p): Use pipe, not open.
12909 This fixes some permissions issues when debugging.
12910
12911 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
12912 If fchown fails to set both uid and gid, try to set just gid,
12913 as that is sometimes allowed. Adjust the file's mode to eliminate
12914 setuid or setgid bits that are inappropriate if fchown fails.
12915
12916 2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
12917
12918 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
12919 to compare Lisp_Objects.
12920 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
12921 global_gnutls_log_level, don't mistake it for a Lisp_Object.
12922 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
12923
12924 2011-07-17 Andreas Schwab <schwab@linux-m68k.org>
12925
12926 * lread.c (read_integer): Unread even EOF character.
12927 (read1): Likewise. Properly record start position of symbol.
12928
12929 * lread.c (read1): Read `#:' as empty uninterned symbol if no
12930 symbol character follows.
12931
12932 2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
12933
12934 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
12935 This works around a problem with the previous change to Fcopy_file.
12936 Recent glibc declares fchown with __attribute__((warn_unused_result)),
12937 and without this change, GCC might complain about discarding
12938 fchown's return value.
12939
12940 2011-07-16 Juanma Barranquero <lekktu@gmail.com>
12941
12942 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
12943
12944 2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
12945
12946 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
12947
12948 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
12949
12950 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
12951 it's used from the C level.
12952
12953 * process.c: Use the same condition for POLL_FOR_INPUT in both
12954 keyboard.c and process.c (bug#1858).
12955
12956 2011-07-09 Lawrence Mitchell <wence@gmx.li>
12957
12958 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
12959 (Fgnutls_boot): Use it.
12960
12961 2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
12962
12963 * doc.c (Fsubstitute_command_keys): Revert last change.
12964
12965 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
12966
12967 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
12968 quotes the next character, and doesn't affect other longer
12969 sequences (bug#8935).
12970
12971 * lread.c (syms_of_lread): Clarify that is isn't only
12972 `eval-buffer' and `eval-defun' that's affected by
12973 `lexical-binding' (bug#8460).
12974
12975 2011-07-15 Eli Zaretskii <eliz@gnu.org>
12976
12977 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
12978 bidi redisplay when a line includes both an image and is truncated.
12979
12980 2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
12981
12982 Fix minor problems found by static checking.
12983 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
12984 (elsz): Now a signed constant, not a size_t var. We prefer signed
12985 types to unsigned, to avoid integer comparison confusion. Without
12986 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
12987 "cannot optimize loop, the loop counter may overflow", a symptom
12988 of the confusion.
12989 * indent.c (Fvertical_motion): Mark locals as initialized.
12990 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
12991
12992 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
12993
12994 * search.c (Fre_search_backward): Mention `case-fold-search' in
12995 all the re_search_* functions (bug#8138).
12996
12997 * keyboard.c (Fopen_dribble_file): Document when the file is
12998 closed (bug#8056).
12999
13000 2011-07-14 Eli Zaretskii <eliz@gnu.org>
13001
13002 * bidi.c (bidi_dump_cached_states): Fix format of displaying
13003 bidi_cache_idx.
13004
13005 Support bidi reordering of display and overlay strings.
13006 * xdisp.c (compute_display_string_pos)
13007 (compute_display_string_end): Accept additional argument STRING.
13008 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
13009 (reseat_to_string): Initialize bidi_it->string.s and
13010 bidi_it->string.schars.
13011 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
13012 NULL (avoids a crash in bidi_paragraph_init).
13013 Initialize itb.string.lstring.
13014 (init_iterator): Call bidi_init_it only of a valid
13015 buffer position was specified. Initialize paragraph_embedding to
13016 L2R.
13017 (reseat_to_string): Initialize the bidi iterator.
13018 (display_string): If we need to ignore text properties of
13019 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
13020 original value of -1 will not work with bidi.)
13021 (compute_display_string_pos): First arg is now struct
13022 `text_pos *'; all callers changed. Support display properties on
13023 Lisp strings.
13024 (compute_display_string_end): Support display properties on Lisp
13025 strings.
13026 (init_iterator, reseat_1, reseat_to_string): Initialize the
13027 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
13028 when iterating on a string not from display properties).
13029 (compute_display_string_pos, compute_display_string_end):
13030 Fix calculation of the object to scan. Fixes an error when using
13031 arrow keys.
13032 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
13033 base_level_stop; instead, set base_level_stop to BEGV.
13034 Fixes crashes in vertical-motion.
13035 (next_element_from_buffer): Improve commentary for when
13036 the iterator is before prev_stop.
13037 (init_iterator): Initialize bidi_p from the default value of
13038 bidi-display-reordering, not from buffer-local value. Use the
13039 buffer-local value only if initializing for buffer iteration.
13040 (handle_invisible_prop): Support invisible properties on strings
13041 that are being bidi-reordered.
13042 (set_iterator_to_next): Support bidi reordering of C strings and
13043 Lisp strings.
13044 (next_element_from_string): Support bidi reordering of Lisp
13045 strings.
13046 (handle_stop_backwards): Support Lisp strings as well.
13047 (display_string): Support display of R2L glyph rows.
13048 Use IT_STRING_CHARPOS when displaying from a Lisp string.
13049 (init_iterator): Don't initialize it->bidi_p for strings
13050 here.
13051 (reseat_to_string): Initialize it->bidi_p for strings here.
13052 (next_element_from_string, next_element_from_c_string)
13053 (next_element_from_buffer): Add xassert's for correspondence
13054 between IT's object being iterated and it->bidi_it.string
13055 structure.
13056 (face_before_or_after_it_pos): Support bidi iteration.
13057 (next_element_from_c_string): Handle the case of the first string
13058 character that is not the first one in the visual order.
13059 (get_visually_first_element): New function, refactored from common
13060 parts of next_element_from_buffer, next_element_from_string, and
13061 next_element_from_c_string.
13062 (tool_bar_lines_needed, redisplay_tool_bar)
13063 (display_menu_bar): Force left-to-right direction. Add a FIXME
13064 comment for making that be controlled by a user option.
13065 (push_it, pop_it): Save and restore the state of the
13066 bidi iterator. Save and restore the bidi_p flag.
13067 (pop_it): Iterate out of display property for string iteration as
13068 well.
13069 (iterate_out_of_display_property): Support iteration over strings.
13070 (handle_single_display_spec): Set up it->bidi_it for iteration
13071 over a display string, and call bidi_init_it.
13072 (handle_single_display_spec, next_overlay_string)
13073 (get_overlay_strings_1, push_display_prop): Set up the bidi
13074 iterator for displaying display or overlay strings.
13075 (forward_to_next_line_start): Don't use the shortcut if
13076 bidi-iterating.
13077 (back_to_previous_visible_line_start): If handle_display_prop
13078 pushed the iterator stack, restore the internal state of the bidi
13079 iterator by calling bidi_pop_it same number of times.
13080 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
13081 and we are bidi-iterating, don't decrement the iterator position;
13082 instead, set the first_elt flag in the bidi iterator, to produce
13083 the same effect.
13084 (reseat_1): Remove redundant setting of string_from_display_prop_p.
13085 (push_display_prop): xassert that we are iterating a buffer.
13086 (push_it, pop_it): Save and restore paragraph_embedding member.
13087 (handle_single_display_spec, next_overlay_string)
13088 (get_overlay_strings_1, reseat_1, reseat_to_string)
13089 (push_display_prop): Set up the `unibyte' member of bidi_it.string
13090 correctly. Don't assume unibyte strings are not bidi-reordered.
13091 (compute_display_string_pos)
13092 (compute_display_string_end): Fix handling the case of C string.
13093 (push_it, pop_it): Save and restore from_disp_prop_p.
13094 (handle_single_display_spec, push_display_prop): Set the
13095 from_disp_prop_p flag.
13096 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
13097 (pop_it): Call iterate_out_of_display_property only if we are
13098 popping after iteration over a string that came from a display
13099 property. Fix a typo in popping stretch info. Add an assertion
13100 for verifying that the iterator position is in sync with the bidi
13101 iterator.
13102 (handle_single_display_spec, get_overlay_strings_1)
13103 (push_display_prop): Fix initialization of paragraph direction for
13104 string when that of the parent object is not yet determined.
13105 (reseat_1): Call bidi_init_it to resync the bidi
13106 iterator with IT's position. (Bug#7616)
13107 (find_row_edges): If ROW->start.pos gives position
13108 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
13109 (handle_stop, back_to_previous_visible_line_start, reseat_1):
13110 Reset the from_disp_prop_p flag.
13111 (SAVE_IT, RESTORE_IT): New macros.
13112 (pos_visible_p, face_before_or_after_it_pos)
13113 (back_to_previous_visible_line_start)
13114 (move_it_in_display_line_to, move_it_in_display_line)
13115 (move_it_to, move_it_vertically_backward, move_it_by_lines)
13116 (try_scrolling, redisplay_window, display_line): Use them when
13117 saving a temporary copy of the iterator and restoring it back.
13118 (back_to_previous_visible_line_start, reseat_1)
13119 (init_iterator): Empty the bidi cache "stack".
13120 (move_it_in_display_line_to): If iterator ended up at
13121 EOL, but we never saw any buffer positions smaller than
13122 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
13123 motion in bidi-reordered lines.
13124 (move_it_in_display_line_to): Record prev_method and prev_pos
13125 immediately before the call to set_iterator_to_next. Fixes cursor
13126 motion in bidi-reordered lines with stretch glyphs and strings
13127 displayed in margins. (Bug#8133) (Bug#8867)
13128 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
13129 TO_CHARPOS.
13130 (pos_visible_p): Support positions in bidi-reordered lines.
13131 Save and restore bidi cache.
13132
13133 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
13134 (bidi_paragraph_info): Delete unused struct.
13135 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
13136 (bidi_cache_start): New variable.
13137 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
13138 to zero.
13139 (bidi_cache_fetch_state, bidi_cache_search)
13140 (bidi_cache_find_level_change, bidi_cache_iterator_state)
13141 (bidi_cache_find, bidi_peek_at_next_level)
13142 (bidi_level_of_next_char, bidi_find_other_level_edge)
13143 (bidi_move_to_visually_next): Compare cache index with
13144 bidi_cache_start rather than with zero.
13145 (bidi_fetch_char): Accept new argument STRING; all callers
13146 changed. Support iteration over a string. Support strings with
13147 display properties. Support unibyte strings. Fix the type of
13148 `len' according to what STRING_CHAR_AND_LENGTH expects.
13149 (bidi_paragraph_init, bidi_resolve_explicit_1)
13150 (bidi_resolve_explicit, bidi_resolve_weak)
13151 (bidi_level_of_next_char, bidi_move_to_visually_next):
13152 Support iteration over a string.
13153 (bidi_set_sor_type, bidi_resolve_explicit_1)
13154 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
13155 can now be zero (for strings); special values 0 and -1 were
13156 changed to -1 and -2, respectively.
13157 (bidi_char_at_pos): New function.
13158 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
13159 Call it instead of FETCH_MULTIBYTE_CHAR.
13160 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
13161 initialized to valid values.
13162 (bidi_init_it): Don't initialize charpos and bytepos with invalid
13163 values.
13164 (bidi_level_of_next_char): Allow the sentinel "position" to pass
13165 the test for valid cached positions. Fix the logic for looking up
13166 the sentinel state in the cache. GCPRO the Lisp string we are
13167 iterating.
13168 (bidi_push_it, bidi_pop_it): New functions.
13169 (bidi_initialize): Initialize the bidi cache start stack pointer.
13170 (bidi_cache_ensure_space): New function, refactored from part of
13171 bidi_cache_iterator_state. Don't assume the required size is just
13172 one BIDI_CACHE_CHUNK away.
13173 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
13174 (bidi_count_bytes, bidi_char_at_pos): New functions.
13175 (bidi_cache_search): Don't assume bidi_cache_last_idx is
13176 always valid if bidi_cache_idx is valid.
13177 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
13178 is valid if it's going to be used.
13179 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
13180 (bidi_cache_fetch_state, bidi_cache_search)
13181 (bidi_cache_find_level_change, bidi_cache_ensure_space)
13182 (bidi_cache_iterator_state, bidi_cache_find)
13183 (bidi_find_other_level_edge, bidi_cache_start_stack):
13184 All variables related to cache indices are now EMACS_INT.
13185
13186 * dispextern.h (struct bidi_string_data): New structure.
13187 (struct bidi_it): New member `string'. Make flag members be 1-bit
13188 fields, and put them last in the struct.
13189 (compute_display_string_pos, compute_display_string_end):
13190 Update prototypes.
13191 (bidi_push_it, bidi_pop_it): Add prototypes.
13192 (struct iterator_stack_entry): New members bidi_p,
13193 paragraph_embedding, and from_disp_prop_p.
13194 (struct it): Member bidi_p is now a bit field 1 bit wide.
13195 (bidi_shelve_cache, bidi_unshelve_cache):
13196 Declare prototypes.
13197
13198 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
13199 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
13200 and vector-like objects.
13201
13202 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
13203 cache around display iteration.
13204
13205 * window.c (Fwindow_end, window_scroll_pixel_based)
13206 (displayed_window_lines, Frecenter): Save and restore the bidi
13207 cache around display iteration.
13208
13209 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
13210
13211 * editfns.c (Fdelete_region): Clarify the use of the named
13212 parameters (bug#6788).
13213
13214 2011-07-14 Martin Rudalics <rudalics@gmx.at>
13215
13216 * indent.c (Fvertical_motion): Set and restore w->pointm when
13217 saving and restoring the window's buffer (Bug#9006).
13218
13219 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
13220
13221 * editfns.c (Fstring_to_char): Clarify just what is returned
13222 (bug#6576). Text by Eli Zaretskii.
13223
13224 2011-07-13 Juanma Barranquero <lekktu@gmail.com>
13225
13226 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
13227
13228 2011-07-13 Eli Zaretskii <eliz@gnu.org>
13229
13230 * buffer.c (mmap_find): Fix a typo.
13231
13232 2011-07-13 Johan Bockgård <bojohan@gnu.org>
13233
13234 Fix execution of x selection hooks.
13235 * xselect.c (Qx_lost_selection_functions)
13236 (Qx_sent_selection_functions): New vars.
13237 (syms_of_xselect): DEFSYM them.
13238 (x_handle_selection_request): Pass Qx_sent_selection_functions
13239 rather than Vx_sent_selection_functions to Frun_hook_with_args.
13240 (x_handle_selection_clear,x_clear_frame_selections):
13241 Pass Qx_lost_selection_functions rather than
13242 Vx_lost_selection_functions to Frun_hook_with_args.
13243
13244 2011-07-13 Paul Eggert <eggert@cs.ucla.edu>
13245
13246 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
13247 The old code sometimes used this field without initializing it.
13248
13249 * alloc.c (gc_sweep): Don't read past end of array.
13250 In theory, the old code could also have corrupted Emacs internals,
13251 though it'd be very unlikely.
13252
13253 2011-07-12 Andreas Schwab <schwab@linux-m68k.org>
13254
13255 * character.c (Fcharacterp): Don't advertise optional ignored
13256 argument. (Bug#4026)
13257
13258 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
13259
13260 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
13261 key" (bug#4257).
13262
13263 * window.c (Fset_window_start): Doc fix (bug#4199).
13264 (Fset_window_hscroll): Ditto.
13265
13266 2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
13267
13268 Fix minor new problems caught by GCC 4.6.1.
13269 * term.c (init_tty): Remove unused local.
13270 * xsettings.c (store_monospaced_changed): Define this function only
13271 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
13272 not used otherwise.
13273
13274 2011-07-12 Chong Yidong <cyd@stupidchicken.com>
13275
13276 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
13277
13278 2011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
13279
13280 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
13281 are the mini-buffer and the echo area (bug#3320).
13282
13283 * term.c (init_tty): Remove support for supdup, c10 and perq
13284 terminals, which are no longer supported (bug#1482).
13285
13286 2011-07-10 Johan Bockgård <bojohan@gnu.org>
13287
13288 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
13289
13290 2011-07-10 Jan Djärv <jan.h.d@swipnet.se>
13291
13292 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
13293 for non-popups (Bug#3642).
13294
13295 2011-07-10 Andreas Schwab <schwab@linux-m68k.org>
13296
13297 * alloc.c (reset_malloc_hooks): Protoize.
13298 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
13299 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
13300 * cm.c (losecursor): Likewise.
13301 * data.c (fmod): Likewise.
13302 * dispnew.c (swap_glyphs_in_rows): Likewise.
13303 * emacs.c (memory_warning_signal): Likewise.
13304 * floatfns.c (float_error): Likewise.
13305 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
13306 (otf_open, font_otf_capability, generate_otf_features)
13307 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
13308 Likewise.
13309 * image.c (pbm_read_file): Likewise.
13310 * indent.c (string_display_width): Likewise.
13311 * intervals.c (check_for_interval, search_for_interval)
13312 (inc_interval_count, count_intervals, root_interval)
13313 (adjust_intervals_for_insertion, make_new_interval): Likewise.
13314 * lread.c (defalias): Likewise.
13315 * ralloc.c (r_alloc_check): Likewise.
13316 * regex.c (set_image_of_range_1, set_image_of_range)
13317 (regex_grow_registers): Likewise.
13318 * sysdep.c (strerror): Likewise.
13319 * termcap.c (valid_filename_p, tprint, main): Likewise.
13320 * tparam.c (main): Likewise.
13321 * unexhp9k800.c (run_time_remap, save_data_space)
13322 (update_file_ptrs, read_header, write_header, calculate_checksum)
13323 (copy_file, copy_rest, display_header): Likewise.
13324 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
13325 Likewise.
13326 * xdisp.c (check_it): Likewise.
13327 * xfaces.c (register_color, unregister_color, unregister_colors):
13328 Likewise.
13329 * xfns.c (print_fontset_result): Likewise.
13330 * xrdb.c (member, fatal, main): Likewise.
13331
13332 2011-07-10 Paul Eggert <eggert@cs.ucla.edu>
13333
13334 Fix minor problems found by static checking (Bug#9031).
13335 * chartab.c (char_table_set_range, map_sub_char_table):
13336 Remove unused locals.
13337 (uniprop_table): Now static.
13338 * composite.c (_work_char): Remove unused static var.
13339
13340 2011-07-09 Juanma Barranquero <lekktu@gmail.com>
13341
13342 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
13343
13344 2011-07-09 Jan Djärv <jan.h.d@swipnet.se>
13345
13346 * gtkutil.c (qttip_cb): Remove code without function.
13347
13348 2011-07-09 Eli Zaretskii <eliz@gnu.org>
13349
13350 * w32.c (pthread_sigmask): New stub.
13351
13352 2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
13353
13354 Use pthread_sigmask, not sigprocmask (Bug#9010).
13355 sigprocmask is portable only for single-threaded applications, and
13356 Emacs can be multi-threaded when it uses GTK.
13357 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
13358 (LIBES): Use it.
13359 * callproc.c (Fcall_process):
13360 * process.c (create_process):
13361 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
13362 Use pthread_sigmask, not sigprocmask.
13363
13364 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13365
13366 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
13367 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
13368 wrong (Bug#8591).
13369
13370 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13371
13372 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
13373 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
13374 (xg_hide_tooltip): Fix comment.
13375
13376 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
13377 in registerServicesMenuSendTypes.
13378 (validRequestorForSendType): Don't check ns_return_types.
13379
13380 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
13381 ns_return_type.
13382
13383 2011-07-08 Jason Rumney <jasonr@gnu.org>
13384
13385 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
13386 SH_SHOW for hidden windows (Bug#5482).
13387
13388 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
13389 frame struct members of non-existent frames (Bug#6284).
13390
13391 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13392
13393 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
13394 variable firstTime not needed on OSX >= 10.6.
13395 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
13396 >= 10.5. Use setKnobProportion, setDoubleValue.
13397
13398 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
13399 (MAC_OS_X_VERSION_10_5): Define if not defined.
13400 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
13401 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
13402 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
13403
13404 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
13405 cString and lossyCString on OSX >= 10.4.
13406
13407 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
13408 sizeToFit on OSX >= 10.2.
13409
13410 * nsimage.m (allocInitFromFile): Don't use deprecated method
13411 bestRepresentationForDevice on OSX >= 10.6.
13412
13413 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
13414 to avoid warning.
13415
13416 * emacs.c: Declare unexec_init_emacs_zone.
13417
13418 * nsgui.h: Fix compiler warning about gnulib redefining verify.
13419
13420 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
13421
13422 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
13423 on svcsMenu (Bug#8842).
13424
13425 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
13426 ns_return_types.
13427 (Fns_list_services): Just return Qnil on 10.6, code not working there.
13428
13429 * nsterm.m (QUTF8_STRING): Declare.
13430 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
13431 (validRequestorForSendType): Return type is (id).
13432 Change indexOfObjectIdenticalTo to indexOfObject.
13433 Check if we have local selection before returning self (Bug#8842).
13434 (writeSelectionToPasteboard): Put local selection into paste board
13435 if we have a local selection (Bug#8842).
13436 (syms_of_nsterm): DEFSYM QUTF8_STRING.
13437
13438 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
13439 (ns_get_local_selection): Declare.
13440
13441 2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
13442
13443 * keymap.c (describe_map_tree): Don't insert a double newline at
13444 the end of the buffer (bug#1169) and return whether we inserted
13445 something.
13446
13447 * callint.c (Fcall_interactively): Change "reading args" to
13448 "providing args" to try to clarify what it does (bug#1010).
13449
13450 2011-07-07 Kenichi Handa <handa@m17n.org>
13451
13452 * composite.c (composition_compute_stop_pos): Ignore a static
13453 composition starting before CHARPOS (Bug#8915).
13454
13455 * xdisp.c (handle_composition_prop): Likewise.
13456
13457 2011-07-07 Eli Zaretskii <eliz@gnu.org>
13458
13459 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
13460 (Bug#9015)
13461
13462 2011-07-07 Kenichi Handa <handa@m17n.org>
13463
13464 * character.h (unicode_category_t): New enum type.
13465
13466 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
13467 (Qchar_code_property_table): New variable.
13468 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
13469 (UNIPROP_COMPRESSED_FORM_P): New macros.
13470 (char_table_ascii): Uncompress the compressed values.
13471 (sub_char_table_ref): New arg is_uniprop. Callers changed.
13472 Uncompress the compressed values.
13473 (sub_char_table_ref_and_range): Likewise.
13474 (char_table_ref_and_range): Uncompress the compressed values.
13475 (sub_char_table_set): New arg is_uniprop. Callers changed.
13476 Uncompress the compressed values.
13477 (sub_char_table_set_range): Args changed. Callers changed.
13478 (char_table_set_range): Adjuted for the above change.
13479 (map_sub_char_table): Delete args default_val and parent. Add arg
13480 top. Give decoded values to a Lisp function.
13481 (map_char_table): Adjust for the above change. Give decoded
13482 values to a Lisp function. Gcpro more variables.
13483 (uniprop_table_uncompress)
13484 (uniprop_decode_value_run_length): New functions.
13485 (uniprop_decoder, uniprop_decoder_count): New variables.
13486 (uniprop_get_decoder, uniprop_encode_value_character)
13487 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
13488 New functions.
13489 (uniprop_encoder, uniprop_encoder_count): New variables.
13490 (uniprop_get_encoder, uniprop_table)
13491 (Funicode_property_table_internal, Fget_unicode_property_internal)
13492 (Fput_unicode_property_internal): New functions.
13493 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
13494 Sunicode_property_table_internal, Sget_unicode_property_internal,
13495 and Sput_unicode_property_internal. Defvar_lisp
13496 char-code-property-alist.
13497
13498 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
13499 Vunicode_category_table.
13500
13501 * font.c (font_range): Adjust for the change of
13502 Vunicode_category_table.
13503
13504 2011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
13505
13506 * m/iris4d.h: Remove file, move contents ...
13507 * s/irix6-5.h: ... here.
13508
13509 2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
13510
13511 Remove unportable assumption about struct layout (Bug#8884).
13512 * alloc.c (mark_buffer):
13513 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
13514 (clone_per_buffer_values): Don't assume that
13515 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
13516 This isn't true in general, and it's particularly not true
13517 if Emacs is configured with --with-wide-int.
13518 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
13519 New macros, used in the buffer.c change.
13520
13521 2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
13522
13523 * xsettings.c: Use both GConf and GSettings if both are available.
13524 (store_config_changed_event): Add comment.
13525 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
13526 (store_tool_bar_style_changed): New functions.
13527 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
13528 (struct xsettings): Move font inside HAVE_XFT.
13529 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
13530 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
13531 Move inside HAVE_XFT.
13532 (something_changed_gsettingsCB): Rename from something_changedCB.
13533 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
13534 also.
13535 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
13536 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
13537 (something_changed_gconfCB): Rename from something_changedCB.
13538 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
13539 (parse_settings): Move check for font inside HAVE_XFT.
13540 (read_settings, apply_xft_settings): Add comment.
13541 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
13542 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
13543 call store_font_name_changed.
13544 (xft_settings_event): Add comment.
13545 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
13546 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
13547 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
13548 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
13549 (xsettings_initialize): Call init_gsettings last.
13550 (xsettings_get_system_font, xsettings_get_system_normal_font):
13551 Add comment.
13552
13553 2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
13554
13555 Random fixes. E.g., (random) never returned negative values.
13556 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
13557 subseconds part to the entropy, as that's a bit more random.
13558 Prefer signed to unsigned, since the signedness doesn't matter and
13559 in general we prefer signed. When given a limit, use a
13560 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
13561 latter isn't right if USE_2_TAGS_FOR_INTS.
13562 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
13563 not 0..VALMASK. Don't discard "excess" bits that random () returns.
13564
13565 2011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
13566
13567 * textprop.c (text_property_stickiness):
13568 Obey Vtext_property_default_nonsticky.
13569 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
13570 * w32fns.c (syms_of_w32fns):
13571 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
13572
13573 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
13574
13575 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
13576 This is more efficient than Ffile_directory_p and avoids a minor race.
13577
13578 2011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
13579
13580 * buffer.c (Foverlay_put): Say what the return value is
13581 (bug#7835).
13582
13583 * fileio.c (barf_or_query_if_file_exists): Check first if the file
13584 is a directory before asking whether to use the file name
13585 (bug#7564).
13586 (barf_or_query_if_file_exists): Make the "File is a directory"
13587 error be more correct.
13588
13589 * fns.c (Frequire): Remove the mention of the .gz files, since
13590 that's installation-specific, but keep the mention of
13591 `get-load-suffixes'.
13592
13593 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
13594
13595 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
13596 Report string overflow if the output is too long.
13597
13598 2011-07-04 Juanma Barranquero <lekktu@gmail.com>
13599
13600 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
13601 (syms_of_gnutls): Remove duplicate DEFSYM for
13602 Qgnutls_bootprop_verify_hostname_error, an error for
13603 Qgnutls_bootprop_verify_error (which is no longer used).
13604
13605 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
13606 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
13607 Also (re)move comments that are misplaced or no longer relevant.
13608
13609 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13610
13611 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
13612
13613 2011-07-03 Chong Yidong <cyd@stupidchicken.com>
13614
13615 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
13616 and background color parameters if they have been changed.
13617
13618 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13619
13620 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
13621
13622 2011-07-03 Paul Eggert <eggert@cs.ucla.edu>
13623
13624 * xsettings.c (SYSTEM_FONT): Define only when used.
13625 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
13626
13627 * keymap.c (access_keymap_1): Now static.
13628
13629 2011-07-02 Chong Yidong <cyd@stupidchicken.com>
13630
13631 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
13632 leave any prefix arg for the up event (Bug#1586).
13633
13634 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
13635
13636 * lread.c (syms_of_lread): Mention single symbols defined by
13637 `defvar' or `defconst' (bug#7154).
13638
13639 * fns.c (Frequire): Mention .el.gz files (bug#7314).
13640 (Frequire): Mention get-load-suffixes.
13641
13642 2011-07-02 Martin Rudalics <rudalics@gmx.at>
13643
13644 * window.h (window): Remove clone_number slot.
13645 * window.c (Fwindow_clone_number, Fset_window_clone_number):
13646 Remove.
13647 (make_parent_window, make_window, saved_window)
13648 (Fset_window_configuration, save_window_save): Don't deal with
13649 clone numbers.
13650 * buffer.c (Qclone_number): Remove declaration.
13651 (sort_overlays, overlay_strings): Don't deal with clone numbers.
13652
13653 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
13654
13655 Add multiple inheritance to keymaps.
13656 * keymap.c (Fmake_composed_keymap): New function.
13657 (Fset_keymap_parent): Simplify.
13658 (fix_submap_inheritance): Remove.
13659 (access_keymap_1): New function extracted from access_keymap to handle
13660 embedded parents and handle lists of maps.
13661 (access_keymap): Use it.
13662 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
13663 (Fcopy_keymap): Handle embedded parents.
13664 (Fcommand_remapping, define_as_prefix): Simplify.
13665 (Fkey_binding): Simplify.
13666 (syms_of_keymap): Move minibuffer-local-completion-map,
13667 minibuffer-local-filename-completion-map,
13668 minibuffer-local-must-match-map, and
13669 minibuffer-local-filename-must-match-map to Elisp.
13670 (syms_of_keymap): Defsubr make-composed-keymap.
13671 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
13672 (parse_menu_item): Trivial simplification.
13673
13674 2011-07-01 Glenn Morris <rgm@gnu.org>
13675
13676 * Makefile.in (SETTINGS_LIBS): Fix typo.
13677
13678 2011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
13679
13680 * coding.c (Fencode_coding_string): Record the last coding system
13681 used, as the function doc string says (bug#8738).
13682
13683 2011-07-01 Jan Djärv <jan.h.d@swipnet.se>
13684
13685 * xsettings.c (store_monospaced_changed): Take new font as arg and
13686 check for change against current_mono_font.
13687 (EMACS_TYPE_SETTINGS): Remove this and related defines.
13688 (emacs_settings_constructor, emacs_settings_get_property)
13689 (emacs_settings_set_property, emacs_settings_class_init)
13690 (emacs_settings_init, gsettings_obj): Remove.
13691 (something_changedCB): New function for HAVE_GSETTINGS.
13692 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
13693 with value as argument.
13694 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
13695 g_settings_new (Bug#8967). Do not create gsettings_obj.
13696 Remove calls to g_settings_bind. Connect something_changedCB to
13697 "changed".
13698
13699 * xgselect.c: Add defined (HAVE_GSETTINGS).
13700 (xgselect_initialize): Ditto.
13701
13702 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
13703 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
13704 xg_select.
13705
13706 2011-07-01 Paul Eggert <eggert@cs.ucla.edu>
13707
13708 * eval.c (struct backtrace): Simplify and port the data structure.
13709 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
13710 signed bit field, as this assumption is not portable and it makes
13711 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
13712 "char debug_on_exit : 1" as this is not portable either; instead,
13713 use the portable "unsigned int debug_on_exit : 1". Remove unused
13714 member evalargs. Remove obsolete comments about cc bombing out.
13715
13716 2011-06-30 Jan Djärv <jan.h.d@swipnet.se>
13717
13718 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
13719 Let HAVE_GSETTINGS override HAVE_GCONF.
13720 (store_monospaced_changed): New function.
13721 (EMACS_SETTINGS): A new type derived from GObject to handle
13722 GSettings notifications.
13723 (emacs_settings_constructor, emacs_settings_get_property)
13724 (emacs_settings_set_property, emacs_settings_class_init):
13725 New functions.
13726 (gsettings_client, gsettings_obj): New variables.
13727 (GSETTINGS_SCHEMA): New define.
13728 (something_changedCB): Call store_monospaced_changed.
13729 (init_gsettings): New function.
13730 (xsettings_initialize): Call init_gsettings.
13731 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
13732 to NULL.
13733
13734 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
13735 GCONF_CFLAGS/LIBS.
13736
13737 2011-06-29 Martin Rudalics <rudalics@gmx.at>
13738
13739 * window.c (resize_root_window, grow_mini_window)
13740 (shrink_mini_window): Rename Qresize_root_window to
13741 Qwindow_resize_root_window and Qresize_root_window_vertically to
13742 Qwindow_resize_root_window_vertically.
13743
13744 2011-06-28 Paul Eggert <eggert@cs.ucla.edu>
13745
13746 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
13747
13748 2011-06-27 Juanma Barranquero <lekktu@gmail.com>
13749
13750 * makefile.w32-in: Redesign dependencies so they reflect more
13751 clearly which files are directly included by each source file,
13752 and not through other includes.
13753
13754 2011-06-27 Martin Rudalics <rudalics@gmx.at>
13755
13756 * buffer.c (Qclone_number): Declare static and DEFSYM it.
13757 (sort_overlays, overlay_strings): When an overlay's clone number
13758 matches the window's clone number process the overlay even if
13759 the overlay's window property doesn't match the current window.
13760
13761 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
13762 (Fwindow_hchild): Rename to Fwindow_left_child.
13763 (Fwindow_next): Rename to Fwindow_next_sibling.
13764 (Fwindow_prev): Rename to Fwindow_prev_sibling.
13765 (resize_window_check): Rename to window_resize_check.
13766 (resize_window_apply): Rename to window_resize_apply.
13767 (Fresize_window_apply): Rename to Fwindow_resize_apply.
13768 (Fdelete_other_windows_internal, resize_frame_windows)
13769 (Fsplit_window_internal, Fdelete_window_internal)
13770 (grow_mini_window, shrink_mini_window)
13771 (Fresize_mini_window_internal): Fix callers accordingly.
13772
13773 2011-06-26 Jan Djärv <jan.h.d@swipnet.se>
13774
13775 * emacsgtkfixed.h: State that this is only used with Gtk+3.
13776 (emacs_fixed_set_min_size): Remove.
13777 (emacs_fixed_new): Take frame as argument.
13778
13779 * emacsgtkfixed.c: State that this is only used with Gtk+3.
13780 (_EmacsFixedPrivate): Remove minwidth/height.
13781 Add struct frame *f.
13782 (emacs_fixed_init): Initialize priv->f.
13783 (get_parent_class, emacs_fixed_set_min_size): Remove.
13784 (emacs_fixed_new): Set priv->f to argument.
13785 (emacs_fixed_get_preferred_width)
13786 (emacs_fixed_get_preferred_height): Use min_width/height from
13787 frames size_hint to set minimum and natural (Bug#8919).
13788 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
13789 and use min_width/height from frames size_hint to set
13790 min_width/height (Bug#8919).
13791
13792 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
13793 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
13794 Fix indentation.
13795
13796 2011-06-26 Eli Zaretskii <eliz@gnu.org>
13797
13798 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
13799 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
13800 called at ZV.
13801
13802 2011-06-26 Chong Yidong <cyd@stupidchicken.com>
13803
13804 * process.c (wait_reading_process_output): Bypass select if
13805 waiting for a cell while ignoring keyboard input, and input is
13806 pending. Suggested by Jan Djärv (Bug#8869).
13807
13808 2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
13809
13810 Use gnulib's dup2 module instead of rolling our own.
13811 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
13812
13813 2011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13814
13815 * dispnew.c (scrolling_window): Before scrolling, turn off a
13816 mouse-highlight in the window being scrolled.
13817
13818 2011-06-24 Juanma Barranquero <lekktu@gmail.com>
13819
13820 Move DEFSYM to lisp.h and use everywhere.
13821
13822 * character.h (DEFSYM): Move declaration...
13823 * lisp.h (DEFSYM): ...here.
13824
13825 * gnutls.c:
13826 * minibuf.c:
13827 * w32menu.c:
13828 * w32proc.c:
13829 * w32select.c: Don't include character.h.
13830
13831 * alloc.c (syms_of_alloc):
13832 * buffer.c (syms_of_buffer):
13833 * bytecode.c (syms_of_bytecode):
13834 * callint.c (syms_of_callint):
13835 * casefiddle.c (syms_of_casefiddle):
13836 * casetab.c (init_casetab_once):
13837 * category.c (init_category_once, syms_of_category):
13838 * ccl.c (syms_of_ccl):
13839 * cmds.c (syms_of_cmds):
13840 * composite.c (syms_of_composite):
13841 * dbusbind.c (syms_of_dbusbind):
13842 * dired.c (syms_of_dired):
13843 * dispnew.c (syms_of_display):
13844 * doc.c (syms_of_doc):
13845 * editfns.c (syms_of_editfns):
13846 * emacs.c (syms_of_emacs):
13847 * eval.c (syms_of_eval):
13848 * fileio.c (syms_of_fileio):
13849 * fns.c (syms_of_fns):
13850 * frame.c (syms_of_frame):
13851 * fringe.c (syms_of_fringe):
13852 * insdel.c (syms_of_insdel):
13853 * keymap.c (syms_of_keymap):
13854 * lread.c (init_obarray, syms_of_lread):
13855 * macros.c (syms_of_macros):
13856 * msdos.c (syms_of_msdos):
13857 * print.c (syms_of_print):
13858 * process.c (syms_of_process):
13859 * search.c (syms_of_search):
13860 * sound.c (syms_of_sound):
13861 * syntax.c (init_syntax_once, syms_of_syntax):
13862 * terminal.c (syms_of_terminal):
13863 * textprop.c (syms_of_textprop):
13864 * undo.c (syms_of_undo):
13865 * w32.c (globals_of_w32):
13866 * window.c (syms_of_window):
13867 * xdisp.c (syms_of_xdisp):
13868 * xfaces.c (syms_of_xfaces):
13869 * xfns.c (syms_of_xfns):
13870 * xmenu.c (syms_of_xmenu):
13871 * xsettings.c (syms_of_xsettings):
13872 * xterm.c (syms_of_xterm): Use DEFSYM.
13873
13874 2011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
13875
13876 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
13877
13878 2011-06-23 Paul Eggert <eggert@cs.ucla.edu>
13879
13880 Integer and buffer overflow fixes (Bug#8873).
13881
13882 * print.c (printchar, strout): Check for string overflow.
13883 (PRINTPREPARE, printchar, strout):
13884 Don't set size unless allocation succeeds.
13885
13886 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
13887 for sizes. Check for string overflow more accurately.
13888 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
13889
13890 * macros.c: Integer and buffer overflow fixes.
13891 * keyboard.h (struct keyboard.kbd_macro_bufsize):
13892 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
13893 Use ptrdiff_t, not int, for sizes.
13894 Don't increment bufsize until after realloc succeeds.
13895 Check for size-calculation overflow.
13896 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
13897
13898 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
13899
13900 * lread.c: Integer overflow fixes.
13901 (read_integer): Radix is now EMACS_INT, not int,
13902 to improve quality of diagnostics for out-of-range radices.
13903 Calculate buffer size correctly for out-of-range radices.
13904 (read1): Check for integer overflow in radices, and in
13905 read-circle numbers.
13906 (read_escape): Avoid int overflow.
13907 (Fload, openp, read_buffer_size, read1)
13908 (substitute_object_recurse, read_vector, read_list, map_obarray):
13909 Use ptrdiff_t, not int, for sizes.
13910 (read1): Use EMACS_INT, not int, for sizes.
13911 Check for size overflow.
13912
13913 * image.c (cache_image): Check for size arithmetic overflow.
13914
13915 * lread.c: Integer overflow issues.
13916 (saved_doc_string_size, saved_doc_string_length)
13917 (prev_saved_doc_string_size, prev_saved_doc_string_length):
13918 Now ptrdiff_t, not int.
13919 (read1): Don't assume doc string length fits in int. Check for
13920 out-of-range doc string lengths.
13921 (read_list): Don't assume file position fits in int.
13922 (read_escape): Check for hex character overflow.
13923
13924 2011-06-22 Leo Liu <sdl.web@gmail.com>
13925
13926 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
13927 Move to minibuffer.el.
13928
13929 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
13930
13931 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
13932 The following patches are for when GLYPH_DEBUG && !XASSERT.
13933 * dispextern.h (trace_redisplay_p, dump_glyph_string):
13934 * dispnew.c (flush_stdout):
13935 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
13936 Mark as externally visible.
13937 * dispnew.c (check_window_matrix_pointers): Now static.
13938 * dispnew.c (window_to_frame_vpos):
13939 * xfns.c (unwind_create_frame):
13940 * xterm.c (x_check_font): Remove unused local.
13941 * scroll.c (CHECK_BOUNDS):
13942 * xfaces.c (cache_fache): Rename local to avoid shadowing.
13943 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
13944 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
13945 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
13946 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
13947 Now static.
13948 (debug_method_add): Use va_list and vsprintf rather than relying
13949 on undefined behavior with wrong number of arguments.
13950 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
13951 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
13952 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
13953 since we're not interested in debugging glyphs with old libraries.
13954 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
13955 GCC 4.6.0's static checking.
13956
13957 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
13958
13959 Integer overflow and signedness fixes (Bug#8873).
13960 A few related buffer overrun fixes, too.
13961
13962 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
13963
13964 * dispextern.h (struct face.stipple):
13965 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
13966 (x_bitmap_mask, x_allocate_bitmap_record)
13967 (x_create_bitmap_from_data, x_create_bitmap_from_file)
13968 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
13969 (x_create_bitmap_from_xpm_data):
13970 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
13971 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
13972 (.bitmaps_last):
13973 * xfaces.c (load_pixmap):
13974 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
13975 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
13976 (.bitmaps_last, struct x_output.icon_bitmap):
13977 Use ptrdiff_t, not int, for bitmap indexes.
13978 (x_allocate_bitmap_record): Check for size overflow.
13979 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
13980
13981 Use ptrdiff_t, not int, for overlay counts.
13982 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
13983 * editfns.c (overlays_around, get_pos_property):
13984 * textprop.c (get_char_property_and_overlay):
13985 * xdisp.c (next_overlay_change, note_mouse_highlight):
13986 * xfaces.c (face_at_buffer_position):
13987 * buffer.c (OVERLAY_COUNT_MAX): New macro.
13988 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
13989 (Fnext_overlay_change, Fprevious_overlay_change)
13990 (mouse_face_overlay_overlaps, Foverlays_in):
13991 Use ptrdiff_t, not int, for sizes.
13992 (overlays_at, overlays_in): Check for size-calculation overflow.
13993
13994 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
13995
13996 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
13997 (x_session_initialize): Do not assume string length fits in int.
13998
13999 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
14000 This is unlikely, but can occur if DPI is outlandish.
14001
14002 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
14003 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
14004
14005 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
14006 * xrdb.c (magic_file_p, search_magic_path):
14007 Omit last arg SUFFIX; it was always 0. All callers changed.
14008 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
14009
14010 * xfont.c (xfont_match): Avoid need for strlen.
14011
14012 * xfns.c: Don't assume strlen fits in int.
14013 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
14014
14015 * xdisp.c (message_log_check_duplicate): Return intmax_t,
14016 not unsigned long, as we prefer signed integers. All callers changed.
14017 Detect integer overflow in repeat count.
14018 (message_dolog): Don't assume print length fits in 39 bytes.
14019 (display_mode_element): Don't assume strlen fits in int.
14020
14021 * termcap.c: Don't assume sizes fit in int and never overflow.
14022 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
14023 (gobble_line): Check for size-calculation overflow.
14024
14025 * minibuf.c (Fread_buffer):
14026 * lread.c (intern, intern_c_string):
14027 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
14028 Don't assume string length fits in int.
14029
14030 * keyboard.c (parse_tool_bar_item):
14031 * gtkutil.c (style_changed_cb): Avoid need for strlen.
14032
14033 * font.c: Don't assume string length fits in int.
14034 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
14035 Use ptrdiff_t, not int.
14036 (font_intern_prop): Don't assume string length fits in int.
14037 Don't assume integer property fits in fixnum.
14038 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
14039
14040 * filelock.c: Fix some buffer overrun and integer overflow issues.
14041 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
14042 Reformulate so as not to need the command string.
14043 Invoke gzip -cd rather than gunzip, as it's more portable.
14044 (lock_info_type, lock_file_1, lock_file):
14045 Don't assume pid_t and time_t fit in unsigned long.
14046 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
14047 (current_lock_owner): Prefer signed type for sizes.
14048 Use memcpy, not strncpy, where memcpy is what is really wanted.
14049 Don't assume (via atoi) that time_t and pid_t fit in int.
14050 Check for time_t and/or pid_t out of range, e.g., via a network share.
14051 Don't alloca where an auto var works fine.
14052
14053 * fileio.c: Fix some integer overflow issues.
14054 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
14055 Don't assume string length fits in int.
14056 (directory_file_name): Don't assume string length fits in long.
14057 (make_temp_name): Don't assume pid fits in int, or that its print
14058 length is less than 20.
14059
14060 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
14061
14062 * coding.c (make_subsidiaries): Don't assume string length fits in int.
14063
14064 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
14065
14066 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
14067 We prefer signed integers, even for size calculations.
14068
14069 * emacs.c: Don't assume string length fits in 'int'.
14070 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
14071 (main): Don't invoke strlen when not needed.
14072
14073 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
14074 (XD_DEBUG_MESSAGE): Don't waste a byte.
14075
14076 * callproc.c (getenv_internal_1, getenv_internal)
14077 (Fgetenv_internal):
14078 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
14079
14080 * lread.c (invalid_syntax): Omit length argument.
14081 All uses changed. This doesn't fix a bug, but it simplifies the
14082 code away from its former Hollerith-constant appearance, and it's
14083 one less 'int' to worry about when looking at integer-overflow issues.
14084 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
14085
14086 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
14087 This didn't break anything, but it didn't help either.
14088 It's confusing to put a bogus integer in a place where the actual
14089 value does not matter.
14090 (LIST_END_P): Remove unused macro and its bogus comment.
14091 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
14092
14093 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
14094 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
14095 implementation.
14096 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
14097 We prefer signed types, and the value cannot exceed the EMACS_INT
14098 range anyway (because otherwise the length would not be representable).
14099 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
14100 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
14101 This avoids a GCC warning when WIDE_EMACS_INT.
14102
14103 * indent.c (sane_tab_width): New function.
14104 (current_column, scan_for_column, Findent_to, position_indentation)
14105 (compute_motion): Use it. This is just for clarity.
14106 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
14107
14108 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
14109
14110 * lisp.h (lint_assume): New macro.
14111 * composite.c (composition_gstring_put_cache):
14112 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
14113
14114 * editfns.c, insdel.c:
14115 Omit unnecessary forward decls, to simplify future changes.
14116
14117 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
14118
14119 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
14120
14121 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
14122 Use much-faster test for byte-length change.
14123 Don't assume string byte-length fits in 'int'.
14124 Check that character arg fits in 'int'.
14125 (mapcar1): Declare byte as byte, for clarity.
14126
14127 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
14128
14129 * fns.c (concat): Catch string overflow earlier.
14130 Do not rely on integer wraparound.
14131
14132 * dispextern.h (struct it.overlay_strings_charpos)
14133 (struct it.selective): Now EMACS_INT, not int.
14134 * xdisp.c (forward_to_next_line_start)
14135 (back_to_previous_visible_line_start)
14136 (reseat_at_next_visible_line_start, next_element_from_buffer):
14137 Don't arbitrarily truncate the value of 'selective' to int.
14138
14139 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
14140
14141 * composite.c: Don't truncate sizes to 'int'.
14142 (composition_gstring_p, composition_reseat_it)
14143 (composition_adjust_point): Use EMACS_INT, not int.
14144 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
14145 not EMACS_UINT, for indexes.
14146
14147 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
14148
14149 * buffer.c: Include <verify.h>.
14150 (struct sortvec.priority, struct sortstr.priority):
14151 Now EMACS_INT, not int.
14152 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
14153 (struct sortstr.size, record_overlay_string)
14154 (struct sortstrlist.size, struct sortlist.used):
14155 Don't truncate size to int.
14156 (record_overlay_string): Check for size-calculation overflow.
14157 (init_buffer_once): Check at compile-time, not run-time.
14158
14159 2011-06-22 Jim Meyering <meyering@redhat.com>
14160
14161 Don't leak an XBM-image-sized buffer
14162 * image.c (xbm_load): Free the image buffer after using it.
14163
14164 2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
14165
14166 Port to Sun C.
14167 * composite.c (find_automatic_composition): Omit needless 'return 0;'
14168 that Sun C diagnosed.
14169 * fns.c (secure_hash): Fix pointer signedness issue.
14170 * intervals.c (static_offset_intervals): New function.
14171 (offset_intervals): Use it.
14172
14173 2011-06-21 Leo Liu <sdl.web@gmail.com>
14174
14175 * deps.mk (fns.o):
14176 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
14177 sha512.h.
14178
14179 * fns.c (secure_hash): Rename from crypto_hash_function and change
14180 the first arg to accept symbols.
14181 (Fsecure_hash): New primitive.
14182 (syms_of_fns): New symbols.
14183
14184 2011-06-20 Deniz Dogan <deniz@dogan.se>
14185
14186 * process.c (Fset_process_buffer): Clarify return value in
14187 docstring.
14188
14189 2011-06-18 Chong Yidong <cyd@stupidchicken.com>
14190
14191 * dispnew.c (add_window_display_history): Use BVAR.
14192
14193 * xdisp.c (debug_method_add): Use BVAR.
14194 (check_window_end, dump_glyph_matrix, dump_glyph)
14195 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
14196
14197 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
14198 Likewise.
14199
14200 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
14201 check till after the cache is created in init_frame_faces.
14202
14203 2011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
14204
14205 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
14206
14207 2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
14208
14209 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
14210 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
14211 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
14212
14213 Improve buffer-overflow checking (Bug#8873).
14214 * fileio.c (Finsert_file_contents):
14215 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
14216 Remove the old (too-loose) buffer overflow checks.
14217 They weren't needed, since make_gap checks for buffer overflow.
14218 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
14219 The old code merely checked for Emacs fixnum overflow, and relied
14220 on undefined (wraparound) behavior. The new code avoids undefined
14221 behavior, and also checks for ptrdiff_t and/or size_t overflow.
14222
14223 * editfns.c (Finsert_char): Don't dump core with very negative counts.
14224 Tune. Don't use wider integers than needed. Don't use alloca.
14225 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
14226
14227 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
14228
14229 * insdel.c, lisp.h (buffer_overflow): New function.
14230 (insert_from_buffer_1, replace_range, replace_range_2):
14231 * insdel.c (make_gap_larger):
14232 * editfns.c (Finsert_char):
14233 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
14234
14235 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
14236
14237 2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
14238
14239 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
14240
14241 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
14242 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
14243
14244 * fileio.c: Don't assume EMACS_INT fits in off_t.
14245 (emacs_lseek): New static function.
14246 (Finsert_file_contents, Fwrite_region): Use it.
14247 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
14248
14249 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
14250
14251 * fns.c: Don't overflow int when computing a list length.
14252 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
14253 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
14254 truncation on 64-bit hosts. Check for QUIT every
14255 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
14256 faster and is responsive enough.
14257 (Flength): Report an error instead of overflowing an integer.
14258 (Fsafe_length): Return a float if the value is not representable
14259 as a fixnum. This shouldn't happen except in contrived situations.
14260 (Fnthcdr, Fsort): Don't assume list length fits in int.
14261 (Fcopy_sequence): Don't assume vector length fits in int.
14262
14263 * alloc.c: Check that resized vectors' lengths fit in fixnums.
14264 (header_size, word_size): New constants.
14265 (allocate_vectorlike): Don't check size overflow here.
14266 (allocate_vector): Check it here instead, since this is the only
14267 caller of allocate_vectorlike that could cause overflow.
14268 Check that the new vector's length is representable as a fixnum.
14269
14270 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
14271 The previous code was bogus. For example, next_almost_prime (32)
14272 returned 39, which is undesirable as it is a multiple of 3; and
14273 next_almost_prime (24) returned 25, which is a multiple of 5 so
14274 why was the code bothering to check for multiples of 7?
14275
14276 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
14277
14278 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
14279
14280 Variadic C functions now count arguments with ptrdiff_t.
14281 This partly undoes my 2011-03-30 change, which replaced int with size_t.
14282 Back then I didn't know that the Emacs coding style prefers signed int.
14283 Also, in the meantime I found a few more instances where arguments
14284 were being counted with int, which may truncate counts on 64-bit
14285 machines, or EMACS_INT, which may be unnecessarily wide.
14286 * lisp.h (struct Lisp_Subr.function.aMANY)
14287 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
14288 Arg counts are now ptrdiff_t, not size_t.
14289 All variadic functions and their callers changed accordingly.
14290 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
14291 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
14292 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
14293 * callint.c (Fcall_interactively): Check arg count for overflow,
14294 to avoid potential buffer overrun. Use signed char, not 'int',
14295 for 'varies' array, so that we needn't bother to check its size
14296 calculation for overflow.
14297 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
14298 * eval.c (apply_lambda):
14299 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
14300 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
14301 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
14302
14303 * callint.c (Fcall_interactively): Don't use index var as event count.
14304
14305 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
14306 * mem-limits.h (SIZE): Remove; no longer used.
14307
14308 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
14309
14310 Remove unnecessary casts.
14311 * xterm.c (x_term_init):
14312 * xfns.c (x_set_border_pixel):
14313 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
14314 These aren't needed now that we assume ANSI C.
14315
14316 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
14317 It's more likely to cause problems (due to unsigned overflow)
14318 than to cure them.
14319
14320 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
14321
14322 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
14323
14324 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
14325
14326 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
14327
14328 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
14329
14330 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
14331
14332 GLYPH_CODE_FACE returns EMACS_INT, not int.
14333 * dispextern.h (merge_faces):
14334 * xfaces.c (merge_faces):
14335 * xdisp.c (get_next_display_element, next_element_from_display_vector):
14336 Don't assume EMACS_INT fits in int.
14337
14338 * character.h (CHAR_VALID_P): Remove unused parameter.
14339 * fontset.c, lisp.h, xdisp.c: All uses changed.
14340
14341 * editfns.c (Ftranslate_region_internal): Omit redundant test.
14342
14343 * fns.c (concat): Minor tuning based on overflow analysis.
14344 This doesn't fix any bugs. Use int to hold character, instead
14345 of constantly refetching from Emacs object. Use XFASTINT, not
14346 XINT, for value known to be a character. Don't bother comparing
14347 a single byte to 0400, as it's always less.
14348
14349 * floatfns.c (Fexpt):
14350 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
14351
14352 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
14353 for characters.
14354
14355 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
14356
14357 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
14358 Without this fix, on a 64-bit host (aset S 0 4294967386) would
14359 incorrectly succeed when S was a string, because 4294967386 was
14360 truncated before it was used.
14361
14362 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
14363 Otherwise, an out-of-range integer could cause undefined behavior
14364 on a 64-bit host.
14365
14366 * composite.c: Use int, not EMACS_INT, for characters.
14367 (fill_gstring_body, composition_compute_stop_pos): Use int, not
14368 EMACS_INT, for values that are known to be in character range.
14369 This doesn't fix any bugs but is the usual style inside Emacs and
14370 may generate better code on 32-bit machines.
14371
14372 Make sure a 64-bit char is never passed to ENCODE_CHAR.
14373 This is for reasons similar to the recent CHAR_STRING fix.
14374 * charset.c (Fencode_char): Check that character arg is actually
14375 a character. Pass an int to ENCODE_CHAR.
14376 * charset.h (ENCODE_CHAR): Verify that the character argument is no
14377 wider than 'int', as a compile-time check to prevent future regressions
14378 in this area.
14379
14380 * character.c (char_string): Remove unnecessary casts.
14381
14382 Make sure a 64-bit char is never passed to CHAR_STRING.
14383 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
14384 by silently ignoring the top 32 bits, allowing some values
14385 that were far too large to be valid characters.
14386 * character.h: Include <verify.h>.
14387 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
14388 arguments are no wider than unsigned, as a compile-time check
14389 to prevent future regressions in this area.
14390 * data.c (Faset):
14391 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
14392 (Fsubst_char_in_region):
14393 * fns.c (concat):
14394 * xdisp.c (decode_mode_spec_coding):
14395 Adjust to CHAR_STRING's new requirement.
14396 * editfns.c (Finsert_char, Fsubst_char_in_region):
14397 * fns.c (concat): Check that character args are actually
14398 characters. Without this test, these functions did the wrong
14399 thing with wildly out-of-range values on 64-bit hosts.
14400
14401 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
14402 These casts should not be needed on 32-bit hosts, either.
14403 * keyboard.c (read_char):
14404 * lread.c (Fload): Remove casts to unsigned.
14405
14406 * lisp.h (UNSIGNED_CMP): New macro.
14407 This fixes comparison bugs on 64-bit hosts.
14408 (ASCII_CHAR_P): Use it.
14409 * casefiddle.c (casify_object):
14410 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
14411 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
14412 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
14413 * dispextern.h (FACE_FROM_ID):
14414 * keyboard.c (read_char): Use UNSIGNED_CMP.
14415
14416 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
14417 not to EMACS_INT, to avoid GCC warning.
14418
14419 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
14420
14421 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
14422 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
14423 isn't needed on 32-bit machines.
14424
14425 * buffer.c (Fgenerate_new_buffer_name):
14426 Use EMACS_INT for count, not int.
14427 (advance_to_char_boundary): Return EMACS_INT, not int.
14428
14429 * data.c (Qcompiled_function): Now static.
14430
14431 * window.c (window_body_lines): Now static.
14432
14433 * image.c (gif_load): Rename local to avoid shadowing.
14434
14435 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
14436 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
14437 * alloc.c (make_save_value): Integer argument is now of type
14438 ptrdiff_t, not int.
14439 (mark_object): Use ptrdiff_t, not int.
14440 * lisp.h (pD): New macro.
14441 * print.c (print_object): Use it.
14442
14443 * alloc.c: Use EMACS_INT, not int, to count objects.
14444 (total_conses, total_markers, total_symbols, total_vector_size)
14445 (total_free_conses, total_free_markers, total_free_symbols)
14446 (total_free_floats, total_floats, total_free_intervals)
14447 (total_intervals, total_strings, total_free_strings):
14448 Now EMACS_INT, not int. All uses changed.
14449 (Fgarbage_collect): Compute overall total using a double, so that
14450 integer overflow is less likely to be a problem. Check for overflow
14451 when converting back to an integer.
14452 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
14453 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
14454 These were 'int' variables that could overflow on 64-bit hosts;
14455 they were never used, so remove them instead of repairing them.
14456 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
14457 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
14458 Previously, this ceilinged at INT_MAX, but that doesn't work on
14459 64-bit machines.
14460 (allocate_pseudovector): Don't use EMACS_INT when int would do.
14461
14462 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
14463 (allocate_vectorlike): Check for ptrdiff_t overflow.
14464 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
14465 when a (possibly-narrower) signed value would do just as well.
14466 We prefer using signed arithmetic, to avoid comparison confusion.
14467
14468 * alloc.c: Catch some string size overflows that we were missing.
14469 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
14470 for convenience in STRING_BYTES_MAX.
14471 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
14472 The definition here is exact; the one in lisp.h was approximate.
14473 (allocate_string_data): Check for string overflow. This catches
14474 some instances we weren't catching before. Also, it catches
14475 size_t overflow on (unusual) hosts where SIZE_MAX <= min
14476 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
14477 and ptrdiff_t and EMACS_INT are both 64 bits.
14478
14479 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
14480 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
14481 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
14482
14483 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
14484
14485 * alloc.c (Fmake_string): Check for out-of-range init.
14486
14487 2011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
14488
14489 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
14490
14491 2011-06-14 Jan Djärv <jan.h.d@swipnet.se>
14492
14493 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
14494 xg_get_default_scrollbar_width.
14495
14496 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
14497 (int_gtk_range_get_value): Move to the scroll bar part of the file.
14498 (style_changed_cb): Call update_theme_scrollbar_width and call
14499 x_set_scroll_bar_default_width and xg_frame_set_char_size for
14500 all frames (Bug#8505).
14501 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
14502 Call gtk_window_set_resizable if HAVE_GTK3.
14503 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
14504 and height if HAVE_GTK3 (Bug#8505).
14505 (scroll_bar_width_for_theme): New variable.
14506 (update_theme_scrollbar_width): New function.
14507 (xg_get_default_scrollbar_width): Move code to
14508 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
14509 (xg_initialize): Call update_theme_scrollbar_width.
14510
14511 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
14512
14513 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
14514
14515 2011-06-12 Martin Rudalics <rudalics@gmx.at>
14516
14517 * frame.c (make_frame): Call other_buffer_safely instead of
14518 other_buffer.
14519
14520 * window.c (temp_output_buffer_show): Call display_buffer with
14521 second argument Vtemp_buffer_show_specifiers and reset latter
14522 immediately after the call.
14523 (Vtemp_buffer_show_specifiers): New variable.
14524 (auto_window_vscroll_p, next_screen_context_lines)
14525 (Vscroll_preserve_screen_position): Remove leading asterisks from
14526 doc-strings.
14527
14528 2011-06-12 Paul Eggert <eggert@cs.ucla.edu>
14529
14530 Fix minor problems found by GCC 4.6.0 static checking.
14531 * buffer.c (Qclone_number): Remove for now, as it's unused.
14532 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
14533 (record_buffer): Remove unused local.
14534 * frame.c (other_visible_frames, frame_buffer_list): Now static.
14535 (set_frame_buffer_list): Remove; unused.
14536 * frame.h (other_visible_frames): Remove decl.
14537 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
14538 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
14539 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
14540 if HAVE_GPM.
14541 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
14542 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
14543 Define only if HAVE_GPM.
14544 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
14545 (update_hints_inhibit): Remove; never set. All uses removed.
14546 * widgetprv.h (emacsFrameClassRec): Remove decl.
14547 * window.c (delete_deletable_window): Now returns void, since it
14548 wasn't returning anything.
14549 (compare_window_configurations): Remove unused locals.
14550 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
14551 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
14552 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
14553 the same widths as pointers. This follows up on the 2011-05-06 patch.
14554 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
14555 * xterm.h: Likewise.
14556 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
14557
14558 2011-06-12 Juanma Barranquero <lekktu@gmail.com>
14559
14560 * makefile.w32-in: Update dependencies.
14561 (LISP_H): Add lib/intprops.h.
14562
14563 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
14564
14565 * image.c (gif_load): Add animation frame delay to the metadata.
14566 (syms_of_image): Use DEFSYM. New symbol `delay'.
14567
14568 2011-06-11 Martin Rudalics <rudalics@gmx.at>
14569
14570 * window.c (delete_deletable_window): Re-add.
14571 (Fset_window_configuration): Rewrite to handle dead buffers and
14572 consequently deletable windows.
14573 (window_tree, Fwindow_tree): Remove. Supply functionality in
14574 window.el.
14575 (compare_window_configurations): Simplify code.
14576
14577 2011-06-11 Andreas Schwab <schwab@linux-m68k.org>
14578
14579 * image.c (imagemagick_load_image): Fix type mismatch.
14580 (Fimagemagick_types): Likewise.
14581
14582 * window.h (replace_buffer_in_windows): Declare.
14583
14584 2011-06-11 Martin Rudalics <rudalics@gmx.at>
14585
14586 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
14587 Qclone_number. Remove external declaration of Qdelete_window.
14588 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
14589 code.
14590 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
14591 Run Qbuffer_list_update_hook if allowed.
14592 (Fother_buffer): Rewrite doc-string. Major rewrite for new
14593 buffer list implementation.
14594 (other_buffer_safely): New function.
14595 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
14596 calls to replace_buffer_in_windows and
14597 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
14598 if allowed.
14599 (record_buffer): Inhibit quitting and rewrite using quittable
14600 functions. Run Qbuffer_list_update_hook if allowed.
14601 (Frecord_buffer, Funrecord_buffer): New functions.
14602 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
14603 Move switch-to-buffer to window.el.
14604 (bury-buffer): Move to window.el.
14605 (Vbuffer_list_update_hook): New variable.
14606
14607 * lisp.h (other_buffer_safely): Add prototype in buffer.c
14608 section.
14609
14610 * window.h (resize_frame_windows): Move up in code.
14611 (Fwindow_frame): Remove EXFUN.
14612 (replace_buffer_in_all_windows): Remove prototype.
14613 (replace_buffer_in_windows_safely): Add prototype.
14614
14615 * window.c: Declare Qdelete_window static again. Move down
14616 declaration of select_count.
14617 (Fnext_window, Fprevious_window): Rewrite doc-strings.
14618 (Fother_window): Move to window.el.
14619 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
14620 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
14621 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
14622 window.el.
14623 (replace_buffer_in_windows): Implement by calling
14624 Qreplace_buffer_in_windows.
14625 (replace_buffer_in_all_windows): Remove with some functionality
14626 moved into replace_buffer_in_windows_safely.
14627 (replace_buffer_in_windows_safely): New function.
14628 (select_window_norecord, select_frame_norecord): Move in front
14629 of run_window_configuration_change_hook. Remove now obsolete
14630 declarations.
14631 (Fset_window_buffer): Rewrite doc-string.
14632 Call Qrecord_window_buffer.
14633 (keys_of_window): Move binding for other-window to window.el.
14634
14635 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
14636
14637 * dispextern.h (struct image): Replace data member, whose int_val
14638 and ptr_val fields were not used by anything, with a single
14639 lisp_val object.
14640
14641 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
14642 (gif_clear_image, gif_load, imagemagick_load_image)
14643 (gs_clear_image, gs_load): Callers changed.
14644
14645 2011-06-10 Paul Eggert <eggert@cs.ucla.edu>
14646
14647 * buffer.h: Include <time.h>, for time_t.
14648 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
14649
14650 Fix minor problems found by static checking.
14651
14652 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
14653
14654 Make identifiers static if they are not used in other modules.
14655 * data.c (Qcompiled_function, Qframe, Qvector):
14656 * image.c (QimageMagick, Qsvg):
14657 * minibuf.c (Qmetadata):
14658 * window.c (resize_window_check, resize_root_window): Now static.
14659 * window.h (resize_window_check, resize_root_window): Remove decls.
14660
14661 * window.c (window_deletion_count, delete_deletable_window):
14662 Remove; unused.
14663 (window_body_lines): Now static.
14664 (Fdelete_other_windows_internal): Mark vars as initialized.
14665 Make sure 'resize_failed' is initialized.
14666 (run_window_configuration_change_hook): Rename local to avoid shadowing.
14667 (resize_window_apply): Remove unused local.
14668 * window.h (delete_deletable_window): Remove decl.
14669
14670 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
14671 (imagemagick_load_image): Fix pointer signedness problem by changing
14672 last arg from unsigned char * to char *. All uses changed.
14673 Also, fix a local for similar reasons.
14674 Remove unused locals. Remove locals to avoid shadowing.
14675 (fn_rsvg_handle_free): Remove; unused.
14676 (svg_load, svg_load_image): Fix pointer signedness problem.
14677 (imagemagick_load_image): Don't use garbage pointer image_wand.
14678
14679 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
14680
14681 2011-06-10 Chong Yidong <cyd@stupidchicken.com>
14682
14683 * image.c (gif_load): Fix omitted cast error introduced by
14684 2011-06-06 change.
14685
14686 2011-06-10 Martin Rudalics <rudalics@gmx.at>
14687
14688 * window.h (resize_proportionally, orig_total_lines)
14689 (orig_top_line): Remove from window structure.
14690 (set_window_height, set_window_width, change_window_heights)
14691 (Fdelete_window): Remove prototypes.
14692 (resize_frame_windows): Remove duplicate declaration.
14693
14694 2011-06-10 Eli Zaretskii <eliz@gnu.org>
14695
14696 * window.h (resize_frame_windows, resize_window_check)
14697 (delete_deletable_window, resize_root_window)
14698 (resize_frame_windows): Declare prototypes.
14699
14700 * window.c (resize_window_apply): Make definition be "static" to
14701 match the prototype.
14702
14703 2011-06-10 Martin Rudalics <rudalics@gmx.at>
14704
14705 * window.c: Remove declarations of Qwindow_size_fixed,
14706 window_min_size_1, window_min_size_2, window_min_size,
14707 size_window, window_fixed_size_p, enlarge_window, delete_window.
14708 Remove static from declaration of Qdelete_window, it's
14709 temporarily needed by Fbury_buffer.
14710 (replace_window): Don't assign orig_top_line and
14711 orig_total_lines.
14712 (Fdelete_window, delete_window): Remove. Window deletion is
14713 handled by window.el.
14714 (window_loop): Remove DELETE_OTHER_WINDOWS case.
14715 Replace Fdelete_window calls with calls to Qdelete_window.
14716 (Fdelete_other_windows): Remove. Deleting other windows is
14717 handled by window.el.
14718 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
14719 handled in window.el.
14720 (window_min_size_2, window_min_size_1, window_min_size): Remove.
14721 Window minimum sizes are handled in window.el.
14722 (shrink_windows, size_window, set_window_height)
14723 (set_window_width, change_window_heights, window_height)
14724 (window_width, CURBEG, CURSIZE, enlarge_window)
14725 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
14726 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
14727 handled in window.el.
14728 (make_dummy_parent): Rename to make_parent_window and give it a
14729 second argument horflag.
14730 (make_window): Don't set resize_proportionally any more.
14731 (Fsplit_window): Remove. Windows are split in window.el.
14732 (save_restore_action, save_restore_orig_size)
14733 (shrink_window_lowest_first, save_restore_orig_size): Remove.
14734 Resize mini windows in window.el.
14735 (grow_mini_window, shrink_mini_window): Implement by calling
14736 Qresize_root_window_vertically, resize_window_check and
14737 resize_window_apply.
14738 (saved_window, Fset_window_configuration, save_window_save):
14739 Do not handle orig_top_line, orig_total_lines, and
14740 resize_proportionally.
14741 (window_min_height, window_min_width): Move to window.el.
14742 (keys_of_window): Move bindings for delete-other-windows,
14743 split-window, delete-window and enlarge-window to window.el.
14744
14745 * buffer.c: Temporarily extern Qdelete_window.
14746 (Fbury_buffer): Temporarily call Qdelete_window instead of
14747 Fdelete_window (Fbury_buffer will move to window.el soon).
14748
14749 * frame.c (set_menu_bar_lines_1): Remove code handling
14750 orig_top_line and orig_total_lines.
14751
14752 * dispnew.c (adjust_frame_glyphs_initially): Don't use
14753 set_window_height but set heights directly.
14754 (change_frame_size_1): Use resize_frame_windows.
14755
14756 * xdisp.c (init_xdisp): Don't use set_window_height but set
14757 heights directly.
14758
14759 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
14760 Use resize_frame_windows instead of change_window_heights and run
14761 run_window_configuration_change_hook.
14762
14763 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
14764 instead of change_window_heights and run
14765 run_window_configuration_change_hook.
14766
14767 2011-06-09 Martin Rudalics <rudalics@gmx.at>
14768
14769 * window.c (replace_window): Rename second argument REPLACEMENT to
14770 NEW. New third argument SETFLAG. Rewrite.
14771 (delete_window, make_dummy_parent): Call replace_window with
14772 third argument 1.
14773 (window_list_1): Move down in code.
14774 (run_window_configuration_change_hook): Move set_buffer part
14775 before select_frame_norecord part in order to unwind correctly.
14776 Rename count1 to count.
14777 (recombine_windows, delete_deletable_window, resize_root_window)
14778 (Fdelete_other_windows_internal)
14779 (Frun_window_configuration_change_hook, make_parent_window)
14780 (resize_window_check, resize_window_apply, Fresize_window_apply)
14781 (resize_frame_windows, Fsplit_window_internal)
14782 (Fdelete_window_internal, Fresize_mini_window_internal):
14783 New functions.
14784 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
14785
14786 2011-06-08 Martin Rudalics <rudalics@gmx.at>
14787
14788 * window.h (window): Add some new members to window structure -
14789 normal_lines, normal_cols, new_total, new_normal, clone_number,
14790 splits, nest, prev_buffers, next_buffers.
14791 (WINDOW_TOTAL_SIZE): Move here from window.c.
14792 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
14793
14794 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
14795 Remove.
14796 (make_dummy_parent): Set new members of windows structure.
14797 (make_window): Move down in code. Handle new members of window
14798 structure.
14799 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
14800 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
14801 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
14802 (Fset_window_prev_buffers, Fwindow_next_buffers)
14803 (Fset_window_next_buffers, Fset_window_clone_number):
14804 New functions.
14805 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
14806 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
14807 Doc-string fixes.
14808 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
14809 Argument WINDOW can be now internal window too.
14810 (Fwindow_use_time): Move up in code.
14811 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
14812 Rewrite doc-string.
14813 (Fset_window_configuration, saved_window)
14814 (Fcurrent_window_configuration, save_window_save): Handle new
14815 members of window structure.
14816 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
14817 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
14818 (syms_of_window): New Lisp objects Qrecord_window_buffer,
14819 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
14820 Qget_mru_window, Qresize_root_window,
14821 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
14822 Qauto_buffer_name; staticpro them.
14823
14824 2011-06-07 Martin Rudalics <rudalics@gmx.at>
14825
14826 * window.c (Fwindow_total_size, Fwindow_left_column)
14827 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
14828 (Fwindow_list_1): New functions.
14829 (window_box_text_cols): Replace with window_body_cols.
14830 (Fwindow_width, Fscroll_left, Fscroll_right):
14831 Use window_body_cols instead of window_box_text_cols.
14832 (delete_window, Fset_window_configuration):
14833 Call delete_all_subwindows with window as argument.
14834 (delete_all_subwindows): Take a window as argument and not a
14835 structure. Rewrite.
14836 (window_loop): Remove handling of GET_LRU_WINDOW and
14837 GET_LARGEST_WINDOW.
14838 (Fget_lru_window, Fget_largest_window): Move to window.el.
14839
14840 * window.h: Extern window_body_cols instead of
14841 window_box_text_cols. delete_all_subwindows now takes a
14842 Lisp_Object as argument.
14843
14844 * indent.c (compute_motion, Fcompute_motion):
14845 Use window_body_cols instead of window_box_text_cols.
14846
14847 * frame.c (delete_frame): Call delete_all_subwindows with root
14848 window as argument.
14849
14850 2011-06-07 Daniel Colascione <dan.colascione@gmail.com>
14851
14852 * fns.c (Fputhash): Document return value.
14853
14854 2011-06-06 Chong Yidong <cyd@stupidchicken.com>
14855
14856 * image.c (gif_load): Implement gif89a spec "no disposal" method.
14857
14858 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
14859
14860 Cons<->int and similar integer overflow fixes (Bug#8794).
14861
14862 Check for overflow when converting integer to cons and back.
14863 * charset.c (Fdefine_charset_internal, Fdecode_char):
14864 Use cons_to_unsigned to catch overflow.
14865 (Fencode_char): Use INTEGER_TO_CONS.
14866 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
14867 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
14868 * data.c (long_to_cons, cons_to_long): Remove.
14869 (cons_to_unsigned, cons_to_signed): New functions.
14870 These signal an error for invalid or out-of-range values.
14871 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
14872 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
14873 * font.c (Ffont_variation_glyphs):
14874 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
14875 * lisp.h: Include <intprops.h>.
14876 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
14877 (cons_to_signed, cons_to_unsigned): New decls.
14878 (long_to_cons, cons_to_long): Remove decls.
14879 * undo.c (record_first_change): Use INTEGER_TO_CONS.
14880 (Fprimitive_undo): Use CONS_TO_INTEGER.
14881 * xfns.c (Fx_window_property): Likewise.
14882 * xselect.c: Include <limits.h>.
14883 (x_own_selection, selection_data_to_lisp_data):
14884 Use INTEGER_TO_CONS.
14885 (x_handle_selection_request, x_handle_selection_clear)
14886 (x_get_foreign_selection, Fx_disown_selection_internal)
14887 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
14888 (lisp_data_to_selection_data): Use cons_to_unsigned.
14889 (x_fill_property_data): Use cons_to_signed.
14890 Report values out of range.
14891
14892 Check for buffer and string overflow more precisely.
14893 * buffer.h (BUF_BYTES_MAX): New macro.
14894 * lisp.h (STRING_BYTES_MAX): New macro.
14895 * alloc.c (Fmake_string):
14896 * character.c (string_escape_byte8):
14897 * coding.c (coding_alloc_by_realloc):
14898 * doprnt.c (doprnt):
14899 * editfns.c (Fformat):
14900 * eval.c (verror):
14901 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
14902 since they may not be the same number.
14903 * editfns.c (Finsert_char):
14904 * fileio.c (Finsert_file_contents):
14905 Likewise for BUF_BYTES_MAX.
14906
14907 * image.c: Use ptrdiff_t, not int, for sizes.
14908 (slurp_file): Switch from int to ptrdiff_t.
14909 All uses changed.
14910 (slurp_file): Check that file size fits in both size_t (for
14911 malloc) and ptrdiff_t (for sanity and safety).
14912
14913 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
14914 if b->modtime has its maximal value.
14915
14916 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
14917
14918 Don't assume time_t can fit into int.
14919 * buffer.h (struct buffer.modtime): Now time_t, not int.
14920 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
14921 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
14922
14923 Minor fixes for signed vs unsigned integers.
14924 * character.h (MAYBE_UNIFY_CHAR):
14925 * charset.c (maybe_unify_char):
14926 * keyboard.c (read_char, reorder_modifiers):
14927 XINT -> XFASTINT, since the integer must be nonnegative.
14928 * ftfont.c (ftfont_spec_pattern):
14929 * keymap.c (access_keymap, silly_event_symbol_error):
14930 XUINT -> XFASTINT, since the integer must be nonnegative.
14931 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
14932 since it makes no difference and we prefer signed.
14933 * keyboard.c (record_char): Use XUINT when all the neighbors do.
14934 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
14935 nonnegative.
14936
14937 2011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
14938
14939 * window.h (Fwindow_frame): Declare.
14940
14941 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
14942
14943 * alloc.c: Simplify handling of large-request failures (Bug#8800).
14944 (SPARE_MEMORY): Always define.
14945 (LARGE_REQUEST): Remove.
14946 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
14947
14948 2011-06-06 Martin Rudalics <rudalics@gmx.at>
14949
14950 * lisp.h: Move EXFUNS for Fframe_root_window,
14951 Fframe_first_window and Fset_frame_selected_window to window.h.
14952
14953 * window.h: Move EXFUNS for Fframe_root_window,
14954 Fframe_first_window and Fset_frame_selected_window here from
14955 lisp.h.
14956
14957 * frame.c (Fwindow_frame, Fframe_first_window)
14958 (Fframe_root_window, Fframe_selected_window)
14959 (Fset_frame_selected_window): Move to window.c.
14960 (Factive_minibuffer_window): Move to minibuf.c.
14961 (Fother_visible_frames_p): New function.
14962
14963 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
14964
14965 * window.c (decode_window, decode_any_window): Move up in code.
14966 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
14967 (inhibit_frame_unsplittable): Remove unused variable.
14968 (Fwindow_buffer): Move up and rewrite doc-string.
14969 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
14970 (Fwindow_prev): New functions.
14971 (Fwindow_frame): Move here from frame.c. Accept any window as
14972 argument.
14973 (Fframe_root_window, Fframe_first_window)
14974 (Fframe_selected_window): Move here from frame.c. Accept frame
14975 or arbitrary window as argument. Update doc-strings.
14976 (Fminibuffer_window): Move up in code.
14977 (Fwindow_minibuffer_p): Move up in code and simplify.
14978 (Fset_frame_selected_window): Move here from frame.c.
14979 Marginal rewrite.
14980 (Fselected_window, select_window, Fselect_window): Move up in
14981 code. Minor doc-string fixes.
14982
14983 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
14984
14985 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
14986 Do not assume that spare memory exists; that assumption is valid
14987 only if SYSTEM_MALLOC.
14988 (LARGE_REQUEST): New macro, so that the issue of large requests
14989 is separated from the issue of spare memory.
14990
14991 2011-06-05 Andreas Schwab <schwab@linux-m68k.org>
14992
14993 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
14994 format. (Bug#8806)
14995
14996 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
14997
14998 * xfns.c (x_set_scroll_bar_default_width): Move declarations
14999 before statements.
15000
15001 2011-06-05 Jan Djärv <jan.h.d@swipnet.se>
15002
15003 * gtkutil.c (xg_get_default_scrollbar_width): New function.
15004
15005 * gtkutil.h: Declare xg_get_default_scrollbar_width.
15006
15007 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
15008 min width by calling x_set_scroll_bar_default_width (Bug#8505).
15009
15010 2011-06-05 Juanma Barranquero <lekktu@gmail.com>
15011
15012 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
15013
15014 2011-06-04 Chong Yidong <cyd@stupidchicken.com>
15015
15016 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
15017 (x_clipboard_manager_save): Add return value.
15018 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
15019 New error handlers.
15020 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
15021 Obey Vx_select_enable_clipboard_manager. Catch errors in
15022 x_clipboard_manager_save (Bug#8779).
15023 (Vx_select_enable_clipboard_manager): New variable.
15024 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
15025
15026 2011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
15027
15028 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
15029
15030 2011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15031
15032 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
15033 in the current matrix if keep_current_p is non-zero.
15034
15035 2011-06-04 Eli Zaretskii <eliz@gnu.org>
15036
15037 * bidi.c (bidi_level_of_next_char): Fix last change.
15038
15039 2011-06-03 Eli Zaretskii <eliz@gnu.org>
15040
15041 Support bidi reordering of text covered by display properties.
15042
15043 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
15044 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
15045 (bidi_cache_search, bidi_cache_iterator_state)
15046 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
15047 (bidi_level_of_next_char, bidi_move_to_visually_next):
15048 Support character positions inside a run of characters covered by a
15049 display string.
15050 (bidi_paragraph_init, bidi_resolve_explicit_1)
15051 (bidi_level_of_next_char): Call bidi_fetch_char and
15052 bidi_fetch_char_advance instead of FETCH_CHAR and
15053 FETCH_CHAR_ADVANCE.
15054 (bidi_init_it): Initialize new members.
15055 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
15056 definitions.
15057 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
15058 instead of using explicit *_CHAR codes.
15059 (bidi_resolve_explicit, bidi_resolve_weak):
15060 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
15061 bidirectional text is supported only in multibyte buffers.
15062 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
15063 it to initialize the frame_window_p member of struct bidi_it.
15064 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
15065 (bidi_resolve_explicit, bidi_resolve_weak)
15066 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
15067 bidi_it->nchars is non-positive.
15068 (bidi_level_of_next_char): Don't try to lookup the cache for the
15069 next/previous character if nothing is cached there yet, or if we
15070 were just reseat()'ed to a new position.
15071
15072 * xdisp.c (set_cursor_from_row): Set start and stop points
15073 according to the row's direction when priming the loop that looks
15074 for the glyph on which to display cursor.
15075 (single_display_spec_intangible_p): Function deleted.
15076 (display_prop_intangible_p): Reimplement to call
15077 handle_display_spec instead of single_display_spec_intangible_p.
15078 Accept 3 additional arguments needed by handle_display_spec.
15079 This fixes incorrect cursor motion across display property with complex
15080 values: lists, `(when COND...)' forms, etc.
15081 (single_display_spec_string_p): Support property values that are
15082 lists with the argument STRING its top-level element.
15083 (display_prop_string_p): Fix the condition for processing a
15084 property that is a list to be consistent with handle_display_spec.
15085 (handle_display_spec): New function, refactored from the
15086 last portion of handle_display_prop.
15087 (compute_display_string_pos): Accept additional argument
15088 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
15089 value of a `display' property is a "replacing spec".
15090 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
15091 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
15092 the display property, but just return a value indicating whether
15093 the display property will replace the characters it covers.
15094 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
15095 frame_window_p members of struct bidi_it.
15096 (compute_display_string_pos, compute_display_string_end):
15097 New functions.
15098 (push_it): Accept second argument POSITION, where pop_it should
15099 jump to continue iteration.
15100 (reseat_1): Initialize bidi_it.disp_pos.
15101
15102 * keyboard.c (adjust_point_for_property): Adjust the call to
15103 display_prop_intangible_p to its new signature.
15104
15105 * dispextern.h (struct bidi_it): New member frame_window_p.
15106 (bidi_init_it): Update prototypes.
15107 (display_prop_intangible_p): Update prototype.
15108 (compute_display_string_pos, compute_display_string_end):
15109 Declare prototypes.
15110 (struct bidi_it): New members nchars and disp_pos. ch_len is now
15111 EMACS_INT.
15112
15113 2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
15114
15115 Malloc failure behavior now depends on size of allocation.
15116 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
15117 * lisp.h: Change signatures accordingly.
15118 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
15119 All callers changed. (Bug#8762)
15120
15121 * gnutls.c: Use Emacs's memory allocators.
15122 Without this change, the gnutls library would invoke malloc etc.
15123 directly, which causes problems on non-SYNC_INPUT hosts, and which
15124 runs afoul of improving memory_full behavior. (Bug#8761)
15125 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
15126 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
15127 xfree instead of the default malloc, realloc, free.
15128 (Fgnutls_boot): No need to check for memory allocation failure,
15129 since xmalloc does that for us.
15130
15131 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
15132 * category.c (hash_get_category_set):
15133 * ccl.c (ccl_driver):
15134 * charset.c (Fdefine_charset_internal):
15135 * charset.h (struct charset.hash_index):
15136 * composite.c (get_composition_id, gstring_lookup_cache)
15137 (composition_gstring_put_cache):
15138 * composite.h (struct composition.hash_index):
15139 * dispextern.h (struct image.hash):
15140 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
15141 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
15142 (hashfn_equal, hashfn_user_defined, make_hash_table)
15143 (maybe_resize_hash_table, hash_lookup, hash_put)
15144 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
15145 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
15146 (Fsxhash, Fgethash, Fputhash, Fmaphash):
15147 * image.c (make_image, search_image_cache, lookup_image)
15148 (xpm_put_color_table_h):
15149 * lisp.h (struct Lisp_Hash_Table):
15150 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
15151 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
15152 for hashes and hash indexes, instead of 'unsigned' and 'int'.
15153 * alloc.c (allocate_vectorlike):
15154 Check for overflow in vector size calculations.
15155 * ccl.c (ccl_driver):
15156 Check for overflow when converting EMACS_INT to int.
15157 * fns.c, image.c: Remove unnecessary static decls that would otherwise
15158 need to be updated by these changes.
15159 * fns.c (make_hash_table, maybe_resize_hash_table):
15160 Check for integer overflow with large hash tables.
15161 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
15162 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
15163 (SXHASH_REDUCE): New macro.
15164 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
15165 Use it instead of discarding useful hash info with large hash values.
15166 (sxhash_float): New function.
15167 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
15168 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
15169 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
15170 Rewrite to use FIXNUM_BITS, as this simplifies things.
15171 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
15172 Adjust signatures to match updated version of code.
15173 (consing_since_gc): Now EMACS_INT, since a single hash table can
15174 use more than INT_MAX bytes.
15175
15176 2011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
15177
15178 Make it possible to build with GCC-4.6+ -O2 -flto.
15179
15180 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
15181
15182 2011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
15183
15184 * minibuf.c (get_minibuffer, read_minibuf_unwind):
15185 Call minibuffer-inactive-mode.
15186
15187 2011-05-31 Juanma Barranquero <lekktu@gmail.com>
15188
15189 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
15190 Update dependencies.
15191
15192 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15193
15194 * data.c (init_data): Remove code for UTS, this system is not
15195 supported anymore.
15196
15197 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15198
15199 Don't force ./temacs to start in terminal mode.
15200
15201 * frame.c (make_initial_frame): Initialize faces in all cases, not
15202 only when CANNOT_DUMP is defined.
15203 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
15204
15205 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15206
15207 * dispnew.c (add_window_display_history): Use const for the string
15208 pointer. Remove declaration, not needed.
15209
15210 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
15211
15212 Use 'inline', not 'INLINE'.
15213 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
15214 * alloc.c, fontset.c (INLINE): Remove.
15215 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
15216 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
15217 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
15218 * gmalloc.c (register_heapinfo): Use inline unconditionally.
15219 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
15220
15221 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
15222
15223 Make it possible to run ./temacs.
15224
15225 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
15226 syms_of_callproc does the same thing. Remove test for
15227 "initialized", do it in the caller.
15228 * emacs.c (main): Avoid calling set_initial_environment when dumping.
15229
15230 2011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
15231
15232 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
15233 (read_minibuf): Use get_minibuffer.
15234 (syms_of_minibuf): Use DEFSYM.
15235 (Qmetadata): New var.
15236 * data.c (Qbuffer): Don't make it static.
15237 (syms_of_data): Use DEFSYM.
15238
15239 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
15240
15241 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
15242 (CCL_CODE_MIN): New macro.
15243
15244 2011-05-30 Paul Eggert <eggert@cs.ucla.edu>
15245
15246 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
15247
15248 * eval.c (Qdebug): Now static.
15249 * lisp.h (Qdebug): Remove decl. This reverts a part of the
15250 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
15251 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
15252
15253 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
15254
15255 * image.c: Various fixes to ImageMagick code comments.
15256 (Fimagemagick_types): Doc fix.
15257
15258 2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
15259
15260 Minor fixes prompted by GCC 4.6.0 warnings.
15261
15262 * xselect.c (converted_selections, conversion_fail_tag): Now static.
15263
15264 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
15265 (x_clipboard_manager_save_all): Move extern decl to ...
15266 * xterm.h: ... here, so that it can be checked for consistency.
15267
15268 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
15269
15270 * xselect.c (x_clipboard_manager_save_frame)
15271 (x_clipboard_manager_save_all): New functions.
15272 (Fx_clipboard_manager_save): Lisp function deleted.
15273
15274 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
15275 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
15276
15277 * xterm.h: Update prototype.
15278
15279 2011-05-28 William Xu <william.xwl@gmail.com>
15280
15281 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
15282 exiting (Bug#8239).
15283
15284 2011-05-28 Jim Meyering <meyering@redhat.com>
15285
15286 Avoid a sign-extension bug in crypto_hash_function.
15287 * fns.c (to_uchar): Define.
15288 (crypto_hash_function): Use it to convert some newly-signed
15289 variables to unsigned, to avoid sign-extension bugs. For example,
15290 without this change, (md5 "truc") would evaluate to
15291 45723a2aff78ff4fff7fff1114760e62 rather than the expected
15292 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
15293 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
15294
15295 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
15296
15297 Integer overflow fixes.
15298
15299 * dbusbind.c: Serial number integer overflow fixes.
15300 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
15301 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
15302 to hold a serial number that is too large for a fixnum.
15303 (Fdbus_method_return_internal, Fdbus_method_error_internal):
15304 Check for serial numbers out of range. Decode any serial number
15305 that was so large that it became a float. (Bug#8722)
15306
15307 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
15308 (Fdbus_call_method, Fdbus_call_method_asynchronously):
15309 Use XFASTINT rather than XUINT when numbers are nonnegative.
15310 (xd_append_arg, Fdbus_method_return_internal):
15311 (Fdbus_method_error_internal): Likewise. Also, for unsigned
15312 arguments, check that Lisp number is nonnegative, rather than
15313 silently wrapping negative numbers around. (Bug#8722)
15314 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
15315 (Bug#8722)
15316
15317 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
15318
15319 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
15320
15321 ccl: Add integer overflow checks.
15322 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
15323 (IN_INT_RANGE): New macros.
15324 (ccl_driver): Use them to check for integer overflow when
15325 decoding a CCL program. Many of the new checks are whether XINT (x)
15326 fits in int; it doesn't always, on 64-bit hosts. The new version
15327 doesn't catch all possible integer overflows, but it's an
15328 improvement. (Bug#8719)
15329
15330 * alloc.c (make_event_array): Use XINT, not XUINT.
15331 There's no need for unsigned here.
15332
15333 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
15334 This follows up to the 2011-05-06 change that substituted uintptr_t
15335 for EMACS_INT. This case wasn't caught back then.
15336
15337 Rework Fformat to avoid integer overflow issues.
15338 * editfns.c: Include <float.h> unconditionally, as it's everywhere
15339 now (part of C89). Include <verify.h>.
15340 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
15341 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
15342 (Fformat): Avoid the prepass trying to compute sizes; it was only
15343 approximate and thus did not catch overflow reliably. Instead, walk
15344 through the format just once, formatting and computing sizes as we go,
15345 checking for integer overflow at every step, and allocating a larger
15346 buffer as needed. Keep track separately whether the format is
15347 multibyte. Keep only the most-recently calculated precision, rather
15348 than them all. Record whether each argument has been converted to
15349 string. Use EMACS_INT, not int, for byte and char and arg counts.
15350 Support field widths and precisions larger than INT_MAX. Avoid
15351 sprintf's undefined behavior with conversion specifications such as %#d
15352 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
15353 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
15354 formatting out-of-range floating point numbers with int
15355 formats. (Bug#8668)
15356
15357 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
15358
15359 * data.c: Avoid integer truncation in expressions involving floats.
15360 * data.c: Include <intprops.h>.
15361 (arith_driver): When there's an integer overflow in an expression
15362 involving floating point, convert the integers to floating point
15363 so that the resulting value does not suffer from catastrophic
15364 integer truncation. For example, on a 64-bit host (* 4
15365 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
15366 Do not rely on undefined behavior after integer overflow.
15367
15368 merge count_size_as_multibyte, parse_str_to_multibyte
15369 * character.c, character.h (count_size_as_multibyte):
15370 Rename from parse_str_to_multibyte; all uses changed.
15371 Check for integer overflow.
15372 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
15373 since it's now a duplicate of the other. This is more of
15374 a character than a buffer op, so better that it's in character.c.
15375 * fns.c, print.c: Adjust to above changes.
15376
15377 2011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
15378
15379 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
15380
15381 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
15382
15383 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
15384 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
15385 (x_clipboard_manager_save): Now static.
15386 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
15387
15388 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
15389 (crypto_hash_function): Now static.
15390 Fix pointer signedness problems. Avoid unnecessary initializations.
15391
15392 2011-05-27 Chong Yidong <cyd@stupidchicken.com>
15393
15394 * termhooks.h (Vselection_alist): Make it terminal-local.
15395
15396 * terminal.c (create_terminal): Initialize it.
15397
15398 * xselect.c: Support for clipboard managers.
15399 (Vselection_alist): Move to termhooks.h as terminal-local var.
15400 (LOCAL_SELECTION): New macro.
15401 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
15402 (symbol_to_x_atom): Remove gratuitous arg.
15403 (x_handle_selection_request, lisp_data_to_selection_data)
15404 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
15405 (x_own_selection, x_get_local_selection, x_convert_selection):
15406 New arg, specifying work frame. Use terminal-local Vselection_alist.
15407 (some_frame_on_display): Delete unused function.
15408 (Fx_own_selection_internal, Fx_get_selection_internal)
15409 (Fx_disown_selection_internal, Fx_selection_owner_p)
15410 (Fx_selection_exists_p): New optional frame arg.
15411 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
15412 (x_handle_selection_clear): Don't treat other terminals with the
15413 same keyboard specially. Use the terminal-local Vselection_alist.
15414 (x_clear_frame_selections): Use Frun_hook_with_args.
15415
15416 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
15417
15418 * xterm.h: Add support for those atoms.
15419
15420 2011-05-26 Chong Yidong <cyd@stupidchicken.com>
15421
15422 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
15423 (converted_selections, conversion_fail_tag): New global variables.
15424 (x_selection_request_lisp_error): Free the above.
15425 (x_get_local_selection): Remove unnecessary code.
15426 (x_reply_selection_request): Args changed; handle arbitrary array
15427 of converted selections stored in converted_selections.
15428 Separate the XChangeProperty and SelectionNotify steps.
15429 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
15430 (x_convert_selection): New function.
15431 (x_handle_selection_event): Simplify.
15432 (x_get_foreign_selection): Don't ignore incoming requests while
15433 waiting for an answer; this will fail when we implement
15434 SAVE_TARGETS, and seems unnecessary anyway.
15435 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
15436 (Vx_sent_selection_functions): Doc fix.
15437
15438 2011-05-26 Leo Liu <sdl.web@gmail.com>
15439
15440 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
15441
15442 2011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15443
15444 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
15445
15446 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
15447 for fringe update if it has periodic bitmap.
15448 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
15449 and fringe_bitmap_periodic_p.
15450
15451 * fringe.c (get_fringe_bitmap_data): New function.
15452 (draw_fringe_bitmap_1, update_window_fringes): Use it.
15453 (update_window_fringes): Record periodicity of fringe bitmap in glyph
15454 row. Mark glyph row for fringe update if periodicity changed.
15455
15456 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
15457 for fringe update unless it has periodic bitmap.
15458
15459 2011-05-25 Kenichi Handa <handa@m17n.org>
15460
15461 * xdisp.c (get_next_display_element): Set correct it->face_id for
15462 a static composition.
15463
15464 2011-05-24 Leo Liu <sdl.web@gmail.com>
15465
15466 * deps.mk (fns.o):
15467 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
15468
15469 * fns.c (crypto_hash_function, Fsha1): New function.
15470 (Fmd5): Use crypto_hash_function.
15471 (syms_of_fns): Add Ssha1.
15472
15473 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
15474
15475 * gnutls.c: Remove unused macros.
15476 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
15477 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
15478 Remove macros that are defined and never used.
15479 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
15480
15481 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
15482
15483 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
15484 (Fx_get_selection_internal): Minor cleanup.
15485 (Fx_own_selection_internal): Rename arguments for consistency with
15486 select.el.
15487
15488 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
15489
15490 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
15491
15492 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
15493
15494 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
15495
15496 2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15497
15498 * dispnew.c (scrolling_window): Don't exclude the case that the
15499 last enabled row in the desired matrix touches the bottom boundary.
15500
15501 2011-05-21 Glenn Morris <rgm@gnu.org>
15502
15503 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
15504 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
15505 and add some more files.
15506
15507 2011-05-20 Eli Zaretskii <eliz@gnu.org>
15508
15509 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
15510 report_file_error introduced by the change from 2011-05-07.
15511
15512 2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
15513
15514 * systime.h (Time): Define only if emacs is defined.
15515 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
15516 where the include path doesn't have X11/X.h by default. See
15517 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
15518
15519 2011-05-20 Kenichi Handa <handa@m17n.org>
15520
15521 * composite.c (find_automatic_composition): Fix previous change.
15522
15523 2011-05-20 Glenn Morris <rgm@gnu.org>
15524
15525 * lisp.mk: New file, split from Makefile.in.
15526 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
15527 (shortlisp): Remove.
15528 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
15529
15530 2011-05-19 Glenn Morris <rgm@gnu.org>
15531
15532 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
15533 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
15534 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
15535 (lisp): Set the order to that of loadup.el.
15536 (shortlisp): Make it a copy of $lisp.
15537 (SOME_MACHINE_LISP): Remove.
15538 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
15539 Use just $shortlisp, not $SOME_MACHINE_LISP too.
15540
15541 2011-05-18 Kenichi Handa <handa@m17n.org>
15542
15543 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
15544 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
15545 (find_automatic_composition): Mostly rewrite for efficiency.
15546
15547 2011-05-18 Juanma Barranquero <lekktu@gmail.com>
15548
15549 * makefile.w32-in: Update dependencies.
15550
15551 2011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
15552
15553 * menu.c: Include limits.h (fixes the MS-Windows build broken by
15554 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
15555
15556 2011-05-18 Paul Eggert <eggert@cs.ucla.edu>
15557
15558 Fix some integer overflow issues, such as string length overflow.
15559
15560 * insdel.c (count_size_as_multibyte): Check for string overflow.
15561
15562 * character.c (lisp_string_width): Check for string overflow.
15563 Use EMACS_INT, not int, for string indexes and lengths; in
15564 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
15565 the resulting string length overflows an EMACS_INT; instead,
15566 report a string overflow if no precision given. When checking for
15567 precision exhaustion, use a check that cannot possibly have
15568 integer overflow. (Bug#8675)
15569 * character.h (lisp_string_width): Adjust to new signature.
15570
15571 * alloc.c (string_overflow): New function.
15572 (Fmake_string): Use it. This doesn't change behavior, but saves
15573 a few bytes and will simplify future changes.
15574 * character.c (string_escape_byte8): Likewise.
15575 * lisp.h (string_overflow): New decl.
15576
15577 Fixups, following up to the user-interface timestamp change.
15578 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
15579 for UI timestamps, instead of unsigned long.
15580 * msdos.c (mouse_get_pos): Likewise.
15581 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
15582 * w32gui.h (Time): Define by including "systime.h" rather than by
15583 declaring it ourselves. (Bug#8664)
15584
15585 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
15586 * image.c (clear_image_cache): Likewise.
15587
15588 * term.c (term_mouse_position): Don't assume time_t wraparound.
15589
15590 Be more systematic about user-interface timestamps.
15591 Before, the code sometimes used 'Time', sometimes 'unsigned long',
15592 and sometimes 'EMACS_UINT', to represent these timestamps.
15593 This change causes it to use 'Time' uniformly, as that's what X uses.
15594 This makes the code easier to follow, and makes it easier to catch
15595 integer overflow bugs such as Bug#8664.
15596 * frame.c (Fmouse_position, Fmouse_pixel_position):
15597 Use Time, not unsigned long, for user-interface timestamps.
15598 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
15599 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
15600 * keyboard.h (last_event_timestamp): Likewise.
15601 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
15602 * menu.h (xmenu_show): Likewise.
15603 * term.c (term_mouse_position): Likewise.
15604 * termhooks.h (struct input_event.timestamp): Likewise.
15605 (struct terminal.mouse_position_hook): Likewise.
15606 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
15607 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
15608 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
15609 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
15610 what it was before.
15611 * menu.h, termhooks.h: Include "systime.h", for Time.
15612
15613 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
15614 Don't assume that the difference between two unsigned long values
15615 can fit into an integer. At this point, we know button_down_time
15616 <= event->timestamp, so the difference must be nonnegative, so
15617 there's no need to cast the result if double-click-time is
15618 nonnegative, as it should be; check that it's nonnegative, just in
15619 case. This bug is triggered when events are more than 2**31 ms
15620 apart (about 25 days). (Bug#8664)
15621
15622 * xselect.c (last_event_timestamp): Remove duplicate decl.
15623 (x_own_selection): Remove needless cast to unsigned long.
15624
15625 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
15626 that always fit in int. Use a sentinel instead of a counter, to
15627 avoid a temp and to allay GCC's concerns about possible int overflow.
15628 * frame.h (struct frame): Use int for menu_bar_items_used
15629 instead of EMACS_INT, since it always fits in int.
15630
15631 * menu.c (grow_menu_items): Check for int overflow.
15632
15633 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
15634
15635 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
15636 Before, the code was not consistent. These values cannot exceed
15637 2**31 - 1 so there's no need to make them unsigned.
15638 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
15639 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
15640 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
15641 as modifiers.
15642 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
15643
15644 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
15645 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
15646 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
15647 presumably because the widths might not match.
15648
15649 * window.c (size_window): Avoid needless test at loop start.
15650
15651 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
15652
15653 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
15654
15655 2011-05-12 Drew Adams <drew.adams@oracle.com>
15656
15657 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
15658
15659 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15660
15661 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
15662 `width' to `bar_area_x' and `bar_area_width', respectively.
15663 (x_scroll_run): Take account of fringe background extension.
15664
15665 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
15666 Rename local vars `left' and `width' to `bar_area_x' and
15667 `bar_area_width', respectively.
15668 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
15669 background extension.
15670
15671 2011-05-10 Jim Meyering <meyering@redhat.com>
15672
15673 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
15674
15675 2011-05-10 Juanma Barranquero <lekktu@gmail.com>
15676
15677 * image.c (Finit_image_library): Return t for built-in image types,
15678 like pbm and xbm. (Bug#8640)
15679
15680 2011-05-09 Andreas Schwab <schwab@linux-m68k.org>
15681
15682 * w32menu.c (set_frame_menubar): Fix submenu allocation.
15683
15684 2011-05-07 Eli Zaretskii <eliz@gnu.org>
15685
15686 * w32console.c (Fset_screen_color): Doc fix.
15687 (Fget_screen_color): New function.
15688 (syms_of_ntterm): Defsubr it.
15689
15690 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
15691 unlink the temporary file if Fcall_process didn't create it in the
15692 first place.
15693 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
15694 child process will be redirected to a file specified with `:file'.
15695 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
15696 cue to call_process_cleanup not to close that handle.
15697
15698 2011-05-07 Ben Key <bkey76@gmail.com>
15699
15700 * makefile.w32-in: The bootstrap-temacs rule now makes use of
15701 one of two shell specific rules, either bootstrap-temacs-CMD or
15702 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
15703 to the previous implementation of the bootstrap-temacs rule.
15704 The bootstrap-temacs-CMD rule is similar to the previous
15705 implementation of the bootstrap-temacs rule except that it
15706 makes use of the ESC_CFLAGS variable instead of the CFLAGS
15707 variable.
15708
15709 These changes, along with some changes to nt/configure.bat,
15710 nt/gmake.defs, and nt/nmake.defs, are required to extend my
15711 earlier fix to add support for --cflags and --ldflags options
15712 that include quotes so that it works whether make uses cmd or
15713 sh as the shell.
15714
15715 2011-05-06 Michael Albinus <michael.albinus@gmx.de>
15716
15717 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
15718 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
15719 is a constant.
15720 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
15721 a string. Handle both cases.
15722 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
15723 (Fdbus_register_method): Use Qinvalid_function.
15724
15725 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
15726
15727 * makefile.w32-in: Update dependencies.
15728 (LISP_H): Add inttypes.h and stdin.h.
15729 (PROCESS_H): Add unistd.h.
15730
15731 2011-05-06 Eli Zaretskii <eliz@gnu.org>
15732
15733 * lread.c: Include limits.h (fixes the MS-Windows build broken by
15734 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
15735
15736 2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
15737
15738 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
15739
15740 * term.c (vfatal): Remove stray call to va_end.
15741 It's not needed and the C Standard doesn't allow it here anyway.
15742
15743 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
15744 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
15745
15746 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
15747 bytes.
15748
15749 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
15750
15751 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
15752
15753 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
15754
15755 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
15756
15757 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
15758
15759 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
15760 * charset.c (Fdefine_charset_internal): Don't initialize
15761 charset.code_space[15]. The value was garbage, on hosts with
15762 32-bit int (Bug#8600).
15763
15764 * lread.c (read_integer): Be more consistent with string-to-number.
15765 Use string_to_number to do the actual conversion; this avoids
15766 rounding errors and fixes some other screwups. Without this fix,
15767 for example, #x1fffffffffffffff was misread as -2305843009213693952.
15768 (digit_to_number): Move earlier, for benefit of read_integer.
15769 Return -1 if the digit is out of range for the base, -2 if it is
15770 not a digit in any supported base. (Bug#8602)
15771
15772 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
15773
15774 * dispnew.c (scrolling_window): Return 1 if we scrolled,
15775 to match comment at start of function. This also removes a
15776 GCC warning about overflow in a 32+64-bit port.
15777
15778 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
15779
15780 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
15781 Reported by Stefan Monnier in
15782 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
15783 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
15784 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
15785
15786 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
15787 (EMACS_UINTPTR): Likewise, with uintptr_t.
15788
15789 * lisp.h: Prefer 64-bit EMACS_INT if available.
15790 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
15791 on 32-bit hosts that have 64-bit int, so that they can access
15792 large files.
15793 However, temporarily disable this change unless the temporary
15794 symbol WIDE_EMACS_INT is defined.
15795
15796 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
15797
15798 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
15799 This removes an assumption that EMACS_INT and long are the same
15800 width as pointers. The assumption is true for Emacs porting targets
15801 now, but we want to make other targets possible.
15802 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
15803 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
15804 In the rest of the code, change types of integers that hold casted
15805 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
15806 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
15807 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
15808 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
15809 No need to cast type when ORing.
15810 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
15811 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
15812 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
15813 assume EMACS_INT is the same width as char *.
15814 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
15815 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
15816 Remove no-longer-needed casts.
15817 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
15818 (xg_tool_bar_help_callback, xg_make_tool_item):
15819 Use EMACS_INTPTR to hold an integer
15820 that will be cast to void *; this can avoid a GCC warning
15821 if EMACS_INT is not the same width as void *.
15822 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
15823 * xdisp.c (display_echo_area_1, resize_mini_window_1):
15824 (current_message_1, set_message_1):
15825 Use a local to convert to proper width without a cast.
15826 * xmenu.c (dialog_selection_callback): Likewise.
15827
15828 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
15829 Also, don't assume VALBITS / RAND_BITS is less than 5,
15830 and don't rely on undefined behavior when shifting a 1 left into
15831 the sign bit.
15832 * lisp.h (get_random): Change signature to match.
15833
15834 * lread.c (hash_string): Use size_t, not int, for hash computation.
15835 Normally we prefer signed values; but hashing is special, because
15836 it's better to use unsigned division on hash table sizes so that
15837 the remainder is nonnegative. Also, size_t is the natural width
15838 for hashing into memory. The previous code used 'int', which doesn't
15839 retain enough info to hash well into very large tables.
15840 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
15841
15842 * dbusbind.c: Don't possibly lose pointer info when converting.
15843 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
15844 Use XPNTR rather than XHASH, so that the high-order bits of
15845 the pointer aren't lost when converting through void *.
15846
15847 * eval.c (Fautoload): Don't double-shift a pointer.
15848
15849 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
15850
15851 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
15852
15853 * gnutls.c (DEF_GNUTLS_FN):
15854 * image.c (DEF_IMGLIB_FN): Make function pointers static.
15855
15856 2011-05-05 Andreas Schwab <schwab@linux-m68k.org>
15857
15858 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
15859 marker. (Bug#8610)
15860
15861 2011-05-05 Eli Zaretskii <eliz@gnu.org>
15862
15863 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
15864 New version that can reserve upto 2GB of heap space.
15865
15866 2011-05-05 Chong Yidong <cyd@stupidchicken.com>
15867
15868 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
15869
15870 2011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
15871
15872 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
15873 `gnutls_certificate_set_x509_key_file'.
15874
15875 2011-05-05 Juanma Barranquero <lekktu@gmail.com>
15876
15877 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
15878 Update dependencies.
15879
15880 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
15881
15882 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
15883 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
15884 Remove unused parameter `fildes'.
15885 * process.c (read_process_output, send_process): Don't pass it.
15886
15887 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
15888
15889 Fix previous change: the library cache is defined in w32.c.
15890 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
15891 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
15892
15893 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
15894
15895 Implement dynamic loading of GnuTLS on Windows.
15896
15897 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
15898 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
15899 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
15900 Declare.
15901
15902 * gnutls.c (Qgnutls_dll): Define.
15903 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
15904 (gnutls_*): Declare function pointers.
15905 (init_gnutls_functions): New function to initialize function pointers.
15906 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
15907 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
15908 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
15909 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
15910 (emacs_gnutls_write, emacs_gnutls_read)
15911 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
15912 (Fgnutls_available_p): New function.
15913 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
15914 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
15915 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
15916
15917 * image.c: Include w32.h.
15918 (Vimage_type_cache): Delete.
15919 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
15920 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
15921 (w32_delayed_load): Move to w32.c.
15922
15923 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
15924
15925 * w32.c (QCloaded_from, Vlibrary_cache): Define.
15926 (w32_delayed_load): Move from image.c. When loading a library, record
15927 its filename in the :loaded-from property of the library id.
15928 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
15929 Initialize and staticpro them.
15930 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
15931
15932 * process.c: Include lisp.h before w32.h, not after.
15933 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
15934 instead of gnutls_record_check_pending.
15935
15936 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
15937
15938 2011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
15939
15940 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
15941 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
15942 as passed in.
15943
15944 2011-05-03 Jan Djärv <jan.h.d@swipnet.se>
15945
15946 * xterm.c (x_set_frame_alpha): Do not set property on anything
15947 else than FRAME_X_OUTER_WINDOW (Bug#8608).
15948
15949 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
15950
15951 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
15952
15953 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
15954
15955 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
15956 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
15957 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
15958 (gnutls_global_initialized, Qgnutls_bootprop_priority)
15959 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
15960 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
15961 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
15962 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
15963 (Qgnutls_bootprop_callbacks_verify): Make static.
15964
15965 2011-05-01 Andreas Schwab <schwab@linux-m68k.org>
15966
15967 * callproc.c: Indentation fixup.
15968
15969 * sysdep.c (wait_for_termination_1): Make static.
15970 (wait_for_termination, interruptible_wait_for_termination):
15971 Move after wait_for_termination_1.
15972
15973 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
15974
15975 * sysdep.c (interruptible_wait_for_termination): New function
15976 which is like wait_for_termination, but allows keyboard
15977 interruptions.
15978
15979 * callproc.c (Fcall_process): Add (:file "file") as an option for
15980 the STDOUT buffer.
15981 (Fcall_process_region): Ditto.
15982
15983 2011-04-30 Eli Zaretskii <eliz@gnu.org>
15984
15985 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
15986 rather than `XVECTOR (FOO)->size'.
15987
15988 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
15989 inttypes.h, as a gnulib replacement is used if it not available in
15990 system headers.
15991
15992 2011-04-21 Eli Zaretskii <eliz@gnu.org>
15993
15994 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
15995 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
15996 of MOST_POSITIVE_FIXNUM. (Bug#8528)
15997
15998 * coding.c (coding_alloc_by_realloc): Error out if destination
15999 will grow beyond MOST_POSITIVE_FIXNUM.
16000 (decode_coding_emacs_mule): Abort if there isn't enough place in
16001 charbuf for the composition carryover bytes. Reserve an extra
16002 space for up to 2 characters produced in a loop.
16003 (decode_coding_iso_2022): Abort if there isn't enough place in
16004 charbuf for the composition carryover bytes.
16005
16006 2011-04-21 Eli Zaretskii <eliz@gnu.org>
16007
16008 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
16009 aborting when %lld or %lll format is passed.
16010 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
16011 %llo or %llx format is passed. (Bug#8545)
16012
16013 * window.c (window_scroll_line_based): Use a marker instead of
16014 simple variables to record original value of point. (Bug#7952)
16015
16016 * doprnt.c (doprnt): Fix the case where a multibyte sequence
16017 produced by %s or %c overflows available buffer space. (Bug#8545)
16018
16019 2011-04-28 Paul Eggert <eggert@cs.ucla.edu>
16020
16021 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
16022 (SIZE_MAX): Move defn after all includes, as they might #define it.
16023
16024 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
16025
16026 * w32.c (init_environment): Warn about defaulting HOME to C:\.
16027
16028 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
16029
16030 * keyboard.c (Qdelayed_warnings_hook): Define.
16031 (command_loop_1): Run `delayed-warnings-hook'
16032 if Vdelayed_warnings_list is non-nil.
16033 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
16034 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
16035
16036 2011-04-28 Eli Zaretskii <eliz@gnu.org>
16037
16038 * doprnt.c (doprnt): Don't return value smaller than the buffer
16039 size if the message was truncated. (Bug#8545).
16040
16041 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
16042
16043 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
16044 (Fx_window_property): #if-0 the whole functions, not just the bodies.
16045
16046 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
16047
16048 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
16049
16050 2011-04-27 Juanma Barranquero <lekktu@gmail.com>
16051
16052 * makefile.w32-in: Update dependencies.
16053
16054 2011-04-27 Eli Zaretskii <eliz@gnu.org>
16055
16056 Improve `doprnt' and its usage. (Bug#8545)
16057 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
16058 `format_end'. Remove support for %l as a conversion specifier.
16059 Don't use xrealloc. Improve diagnostics when the %l size modifier
16060 is used. Update the commentary.
16061
16062 * eval.c (verror): Simplify calculation of size_t.
16063
16064 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
16065 messages.
16066
16067 2011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
16068
16069 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
16070 change.
16071
16072 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
16073
16074 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
16075 This makes this file independent of the recent pseudovector change.
16076
16077 2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
16078
16079 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
16080
16081 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
16082 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
16083 Remove unused local.
16084 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
16085
16086 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
16087 GCC 4.6.0 optimizes based on type-based alias analysis.
16088 For example, if b is of type struct buffer * and v of type struct
16089 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
16090 != &v->size, and therefore "v->size = 1; b->size = 2; return
16091 v->size;" must therefore return 1. This assumption is incorrect
16092 for Emacs, since it type-puns struct Lisp_Vector * with many other
16093 types. To fix this problem, this patch adds a new type struct
16094 vectorlike_header that documents the constraints on layout of vectors
16095 and pseudovectors, and helps optimizing compilers not get fooled
16096 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
16097 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
16098 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
16099 the size member.
16100 (XSETPVECTYPE): Rewrite in terms of new macro.
16101 (XSETPVECTYPESIZE): New macro, specifying both type and size.
16102 This is a bit clearer, and further avoids the possibility of
16103 undesirable aliasing.
16104 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
16105 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
16106 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
16107 since Lisp_Subr is a special case (no "next" field).
16108 (ASIZE): Now uses header.size rather than size.
16109 All previous uses of XVECTOR (foo)->size replaced to use this macro,
16110 to avoid the hassle of writing XVECTOR (foo)->header.size.
16111 (struct vectorlike_header): New type.
16112 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
16113 object, to help avoid aliasing.
16114 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
16115 (SUBRP): Likewise, since Lisp_Subr is a special case.
16116 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
16117 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
16118 (struct Lisp_Hash_Table): Combine first two members into a single
16119 struct vectorlike_header member. All uses of "size" and "next" members
16120 changed to be "header.size" and "header.next".
16121 * buffer.h (struct buffer): Likewise.
16122 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
16123 * frame.h (struct frame): Likewise.
16124 * process.h (struct Lisp_Process): Likewise.
16125 * termhooks.h (struct terminal): Likewise.
16126 * window.c (struct save_window_data, struct saved_window): Likewise.
16127 * window.h (struct window): Likewise.
16128 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
16129 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
16130 * buffer.c (init_buffer_once): Likewise.
16131 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
16132 special case.
16133 * process.c (Fformat_network_address): Use local var for size,
16134 for brevity.
16135
16136 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
16137
16138 Make the Lisp reader and string-to-float more consistent (Bug#8525)
16139 * data.c (atof): Remove decl; no longer used or needed.
16140 (digit_to_number): Move to lread.c.
16141 (Fstring_to_number): Use new string_to_number function, to be
16142 consistent with how the Lisp reader treats infinities and NaNs.
16143 Do not assume that floating-point numbers represent EMACS_INT
16144 without losing information; this is not true on most 64-bit hosts.
16145 Avoid double-rounding errors, by insisting on integers when
16146 parsing non-base-10 numbers, as the documentation specifies.
16147 * lisp.h (string_to_number): New decl, replacing ...
16148 (isfloat_string): Remove.
16149 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
16150 (read1): Do not accept +. and -. as integers; this
16151 appears to have been a coding error. Similarly, do not accept
16152 strings like +-1e0 as floating point numbers. Do not report
16153 overflow for integer overflows unless the base is not 10 which
16154 means we have no simple and reliable way to continue.
16155 Break out the floating-point parsing into a new
16156 function string_to_number, so that Fstring_to_number parses
16157 floating point numbers consistently with the Lisp reader.
16158 (digit_to_number): Move here from data.c. Make it static inline.
16159 (E_CHAR, EXP_INT): Remove, replacing with ...
16160 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
16161 (string_to_number): New function, replacing isfloat_string.
16162 This function checks for valid syntax and produces the resulting
16163 Lisp float number too. Rework it so that string-to-number
16164 no longer mishandles examples like "1.0e+". Use strtoumax,
16165 so that overflow for non-base-10 numbers is reported only when
16166 there's no portable and simple way to convert to floating point.
16167
16168 * textprop.c (set_text_properties_1): Rewrite for clarity,
16169 and to avoid GCC warning about integer overflow.
16170
16171 * intervals.h (struct interval): Use EMACS_INT for members
16172 where EMACS_UINT might cause problems. See
16173 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
16174 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
16175 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
16176 All uses changed.
16177 (offset_intervals): Tell GCC not to worry about length overflow
16178 when negating a negative length.
16179
16180 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
16181 (overrun_check_free): Likewise.
16182
16183 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
16184 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
16185 word size.
16186
16187 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
16188 (gnutls_make_error): Rename local to avoid shadowing.
16189 (gnutls_emacs_global_deinit): ifdef out; not used.
16190 (Fgnutls_boot): Use const for pointer to readonly storage.
16191 Comment out unused local. Fix pointer signedness problems.
16192
16193 * lread.c (openp): Don't stuff size_t into an 'int'.
16194 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
16195 about possible signed overflow.
16196
16197 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
16198 (GDK_KEY_g): Don't define if already defined.
16199 (xg_prepare_tooltip): Avoid pointer signedness problem.
16200 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
16201
16202 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
16203 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
16204
16205 * xfns.c (Fx_window_property): Simplify a bit,
16206 to make a bit faster and to avoid GCC 4.6.0 warning.
16207 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
16208
16209 * fns.c (internal_equal): Don't assume size_t fits in int.
16210
16211 * alloc.c (compact_small_strings): Tighten assertion a little.
16212
16213 Replace pEd with more-general pI, and fix some printf arg casts.
16214 * lisp.h (pI): New macro, generalizing old pEd macro to other
16215 conversion specifiers. For example, use "...%"pI"d..." rather
16216 than "...%"pEd"...".
16217 (pEd): Remove. All uses replaced with similar uses of pI.
16218 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
16219 * alloc.c (check_pure_size): Don't overflow by converting size to int.
16220 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
16221 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
16222 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
16223 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
16224 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
16225 64-bit hosts.
16226 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
16227 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
16228 * print.c (safe_debug_print, print_object): Likewise.
16229 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
16230 to int.
16231 Use pI instead of if-then-else-abort. Use %p to avoid casts,
16232 avoiding the 0 flag, which is not portable.
16233 * process.c (Fmake_network_process): Use pI to avoid cast.
16234 * region-cache.c (pp_cache): Likewise.
16235 * xdisp.c (decode_mode_spec): Likewise.
16236 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
16237 behavior on 64-bit hosts with printf arg.
16238 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
16239 (x_stop_queuing_selection_requests): Likewise.
16240 (x_get_window_property): Don't truncate byte count to an 'int'
16241 when tracing.
16242
16243 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
16244 here, since it parses constructs like leading '-' and spaces,
16245 which are not wanted; and it overflows with large numbers.
16246 Instead, simply match F[0-9]+, which is what is wanted anyway.
16247
16248 * alloc.c: Remove unportable assumptions about struct layout.
16249 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
16250 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
16251 (allocate_vectorlike, make_pure_vector): Use the new macros,
16252 plus offsetof, to remove unportable assumptions about struct layout.
16253 These assumptions hold on all porting targets that I know of, but
16254 they are not guaranteed, they're easy to remove, and removing them
16255 makes further changes easier.
16256
16257 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
16258 This doesn't fix a bug but makes the code clearer.
16259 (string_overrun_cookie): Now const. Use initializers that
16260 don't formally overflow signed char, to avoid warnings.
16261 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
16262 can cause Emacs to crash when string overrun checking is enabled.
16263 (allocate_buffer): Don't assume sizeof (struct buffer) is a
16264 multiple of sizeof (EMACS_INT); it need not be, if
16265 alignof(EMACS_INT) < sizeof (EMACS_INT).
16266 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
16267
16268 2011-04-26 Juanma Barranquero <lekktu@gmail.com>
16269
16270 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
16271
16272 2011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
16273
16274 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
16275 supposed to be handshaking. (Bug#8556)
16276 Reported by Paul Eggert <eggert@cs.ucla.edu>.
16277
16278 2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
16279
16280 * lisp.h (Qdebug): List symbol.
16281 * eval.c (Qdebug): Restore global linkage.
16282 * keyboard.c (debug-on-event): New variable.
16283 (handle_user_signal): Break into debugger when debug-on-event
16284 matches the current signal symbol.
16285
16286 2011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
16287
16288 * alloc.c (check_sblock, check_string_bytes)
16289 (check_string_free_list): Convert to standard C.
16290
16291 2011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
16292
16293 * w32.c (emacs_gnutls_push): Fix typo.
16294
16295 2011-04-25 Eli Zaretskii <eliz@gnu.org>
16296
16297 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
16298 "cast to pointer from integer of different size".
16299
16300 Improve doprnt and its use in verror. (Bug#8545)
16301 * doprnt.c (doprnt): Document the set of format control sequences
16302 supported by the function. Use SAFE_ALLOCA instead of always
16303 using `alloca'.
16304
16305 * eval.c (verror): Don't limit the buffer size at size_max-1, that
16306 is one byte too soon. Don't use xrealloc; instead xfree and
16307 xmalloc anew.
16308
16309 2011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
16310
16311 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
16312 callbacks stage.
16313
16314 * gnutls.c: Renamed global_initialized to
16315 gnutls_global_initialized. Added internals for the
16316 :verify-hostname-error, :verify-error, and :verify-flags
16317 parameters of `gnutls-boot' and documented those parameters in the
16318 docstring. Start callback support.
16319 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
16320 unless a fatal error occurred. Call gnutls_alert_send_appropriate
16321 on error. Return error code.
16322 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
16323 (emacs_gnutls_read): Likewise.
16324 (Fgnutls_boot): Return handshake error code.
16325 (emacs_gnutls_handle_error): New function.
16326 (wsaerror_to_errno): Likewise.
16327
16328 * w32.h (emacs_gnutls_pull): Add prototype.
16329 (emacs_gnutls_push): Likewise.
16330
16331 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
16332 (emacs_gnutls_push): Likewise.
16333
16334 2011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
16335
16336 * process.c (wait_reading_process_output): Check if GnuTLS
16337 buffered some data internally if no FDs are set for TLS
16338 connections.
16339
16340 * makefile.w32-in (OBJ2): Add gnutls.$(O).
16341 (LIBS): Link to USER_LIBS.
16342 ($(BLD)/gnutls.$(0)): New target.
16343
16344 2011-04-24 Eli Zaretskii <eliz@gnu.org>
16345
16346 * xdisp.c (handle_single_display_spec): Rename the
16347 display_replaced_before_p argument into display_replaced_p, to
16348 make it consistent with the commentary. Fix typos in the
16349 commentary.
16350
16351 * textprop.c (syms_of_textprop): Remove dead code.
16352 (copy_text_properties): Delete obsolete commentary about an
16353 interface that was deleted long ago. Fix typos in the description
16354 of arguments.
16355
16356 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
16357 to changes in oldXMenu/XMenu.h from 2011-04-16.
16358 <menu_help_message, prev_menu_help_message>: Constify.
16359 (IT_menu_make_room): menu->help_text is now `const char **';
16360 adjust.
16361
16362 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
16363 to changes in oldXMenu/XMenu.h from 2011-04-16.
16364 (struct XMenu): Declare `help_text' `const char **'.
16365
16366 * xfaces.c <Qunspecified>: Make extern again.
16367
16368 * syntax.c: Include sys/types.h before including regex.h, as
16369 required by POSIX.
16370
16371 * doc.c (get_doc_string): Improve the format passed to `error'.
16372
16373 * doprnt.c (doprnt): Improve commentary.
16374
16375 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
16376
16377 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
16378 them with etags.
16379
16380 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
16381 changes in globals.h immediately force recompilation.
16382 (TAGS): Depend on $(CURDIR)/m/intel386.h and
16383 $(CURDIR)/s/ms-w32.h.
16384 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
16385
16386 * character.c (Fchar_direction): Function deleted.
16387 (syms_of_character): Don't defsubr it.
16388 <char-direction-table>: Deleted.
16389
16390 2011-04-23 Eli Zaretskii <eliz@gnu.org>
16391
16392 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
16393 * doprnt.c: Include limits.h.
16394 (SIZE_MAX): New macro.
16395 (doprnt): Return a size_t value. 2nd arg is now size_t.
16396 Many local variables are now size_t instead of int or unsigned.
16397 Improve overflow protection. Support `l' modifier for integer
16398 conversions. Support %l conversion. Don't assume an EMACS_INT
16399 argument for integer conversions and for %c.
16400
16401 * lisp.h (doprnt): Restore prototype.
16402
16403 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
16404 $(SRC)/character.h.
16405
16406 * Makefile.in (base_obj): Add back doprnt.o.
16407
16408 * deps.mk (doprnt.o): Add back prerequisites.
16409 (callint.o): Depend on character.h.
16410
16411 * eval.c (internal_lisp_condition_case): Include the handler
16412 representation in the error message.
16413 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
16414 when breaking from the loop.
16415
16416 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
16417
16418 * callint.c (Fcall_interactively): When displaying error message
16419 about invalid control letter, pass the character's codepoint, not
16420 a pointer to its multibyte form. Improve display of the character
16421 in octal and display also its hex code.
16422
16423 * character.c (char_string): Use %x to display the (unsigned)
16424 codepoint of an invalid character, to avoid displaying a bogus
16425 negative value.
16426
16427 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
16428 `error', not SYMBOL_NAME itself.
16429
16430 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
16431 character arguments to `error'.
16432
16433 * charset.c (check_iso_charset_parameter): Fix incorrect argument
16434 to `error' in error message about FINAL_CHAR argument. Make sure
16435 FINAL_CHAR is a character, and use %c when it is passed as
16436 argument to `error'.
16437
16438 2011-04-23 Eli Zaretskii <eliz@gnu.org>
16439
16440 * s/ms-w32.h (localtime): Redirect to sys_localtime.
16441
16442 * w32.c: Include <time.h>.
16443 (sys_localtime): New function.
16444
16445 2011-04-23 Chong Yidong <cyd@stupidchicken.com>
16446
16447 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
16448
16449 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
16450
16451 2011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
16452
16453 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
16454 zombies (Bug#8467).
16455
16456 2011-04-19 Eli Zaretskii <eliz@gnu.org>
16457
16458 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
16459 gl_state.e_property when gl_state.object is Qt.
16460
16461 * insdel.c (make_gap_larger): Remove limitation of buffer size
16462 to <= INT_MAX.
16463
16464 2011-04-18 Chong Yidong <cyd@stupidchicken.com>
16465
16466 * xdisp.c (lookup_glyphless_char_display)
16467 (produce_glyphless_glyph): Handle cons cell entry in
16468 glyphless-char-display.
16469 (Vglyphless_char_display): Document it.
16470
16471 * term.c (produce_glyphless_glyph): Handle cons cell entry in
16472 glyphless-char-display.
16473
16474 2011-04-17 Chong Yidong <cyd@stupidchicken.com>
16475
16476 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
16477
16478 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
16479
16480 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
16481 definition for no-X builds.
16482
16483 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
16484
16485 Static checks with GCC 4.6.0 and non-default toolkits.
16486
16487 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
16488
16489 * process.c (keyboard_bit_set): Define only if SIGIO.
16490 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
16491 (send_process): Repair possible setjmp clobbering.
16492
16493 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
16494
16495 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
16496
16497 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
16498
16499 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
16500 Define only if needed.
16501
16502 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
16503 by pacifying GCC about it. Maybe it's time to retire it?
16504 * xfaces.c (USG, __TIMEVAL__): Likewise.
16505
16506 * dispextern.h (struct redisplay_interface): Rename param
16507 to avoid shadowing.
16508 * termhooks.h (struct terminal): Likewise.
16509 * xterm.c (xembed_send_message): Likewise.
16510
16511 * insdel.c (make_gap_smaller): Define only if
16512 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
16513
16514 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
16515 it.
16516
16517 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
16518 so that we aren't warned about unused symbols.
16519
16520 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
16521
16522 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
16523
16524 * xfns.c (x_real_positions): Mark locals as initialized.
16525
16526 * xmenu.c (xmenu_show): Don't use uninitialized vars.
16527
16528 * xterm.c: Fix problems found by static analysis with other toolkits.
16529 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
16530 (x_dispatch_event): Declare static if USE_GTK, and
16531 define if USE_GTK || USE_X_TOOLKIT.
16532 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
16533 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
16534 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
16535 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
16536
16537 * xmenu.c (menu_help_callback): Pointer type fixes.
16538 Use const pointers when pointing at readonly data. Avoid pointer
16539 signedness clashes.
16540 (FALSE): Remove unused macro.
16541 (update_frame_menubar): Remove unused decl.
16542
16543 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
16544
16545 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
16546 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
16547 (single_menu_item): Rename local to avoid shadowing.
16548
16549 * keyboard.c (make_lispy_event): Remove unused local var.
16550
16551 * frame.c, frame.h (x_get_resource_string): Bring this back, but
16552 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
16553
16554 * bitmaps: Change bitmaps from unsigned char back to the X11
16555 compatible char. Avoid the old compiler warnings about
16556 out-of-range initializers by using, for example, '\xab' rather
16557 than 0xab.
16558
16559 * xgselect.c (xgselect_initialize): Check vs interface
16560 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
16561
16562 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
16563
16564 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
16565 to read-only memory.
16566
16567 * fns.c (vector): Remove; this old hack is no longer needed.
16568
16569 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
16570 Remove unused var.
16571 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
16572
16573 * xrdb.c (x_load_resources): Omit unused local.
16574
16575 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
16576 (x_window): Rename locals to avoid shadowing.
16577 (USG): Use the kludged USG macro, to pacify gcc.
16578
16579 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
16580 (x_term_init): Remove local to avoid shadowing.
16581
16582 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
16583
16584 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
16585 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
16586
16587 2011-04-16 Eli Zaretskii <eliz@gnu.org>
16588
16589 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
16590
16591 Fix regex.c, syntax.c and friends for buffers > 2GB.
16592 * syntax.h (struct gl_state_s): Declare character position members
16593 EMACS_INT.
16594
16595 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
16596
16597 * textprop.c (verify_interval_modification, interval_of):
16598 Declare arguments EMACS_INT.
16599
16600 * intervals.c (adjust_intervals_for_insertion): Declare arguments
16601 EMACS_INT.
16602
16603 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
16604
16605 * indent.c (Fvertical_motion): Local variable it_start is now
16606 EMACS_INT.
16607
16608 * regex.c (re_match, re_match_2, re_match_2_internal)
16609 (bcmp_translate, regcomp, regexec, print_double_string)
16610 (group_in_compile_stack, re_search, re_search_2, regex_compile)
16611 (re_compile_pattern, re_exec): Declare arguments and local
16612 variables `size_t' and `ssize_t' and return values `regoff_t', as
16613 appropriate.
16614 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
16615 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
16616 <compile_stack_type>: `size' and `avail' are now `size_t'.
16617
16618 * regex.h <regoff_t>: Use ssize_t, not int.
16619 (re_search, re_search_2, re_match, re_match_2): Arguments that
16620 specify buffer/string position and length are now ssize_t and
16621 size_t. Return type is regoff_t.
16622
16623 2011-04-16 Ben Key <bkey76@gmail.com>
16624
16625 * nsfont.m: Fixed bugs in ns_get_family and
16626 ns_descriptor_to_entity that were caused by using free to
16627 deallocate memory blocks that were allocated by xmalloc (via
16628 xstrdup). This caused Emacs to crash when compiled with
16629 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
16630 --enable-checking=xmallocoverrun). xfree is now used to
16631 deallocate these memory blocks.
16632
16633 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
16634
16635 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
16636
16637 emacs_write: Accept and return EMACS_INT for sizes.
16638 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
16639 et seq.
16640 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
16641 Accept and return EMACS_INT.
16642 (emacs_gnutls_write): Return the number of bytes written on
16643 partial writes.
16644 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
16645 (emacs_read, emacs_write): Remove check for negative size, as the
16646 Emacs source code has been audited now.
16647 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
16648 (emacs_read, emacs_write): Use it.
16649 * process.c (send_process): Adjust to the new signatures of
16650 emacs_write and emacs_gnutls_write. Do not attempt to store
16651 a byte offset into an 'int'; it might overflow.
16652 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
16653
16654 * sound.c: Don't assume sizes fit in 'int'.
16655 (struct sound_device.period_size, alsa_period_size):
16656 Return EMACS_INT, not int.
16657 (struct sound_device.write, vox_write, alsa_write):
16658 Accept EMACS_INT, not int.
16659 (wav_play, au_play): Use EMACS_INT to store sizes and to
16660 record read return values.
16661
16662 2011-04-15 Ben Key <bkey76@gmail.com>
16663
16664 * keyboard.c (Qundefined): Don't declare static since it is used
16665 in nsfns.m.
16666 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
16667 static since they are used in nsfont.m.
16668
16669 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
16670
16671 * process.c (Qprocessp): Don't declare static.
16672 * lisp.h (Qprocessp): Declare again.
16673
16674 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
16675
16676 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
16677
16678 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
16679
16680 Improve C-level modularity by making more things 'static'.
16681
16682 Don't publish debugger-only interfaces to other modules.
16683 * lisp.h (safe_debug_print, debug_output_compilation_hack):
16684 (verify_bytepos, count_markers): Move decls to the only modules
16685 that need them.
16686 * region-cache.h (pp_cache): Likewise.
16687 * window.h (check_all_windows): Likewise.
16688 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
16689
16690 * sysdep.c (croak): Now static, if
16691 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
16692 * syssignal.h (croak): Declare only if not static.
16693
16694 * alloc.c (refill_memory_reserve): Now static if
16695 !defined REL_ALLOC || defined SYSTEM_MALLOC.
16696 * lisp.h (refill_memory_reserve): Declare only if not static.
16697
16698 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
16699 Define only if USE_LUCID.
16700
16701 * xrdb.c (x_customization_string, x_rm_string): Now static.
16702
16703 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
16704 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
16705
16706 * xdisp.c (draw_row_with_mouse_face): Now static.
16707 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
16708
16709 * window.h (check_all_windows): Mark externally visible.
16710
16711 * window.c (window_deletion_count): Now static.
16712
16713 * undo.c: Make symbols static if they're not exported.
16714 (last_undo_buffer, last_boundary_position, pending_boundary):
16715 Now static.
16716
16717 * textprop.c (interval_insert_behind_hooks): Now static.
16718 (interval_insert_in_front_hooks): Likewise.
16719
16720 * term.c: Make symbols static if they're not exported.
16721 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
16722 (max_frame_lines, tty_set_terminal_modes):
16723 (tty_reset_terminal_modes, tty_turn_off_highlight):
16724 (get_tty_terminal): Now static.
16725 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
16726 * termhooks.h (term_mouse_moveto): Do not declare if
16727 HAVE_WINDOW_SYSTEM.
16728 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
16729 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
16730
16731 * sysdep.c: Make symbols static if they're not exported.
16732 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
16733 Now static.
16734 (sigprocmask_set, full_mask): Remove; unused.
16735 (wait_debugging): Mark as visible.
16736 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
16737 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
16738
16739 * syntax.c (syntax_temp): Define only if !__GNUC__.
16740
16741 * sound.c (current_sound_device, current_sound): Now static.
16742
16743 * search.c (searchbufs, searchbuf_head): Now static.
16744
16745 * scroll.c (scroll_cost): Remove; unused.
16746 * dispextern.h (scroll_cost): Remove decl.
16747
16748 * region-cache.h (pp_cache): Mark as externally visible.
16749
16750 * process.c: Make symbols static if they're not exported.
16751 (process_tick, update_tick, create_process, chan_process):
16752 (Vprocess_alist, proc_buffered_char, datagram_access):
16753 (fd_callback_data, send_process_frame, process_sent_to): Now static.
16754 (deactivate_process): Mark defn as static, as well as decl.
16755 * lisp.h (create_process): Remove decl.
16756 * process.h (chan_process, Vprocess_alist): Remove decls.
16757
16758 * print.c: Make symbols static if they're not exported.
16759 (print_depth, new_backquote_output, being_printed, print_buffer):
16760 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
16761 (print_interval, print_number_index, initial_stderr_stream):
16762 Now static.
16763 * lisp.h (Fprinc): Remove decl.
16764 (debug_output_compilation_hack): Mark as externally visible.
16765
16766 * sysdep.c (croak): Move decl from here to syssignal.h.
16767 * syssignal.h (croak): Put it here, so the API can be checked when
16768 'croak' is called from dissociate_if_controlling_tty.
16769
16770 * minibuf.c: Make symbols static if they're not exported.
16771 (minibuf_save_list, choose_minibuf_frame): Now static.
16772 * lisp.h (choose_minibuf_frame): Remove decl.
16773
16774 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
16775
16776 * lread.c: Make symbols static if they're not exported.
16777 (read_objects, initial_obarray, oblookup_last_bucket_number):
16778 Now static.
16779 (make_symbol): Remove; unused.
16780 * lisp.h (initial_obarray, make_symbol): Remove decls.
16781
16782 * keyboard.c: Make symbols static if they're not exported.
16783 (single_kboard, recent_keys_index, total_keys, recent_keys):
16784 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
16785 (this_single_command_key_start, echoing, last_auto_save):
16786 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
16787 (command_loop, echo_now, keyboard_init_hook, help_char_p):
16788 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
16789 (Vlispy_mouse_stem, double_click_count):
16790 Now static.
16791 (force_auto_save_soon): Define only if SIGDANGER.
16792 (ignore_mouse_drag_p): Now static if
16793 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
16794 (print_help): Remove; unused.
16795 (stop_character, last_timer_event): Mark as externally visible.
16796 * keyboard.h (ignore_mouse_drag_p): Declare only if
16797 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
16798 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
16799 * lisp.h (echoing): Remove decl.
16800 (force_auto_save_soon): Declare only if SIGDANGER.
16801 * xdisp.c (redisplay_window): Simplify code, to make it more
16802 obvious that ignore_mouse_drag_p is not accessed if !defined
16803 USE_GTK && !defined HAVE_NS.
16804
16805 * intervals.c: Make symbols static if they're not exported.
16806 (merge_properties_sticky, merge_interval_right, delete_interval):
16807 Now static.
16808 * intervals.h (merge_interval_right, delete_interval): Remove decls.
16809
16810 * insdel.c: Make symbols static if they're not exported.
16811 However, leave prepare_to_modify_buffer alone. It's never
16812 called from outside this function, but that appears to be a bug.
16813 (combine_after_change_list, combine_after_change_buffer):
16814 (adjust_after_replace, signal_before_change): Now static.
16815 (adjust_after_replace_noundo): Remove; unused.
16816 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
16817 (signal_before_change): Remove decls.
16818
16819 * indent.c (val_compute_motion, val_vmotion): Now static.
16820
16821 * image.c: Make symbols static if they're not exported.
16822 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
16823 if USE_GTK.
16824 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
16825 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
16826
16827 * fringe.c (standard_bitmaps): Now static.
16828 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
16829
16830 * frame.c: Make symbols static if they're not exported.
16831 (x_report_frame_params, make_terminal_frame): Now static.
16832 (get_frame_param): Now static, unless HAVE_NS.
16833 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
16834 (x_get_resource_string): Remove; not used.
16835 * frame.h (make_terminal_frame, x_report_frame_params):
16836 (x_get_resource_string); Remove decls.
16837 (x_fullscreen_adjust): Declare only if WINDOWSNT.
16838 * lisp.h (get_frame_param): Declare only if HAVE_NS.
16839
16840 * font.c, fontset.c: Make symbols static if they're not exported.
16841 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
16842 (FACE_SUITABLE_FOR_CHAR_P): Use it.
16843 * font.c (font_close_object): Now static.
16844 * font.h (font_close_object): Remove.
16845 * fontset.c (FONTSET_OBJLIST): Remove.
16846 (free_realized_fontset) #if-0 the body, which does nothing.
16847 (face_suitable_for_char_p): #if-0, as it's never called.
16848 * fontset.h (face_suitable_for_char_p): Remove decl.
16849 * xfaces.c (face_at_string_position):
16850 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
16851 since 0 is always ASCII.
16852
16853 * fns.c (weak_hash_tables): Now static.
16854
16855 * fileio.c: Make symbols static if they're not exported.
16856 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
16857 (Vwrite_region_annotation_buffers): Now static.
16858
16859 * eval.c: Make symbols static if they're not exported.
16860 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
16861 * lisp.h (backtrace_list): Remove decl.
16862
16863 * emacs.c: Make symbols static if they're not exported.
16864 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
16865 (fatal_error_code, fatal_error_signal_hook, standard_args):
16866 Now static.
16867 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
16868 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
16869 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
16870 * lisp.h (fatal_error_signal_hook): Remove decl.
16871 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
16872
16873 * editfns.c: Move a (normally-unused) function to its only use.
16874 * editfns.c, lisp.h (get_operating_system_release): Remove.
16875 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
16876 worth the hassle of breaking this out.
16877
16878 * xterm.c: Make symbols static if they're not exported.
16879 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
16880 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
16881 (x_destroy_window, x_delete_display):
16882 Now static.
16883 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
16884 (x_mouse_leave): Remove; unused.
16885 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
16886 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
16887 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
16888 Remove decls.
16889 (x_mouse_leave): Declare only if WINDOWSNT.
16890 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
16891 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
16892 USE_X_TOOLKIT.
16893
16894 * ftxfont.c: Make symbols static if they're not exported.
16895 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
16896 HAVE_FREETYPE.
16897 * font.h (ftxfont_driver): Likewise.
16898
16899 * xfns.c: Make symbols static if they're not exported.
16900 (x_last_font_name, x_display_info_for_name):
16901 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
16902 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
16903 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
16904 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
16905 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
16906 (last_show_tip_args): Now static.
16907 (xic_defaut_fontset, xic_create_fontsetname): Define only if
16908 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
16909 (x_screen_planes): Remove; unused.
16910 * dispextern.h (x_screen_planes): Remove decl.
16911
16912 * dispnew.c: Make symbols static if they're not exported.
16913 * dispextern.h (redraw_garbaged_frames, scrolling):
16914 (increment_row_positions): Remove.
16915 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
16916 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
16917 Now static.
16918 (redraw_garbaged_frames): Remove; unused.
16919
16920 * xfaces.c: Make symbols static if they're not exported.
16921 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
16922 Remove decls.
16923 * xterm.h (defined_color): Remove decls.
16924 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
16925 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
16926 (menu_face_changed_default, defined_color, free_realized_face):
16927 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
16928 (ascii_face_of_lisp_face): Remove; unused.
16929
16930 * xdisp.c: Make symbols static if they're not exported.
16931 * dispextern.h (scratch_glyph_row, window_box_edges):
16932 (glyph_to_pixel_coords, set_cursor_from_row):
16933 (get_next_display_element, set_iterator_to_next):
16934 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
16935 (show_mouse_face): Remove decls
16936 * frame.h (message_buf_print): Likewise.
16937 * lisp.h (pop_message, set_message, check_point_in_composition):
16938 Likewise.
16939 * xterm.h (set_vertical_scroll_bar): Likewise.
16940 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
16941 (message_buf_print, scratch_glyph_row, displayed_buffer):
16942 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
16943 (get_next_display_element, show_mouse_face, window_box_edges):
16944 (frame_to_window_pixel_xy, check_point_in_composition):
16945 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
16946 (glyph_to_pixel_coords): Remove; unused.
16947
16948 * dired.c (file_name_completion): Now static.
16949
16950 * dbusbind.c (xd_in_read_queued_messages): Now static.
16951
16952 * lisp.h (circular_list_error, FOREACH): Remove; unused.
16953 * data.c (circular_list_error): Remove.
16954
16955 * commands.h (last_point_position, last_point_position_buffer):
16956 (last_point_position_window): Remove decls.
16957 * keyboard.c: Make these variables static.
16958
16959 * coding.h (coding, code_convert_region, encode_coding_gap):
16960 Remove decls.
16961 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
16962 (iso_code_class, detect_coding, code_convert_region): Now static.
16963 (encode_coding_gap): Remove; unused.
16964
16965 * chartab.c (chartab_chars, chartab_bits): Now static.
16966
16967 * charset.h (charset_iso_8859_1): Remove decl.
16968 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
16969 Now static.
16970
16971 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
16972 * ccl.c (Vccl_program_table): Now static.
16973 (check_ccl_update): Remove; unused.
16974
16975 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
16976 * category.h: ... from here.
16977 * category.c (check_category_table, set_category_set): Now static.
16978
16979 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
16980 * lisp.h: Remove these decls.
16981
16982 * buffer.c (buffer_count): Remove unused var.
16983
16984 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
16985 so that it's not optimized away.
16986 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
16987 * dispextern.h (bidi_dump_cached_states): Remove, since it's
16988 exported only to the debugger.
16989
16990 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
16991 * atimer.h (run_all_atimers): Remove; not exported.
16992
16993 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
16994 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
16995 was inaccessible from Lisp.
16996 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
16997 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
16998
16999 alloc.c: Import and export fewer symbols, and remove unused items.
17000 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
17001 is defined.
17002 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
17003 it's not optimized away by whole-program optimization.
17004 (message_enable_multibyte, free_misc): Remove.
17005 (catchlist, handlerlist, mark_backtrace):
17006 Declare only if BYTE_MARK_STACK.
17007 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
17008 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
17009 (message_enable_multibyte): Remove decl.
17010 (free_misc, interval_free_list, float_block, float_block_index):
17011 (n_float_blocks, float_free_list, cons_block, cons_block_index):
17012 (cons_free_list, last_marked_index):
17013 Now static.
17014 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
17015 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
17016 (mark_backtrace): Define only if BYTE_MARK_STACK.
17017 * xdisp.c (message_enable_multibyte): Now static.
17018
17019 Declare Lisp_Object Q* variables to be 'static' if not exported.
17020 This makes it easier for human readers (and static analyzers)
17021 to see whether these variables are used from other modules.
17022 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
17023 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
17024 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
17025 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
17026 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
17027 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
17028 * xmenu.c, xselect.c:
17029 Declare Q* vars static if they are not used in other modules.
17030 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
17031 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
17032 Remove decls of unexported vars.
17033 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
17034
17035 * lisp.h (DEFINE_FUNC): Make sname 'static'.
17036
17037 Make Emacs functions such as Fatom 'static' by default.
17038 This makes it easier for human readers (and static analyzers)
17039 to see whether these functions can be called from other modules.
17040 DEFUN now defines a static function. To make the function external
17041 so that it can be used in other C modules, use the new macro DEFUE.
17042 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
17043 (Finit_image_library):
17044 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
17045 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
17046 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
17047 Remove decls, since these functions are now static.
17048 (Funintern, Fget_internal_run_time): New decls, since these functions
17049 were already external.
17050
17051 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
17052 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
17053 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
17054 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
17055 * keyboard.c, keymap.c, lread.c:
17056 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
17057 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
17058 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
17059 Mark functions with DEFUE instead of DEFUN,
17060 if they are used in other modules.
17061 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
17062 decls for now-static functions.
17063 * buffer.h (Fdelete_overlay): Remove decl.
17064 * callproc.c (Fgetenv_internal): Mark as internal.
17065 * composite.c (Fremove_list_of_text_properties): Remove decl.
17066 (Fcomposition_get_gstring): New forward static decl.
17067 * composite.h (Fcomposite_get_gstring): Remove decl.
17068 * dired.c (Ffile_attributes): New forward static decl.
17069 * doc.c (Fdocumntation_property): New forward static decl.
17070 * eval.c (Ffetch_bytecode): New forward static decl.
17071 (Funintern): Remove extern decl; now in .h file where it belongs.
17072 * fileio.c (Fmake_symbolic_link): New forward static decl.
17073 * image.c (Finit_image_library): New forward static decl.
17074 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
17075 * intervals.h (Fprevious_property_change):
17076 (Fremove_list_of_text_properties): Remove decls.
17077 * keyboard.c (Fthis_command_keys): Remove decl.
17078 (Fcommand_execute): New forward static decl.
17079 * keymap.c (Flookup_key): New forward static decl.
17080 (Fcopy_keymap): Now static.
17081 * keymap.h (Flookup_key): Remove decl.
17082 * process.c (Fget_process): New forward static decl.
17083 (Fprocess_datagram_address): Mark as internal.
17084 * syntax.c (Fsyntax_table_p): New forward static decl.
17085 (skip_chars): Remove duplicate decl.
17086 * textprop.c (Fprevious_property_change): New forward static decl.
17087 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
17088 Now internal.
17089 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
17090 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
17091
17092 * editfns.c (Fformat): Remove unreachable code.
17093
17094 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
17095
17096 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
17097 change. (Bug#8496)
17098
17099 2011-04-13 Eli Zaretskii <eliz@gnu.org>
17100
17101 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
17102 when at ZV. (Bug#8487)
17103
17104 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
17105
17106 * charset.c (Fclear_charset_maps): Use xfree instead of free.
17107 (Bug#8437)
17108 * keyboard.c (parse_tool_bar_item): Likewise.
17109 * sound.c (sound_cleanup, alsa_close): Likewise.
17110 * termcap.c (tgetent): Likewise.
17111 * xfns.c (x_default_font_parameter): Likewise.
17112 * xsettings.c (read_and_apply_settings): Likewise.
17113
17114 * alloc.c (overrun_check_malloc, overrun_check_realloc)
17115 (overrun_check_free): Protoize.
17116
17117 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
17118
17119 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
17120 since callers should never pass a negative size.
17121 Change the signature to match that of plain 'read' and 'write'; see
17122 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
17123 * lisp.h: Update prototypes of emacs_write and emacs_read.
17124
17125 2011-04-11 Eli Zaretskii <eliz@gnu.org>
17126
17127 * xdisp.c (redisplay_window): Don't try to determine the character
17128 position of the scroll margin if the window start point w->startp
17129 is outside the buffer's accessible region. (Bug#8468)
17130
17131 2011-04-10 Eli Zaretskii <eliz@gnu.org>
17132
17133 Fix write-region and its subroutines for buffers > 2GB.
17134 * fileio.c (a_write, e_write): Modify declaration of arguments and
17135 local variables to support buffers larger than 2GB.
17136 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
17137
17138 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
17139 argument, local variables, and return value.
17140
17141 * lisp.h: Update prototypes of emacs_write and emacs_read.
17142
17143 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
17144
17145 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
17146
17147 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
17148
17149 Fix more problems found by GCC 4.6.0's static checks.
17150
17151 * xdisp.c (vmessage): Use a better test for character truncation.
17152
17153 * charset.c (load_charset_map): <, not <=, for optimization,
17154 and to avoid potential problems with integer overflow.
17155 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
17156 * casetab.c (set_identity, shuffle): Likewise.
17157 * editfns.c (Fformat): Likewise.
17158 * syntax.c (skip_chars): Likewise.
17159
17160 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
17161 This also lets GCC 4.6.0 generate slightly better loop code.
17162
17163 * callint.c (Fcall_interactively): <, not <=, for optimization.
17164 (Fcall_interactively): Count the number of arguments produced,
17165 not the number of arguments given. This is simpler and lets GCC
17166 4.6.0 generate slightly better code.
17167
17168 * ftfont.c: Distingish more carefully between FcChar8 and char.
17169 The previous code passed unsigned char * to a functions like
17170 strlen and xstrcasecmp that expect char *, which does not
17171 conform to the C standard.
17172 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
17173 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
17174 char * when the C standard requires it.
17175
17176 * keyboard.c (read_char): Remove unused var.
17177
17178 * eval.c: Port to Windows vsnprintf (Bug#8435).
17179 Include <limits.h>.
17180 (SIZE_MAX): Define if the headers do not.
17181 (verror): Do not give up if vsnprintf returns a negative count.
17182 Instead, grow the buffer. This ports to Windows vsnprintf, which
17183 does not conform to C99. Problem reported by Eli Zaretskii.
17184 Also, simplify the allocation scheme, by avoiding the need for
17185 calling realloc, and removing the ALLOCATED variable.
17186
17187 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
17188
17189 Remove invocations of doprnt, as Emacs now uses vsnprintf.
17190 But keep the doprint source code for now, as we might revamp it
17191 and use it again (Bug#8435).
17192 * lisp.h (doprnt): Remove.
17193 * Makefile.in (base_obj): Remove doprnt.o.
17194 * deps.mk (doprnt.o): Remove.
17195
17196 error: Print 32- and 64-bit integers portably (Bug#8435).
17197 Without this change, on typical 64-bit hosts error ("...%d...", N)
17198 was used to print both 32- and 64-bit integers N, which relied on
17199 undefined behavior.
17200 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
17201 * lisp.h (error, verror): Mark as printf-like functions.
17202 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
17203 Report overflow in size calculations when allocating printf buffer.
17204 Do not truncate output string at its first null byte.
17205 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
17206 Truncate the output at a character boundary, since vsnprintf does not
17207 do that.
17208 * charset.c (check_iso_charset_parameter): Convert internal
17209 character to string before calling 'error', since %c now has the
17210 printf meaning.
17211 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
17212 overflow when computing char to be passed to 'error'. Do not
17213 pass Lisp_Object to 'error'; pass the integer instead.
17214 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
17215 formatted with plain %d.
17216
17217 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
17218
17219 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
17220
17221 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
17222
17223 * xterm.c (x_catch_errors): Remove duplicate declaration.
17224
17225 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
17226
17227 * xdisp.c, lisp.h (message_nolog): Remove; unused.
17228
17229 2011-04-10 Jim Meyering <meyering@redhat.com>
17230
17231 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
17232 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
17233 return ssize_t not "int", and use size_t as the buffer length.
17234 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
17235 * gnutls.h: Update declarations.
17236 * process.c (read_process_output): Use ssize_t, to match.
17237 (send_process): Likewise.
17238
17239 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
17240
17241 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
17242
17243 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
17244
17245 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
17246 Use unsigned char, to match FcChar8 type definition.
17247
17248 * xterm.c (handle_one_xevent):
17249 * xmenu.c (create_and_show_popup_menu):
17250 * xselect.c (x_decline_selection_request)
17251 (x_reply_selection_request): Avoid type-punned deref of X events.
17252
17253 2011-04-09 Eli Zaretskii <eliz@gnu.org>
17254
17255 Fix some uses of `int' instead of EMACS_INT.
17256 * search.c (string_match_1, fast_string_match)
17257 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
17258 (scan_buffer, find_next_newline_no_quit)
17259 (find_before_next_newline, search_command, Freplace_match)
17260 (Fmatch_data): Make some `int' variables be EMACS_INT.
17261
17262 * xdisp.c (display_count_lines): 3rd argument and return value now
17263 EMACS_INT. All callers changed.
17264 (pint2hrstr): Last argument is now EMACS_INT.
17265
17266 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
17267 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
17268 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
17269 (decode_coding_utf_16, decode_coding_emacs_mule)
17270 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
17271 (decode_coding_ccl, decode_coding_charset)
17272 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
17273 (decode_coding_iso_2022, decode_coding_emacs_mule)
17274 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
17275 <char_offset, last_offset>: Declare EMACS_INT.
17276 (encode_coding_utf_8, encode_coding_utf_16)
17277 (encode_coding_emacs_mule, encode_invocation_designation)
17278 (encode_designation_at_bol, encode_coding_iso_2022)
17279 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
17280 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
17281 Declare EMACS_INT.
17282 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
17283 (encode_invocation_designation): Last argument P_NCHARS is now
17284 EMACS_INT.
17285 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
17286 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
17287
17288 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
17289 All users changed.
17290
17291 * ccl.c (Fccl_execute_on_string): Declare some variables
17292 EMACS_INT.
17293
17294 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
17295
17296 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
17297
17298 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
17299
17300 * process.c (Fformat_network_address): Doc fix.
17301
17302 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
17303
17304 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
17305
17306 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
17307
17308 * keyboard.c (read_char): Call Lisp function help-form-show,
17309 instead of using internal_with_output_to_temp_buffer.
17310 (Qhelp_form_show): New var.
17311 (syms_of_keyboard): Use DEFSYM macro.
17312
17313 * print.c (internal_with_output_to_temp_buffer): Function deleted.
17314
17315 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
17316
17317 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
17318
17319 * process.c (Flist_processes): Remove to Lisp.
17320 (list_processes_1): Delete.
17321
17322 2011-04-06 Eli Zaretskii <eliz@gnu.org>
17323
17324 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
17325
17326 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
17327
17328 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
17329
17330 Fix more problems found by GCC 4.6.0's static checks.
17331
17332 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
17333
17334 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
17335
17336 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
17337
17338 * xdisp.c (vmessage): Mark as a printf-like function.
17339
17340 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
17341
17342 * sound.c (sound_warning): Don't crash if arg contains a printf format.
17343
17344 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
17345 printf-like functions.
17346 (tiff_load): Add casts to remove these marks before passing them
17347 to system-supplied API.
17348
17349 * eval.c (Fsignal): Remove excess argument to 'fatal'.
17350
17351 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
17352 This avoids several warnings with gcc -Wstrict-overflow.
17353 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
17354 directly, rather than having caller test rule sign. This avoids
17355 some unnecessary tests.
17356 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
17357 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
17358 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
17359
17360 * xfont.c (xfont_text_extents): Remove var that was set but not used.
17361 (xfont_open): Avoid unnecessary tests.
17362
17363 * composite.c (composition_gstring_put_cache): Use unsigned integer.
17364
17365 * composite.h, composite.c (composition_gstring_put_cache):
17366 Use EMACS_INT, not int, for length.
17367
17368 * composite.h (COMPOSITION_DECODE_REFS): New macro,
17369 breaking out part of COMPOSITION_DECODE_RULE.
17370 (COMPOSITION_DECODE_RULE): Use it.
17371 * composite.c (get_composition_id): Remove unused local vars,
17372 by using the new macro.
17373
17374 * textprop.c (set_text_properties_1): Change while to do-while,
17375 since the condition is always true at first.
17376
17377 * intervals.c (graft_intervals_into_buffer): Mark var as used.
17378 (interval_deletion_adjustment): Return unsigned value.
17379 All uses changed.
17380
17381 * process.c (list_processes_1, create_pty, read_process_output):
17382 (exec_sentinel): Remove vars that were set but not used.
17383 (create_pty): Remove unnecessary "volatile"s.
17384 (Fnetwork_interface_info): Avoid possibility of int overflow.
17385 (read_process_output): Do adaptive read buffering even if carryover.
17386 (read_process_output): Simplify nbytes computation if buffered.
17387
17388 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
17389
17390 * syntax.c (scan_words): Remove var that was set but not used.
17391 (update_syntax_table): Use unsigned instead of int.
17392
17393 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
17394 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
17395 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
17396
17397 * print.c (print_error_message): Avoid int overflow.
17398
17399 * font.c (font_list_entities): Redo for clarity,
17400 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
17401
17402 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
17403 (font_score): Avoid potential overflow in diff calculation.
17404
17405 * fns.c (substring_both): Remove var that is set but not used.
17406 (sxhash): Redo loop for clarity and to avoid wraparound warning.
17407
17408 * eval.c (funcall_lambda): Rename local to avoid shadowing.
17409
17410 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
17411 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
17412 can always succeed if overflow has undefined behavior.
17413
17414 * search.c (boyer_moore, wordify): Remove vars set but not used.
17415 (wordify): Omit three unnecessary tests.
17416
17417 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
17418 All callers changed. This avoids the need for an unused var.
17419
17420 * casefiddle.c (casify_region): Remove var that is set but not used.
17421
17422 * dired.c (file_name_completion): Remove var that is set but not used.
17423
17424 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
17425
17426 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
17427 (Finsert_file_contents): Remove unnecessary code checking fd.
17428
17429 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
17430 Check for integer overflow on size calculations.
17431
17432 * buffer.c (Fprevious_overlay_change): Remove var that is set
17433 but not used.
17434
17435 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
17436 Remove vars that are set but not used.
17437 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
17438 (timer_check_2): Mark vars as initialized.
17439
17440 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
17441
17442 * image.c (lookup_image): Remove var that is set but not used.
17443 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
17444
17445 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
17446 that are set but not used.
17447
17448 * xfns.c (make_invisible_cursor): Don't return garbage
17449 if XCreateBitmapFromData fails (Bug#8410).
17450
17451 * xselect.c (x_get_local_selection, x_handle_property_notify):
17452 Remove vars that are set but not used.
17453
17454 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
17455 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
17456
17457 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
17458 Remove var that is set but not used.
17459 (scroll_bar_windows_size): Now size_t, not int.
17460 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
17461 Check for overflow.
17462
17463 * xfaces.c (realize_named_face): Remove vars that are set but not used.
17464 (map_tty_color) [!defined MSDOS]: Likewise.
17465
17466 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
17467
17468 * coding.c: Remove vars that are set but not used.
17469 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
17470 All callers changed.
17471 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
17472 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
17473 (decode_coding_charset): Remove vars that are set but not used.
17474
17475 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
17476 that is set but not used.
17477
17478 * print.c (print_object): Remove var that is set but not used.
17479
17480 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
17481 The gnulib version avoids calling malloc in the usual case,
17482 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
17483 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
17484 * filelock.c (current_lock_owner): Likewise.
17485 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
17486 * sysdep.c: Include allocator.h, careadlinkat.h.
17487 (emacs_no_realloc_allocator): New static constant.
17488 (emacs_readlink): New function.
17489 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
17490 ../lib/careadlinkat.h.
17491
17492 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
17493
17494 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
17495 first non-nil return value).
17496
17497 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
17498
17499 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
17500 if not defined (Bug#8403).
17501
17502 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
17503
17504 * xdisp.c (display_count_lines): Remove parameter `start',
17505 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
17506 (get_char_face_and_encoding): Remove parameter `multibyte_p',
17507 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
17508 (fill_stretch_glyph_string): Remove parameters `row' and `area',
17509 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
17510 and thereabouts. All callers changed.
17511 (get_per_char_metric): Remove parameter `f', unused since
17512 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
17513
17514 2011-04-02 Jim Meyering <meyering@redhat.com>
17515
17516 do not dereference NULL upon failed strdup
17517 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
17518 (ns_get_family): Likewise.
17519
17520 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
17521
17522 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
17523
17524 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
17525
17526 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
17527 later (Bug#8403).
17528
17529 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
17530
17531 Add lexical binding.
17532
17533 * window.c (Ftemp_output_buffer_show): New fun.
17534 (Fsave_window_excursion):
17535 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
17536
17537 * lread.c (lisp_file_lexically_bound_p): New function.
17538 (Fload): Bind Qlexical_binding.
17539 (readevalloop): Remove `evalfun' arg.
17540 Bind Qinternal_interpreter_environment.
17541 (Feval_buffer): Bind Qlexical_binding.
17542 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
17543 Mark as dynamic.
17544 (syms_of_lread): Declare `lexical-binding'.
17545
17546 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
17547
17548 * keyboard.c (eval_dyn): New fun.
17549 (menu_item_eval_property): Use it.
17550
17551 * image.c (parse_image_spec): Use Ffunctionp.
17552
17553 * fns.c (concat, mapcar1): Accept byte-code-functions.
17554
17555 * eval.c (Fsetq): Handle lexical vars.
17556 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
17557 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
17558 (FletX, Flet): Obey lexical binding.
17559 (Fcommandp): Handle closures.
17560 (Feval): New `lexical' arg.
17561 (eval_sub): New function extracted from Feval. Use it almost
17562 everywhere where Feval was used. Look up vars in lexical env.
17563 Handle closures.
17564 (Ffunctionp): Move from subr.el.
17565 (Ffuncall): Handle closures.
17566 (apply_lambda): Remove `eval_flags'.
17567 (funcall_lambda): Handle closures and new byte-code-functions.
17568 (Fspecial_variable_p): New function.
17569 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
17570 but without exporting it to Lisp.
17571
17572 * doc.c (Fdocumentation, store_function_docstring):
17573 * data.c (Finteractive_form): Handle closures.
17574
17575 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
17576 interactive spec.
17577
17578 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
17579 New byte-codes.
17580 (exec_byte_code): New function extracted from Fbyte_code to handle new
17581 calling convention for byte-code-functions. Add new byte-codes.
17582
17583 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
17584
17585 * alloc.c (Fmake_symbol): Init new `declared_special' field.
17586
17587 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
17588
17589 * xdisp.c (redisplay_internal): Fix prototype.
17590
17591 2011-03-31 Eli Zaretskii <eliz@gnu.org>
17592
17593 * xdisp.c (SCROLL_LIMIT): New macro.
17594 (try_scrolling): Use it when setting scroll_limit.
17595 Limit scrolling to 100 screen lines.
17596 (redisplay_window): Even when falling back on "recentering",
17597 position point in the window according to scroll-conservatively,
17598 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
17599
17600 (try_scrolling): When point is above the window, allow searching
17601 as far as scroll_max, or one screenful, to compute vertical
17602 distance from PT to the scroll margin position. This prevents
17603 try_scrolling from unnecessarily failing when
17604 scroll-conservatively is set to a value slightly larger than the
17605 window height. Clean up the case of PT below the margin at bottom
17606 of window: scroll_max can no longer be INT_MAX. When aggressive
17607 scrolling is in use, don't let point enter the opposite scroll
17608 margin as result of the scroll.
17609 (syms_of_xdisp) <scroll-conservatively>: Document the
17610 threshold of 100 lines for never-recentering scrolling.
17611
17612 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
17613
17614 * dispextern.h (move_it_by_lines):
17615 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
17616 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
17617 (message_log_check_duplicate): Remove parameters `prev_bol' and
17618 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
17619 (redisplay_internal): Remove parameter `preserve_echo_area',
17620 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
17621
17622 * indent.c (Fvertical_motion):
17623 * window.c (window_scroll_pixel_based, Frecenter):
17624 Don't pass `need_y_p' to `move_it_by_lines'.
17625
17626 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
17627
17628 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
17629 steal a few bits to be more compact.
17630 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
17631 Remove unneeded casts.
17632
17633 * bytecode.c (Fbyte_code): CAR and CDR can GC.
17634
17635 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
17636
17637 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
17638 binding" message (bug#7967).
17639
17640 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
17641
17642 Fix more problems found by GCC 4.6.0's static checks.
17643
17644 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
17645 Remove unused local var.
17646
17647 * editfns.c (Fmessage_box): Remove unused local var.
17648
17649 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
17650 (note_mode_line_or_margin_highlight, note_mouse_highlight):
17651 Omit unused local vars.
17652 * window.c (shrink_windows): Omit unused local var.
17653 * menu.c (digest_single_submenu): Omit unused local var.
17654 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
17655 Omit unused local var.
17656
17657 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
17658 Don't assume string length fits in int.
17659 (keyremap_step, read_key_sequence): Use size_t for sizes.
17660 (read_key_sequence): Don't check last_real_key_start redundantly.
17661
17662 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
17663 instead of alloca (Bug#8344).
17664
17665 * eval.c (Fbacktrace): Don't assume nargs fits in int.
17666 (Fbacktrace_frame): Don't assume nframes fits in int.
17667
17668 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
17669
17670 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
17671 concerns.
17672
17673 * term.c (produce_glyphless_glyph): Remove unnecessary test.
17674
17675 * cm.c (calccost): Turn while-do into do-while, for clarity.
17676
17677 * keyboard.c (syms_of_keyboard): Use the same style as later
17678 in this function when indexing through an array. This also
17679 works around GCC bug 48267.
17680
17681 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
17682
17683 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
17684
17685 * chartab.c (sub_char_table_ref_and_range): Redo for slight
17686 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
17687
17688 * keyboard.c, keyboard.h (num_input_events): Now size_t.
17689 This avoids undefined behavior on integer overflow, and is a bit
17690 more convenient anyway since it is compared to a size_t variable.
17691
17692 Variadic C functions now count arguments with size_t, not int.
17693 This avoids an unnecessary limitation on 64-bit machines, which
17694 caused (substring ...) to crash on large vectors (Bug#8344).
17695 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
17696 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
17697 All variadic functions and their callers changed accordingly.
17698 (struct gcpro.nvars): Now size_t, not int. All uses changed.
17699 * data.c (arith_driver, float_arith_driver): Likewise.
17700 * editfns.c (general_insert_function): Likewise.
17701 * eval.c (struct backtrace.nargs, interactive_p)
17702 (internal_condition_case_n, run_hook_with_args, apply_lambda)
17703 (funcall_lambda, mark_backtrace): Likewise.
17704 * fns.c (concat): Likewise.
17705 * frame.c (x_set_frame_parameters): Likewise.
17706 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
17707 0 if not found, not -1. All callers changed.
17708
17709 * alloc.c (garbage_collect): Don't assume stack size fits in int.
17710 (stack_copy_size): Now size_t, not int.
17711 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
17712
17713 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
17714
17715 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
17716 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
17717 All callers changed.
17718
17719 * lisp.h (multibyte_char_to_unibyte):
17720 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
17721 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
17722 * character.h (CHAR_TO_BYTE8):
17723 * cmds.c (internal_self_insert):
17724 * editfns.c (general_insert_function):
17725 * keymap.c (push_key_description):
17726 * search.c (Freplace_match):
17727 * xdisp.c (message_dolog, set_message_1): All callers changed.
17728
17729 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
17730
17731 * keyboard.c (safe_run_hook_funcall): New function.
17732 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
17733 don't set the hook to nil, but remove the offending function instead.
17734 (Qcommand_hook_internal): Remove, unused.
17735 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
17736 Vcommand_hook_internal.
17737
17738 * eval.c (enum run_hooks_condition): Remove.
17739 (funcall_nil, funcall_not): New functions.
17740 (run_hook_with_args): Call each function through a `funcall' argument.
17741 Remove `cond' argument, now redundant.
17742 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
17743 (Frun_hook_with_args_until_failure): Adjust accordingly.
17744 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
17745
17746 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
17747
17748 * dispextern.h (string_buffer_position): Remove declaration.
17749
17750 * print.c (strout): Remove parameter `multibyte', unused since
17751 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
17752
17753 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
17754 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
17755 All callers changed.
17756
17757 * w32.c (_wsa_errlist): Use braces for struct initializers.
17758
17759 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
17760 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
17761 All callers changed.
17762 (string_buffer_position): Likewise. Also, make static (it's never
17763 used outside xdisp.c).
17764 (cursor_row_p): Remove parameter `w', unused since
17765 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
17766 (decode_mode_spec): Remove parameter `precision', introduced during
17767 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
17768 All callers changed.
17769
17770 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
17771
17772 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
17773
17774 2011-03-27 Anders Lindgren <andlind@gmail.com>
17775
17776 * nsterm.m (ns_menu_bar_is_hidden): New variable.
17777 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
17778 (ns_update_auto_hide_menu_bar): New functions.
17779 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
17780 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
17781 ns_constrain_all_frames.
17782 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
17783 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
17784
17785 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
17786
17787 * nsmenu.m (runDialogAt): Remove argument to timer_check.
17788
17789 2011-03-27 Glenn Morris <rgm@gnu.org>
17790
17791 * syssignal.h: Replace RETSIGTYPE with void.
17792 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
17793 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
17794 Replace SIGTYPE with void everywhere.
17795 * s/usg5-4-common.h (SIGTYPE): Remove definition.
17796 * s/template.h (SIGTYPE): Remove commented out definition.
17797
17798 2011-03-26 Eli Zaretskii <eliz@gnu.org>
17799
17800 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
17801 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
17802
17803 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
17804
17805 * w32.c (read_unc_volume): Use parameter `henum', instead of
17806 global variable `wget_enum_handle'.
17807
17808 * keymap.c (describe_vector): Remove parameters `indices' and
17809 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
17810 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
17811
17812 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
17813
17814 * keyboard.c (timer_check): Remove parameter `do_it_now',
17815 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
17816 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
17817 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
17818
17819 * keyboard.c (read_char):
17820 * w32menu.c (w32_menu_display_help):
17821 * xmenu.c (show_help_event, menu_help_callback):
17822 Adjust calls to `show_help_echo'.
17823
17824 * gtkutil.c (xg_maybe_add_timer):
17825 * keyboard.c (readable_events):
17826 * process.c (wait_reading_process_output):
17827 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
17828
17829 * insdel.c (adjust_markers_gap_motion):
17830 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
17831 (gap_left, gap_right): Don't call it.
17832
17833 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
17834
17835 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
17836 incurred during fontification.
17837
17838 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
17839
17840 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
17841 (DEFVAR_PER_BUFFER): Don't pass it.
17842
17843 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
17844 (scrolling_window): Don't pass it.
17845
17846 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
17847
17848 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
17849
17850 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
17851 and `suffix'.
17852 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
17853 of variables specific to SELinux and computation of `encoded_absname'.
17854
17855 * image.c (XPutPixel): Remove unused variable `height'.
17856
17857 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
17858
17859 * unexw32.c (get_section_info): Remove unused variable `section'.
17860
17861 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
17862 (system_process_attributes): Remove unused variable `sess'.
17863 (sys_read): Remove unused variable `err'.
17864
17865 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
17866 (w32_wnd_proc): Remove unused variable `isdead'.
17867 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
17868 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
17869 (x_create_tip_frame): Remove unused variable `tem'.
17870
17871 * w32inevt.c (w32_console_read_socket):
17872 Remove unused variable `no_events'.
17873
17874 * w32term.c (x_draw_composite_glyph_string_foreground):
17875 Remove unused variable `width'.
17876
17877 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
17878
17879 * w32term.c (x_set_glyph_string_clipping):
17880 Don't pass uninitialized region to CombineRgn.
17881
17882 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
17883
17884 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
17885 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
17886 (Fx_close_connection): Remove unused variable `i'.
17887
17888 * w32font.c (w32font_draw): Return number of glyphs.
17889 (w32font_open_internal): Remove unused variable `i'.
17890 (w32font_driver): Add missing initializer.
17891
17892 * w32menu.c (utf8to16): Remove unused variable `utf16'.
17893 (fill_in_menu): Remove unused variable `items_added'.
17894
17895 * w32term.c (last_mouse_press_frame): Remove static global variable.
17896 (w32_clip_to_row): Remove unused variable `f'.
17897 (x_delete_terminal): Remove unused variable `i'.
17898
17899 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
17900 (NOTHING): Remove unused static global variable.
17901 (uniscribe_check_otf): Remove unused variable `table'.
17902 (uniscribe_font_driver): Add missing initializers.
17903
17904 2011-03-23 Julien Danjou <julien@danjou.info>
17905
17906 * term.c (Fsuspend_tty, Fresume_tty):
17907 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
17908 * window.c (temp_output_buffer_show):
17909 * insdel.c (signal_before_change):
17910 * frame.c (Fhandle_switch_frame):
17911 * fileio.c (Fdo_auto_save):
17912 * emacs.c (Fkill_emacs):
17913 * editfns.c (save_excursion_restore):
17914 * cmds.c (internal_self_insert):
17915 * callint.c (Fcall_interactively):
17916 * buffer.c (Fkill_all_local_variables):
17917 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
17918 Use Frun_hooks.
17919 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
17920 unconditionally since it does the check itself.
17921
17922 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
17923
17924 Fix more problems found by GCC 4.5.2's static checks.
17925
17926 * coding.c (encode_coding_raw_text): Avoid unnecessary test
17927 the first time through the loop, since we know p0 < p1 then.
17928 This also avoids a gcc -Wstrict-overflow warning.
17929
17930 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
17931 leading to a memory leak, possible in functions like
17932 load_charset_map_from_file that can allocate an unbounded number
17933 of objects (Bug#8318).
17934
17935 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
17936 that could (at least in theory) be that large.
17937
17938 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
17939 This is less likely to overflow, and avoids undefined behavior if
17940 overflow does occur. All callers changed. Use strtoul to scan
17941 for the unsigned long integer.
17942 (pint2hrstr): Simplify and tune code slightly.
17943 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
17944
17945 * scroll.c (do_scrolling): Work around GCC bug 48228.
17946 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
17947
17948 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
17949 This also avoids a warning with gcc -Wstrict-overflow.
17950 (validate_x_resource_name): Simplify count usage.
17951 This also avoids a warning with gcc -Wstrict-overflow.
17952
17953 * fileio.c (Fcopy_file): Report error if fchown or fchmod
17954 fail (Bug#8306).
17955
17956 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
17957
17958 * process.c (Fmake_network_process): Use socklen_t, not int,
17959 where POSIX says socklen_t is required in portable programs.
17960 This fixes a porting bug on hosts like 64-bit HP-UX, where
17961 socklen_t is wider than int (Bug#8277).
17962 (Fmake_network_process, server_accept_connection):
17963 (wait_reading_process_output, read_process_output):
17964 Likewise.
17965
17966 * process.c: Rename or move locals to avoid shadowing.
17967 (list_processes_1, Fmake_network_process):
17968 (read_process_output_error_handler, exec_sentinel_error_handler):
17969 Rename or move locals.
17970 (Fmake_network_process): Define label "retry_connect" only if needed.
17971 (Fnetwork_interface_info): Fix pointer signedness.
17972 (process_send_signal): Add cast to avoid pointer signedness problem.
17973 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
17974 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
17975
17976 Make tparam.h and terminfo.c consistent.
17977 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
17978 Include tparam.h instead, since it declares them.
17979 * cm.h (PC): Remove extern decl; tparam.h now does this.
17980 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
17981 * terminfo.c: Include tparam.h, to check interfaces.
17982 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
17983 (tparam): Adjust signature to match interface in tparam.h;
17984 this removes some undefined behavior. Check that outstring and len
17985 are zero, which they always are with Emacs.
17986 * tparam.h (PC, BC, UP): New extern decls.
17987
17988 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
17989 (xftfont_open): Rename locals to avoid shadowing.
17990
17991 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
17992 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
17993 (OTF_TAG_SYM): Omit macro if not needed.
17994 (ftfont_list): Remove unused local.
17995 (get_adstyle_property, ftfont_pattern_entity):
17996 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
17997 Rename locals to avoid shadowing.
17998
17999 * xfont.c (xfont_list_family): Mark var as initialized.
18000
18001 * xml.c (make_dom): Now static.
18002
18003 * composite.c (composition_compute_stop_pos): Rename local to
18004 avoid shadowing.
18005 (composition_reseat_it): Remove unused locals.
18006 (find_automatic_composition, composition_adjust_point): Likewise.
18007 (composition_update_it): Mark var as initialized.
18008 (find_automatic_composition): Mark vars as initialized,
18009 with a FIXME (Bug#8290).
18010
18011 character.h: Rename locals to avoid shadowing.
18012 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
18013 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
18014 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
18015 (BUF_DEC_POS): Be more systematic about renaming local temporaries
18016 to avoid shadowing.
18017
18018 * textprop.c (property_change_between_p): Remove; unused.
18019
18020 * intervals.c (interval_start_pos): Now static.
18021
18022 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
18023
18024 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
18025 Rename locals to avoid shadowing.
18026
18027 * sound.c (wav_play, au_play, Fplay_sound_internal):
18028 Fix pointer signedness.
18029 (alsa_choose_format): Remove unused local var.
18030 (wav_play): Initialize a variable to 0, to prevent undefined
18031 behavior (Bug#8278).
18032
18033 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
18034
18035 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
18036
18037 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
18038 clobbering (Bug#8298).
18039 * sysdep.c (sys_subshell): Likewise.
18040 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
18041
18042 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
18043 This should get cleaned up, so that child_setup has the
18044 same signature on all platforms.
18045
18046 * callproc.c (call_process_cleanup): Now static.
18047 (relocate_fd): Rename locals to avoid shadowing.
18048
18049 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
18050
18051 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
18052 not to be necessary, and produces flickering.
18053
18054 2011-03-20 Glenn Morris <rgm@gnu.org>
18055
18056 * config.in: Remove file.
18057
18058 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
18059
18060 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
18061 are now in src/globals.h.
18062 (syms_of_minibuf): Remove spurious & from previous change.
18063
18064 2011-03-20 Leo Liu <sdl.web@gmail.com>
18065
18066 * minibuf.c (completing-read-function): New variable.
18067 (completing-read-default): Rename from completing-read.
18068 (completing-read): Call completing-read-function.
18069
18070 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
18071
18072 * xfaces.c (Fx_load_color_file):
18073 Read color file from absolute filename (bug#8250).
18074
18075 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
18076
18077 * makefile.w32-in: Update dependencies.
18078
18079 2011-03-17 Eli Zaretskii <eliz@gnu.org>
18080
18081 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
18082
18083 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
18084
18085 Fix more problems found by GCC 4.5.2's static checks.
18086
18087 * process.c (make_serial_process_unwind, send_process_trap):
18088 (sigchld_handler): Now static.
18089
18090 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
18091 That way, the code declares only the vars that it needs.
18092 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
18093 * s/cygwin.h (PTY_ITERATION): Likewise.
18094 * s/darwin.h (PTY_ITERATION): Likewise.
18095 * s/gnu-linux.h (PTY_ITERATION): Likewise.
18096
18097 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
18098 * process.c (allocate_pty): Don't declare stb unless it's needed.
18099
18100 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
18101 (CONSTANTLIM): Remove; unused.
18102 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
18103 Define only if needed.
18104
18105 * unexelf.c (unexec): Name an expression,
18106 to avoid gcc -Wbad-function-cast warning.
18107 Use a different way to cause a compilation error if anyone uses
18108 n rather than nn, a way that does not involve shadowing.
18109 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
18110
18111 * deps.mk (unexalpha.o): Remove; unused.
18112
18113 New file unexec.h, the (simple) interface for unexec (Bug#8267).
18114 * unexec.h: New file.
18115 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
18116 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
18117 Depend on unexec.h.
18118 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
18119 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
18120 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
18121 Change as necessary to match prototype in unexec.h.
18122
18123 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
18124 shadowing.
18125 (back_comment, skip_chars): Mark vars as initialized.
18126
18127 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
18128 Rename locals to avoid shadowing.
18129
18130 * lread.c (read1): Rewrite so as not to use empty "else".
18131 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
18132
18133 * print.c (Fredirect_debugging_output): Fix pointer signedess.
18134
18135 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
18136 warning when compiling print.c.
18137
18138 * font.c (font_unparse_fcname): Abort in an "impossible" situation
18139 instead of using an uninitialized var.
18140 (font_sort_entities): Mark var as initialized.
18141
18142 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
18143
18144 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
18145 pointers to constants.
18146 (font_parse_fcname): Remove unused vars.
18147 (font_delete_unmatched): Now static.
18148 (font_get_spec): Remove; unused.
18149 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
18150 (font_update_drivers, Ffont_get_glyphs, font_add_log):
18151 Rename or move locals to avoid shadowing.
18152
18153 * fns.c (require_nesting_list, require_unwind): Now static.
18154 (Ffillarray): Rename locals to avoid shadowing.
18155
18156 * floatfns.c (domain_error2): Define only if needed.
18157 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
18158
18159 * alloc.c (mark_backtrace): Move decl from here ...
18160 * lisp.h: ... to here, so that it can be checked.
18161
18162 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
18163 (Fdefvar): Rewrite so as not to use empty "else".
18164 (lisp_indirect_variable): Name an expression,
18165 to avoid gcc -Wbad-function-cast warning.
18166 (Fdefvar): Rename locals to avoid shadowing.
18167
18168 * callint.c (quotify_arg, quotify_args): Now static.
18169 (Fcall_interactively): Rename locals to avoid shadowing.
18170 Use const pointer when appropriate.
18171
18172 * lisp.h (get_system_name, get_operating_system_release):
18173 Move decls here, to check interfaces.
18174 * process.c (get_operating_system_release): Move decl to lisp.h.
18175 * xrdb.c (get_system_name): Likewise.
18176 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
18177 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
18178 some of which prompt warnings from gcc -Wbad-function-cast.
18179 (Fformat_time_string, Fencode_time, Finsert_char):
18180 (Ftranslate_region_internal, Fformat):
18181 Rename or remove local vars to avoid shadowing.
18182 (Ftranslate_region_internal): Mark var as initialized.
18183
18184 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
18185 avoid shadowing.
18186
18187 * lisp.h (eassert): Check that the argument compiles, even if
18188 ENABLE_CHECKING is not defined.
18189
18190 * data.c (Findirect_variable): Name an expression, to avoid
18191 gcc -Wbad-function-cast warning.
18192 (default_value, arithcompare, arith_driver, arith_error): Now static.
18193 (store_symval_forwarding): Rename local to avoid shadowing.
18194 (Fmake_variable_buffer_local, Fmake_local_variable):
18195 Mark variables as initialized.
18196 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
18197
18198 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
18199 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
18200 Rename locals to avoid shadowing.
18201 (mark_stack): Move local variables into the #ifdef region where
18202 they're used.
18203 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
18204 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
18205 needed otherwise.
18206 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
18207 (GC_STRING_CHARS): Remove; not used.
18208 (Fmemory_limit): Cast sbrk's returned value to char *.
18209
18210 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
18211 avoids undefined behavior in theory.
18212
18213 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
18214
18215 Use functions, not macros, for up- and down-casing (Bug#8254).
18216 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
18217 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
18218 to use the following functions instead of these macros.
18219 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
18220 EMACS_INT, since callers assume the returned value fits in int.
18221 (upcase1): Likewise, for UPCASE_TABLE.
18222 (uppercasep, lowercasep, upcase): New static inline functions.
18223 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
18224 the race-condition problem in the old DOWNCASE.
18225
18226 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
18227 Rename locals to avoid shadowing.
18228 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
18229 (regex_compile, re_search_2, re_match_2_internal):
18230 Remove unused local vars.
18231 (FREE_VAR): Rewrite so as not to use empty "else",
18232 which gcc can warn about.
18233 (regex_compile, re_match_2_internal): Mark locals as initialized.
18234 (RETALLOC_IF): Define only if needed.
18235 (WORDCHAR_P): Likewise. This one is never needed, but is used
18236 only in a comment talking about a compiler bug, so put inside
18237 the #if 0 of that comment.
18238 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
18239 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
18240 Remove; unused.
18241
18242 * search.c (boyer_moore): Rename locals to avoid shadowing.
18243 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
18244 (PREV_CHAR_BOUNDARY): Likewise.
18245
18246 * search.c (simple_search): Remove unused var.
18247
18248 * dired.c (compile_pattern): Move decl from here ...
18249 * lisp.h: ... to here, so that it can be checked.
18250 (struct re_registers): New forward decl.
18251
18252 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
18253
18254 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
18255 All uses changed.
18256 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
18257 Rename locals to avoid shadowing.
18258 (Fvertical_motion): Mark locals as initialized.
18259
18260 * casefiddle.c (casify_object, casify_region): Now static.
18261 (casify_region): Mark local as initialized.
18262
18263 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
18264
18265 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
18266 New macros, so that the caller can use some names other than
18267 gcpro1, gcpro2, etc.
18268 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
18269 of the new macros.
18270 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
18271 argument, for consistency with GCPRO2_VAR, etc: it is now the
18272 prefix of the variable, not the variable itself. All uses
18273 changed.
18274 * dired.c (directory_files_internal, file_name_completion):
18275 Rename locals to avoid shadowing.
18276
18277 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
18278 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
18279 dired.c's scmp function, had undefined behavior.
18280 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
18281 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
18282 * buffer.h: ... to here, because these macros use current_buffer,
18283 and the new implementation with inline functions needs to have
18284 current_buffer in scope now, rather than later when the macros
18285 are used.
18286 (downcase, upcase1): New static inline functions.
18287 (DOWNCASE, UPCASE1): Reimplement using these functions.
18288 This avoids undefined behavior in expressions like
18289 DOWNCASE (x) == DOWNCASE (y), which previously suffered
18290 from race conditions in accessing the global variables
18291 case_temp1 and case_temp2.
18292 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
18293 * lisp.h (case_temp1, case_temp2): Remove their decls.
18294 * character.h (ASCII_CHAR_P): Move from here ...
18295 * lisp.h: ... to here, so that the inline functions mentioned
18296 above can use them.
18297
18298 * dired.c (directory_files_internal_unwind): Now static.
18299
18300 * fileio.c (file_name_as_directory, directory_file_name):
18301 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
18302 Now static.
18303 (file_name_as_directory): Use const pointers when appropriate.
18304 (Fexpand_file_name): Likewise. In particular, newdir might
18305 point at constant storage, so make it a const pointer.
18306 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
18307 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
18308 signedness issues.
18309 (Fset_file_times, Finsert_file_contents, auto_save_error):
18310 Rename locals to avoid shadowing.
18311
18312 * minibuf.c (choose_minibuf_frame_1): Now static.
18313 (Ftry_completion, Fall_completions): Rename or remove locals
18314 to avoid shadowing.
18315
18316 * marker.c (bytepos_to_charpos): Remove; unused.
18317
18318 * lisp.h (verify_bytepos, count_markers): New decls,
18319 so that gcc does not warn that these functions aren't declared.
18320
18321 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
18322 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
18323 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
18324 (copy_text): Remove unused local var.
18325
18326 * filelock.c (within_one_second): Now static.
18327 (lock_file_1): Rename local to avoid shadowing.
18328
18329 * buffer.c (fix_overlays_before): Mark locals as initialized.
18330 (fix_start_end_in_overlays): Likewise. This function should be
18331 simplified by using pointers-to-pointers, but that's a different
18332 matter.
18333 (switch_to_buffer_1): Now static.
18334 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
18335 (report_overlay_modification): Rename locals to avoid shadowing.
18336
18337 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
18338 Fix pointer signedness issue.
18339 (sys_subshell): Mark local as volatile if checking for lint,
18340 to suppress a gcc -Wclobbered warning that does not seem to be right.
18341 (MAXPATHLEN): Define only if needed.
18342
18343 * process.c (serial_open, serial_configure): Move decls from here ...
18344 * systty.h: ... to here, so that they can be checked.
18345
18346 * fns.c (get_random, seed_random): Move extern decls from here ...
18347 * lisp.h: ... to here, so that they can be checked.
18348
18349 * sysdep.c (reset_io): Now static.
18350 (wait_for_termination_signal): Remove; unused.
18351
18352 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
18353 (copy_keymap_item, append_key, push_text_char_description):
18354 Now static.
18355 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
18356 (DENSE_TABLE_SIZE): Remove; unused.
18357 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
18358 (describe_map_tree):
18359 Rename locals to avoid shadowing.
18360
18361 * keyboard.c: Declare functions static if they are not used elsewhere.
18362 (echo_char, echo_dash, cmd_error, top_level_2):
18363 (poll_for_input, handle_async_input): Now static.
18364 (read_char, kbd_buffer_get_event, make_lispy_position):
18365 (make_lispy_event, make_lispy_movement, apply_modifiers):
18366 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
18367 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
18368 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
18369 (read_key_sequence, read_char): Mark locals as initialized.
18370 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
18371
18372 * keyboard.h (make_ctrl_char): New decl.
18373 (mark_kboards): Move decl here ...
18374 * alloc.c (mark_kboards): ... from here.
18375
18376 * lisp.h (force_auto_save_soon): New decl.
18377
18378 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
18379 (DEFINE_DUMMY_FUNCTION): New macro.
18380 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
18381 Use it.
18382 (main): Add casts to avoid warnings
18383 if GCC considers string literals to be constants.
18384
18385 * lisp.h (fatal_error_signal): Add decl, since it's exported.
18386
18387 * dbusbind.c: Pointer signedness fixes.
18388 (xd_signature, xd_append_arg, xd_initialize):
18389 (Fdbus_call_method, Fdbus_call_method_asynchronously):
18390 (Fdbus_method_return_internal, Fdbus_method_error_internal):
18391 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
18392 (Fdbus_register_signal): Use SSDATA when the context wants char *.
18393
18394 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
18395 if GCC considers string literals to be constants.
18396 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
18397
18398 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
18399
18400 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
18401 (print_preprocess, print_object): New macro to fix last change.
18402
18403 * print.c (print_preprocess): Don't forget font objects.
18404
18405 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
18406
18407 * emacs.c (USAGE3): Doc fixes.
18408
18409 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
18410
18411 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
18412 structure.
18413
18414 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
18415
18416 * lisp.h (VWindow_system, Qfile_name_history):
18417 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
18418 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
18419 (w32_system_caret_x, w32_system_caret_y): Declare extern.
18420
18421 * w32select.c: Don't #include "keyboard.h".
18422 (run_protected): Add extern declaration for waiting_for_input.
18423
18424 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
18425 * w32console.c (detect_input_pending, read_input_pending)
18426 (encode_terminal_code):
18427 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
18428 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
18429 (w32_system_caret_y, Qfile_name_history):
18430 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
18431 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
18432 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
18433 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
18434 * w32proc.c (Qlocal, report_file_error):
18435 * w32term.c (Vwindow_system, updating_frame):
18436 * w32uniscribe.c (initialized, uniscribe_font_driver):
18437 Remove unneeded extern declarations.
18438
18439 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
18440
18441 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
18442
18443 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
18444
18445 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
18446 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
18447 These macros can no longer be used for assignment.
18448
18449 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
18450 Assign struct members directly, instead of using BUF_BEGV etc.
18451 (record_buffer_markers, fetch_buffer_markers): New functions for
18452 recording and fetching special buffer markers.
18453 (set_buffer_internal_1, set_buffer_temp): Use them.
18454
18455 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
18456
18457 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
18458
18459 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
18460 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
18461
18462 * xdisp.c (hscroll_window_tree):
18463 (reconsider_clip_changes): Use PT instead of BUF_PT.
18464
18465 2011-03-13 Eli Zaretskii <eliz@gnu.org>
18466
18467 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
18468 $(EMACS_ROOT)/lib/intprops.h.
18469
18470 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
18471
18472 Fix more problems found by GCC 4.5.2's static checks.
18473
18474 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
18475 to unsigned char * to avoid compiler diagnostic.
18476 (xg_free_frame_widgets): Make it clear that a local variable is
18477 needed only if USE_GTK_TOOLTIP.
18478 (gdk_window_get_screen): Make it clear that this macro is needed
18479 only if USE_GTK_TOOLTIP.
18480 (int_gtk_range_get_value): New function, which avoids a diagnostic
18481 from gcc -Wbad-function-cast.
18482 (xg_set_toolkit_scroll_bar_thumb): Use it.
18483 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
18484 diagnostic from gcc -Wbad-function-cast.
18485 (get_utf8_string, xg_get_file_with_chooser):
18486 Rename locals to avoid shadowing.
18487 (create_dialog): Move locals to avoid shadowing.
18488
18489 * xgselect.c (xg_select): Remove unused var.
18490
18491 * image.c (four_corners_best): Mark locals as initialized.
18492 (gif_load): Initialize transparent_p to zero (Bug#8238).
18493 Mark another local as initialized.
18494 (my_png_error, my_error_exit): Mark with NO_RETURN.
18495
18496 * image.c (clear_image_cache): Now static.
18497 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
18498 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
18499 (x_edge_detection): Remove unnecessary cast that
18500 gcc -Wbad-function-cast diagnoses.
18501 (gif_load): Fix pointer signedness.
18502 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
18503 (jpeg_load, gif_load): Rename locals to avoid shadowing.
18504
18505 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
18506
18507 Improve quality of tests for time stamp overflow.
18508 For example, without this patch (encode-time 0 0 0 1 1
18509 1152921504606846976) returns the obviously-bogus value (-948597
18510 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
18511 reports time overflow. See
18512 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
18513 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
18514 * editfns.c: Include limits.h and intprops.h.
18515 (TIME_T_MIN, TIME_T_MAX): New macros.
18516 (time_overflow): Move earlier, to before first use.
18517 (hi_time, lo_time): New functions, for an accurate test for
18518 out-of-range times.
18519 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
18520 (Fget_internal_run_time): Don't assume time_t fits in int.
18521 (make_time): Use list2 instead of Fcons twice.
18522 (Fdecode_time): More accurate test for out-of-range times.
18523 (check_tm_member): New function.
18524 (Fencode_time): Use it, to test for out-of-range times.
18525 (lisp_time_argument): Don't rely on undefined left-shift and
18526 right-shift behavior when checking for time stamp overflow.
18527
18528 * editfns.c (time_overflow): New function, refactoring common code.
18529 (Fformat_time_string, Fdecode_time, Fencode_time):
18530 (Fcurrent_time_string): Use it.
18531
18532 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
18533 * dired.c (make_time): Move to ...
18534 * editfns.c (make_time): ... here.
18535 * systime.h: Note the move.
18536
18537 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
18538
18539 * fringe.c (update_window_fringes): Remove unused variables.
18540
18541 * unexmacosx.c (copy_data_segment): Also copy __got section.
18542 (Bug#8223)
18543
18544 2011-03-12 Eli Zaretskii <eliz@gnu.org>
18545
18546 * termcap.c [MSDOS]: Include "msdos.h".
18547 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
18548 Constify `char *' arguments and their references according to
18549 prototypes in tparam.h.
18550
18551 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
18552
18553 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
18554 Adapt all references accordingly.
18555
18556 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
18557
18558 2011-03-11 Tom Tromey <tromey@redhat.com>
18559
18560 * buffer.c (syms_of_buffer): Remove obsolete comment.
18561
18562 2011-03-11 Eli Zaretskii <eliz@gnu.org>
18563
18564 * termhooks.h (encode_terminal_code): Declare prototype.
18565
18566 * msdos.c (encode_terminal_code): Don't declare prototype.
18567
18568 * term.c (encode_terminal_code): Now external again, used by
18569 w32console.c and msdos.c.
18570
18571 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
18572 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
18573
18574 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
18575
18576 Fix some minor problems found by GCC 4.5.2's static checks.
18577
18578 * fringe.c (update_window_fringes): Mark locals as initialized
18579 (Bug#8227).
18580 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
18581
18582 * alloc.c (mark_fringe_data): Move decl from here ...
18583 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
18584 to check its interface.
18585 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
18586
18587 * fontset.c (free_realized_fontset): Now static.
18588 (Fset_fontset_font): Rename local to avoid shadowing.
18589 (fontset_font): Mark local as initialized.
18590 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
18591
18592 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
18593
18594 * xselect.c (x_disown_buffer_selections): Remove; not used.
18595 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
18596 (x_own_selection, Fx_disown_selection_internal): Rename locals
18597 to avoid shadowing.
18598 (x_handle_dnd_message): Remove local to avoid shadowing.
18599
18600 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
18601 so that the caller can use some name other than gcpro1.
18602 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
18603 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
18604 (Fx_backspace_delete_keys_p):
18605 Use them to avoid shadowing, and rename vars to avoid shadowing.
18606 (x_decode_color, x_set_name, x_window): Now static.
18607 (Fx_create_frame): Add braces to silence GCC warning.
18608 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
18609 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
18610 Remove unused locals.
18611 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
18612 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
18613 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
18614 macros.
18615
18616 * xterm.h (x_mouse_leave): New decl.
18617
18618 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
18619 Remove unused functions.
18620 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
18621 (x_calc_absolute_position): Now static.
18622 (XTread_socket): Don't define label "out" unless it's used.
18623 Don't declare local "event" unless it's used.
18624 (x_iconify_frame, x_free_frame_resources): Don't declare locals
18625 unless they are used.
18626 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
18627 (x_fatal_error_signal): Remove; not used.
18628 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
18629 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
18630 (x_error_catcher, x_connection_closed, x_error_handler):
18631 (x_error_quitter, xembed_send_message, x_iconify_frame):
18632 (my_log_handler): Rename locals to avoid shadowing.
18633 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
18634 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
18635
18636 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
18637 Rename or move locals to avoid shadowing.
18638 (tty_defined_color, merge_face_heights): Now static.
18639 (free_realized_faces_for_fontset): Remove; not used.
18640 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
18641 does not deduce is never used uninitialized.
18642 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
18643 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
18644
18645 * terminal.c (store_terminal_param): Now static.
18646
18647 * xmenu.c (menu_highlight_callback): Now static.
18648 (set_frame_menubar): Remove unused local.
18649 (xmenu_show): Rename parameter to avoid shadowing.
18650 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
18651 since they might point to immutable storage.
18652 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
18653 since it's unused otherwise.
18654
18655 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
18656 Add a FIXME, since the code still doesn't look right. (Bug#8215)
18657 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
18658 avoids a gcc -Wuninitialized diagnostic.
18659 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
18660 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
18661 does not deduce are never used uninitialized.
18662
18663 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
18664
18665 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
18666 * window.c (window_loop, size_window):
18667 (run_window_configuration_change_hook, enlarge_window): Likewise.
18668
18669 * window.c (display_buffer): Now static.
18670 (size_window): Mark variables that gcc -Wuninitialized
18671 does not deduce are never used uninitialized.
18672 * window.h (check_all_windows): New decl, to forestall
18673 gcc -Wmissing-prototypes diagnostic.
18674 * dispextern.h (bidi_dump_cached_states): Likewise.
18675
18676 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
18677 shadowing.
18678 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
18679 Include <limits.h>.
18680 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
18681 and to avoid gcc -Wuninitialized warning.
18682 (load_charset_map): Mark variables that gcc -Wuninitialized
18683 does not deduce are never used uninitialized.
18684 (load_charset): Abort instead of using uninitialized var (Bug#8229).
18685
18686 * coding.c (coding_set_source, coding_set_destination):
18687 Use "else { /* comment */ }" rather than "else /* comment */;"
18688 for clarity, and to avoid gcc -Wempty-body warning.
18689 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
18690 a block, when the outer 'i' will do.
18691 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
18692 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
18693 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
18694 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
18695 (Fdecode_sjis_char, Fdefine_coding_system_internal):
18696 Rename locals to avoid shadowing.
18697 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
18698 * coding.c (emacs_mule_char, encode_invocation_designation):
18699 Now static, since they're not used elsewhere.
18700 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
18701 (decode_coding_object, encode_coding_object, detect_coding_system):
18702 (decode_coding_emacs_mule): Mark variables that gcc
18703 -Wuninitialized does not deduce are never used uninitialized.
18704 (detect_coding_iso_2022): Initialize a local variable that might
18705 be used uninitialized. Leave a FIXME because it's not clear that
18706 this initialization is needed. (Bug#8211)
18707 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
18708 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
18709 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
18710 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
18711 Remove unused macros.
18712
18713 * category.c (hash_get_category_set): Remove unused local var.
18714 (copy_category_table): Now static, since it's not used elsewhere.
18715 * character.c (string_count_byte8): Likewise.
18716
18717 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
18718 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
18719
18720 * chartab.c (copy_sub_char_table): Now static, since it's not used
18721 elsewhere.
18722 (sub_char_table_ref_and_range, char_table_ref_and_range):
18723 Rename locals to avoid shadowing.
18724 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
18725
18726 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
18727 (BIDI_BOB): Remove unused macro.
18728
18729 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
18730 deduce are never used uninitialized.
18731 * term.c (encode_terminal_code): Likewise.
18732
18733 * term.c (encode_terminal_code): Now static. Remove unused local.
18734
18735 * tparam.h: New file.
18736 * term.c, tparam.h: Include it.
18737 * deps.mk (term.o, tparam.o): Depend on tparam.h.
18738 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
18739 Move these decls to tparam.h, and make them agree with what
18740 is actually in tparam.c. The previous trick of using incompatible
18741 decls in different modules does not conform to the C standard.
18742 All callers of tparam changed to use tparam's actual API.
18743 * tparam.c (tparam1, tparam, tgoto):
18744 Use const pointers where appropriate.
18745
18746 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
18747 * cm.h (struct cm): Likewise.
18748 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
18749 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
18750 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
18751 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
18752 (turn_on_face, init_tty): Likewise.
18753 * termchar.h (struct tty_display_info): Likewise.
18754
18755 * term.c (term_mouse_position): Rename local to avoid shadowing.
18756
18757 * alloc.c (mark_ttys): Move decl from here ...
18758 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
18759
18760 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
18761
18762 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
18763
18764 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
18765
18766 * search.c (compile_pattern_1): Remove argument regp, unused since
18767 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
18768 (compile_pattern): Don't pass it.
18769
18770 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
18771
18772 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
18773 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
18774 for ! HAVE_GTK3.
18775 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
18776
18777 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
18778
18779 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
18780 gdk_window_get_screen, gdk_window_get_geometry,
18781 gdk_x11_window_lookup_for_display and GDK_KEY_g.
18782 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
18783 (xg_get_pixbuf_from_pixmap): New function.
18784 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
18785 to Pixmap, take frame as parameter, remove GdkColormap parameter.
18786 Call xg_get_pixbuf_from_pixmap instead of
18787 gdk_pixbuf_get_from_drawable.
18788 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
18789 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
18790 (xg_check_special_colors): Use GtkStyleContext and its functions
18791 for HAVE_GTK3.
18792 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
18793 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
18794 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
18795 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
18796 Call gtk_widget_get_preferred_size.
18797 (xg_frame_resized): gdk_window_get_geometry only takes 5
18798 parameters.
18799 (xg_win_to_widget, xg_event_is_for_menubar):
18800 Call gdk_x11_window_lookup_for_display.
18801 (xg_set_widget_bg): New function.
18802 (delete_cb): New function.
18803 (xg_create_frame_widgets): Connect delete-event to delete_cb.
18804 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
18805 (xg_set_background_color): Call xg_set_widget_bg.
18806 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
18807 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
18808 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
18809 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
18810 if ! HAVE_GTK3.
18811 (update_frame_tool_bar): Call gtk_widget_hide.
18812 (xg_initialize): Use GDK_KEY_g.
18813
18814 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
18815 if ! HAVE_GTK3
18816 (x_session_initialize): Call gdk_x11_set_sm_client_id.
18817
18818 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
18819 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
18820 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
18821
18822 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
18823
18824 * w32xfns.c (select_palette): Check success of RealizePalette against
18825 GDI_ERROR, not zero.
18826
18827 See ChangeLog.11 for earlier changes.
18828
18829 ;; Local Variables:
18830 ;; coding: utf-8
18831 ;; End:
18832
18833 Copyright (C) 2011-2012 Free Software Foundation, Inc.
18834
18835 This file is part of GNU Emacs.
18836
18837 GNU Emacs is free software: you can redistribute it and/or modify
18838 it under the terms of the GNU General Public License as published by
18839 the Free Software Foundation, either version 3 of the License, or
18840 (at your option) any later version.
18841
18842 GNU Emacs is distributed in the hope that it will be useful,
18843 but WITHOUT ANY WARRANTY; without even the implied warranty of
18844 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18845 GNU General Public License for more details.
18846
18847 You should have received a copy of the GNU General Public License
18848 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.