Un-mung previous erc-log change (error due to committer, not author)
[bpt/emacs.git] / src / ChangeLog
CommitLineData
c622b48f
PE
12012-10-07 Paul Eggert <eggert@cs.ucla.edu>
2
3 Improve sys_siglist detection.
4 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
5 defined as a macro, as is done in Solaris.
6 (sys_siglist_entries): New macro.
7 (save_strsignal): Use it.
8 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
9 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
10
04fafa46
JD
112012-10-06 Jan Djärv <jan.h.d@swipnet.se>
12
13 * nsfns.m (Fx_create_frame): Call x_default_parameter with
14 fullscreen/Fullscreen.
15
16 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
17 tobar_height is new.
18
19 * nsterm.m (x_make_frame_visible): Check for fullscreen.
20 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
21 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
22 (windowDidResize:): Check for correct window if old style fullscreen.
23 Capitalize word in comment. Remove incorrect comment.
24 (initFrameFromEmacs:): tbar_height renamed tibar_height.
25 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
26 error in drawing background.
27 (toggleFullScreen:): Remove comment. Rearrange calls.
28 Set toolbar values to zero, save old height in tobar_height.
29 Restore tool bar height when leaving fullscreen.
30 (canBecomeMainWindow): New function.
31
c6e21c03
PE
322012-10-06 Paul Eggert <eggert@cs.ucla.edu>
33
34 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
35
0d9f584b
EZ
362012-10-05 Eli Zaretskii <eliz@gnu.org>
37
a65fbb5f
EZ
38 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
39
0d9f584b
EZ
40 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
41 that time stamps of directories could also be changed. Don't
42 request the too broad GENERIC_WRITE, only the more restrictive
43 FILE_WRITE_ATTRIBUTES access rights.
44
45 * fileio.c (Fset_file_times): Special-case ignoring errors for
46 directories only on MSDOS, not on MS-Windows.
47
e8757f09 482012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
ca347e3d
IK
49
50 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
51
7604f298
EZ
522012-10-04 Eli Zaretskii <eliz@gnu.org>
53
54 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
55 see whether CreateFile failed.
56
88d69b7d
PE
572012-10-04 Paul Eggert <eggert@cs.ucla.edu>
58
59 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
60 to avoid similar races.
61 * keyboard.c (pending_signals): Now bool, not int.
62
7509f454
PE
63 Port timers to OpenBSD, plus check for timer failures.
64 OpenBSD problem reported by Han Boetes.
65 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
66 and/or setitimer.
67 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
68 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
69 like OpenBSD, which has timer_settime but does not declare it.
70 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
71 whether to use itimerspec-related primitives. All uses of
72 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
73
a3c5c0c5
PE
742012-10-02 Paul Eggert <eggert@cs.ucla.edu>
75
76 * profiler.c (handle_profiler_signal): Fix a malloc race
77 that caused Emacs to hang on Fedora 17 when profiling Lisp.
78
914e743b
JD
792012-10-02 Jan Djärv <jan.h.d@swipnet.se>
80
81 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
82
d8ab37a8
EZ
832012-10-02 Eli Zaretskii <eliz@gnu.org>
84
85 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
86 consistent with the change in return value of 'safe_strsignal'.
87
b3ecad33
PE
882012-10-02 Paul Eggert <eggert@cs.ucla.edu>
89
0a99eee1
PE
90 Prefer plain 'static' to 'static inline' (Bug#12541).
91 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
92 (bidi_set_sor_type, bidi_push_embedding_level)
93 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
94 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
95 (bidi_cache_search, bidi_cache_ensure_space)
96 (bidi_cache_iterator_state, bidi_cache_find)
97 (bidi_peek_at_next_level, bidi_set_paragraph_end)
98 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
99 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
100 Now 'static', not 'static inline'.
101
b3ecad33
PE
102 Count overruns when profiling; change units to ns.
103 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
104 Give extra weight to samples after overruns, to attempt to count
105 the time more accurately.
106 (setup_cpu_timer): Change sampling interval units from ms to ns, since
107 the underlying primitives nominally do ns.
108 (Fprofiler_cpu_start): Document the change. Mention that
109 the sampling intervals are only approximate.
110
090cf9db
SM
1112012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
112
113 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
114
115 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
116 case for the special 0 coding-system.
117
118 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
119 (Fmake_overlay): Remove redundant tests.
64edc777 120 (fix_start_end_in_overlays): Remove redundant recentering.
090cf9db 121
81550bf4
JB
1222012-10-02 Juanma Barranquero <lekktu@gmail.com>
123
124 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
125 Update dependencies.
126
aa1ba90e
PE
1272012-10-01 Paul Eggert <eggert@cs.ucla.edu>
128
129 Fix a malloc race condition involving strsignal.
130 A signal can arrive in the middle of a malloc, and Emacs's signal
131 handler can invoke strsignal, which can invoke malloc, which is
132 not portable. This race condition bug makes Emacs hang on GNU/Linux.
133 Fix it by altering the signal handler so that it does not invoke
134 strsignal.
135 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
136 * process.c (status_message): Use const pointer, in case strsignal
137 is #defined to safe_strsignal.
138 * sysdep.c (sys_siglist, init_signals): Always define and
139 initialize a substitute sys_siglist if the system does not define
140 one, even if HAVE_STRSIGNAL.
141 (safe_strsignal): Rename from strsignal. Always define,
142 using sys_siglist. Return a const pointer.
143 * syssignal.h (safe_strsignal): New decl.
144 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
145
ace917bd
EZ
1462012-10-01 Eli Zaretskii <eliz@gnu.org>
147
148 * w32proc.c (timer_loop): Fix code that waits for timer
149 expiration, to avoid high CPU usage.
150
9eb71b9c
SM
1512012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
152
153 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
154 (sweep_weak_table): Remove redundant prototypes.
155
b3317662
FP
1562012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
157
158 * emacs.c: Move the inclusion of TERM_HEADER after including
159 windows.h on WINDOWSNT. This avoids compilation problems with
160 MSVC.
161
f0e5f225
EZ
1622012-10-01 Eli Zaretskii <eliz@gnu.org>
163
2d7d1608
EZ
164 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
165 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
166 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
167 as the previous version used 'void *'.
168
169 * ralloc.c (ROUNDUP): Fix last change.
170 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
171 'size_t'.
172
f0e5f225
EZ
173 * w32proc.c <disable_itimers>: New static flag.
174 (init_timers): Initialize it to zero, after creating the critical
175 sections used by the timer threads.
176 (term_timers): Set to 1 before deleting the critical sections.
177 (getitimer, setitimer): If disable_itimers is non-zero, return an
178 error indication without doing anything. Reported by Fabrice
179 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4cdfbb89
EZ
180 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
181 return results.
182 [!HAVE_SETITIMER]: Behave as the previous version that didn't
183 support timers.
f0e5f225
EZ
184
185 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
186 term_ntproc after all the other bookkeeping, to get timers working
187 as long as possible.
188
82ef37c1
PE
1892012-10-01 Paul Eggert <eggert@cs.ucla.edu>
190
b3a4c387
PE
191 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
192 Suggested by Juri Linkov in
193 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
194
b0ab8123
PE
195 Prefer plain 'static' to 'static inline' (Bug#12541).
196 With static functions, modern compilers inline pretty well by
197 themselves; advice from programmers often hurts as much as it helps.
198 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
199 this change shrinks the text size of the Emacs executable by 1.1%
200 without affecting CPU significantly in my benchmark.
201 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
202 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
203 (mark_maybe_object, mark_maybe_pointer, bounded_number):
204 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
205 (bset_auto_fill_function, bset_auto_save_file_format)
206 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
207 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
208 (bset_cache_long_line_scans, bset_case_fold_search)
209 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
210 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
211 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
212 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
213 (bset_header_line_format, bset_indicate_buffer_boundaries)
214 (bset_indicate_empty_lines, bset_invisibility_spec)
215 (bset_left_fringe_width, bset_major_mode, bset_mark)
216 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
217 (bset_name, bset_overwrite_mode, bset_pt_marker)
218 (bset_right_fringe_width, bset_save_length)
219 (bset_scroll_bar_width, bset_scroll_down_aggressively)
220 (bset_scroll_up_aggressively, bset_selective_display)
221 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
222 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
223 (set_buffer_overlays_after):
224 * category.c (bset_category_table):
225 * charset.c (read_hex):
226 * coding.c (produce_composition, produce_charset)
227 (handle_composition_annotation, handle_charset_annotation)
228 (char_encodable_p):
229 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
230 (assign_row, set_frame_matrix_frame, make_current)
231 (add_row_entry):
232 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
233 * fns.c (maybe_resize_hash_table):
234 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
235 * gmalloc.c (register_heapinfo):
236 * image.c (lookup_image_type):
237 * intervals.c (set_interval_object, set_interval_left)
238 (set_interval_right, copy_interval_parent, rotate_right)
239 (rotate_left, balance_possible_root_interval):
240 * keyboard.c (kset_echo_string, kset_kbd_queue)
241 (kset_keyboard_translate_table, kset_last_prefix_arg)
242 (kset_last_repeatable_command, kset_local_function_key_map)
243 (kset_overriding_terminal_local_map, kset_real_last_command)
244 (kset_system_key_syms, clear_event, set_prop):
245 * lread.c (digit_to_number):
246 * marker.c (attach_marker, live_buffer, set_marker_internal):
247 * nsterm.m (ns_compute_glyph_string_overhangs):
248 * process.c (pset_buffer, pset_command)
249 (pset_decode_coding_system, pset_decoding_buf)
250 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
251 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
252 (pset_status, pset_tty_name, pset_type, pset_write_queue):
253 * syntax.c (bset_syntax_table, dec_bytepos):
254 * terminal.c (tset_param_alist):
255 * textprop.c (interval_has_some_properties)
256 (interval_has_some_properties_list):
257 * window.c (wset_combination_limit, wset_dedicated)
258 (wset_display_table, wset_hchild, wset_left_fringe_width)
259 (wset_left_margin_cols, wset_new_normal, wset_new_total)
260 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
261 (wset_right_fringe_width, wset_right_margin_cols)
262 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
263 (wset_vertical_scroll_bar_type, wset_window_parameters):
264 * xdisp.c (wset_base_line_number, wset_base_line_pos)
265 (wset_column_number_displayed, wset_region_showing)
266 (window_box_edges, run_window_scroll_functions)
267 (append_glyph_string_lists, prepend_glyph_string_lists)
268 (append_glyph_string, set_glyph_string_background_width)
269 (append_glyph, append_composite_glyph)
270 (take_vertical_position_into_account):
271 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
272 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
273 (lface_hash, lface_same_font_attributes_p, lookup_face):
274 * xml.c (libxml2_loaded_p):
275 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
276 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
277 Now 'static', not 'static inline'.
278
05584c31
PE
279 * bidi.c: Tune.
280 (bidi_copy_it): Do the whole copy with a single memcpy.
281 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
282
86ec63ba
PE
283 Revert the FOLLOW-SYMLINKS change for file-attributes.
284 Doing it right would require several changes to Tramp, and there's
285 not enough time to get that tested before the freeze today.
286 * dired.c (directory_files_internal, Ffile_attributes):
287 Undo last change.
288
82ef37c1
PE
289 * frame.c (x_report_frame_params): Port better to wider ints.
290 Do not assume that EMACS_UINT is the same width as uprintmax_t,
291 or that pointers can be printed in 15 decimal digits.
292 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
293
62aba0d4
FP
2942012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
295
296 Support x64 build on MS-Windows.
297 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
298 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
299 compatibility with x64.
5e4daaf3 300 (x_get_focus_frame): Add prototype.
62aba0d4
FP
301
302 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
303 defining an XRectangle structure.
304
305 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
306 arithmetics for compatibility with x64.
307
308 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
309 compatibility with x64.
310
311 * w32heap.h: Adjust prototypes and declarations.
312
313 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
314 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
315 DWORD, long, and unsigned long, for compatibility with x64.
316 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
317 (sbrk): Argument is now of type ptrdiff_t.
318
319 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
320 less than 0x0500.
321 (w32_msg_pump): Use WPARAM type for 'result'.
322
323 * w32.c (init_environment, get_emacs_configuration): Support AMD64
324 architecture.
325 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
326 compatibility with x64.
327
328 * vm-limit.c (lim_data): Now size_t.
329 (check_memory_limits): Adjust prototypes of real_morecore and
330 __morecore to receive argument of type ptrdiff_t. Use size_t for
331 five_percent and data_size.
332
333 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
334 variables, for compatibility with x64.
335 (rva_to_section, offset_to_section, relocate_offset)
336 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
337 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
338 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
339 for compatibility with x64.
340
341 * sysdep.c (STDERR_FILENO): Define if not already defined.
342
343 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
344 (__morecore): Argument type is now ptrdiff_t.
345 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
346 (relinquish): Use ptrdiff_t type for 'excess'.
347 (r_alloc_sbrk): Argument type is now ptrdiff_t.
348
349 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
350 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
351 instead of a literal number.
352
353 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
354 (min): Define only if not already defined.
355
356 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
357 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
358 hosts.
359
360 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
361 'bitmaps' is a pointer.
362
363 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
364
365 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
366
e7a2937b
PE
3672012-09-30 Paul Eggert <eggert@cs.ucla.edu>
368
369 file-attributes has a new optional arg FOLLOW-SYMLINKS.
370 * dired.c (directory_files_internal, Ffile_attributes):
371 New arg follow_symlinks. All uses changed.
372
b43d62ae
SM
3732012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
374
375 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
376
c06c382a
EZ
3772012-09-30 Eli Zaretskii <eliz@gnu.org>
378
379 Support atimers and CPU profiler via profile.c on MS-Windows.
380 * w32proc.c (sig_mask, crit_sig): New static variables.
381 (sys_signal): Support SIGALRM and SIGPROF.
382 (sigemptyset, sigaddset, sigfillset, sigprocmask)
b43d62ae 383 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
c06c382a
EZ
384 sigfillset, and sigprocmask are no longer no-ops.
385 (sigismember): New function.
386 (struct itimer_data): New definition.
387 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
388 (crit_prof): New static variables.
389 (MAX_SINGLE_SLEEP): New definition.
390 (timer_loop, stop_timer_thread, term_timers, init_timers)
391 (start_timer_thread, getitimer, setitimer): New functions.
392 (alarm): No longer a no-op, calls setitimer.
393
394 * w32.c (term_ntproc): Call term_timers.
395 (init_ntproc): Make sure all signals are unblocked at startup, to
396 erase any traces of dumping. Call init_timers.
397
398 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
399 Windows-specific code to display the hourglass mouse pointer is no
400 longer used.
401 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
402 to hourglass timer expiration.
403 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
404 Remove, no longer used.
b43d62ae
SM
405 (w32_note_current_window, show_hourglass, hide_hourglass):
406 New functions, in support of hourglass cursor display similar to other
c06c382a
EZ
407 window systems.
408 (syms_of_w32fns): Don't initialize hourglass_timer.
409
410 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
411 WINDOWSNT as well.
412 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
413
414 * w32.h (init_timers, term_timers): Add prototypes.
415
95402d5f
KH
4162012-09-30 Kenichi Handa <handa@gnu.org>
417
418 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
419 to the buffer relocation which may be caused by ccl_driver.
420
dd946752
JD
4212012-09-30 Jan Djärv <jan.h.d@swipnet.se>
422
d7e642cc
JD
423 * xfns.c (Fx_file_dialog): Update comment.
424
425 * w32fns.c (Fx_file_dialog): Update comment.
426
427 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
428 Initialize panel name field if OSX >= 10.6.
429
430 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
431
dd946752
JD
432 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
433
434 * nsterm.m (NEW_STYLE_FS): New define.
435 (ns_fullscreen_hook, windowWillEnterFullScreen)
436 (windowDidEnterFullScreen, windowWillExitFullScreen)
437 (windowDidExitFullScreen, toggleFullScreen, handleFS)
438 (setFSValue): New functions.
439 (EmacsFSWindow): New implementation.
440 (canBecomeKeyWindow): New function for EmacsFSWindow.
441 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
442 (dealloc): Release nonfs_window if in fullscreen.
443 (updateFrameSize:): Call windowDidMove to update top/left.
444 (windowWillResize:toSize:): Check if frame is still maximized.
445 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
446 next_maximized, maximized_width, maximized_height and nonfs_window.
447 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
448 tbar_height.
449 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
450 fullscreen. Set maximized_width/height. Act on next_maximized.
451
452 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
453 (EmacsView): Add variables for fullscreen.
454 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
455 (EmacsFSWindow): New interface for fullscreen.
456
427730eb
JB
4572012-09-30 Juanma Barranquero <lekktu@gmail.com>
458
459 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
460
48de8b12
CY
4612012-09-30 Chong Yidong <cyd@gnu.org>
462
463 * fns.c (Frandom): Doc fix.
464
5938d519
MR
4652012-09-30 Martin Rudalics <rudalics@gmx.at>
466
467 * window.c (Vwindow_combination_limit): New default value.
468 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
469
cb5b0266
PE
4702012-09-30 Paul Eggert <eggert@cs.ucla.edu>
471
472 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
473 Suggested by Eli Zaretskii in
474 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
475
84f72efd
EZ
4762012-09-30 Eli Zaretskii <eliz@gnu.org>
477
478 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
479 HAVE_TIMER_SETTIME is defined.
480
9d4dcdc9
PE
4812012-09-30 Paul Eggert <eggert@cs.ucla.edu>
482
d89460ed
PE
483 Profiler improvements: more-accurate timers, overflow checks.
484 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
485 signal.h, setjmp.h. Include systime.h instead.
486 (saturated_add): New function.
487 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
488 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
489 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
490 New static vars.
84f72efd 491 (enum profiler_cpu_running): New enum.
d89460ed
PE
492 (profiler_cpu_running): Now of that enum type, not bool.
493 All uses changed to store the new value.
494 (handle_profiler_signal): Rename from sigprof_handler_1,
495 for consistency with other handlers. Do not check whether
496 cpu_log is a hash-table if garbage collecting, since it
497 doesn't matter in that case.
498 (deliver_profiler_signal): Rename from sigprof_handler,
499 for consistency with other handlers.
500 (setup_cpu_timer): New function, with much of what used to be in
501 Fprofiler_cpu_start. Check for out-of-range argument.
502 Prefer timer_settime if available, and prefer
503 thread cputime clocks, then process cputime clocks, then
504 monotonic clocks, to the old realtime clock. Use make_timeval
505 to round more-correctly when falling back to setitimer.
506 (Fprofiler_cpu_start): Use it.
507 (Fprofiler_cpu_stop): Prefer timer_settime if available.
508 Don't assume that passing NULL as the 2nd argument of setitimer
509 is the same as passing a pointer to all-zero storage.
510 Ignore SIGPROF afterwards.
511 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
512 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
513 non-fatal signal handlers. Ignore SIGPROF on startup.
514 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
515 in profiler.c, since sysdep.c now uses it.
516
9d4dcdc9
PE
517 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
518 Suggested by Eli Zaretskii in
519 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
520
8e5691a0
JB
5212012-09-29 Juanma Barranquero <lekktu@gmail.com>
522
523 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
524
e7c1b6ef
SM
5252012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
526
527 * lisp.h (struct backtrace): Remove indirection for `function' field.
528 * xdisp.c (redisplay_internal):
529 * profiler.c (record_backtrace, sigprof_handler_1):
530 * alloc.c (Fgarbage_collect):
531 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
532 (Fbacktrace_frame): Adjust accordingly.
533
e61d39cd 5342012-09-28 Glenn Morris <rgm@gnu.org>
d393cefb
GM
535
536 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
537 (Frun_hook_with_args_until_failure): Doc fixes.
538
404043ea
EZ
5392012-09-28 Eli Zaretskii <eliz@gnu.org>
540
541 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
542 Qautomatic_redisplay and change the symbol name. All users changed.
543
704d3f45
TM
5442012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
545
546 * profiler.c (sigprof_handler): Fix race condition.
547
757140ff
GM
5482012-09-28 Glenn Morris <rgm@gnu.org>
549
550 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
551
a615a3ae
PE
5522012-09-27 Paul Eggert <eggert@cs.ucla.edu>
553
554 Check more robustly for timer_settime.
89d17fd0
PE
555 * Makefile.in (LIB_TIMER_TIME): New macro.
556 (LIBES): Add it.
a615a3ae
PE
557 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
558 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
559 call timer_settime.
560
3670daf7
TM
5612012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
562
563 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
564
6a586b7f
JB
5652012-09-26 Juanma Barranquero <lekktu@gmail.com>
566
567 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
568
41c8bfcf
PE
5692012-09-26 Paul Eggert <eggert@cs.ucla.edu>
570
571 * character.h (MAYBE_UNIFY_CHAR): Remove.
572 * charset.c, charset.h (maybe_unify_char): Now static.
573 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
574 Since this stuff is now private to charset.c, there's no need for
575 a public macro and no need to inline by hand.
576
3a880af4
SM
5772012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
578 Stefan Monnier <monnier@iro.umontreal.ca>
579 Juanma Barranquero <lekktu@gmail.com>
611b7507 580
3a880af4
SM
581 * profiler.c: New file.
582 * Makefile.in (base_obj): Add profiler.o.
611b7507
JB
583 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
584 ($(BLD)/profiler.$(O)): New target.
3a880af4
SM
585 * emacs.c (main): Call syms_of_profiler.
586 * alloc.c (Qautomatic_gc): New constant.
587 (MALLOC_PROBE): New macro.
588 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
589 (total_bytes_of_live_objects): New function.
590 (Fgarbage_collect): Use it. Record itself in backtrace_list.
591 Call malloc_probe for the memory profiler.
592 (syms_of_alloc): Define Qautomatic_gc.
593 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
594 race condition.
595 (struct backtrace): Move definition...
596 * lisp.h (struct backtrace): ..here.
597 (Qautomatic_gc, profiler_memory_running): Declare vars.
598 (malloc_probe, syms_of_profiler): Declare functions.
599 * xdisp.c (Qautomatic_redisplay): New constant.
600 (redisplay_internal): Record itself in backtrace_list.
601 (syms_of_xdisp): Define Qautomatic_redisplay.
611b7507 602
5938d519 6032012-09-25 Eli Zaretskii <eliz@gnu.org>
b67238c2
JB
6042012-09-25 Juanma Barranquero <lekktu@gmail.com>
605
606 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
607
e26fd2e4
PE
6082012-09-25 Paul Eggert <eggert@cs.ucla.edu>
609
610 Prefer POSIX timers if available.
611 They avoid a race if the timer is too close to the current time.
612 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
613 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
9180598c 614 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
e26fd2e4 615
eedec3ee
EZ
6162012-09-25 Eli Zaretskii <eliz@gnu.org>
617
618 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
619 CHAR_STRING_ADVANCE.
620 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
621 STRING_CHAR_ADVANCE.
622
aa15c6bb
JB
6232012-09-25 Juanma Barranquero <lekktu@gmail.com>
624
625 Move Vlibrary_cache to emacs.c and reset before dumping.
626
627 * lisp.h (reset_image_types): Declare.
628 [WINDOWSNT] (Vlibrary_cache): Declare.
629
630 * image.c (reset_image_types): New function.
631
632 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
633 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
634 (Fdump_emacs): Reset Vlibrary_cache and image_types.
635
636 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
637 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
638
639 * w32.h (Vlibrary_cache): Do not declare.
640
54d629be
EZ
6412012-09-25 Eli Zaretskii <eliz@gnu.org>
642
16b22fef
EZ
643 * w32proc.c (sys_signal): Handle all signals defined by the
644 MS-Windows runtime, not just SIGCHLD. Actually install the signal
645 handlers for signals supported by Windows. Don't override
646 term_ntproc as the handler for SIGABRT.
647 (sigaction): Rewrite to call sys_signal instead of duplicating its
648 code.
649 (sys_kill): Improve commentary.
650
651 * w32.c (term_ntproc): Accept (and ignore) one argument, for
652 consistency with a signature of a signal handler. All callers
653 changed.
654 (init_ntproc): Accept an argument DUMPING. If dumping, don't
655 install term_ntproc as a signal handler for SIGABRT, as that
656 should be done by the dumped Emacs.
657
658 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
659
660 * w32select.c (term_w32select): Protect against repeated
661 invocation by setting clipboard_owner to NULL after calling
662 DestroyWindow.
663
664 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
665 and term_ntproc to their modified signatures.
666
54d629be
EZ
667 * character.c (char_string, string_char): Remove calls to
668 MAYBE_UNIFY_CHAR. See the discussion starting at
669 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
670 for the details.
671
59f7af81
CY
6722012-09-25 Chong Yidong <cyd@gnu.org>
673
674 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
675
22e8cf4a
SM
6762012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
677
678 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
679 when encountering an unknown bytecode.
680
578098f3
PE
6812012-09-24 Paul Eggert <eggert@cs.ucla.edu>
682
683 image.c, indent.c: Use bool for booleans.
684 * dispextern.h (struct image_type): Members valid_p, load, init
685 now return bool, not int. All uses changed.
686 * image.c: Omit unnecessary static decls.
687 (x_create_bitmap_mask, x_build_heuristic_mask):
688 Return void, not int, since callers don't care about the return value.
689 (x_create_bitmap_mask, define_image_type, valid_image_p)
690 (struct image_keyword, parse_image_spec, image_spec_value)
691 (check_image_size, image_background)
692 (image_background_transparent, x_clear_image_1)
693 (postprocess_image, lookup_image, x_check_image_size)
694 (x_create_x_image_and_pixmap, xbm_image_p)
695 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
696 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
697 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
698 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
699 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
700 (png_image_p, init_png_functions, png_load_body, png_load)
701 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
702 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
703 (init_gif_functions, gif_load, imagemagick_image_p)
704 (imagemagick_load_image, imagemagick_load, svg_image_p)
705 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
706 (gs_load):
707 * nsimage.m (ns_load_image):
708 * nsterm.m (ns_defined_color):
709 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
710 * xfns.c (x_defined_color):
711 * xterm.c (x_alloc_lighter_color_for_widget)
712 (x_alloc_nearest_color_1, x_alloc_nearest_color)
713 (x_alloc_lighter_color):
714 * indent.c (disptab_matches_widthtab, current_column)
715 (scan_for_column, string_display_width, indented_beyond_p)
716 (compute_motion, vmotion, Fvertical_motion):
717 Use bool for booleans.
718
a5f2b6ec
CY
7192012-09-24 Chong Yidong <cyd@gnu.org>
720
721 * chartab.c (Fset_char_table_default): Obsolete function removed.
722
18e27ea8
PE
7232012-09-23 Paul Eggert <eggert@cs.ucla.edu>
724
afea8a8a
PE
725 Move pid_t related decls out of lisp.h.
726 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
727 (interruptible_wait_for_termination):
728 Move these decls from lisp.h to syswait.h, since they use pid_t.
729 Needed on FreeBSD; see Herbert J. Skuhra in
730 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
731 * callproc.c: Include syswait.h.
732
18e27ea8
PE
733 gnutls.c, gtkutil.c: Use bool for boolean.
734 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
735 (emacs_gnutls_handle_error):
736 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
737 (xg_hide_tooltip, xg_create_frame_widgets)
738 (create_dialog, xg_uses_old_file_dialog)
739 (xg_get_file_with_chooser, xg_get_file_with_selection)
740 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
741 (xg_item_label_same_p, xg_update_menubar)
742 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
743 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
744 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
745 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
746 (update_frame_tool_bar, free_frame_tool_bar):
747 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
748 * nsmenu.m (ns_update_menubar):
749 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
750 * xfns.c (Fx_show_tip) [USE_GTK]:
751 Use bool for boolean.
752 * gtkutil.c (xg_update_frame_menubar):
753 * xmenu.c (update_frame_menubar):
754 Return void, not int, since caller ignores return value.
755 * gtkutil.c (xg_change_toolbar_position):
756 Return void, not 1.
757
af0e9f75
JB
7582012-09-23 Juanma Barranquero <lekktu@gmail.com>
759
760 * makefile.w32-in (BLOCKINPUT_H): Remove.
761 (SYSSIGNAL_H): New macro.
762 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
763 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
764 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
765 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
766 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
767 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
768 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
769 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
770 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
771 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
772 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
773 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
774 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
775 ($(BLD)/w32xfns.$(O)): Update dependencies.
776
5101529e
EZ
7772012-09-23 Eli Zaretskii <eliz@gnu.org>
778
779 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
780 fatal_error_backtrace.
781
782 * w32proc.c (sys_kill): Undo last change: don't do anything when
783 invoked to deliver SIGABRT to our own process. This is now
784 handled by emacs_raise.
785
2c3ee0ad
JB
7862012-09-23 Juanma Barranquero <lekktu@gmail.com>
787
788 * w32term.c (w32_read_socket): Remove leftover reference to
789 interrupt_input_pending.
790
62a1d661
PE
7912012-09-23 Paul Eggert <eggert@cs.ucla.edu>
792
793 Do not use SA_NODEFER.
794 Problem reported by Dani Moncayo in
795 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
796 * alloc.c (die):
797 * sysdep.c (emacs_abort): Do not reset signal handler.
798 * emacs.c (terminate_due_to_signal): Reset signal handler here.
799 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
800 wanted even on POSIXish hosts, and it doesn't work on Windows.
801
a0942b9a
JD
8022012-09-23 Jan Djärv <jan.h.d@swipnet.se>
803
804 * xterm.c (x_term_init): Call fixup_locale before and after calling
805 gtk_init (Bug#12392).
806
d07ff9db
CY
8072012-09-23 Chong Yidong <cyd@gnu.org>
808
809 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
810 Vdynamic_library_alist.
811
812 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
813 (Fgnutls_available_p): Caller changed.
814
815 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
816 (Flibxml_parse_xml_region): Likewise.
817
818 * dispextern.h (struct image_type): Remove arg from init function.
819
820 * image.c (Finit_image_library, lookup_image_type)
821 (define_image_type): Remove now-unneeded second arg.
822 (init_xpm_functions, init_png_functions, init_jpeg_functions)
823 (init_tiff_functions, init_gif_functions, init_svg_functions):
824 Arglist and w32_delayed_load calling convention changed.
825 (gs_type): Remove init_gs_functions; there is no such function.
641cfd14 826 (valid_image_p, make_image): Fix caller to lookup_image_type.
d07ff9db 827
4d7e6e51
PE
8282012-09-23 Paul Eggert <eggert@cs.ucla.edu>
829
830 Simplify and avoid signal-handling races (Bug#12471).
831 * alloc.c (die):
832 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
833 Avoid recursive loop if there's a fatal error in the function itself.
834 * atimer.c (pending_atimers):
835 * blockinput.h: Don't include "atimer.h"; no longer needed.
836 (interrupt_input_pending): Remove. All uses removed.
837 pending_signals now counts both atimers and ordinary interrupts.
838 This is less racy than having three separate pending-signal flags.
839 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
840 (input_blocked_p):
841 Rename from their upper-case counterparts BLOCK_INPUT,
842 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
843 INPUT_BLOCKED_P, and turn into functions. All uses changed.
844 This makes it easier to access volatile variables more accurately.
845 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
846 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
847 that's more reliable if the code is buggy and sets
848 interrupt_input_blocked to a negative value. All uses changed.
849 * atimer.c (deliver_alarm_signal):
850 Remove. No need to deliver this to the parent; any thread can
851 handle this signal now. All uses replaced by underlying handler.
852 * atimer.c (turn_on_atimers):
853 * dispnew.c (handle_window_change_signal):
854 * emacs.c (handle_danger_signal):
855 * keyboard.c (kbd_buffer_get_event):
856 Don't reestablish signal handler; not needed with sigaction.
857 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
858 (UNBLOCK_INPUT_TO):
859 Rework to avoid unnecessary accesses to volatile variables.
860 (UNBLOCK_INPUT_TO): Now a function.
861 (totally_unblock_input, unblock_input): New decls.
862 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
863 (init_data): Remove. Necessary stuff now done in init_signal.
864 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
865 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
866 (fatal_error_code): Remove; no longer needed.
867 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
868 it doesn't always backtrace. All uses changed. No need to reset
869 signal to default, since sigaction and/or die does that for us now.
870 Use emacs_raise (FOO), not kill (getpid (), FOO).
871 (main): Check more-accurately whether we're dumping.
872 Move fatal-error setup to sysdep.c
873 * floatfns.c: Do not include "syssignal.h"; no longer needed.
874 * gtkutil.c (xg_get_file_name, xg_get_font):
875 Remove no-longer-needed signal-mask manipulation.
876 * keyboard.c, process.c (POLL_FOR_INPUT):
877 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
878 * keyboard.c (read_avail_input): Remove.
879 All uses replaced by gobble_input.
880 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
881 (kbd_buffer_store_event_hold, gobble_input):
882 (record_asynch_buffer_change) [USABLE_SIGIO]:
883 (store_user_signal_events):
884 No need to mess with signal mask.
885 (gobble_input): If blocking input and there are terminals, simply
886 set pending_signals to 1 and return. All hooks changed to not
887 worry about whether input is blocked.
888 (process_pending_signals): Clear pending_signals before processing
889 them, in case a signal comes in while we're processing.
890 By convention callers now test pending_signals before calling us.
891 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
892 New functions, to support changes to blockinput.h.
893 (handle_input_available_signal): Now extern.
894 (reinvoke_input_signal): Remove. All uses replaced by
895 handle_async_input.
896 (quit_count): Now volatile, since a signal handler uses it.
3a880af4
SM
897 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
898 All callers changed. Block SIGINT only if not already blocked.
4d7e6e51
PE
899 Clear sigmask reliably, even if Fsignal returns, which it can.
900 Omit unnecessary accesses to volatile var.
901 (quit_throw_to_read_char): No need to restore sigmask.
902 * keyboard.c (gobble_input, handle_user_signal):
903 * process.c (wait_reading_process_output):
904 Call signal-handling code rather than killing ourselves.
905 * lisp.h: Include <float.h>, for...
906 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
907 (pending_signals): Now volatile.
908 (syms_of_data): Now const if IEEE floating point.
909 (handle_input_available_signal) [USABLE_SIGIO]:
910 (terminate_due_to_signal, record_child_status_change): New decls.
911 * process.c (create_process): Avoid disaster if memory is exhausted
912 while we're processing a vfork, by tightening the critical section
913 around the vfork.
914 (send_process_frame, process_sent_to, handle_pipe_signal)
915 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
916 ignores SIGPIPE.
917 (send_process): No need for setjmp/longjmp any more, since the
918 SIGPIPE stuff is now gone. Instead, report an error if errno
919 is EPIPE.
920 (record_child_status_change): Now extern. PID and W are now args.
921 Return void, not bool. All callers changed.
922 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
923 Remove. All uses removed. This bug should be fixed now in a
924 different way.
925 (wait_for_termination_1): Use waitpid rather than sigsuspend,
926 and record the child status change directly. This avoids the
927 need to futz with the signal mask.
928 (process_fatal_action): Move here from emacs.c.
929 (emacs_sigaction_flags): New function, containing
930 much of what used to be in emacs_sigaction_init.
931 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
932 caught by emacs, to make races less likely.
933 (deliver_process_signal): Rename from handle_on_main_thread.
934 All uses changed.
935 (BACKTRACE_LIMIT_MAX): Now at top level.
936 (thread_backtrace_buffer, threadback_backtrace_pointers):
937 New static vars.
938 (deliver_thread_signal, deliver_fatal_thread_signal):
939 New functions, for more-accurate delivery of thread-specific signals.
940 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
941 (deliver_arith_signal): Handle in this thread, not
942 in the main thread, since it's triggered by this thread.
943 (maybe_fatal_sig): New function.
944 (init_signals): New arg DUMPING so that we can be more accurate
945 about whether we're dumping. Caller changed.
946 Treat thread-specific signals differently from process-general signals.
947 Block all signals while handling fatal error; that's safer.
948 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
949 on IEEE hosts.
950 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
951 Ignore SIGPIPE unless batch.
952 (emacs_backtrace): Output backtrace for the appropriate thread,
953 which is not necessarily the main thread.
954 * syssignal.h: Include <stdbool.h>.
955 (emacs_raise): New macro.
956 * xterm.c (x_connection_signal): Remove; no longer needed
957 now that we use sigaction.
958 (x_connection_closed): No need to mess with sigmask now.
959 (x_initialize): No need to reset SIGPIPE handler here, since
960 init_signals does this for us now.
961
8f4635e9
JD
9622012-09-23 Jan Djärv <jan.h.d@swipnet.se>
963
964 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
fb39b937 965 background rect may be larger (Bug#12245).
8f4635e9 966
3296976d
CY
9672012-09-23 Chong Yidong <cyd@gnu.org>
968
969 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
970
d41e491e
PE
9712012-09-22 Paul Eggert <eggert@cs.ucla.edu>
972
973 * .gdbinit: Just stop at fatal_error_backtrace.
974 See Stefan Monnier's request in
975 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
976 Remove no-longer-used query of system type.
977
c88b867f
CY
9782012-09-22 Chong Yidong <cyd@gnu.org>
979
980 * search.c (Freplace_match): Doc fix (Bug#12325).
981
982 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
983
984 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
985 (Fline_end_position): Doc fix.
986
987 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
988
bb4d86b4
CY
9892012-09-22 Chong Yidong <cyd@gnu.org>
990
991 * dispextern.h (struct image_type): Add new slot, storing a type
992 initialization function.
993
994 * image.c (define_image_type): Call the image initializer function
995 if it is defined. Arguments and return value changed.
996 (valid_image_p, make_image): Callers changed.
997 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3a880af4
SM
998 (gif_type, imagemagick_type, svg_type, gs_type):
999 Add initialization functions.
bb4d86b4
CY
1000 (Finit_image_library): Call lookup_image_type.
1001 (CHECK_LIB_AVAILABLE): Macro deleted.
1002 (lookup_image_type): Call define_image_type here, rather than via
1003 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
1004 (syms_of_image): Move define_image_type calls for xbm_type and
1005 pbm_type to lookup_image_type.
1006
df9685f3
EZ
10072012-09-22 Eli Zaretskii <eliz@gnu.org>
1008
1009 * keyboard.c (timer_check_2): Move calculation of 'timers' and
1010 'idle_timers' from here ...
1011 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
1012 lists, to avoid infloops when the timer does something stupid,
1013 like reinvoke itself with the same or smaller time-out.
1014 (Bug#12447)
1015
8e17c9ba
MR
10162012-09-22 Martin Rudalics <rudalics@gmx.at>
1017
1018 * window.c (Fsplit_window_internal): Handle only Qt value of
1019 Vwindow_combination_limit separately.
1020 (Qtemp_buffer_resize): New symbol.
3a880af4
SM
1021 (Vwindow_combination_limit): New default value.
1022 Rewrite doc-string.
8e17c9ba 1023
589bd69b
EZ
10242012-09-22 Eli Zaretskii <eliz@gnu.org>
1025
1026 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
1027 the new overlay string. (Bug#10159)
1028
01108e3f
PE
10292012-09-22 Paul Eggert <eggert@cs.ucla.edu>
1030
1031 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
1032 or that fprintf is async-signal-safe. POSIX doesn't require
1033 either assumption.
1034
82f8cd94
CY
10352012-09-22 Chong Yidong <cyd@gnu.org>
1036
1037 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
1038 (Bug#8207).
1039
3cccbd87
KH
10402012-09-22 Kenichi Handa <handa@gnu.org>
1041
1042 * composite.c (composition_reseat_it): Handle the case that a
1043 grapheme cluster is not covered by a single font (Bug#12352).
1044
09c01941
CY
10452012-09-21 Chong Yidong <cyd@gnu.org>
1046
1047 * image.c (define_image_type): Avoid adding duplicate types to
1048 image_types (Bug#12463). Suggested by Jörg Walter.
1049
acfa068f 10502012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
e25c1a30
YM
1051
1052 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
1053 (print_load_command_name): Add case LC_DATA_IN_CODE.
1054 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
1055
acfa068f 10562012-09-21 Glenn Morris <rgm@gnu.org>
1e9bbf47
GM
1057
1058 * eval.c (Frun_hook_with_args_until_success)
1059 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
1060
acfa068f 10612012-09-21 Andreas Schwab <schwab@linux-m68k.org>
c6ba4138
AS
1062
1063 * fileio.c (Ffile_selinux_context): Only call freecon when
1064 lgetfilecon succeeded.
1065 (Fset_file_selinux_context): Likewise. (Bug#12444)
1066
acfa068f 10672012-09-21 Eli Zaretskii <eliz@gnu.org>
aa36e4d2
EZ
1068
1069 * xdisp.c (try_window_reusing_current_matrix): Under bidi
1070 reordering, locate the cursor by calling set_cursor_from_row; if
1071 that fails, clear the desired glyph matrix before returning a
1072 failure indication to the caller. Fixes leaving garbled display
1073 when fast scrolling with a down-key. (Bug#12403)
f2016bea
EZ
1074 (compute_stop_pos_backwards): Fix a typo that caused crashes while
1075 scrolling through multibyte text.
aa36e4d2 1076
e99f70c8
SM
10772012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
1078
1079 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
1080 calling mark_vectorlike since that's the one that marks the window.
1081 (mark_discard_killed_buffers): Mark the final cdr.
1082 * window.h (struct window): Move prev/next_buffers to the
1083 non-standard fields.
1084 * window.c (make_window): Initialize prev/next_buffers manually.
1085
f75beb47
PE
10862012-09-20 Paul Eggert <eggert@cs.ucla.edu>
1087
1088 Omit unused arg EXPECTED from socket hooks.
1089 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
1090 * nsterm.m (ns_term_init):
1091 * termhooks.h (struct terminal.read_socket_hook):
1092 * w32inevt.c (w32_console_read_socket):
1093 * w32term.c (w32_read_socket):
1094 * xterm.c (XTread_socket):
1095 Omit unused arg EXPECTED. All callers changed.
1096 (store_user_signal_events): Return void, not int, since callers no
1097 longer care about the return value. All uses changed.
1098
b019b76a
JB
10992012-09-20 Juanma Barranquero <lekktu@gmail.com>
1100
1101 * w32gui.h (XParseGeometry): Do not declare.
1102
05642592
PE
11032012-09-19 Paul Eggert <eggert@cs.ucla.edu>
1104
e4bce92a
PE
1105 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1106 Ignore 'expected'. See Eli Zaretskii in
1107 <http://bugs.gnu.org/12471#8> (last line).
1108
05642592
PE
1109 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
1110 (XParseGeometry): Now static. Substitute extremal values for
1111 values that are out of range.
1112
e543ae91
JD
11132012-09-19 Jan Djärv <jan.h.d@swipnet.se>
1114
1115 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
1116
1117 * nsfns.m (XParseGeometry): Remove.
1118 (Fx_create_frame): Call x_set_offset to correctly interpret
1119 top_pos in geometry.
1120
3a880af4 1121 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
e543ae91
JD
1122 (Fx_parse_geometry): If there is a space in string, call
1123 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
1124
45ba16c7
EZ
11252012-09-17 Eli Zaretskii <eliz@gnu.org>
1126
c8b9f1bc
EZ
1127 * search.c (scan_buffer): Use character positions in calls to
1128 region_cache_forward and region_cache_backward, not byte
1129 positions. (Bug#12196)
1130
b4c932a2
EZ
1131 * w32term.c (w32_read_socket): Set pending_signals to 1, like
1132 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
1133
45ba16c7
EZ
1134 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
1135 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
1136 emacs_blocked_malloc, now deleted.
1137
eeceac93
PE
11382012-09-17 Paul Eggert <eggert@cs.ucla.edu>
1139
1140 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
1141 The workaround was for improving performance on Solaris 2.4, but
1142 is getting in the way now. Emacs will still work if someone is
1143 still running Solaris 2.4 in a museum somewhere; Sun dropped
1144 support for Solaris 2.4 in 2003.
1145 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
1146 * process.c (create_process) [HAVE_WORKING_VFORK]:
1147 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
1148 since Emacs no longer uses vfork on that platform.
1149
78f83752
GM
11502012-09-17 Glenn Morris <rgm@gnu.org>
1151
1152 * emacs.c: Use COPYRIGHT.
1153
634b8cac
PE
11542012-09-16 Paul Eggert <eggert@cs.ucla.edu>
1155
0caaedb1
PE
1156 Remove configure's --without-sync-input option (Bug#12450).
1157 When auditing signal-handling in preparation for cleaning it up,
1158 I found that SYNC_INPUT has race conditions and would be a real
1159 pain to fix. Since it's an undocumented and deprecated
1160 configure-time option, now seems like a good time to remove it.
1161 Also see <http://bugs.gnu.org/11080#16>.
1162 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
1163 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
1164 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
1165 (malloc_hysteresis):
1166 (check_depth) [XMALLOC_OVERRUN_CHECK]:
1167 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
1168 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
1169 (dont_register_blocks, bytes_used_when_reconsidered)
1170 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
1171 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
1172 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1173 Remove. All uses removed.
1174 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
1175 implementation, one that depends on whether the new macro
1176 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
1177 is defined.
1178 * atimer.c (run_timers, handle_alarm_signal):
1179 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
1180 (handle_async_input, process_pending_signals)
1181 (handle_input_available_signal, init_keyboard):
1182 * nsterm.m (ns_read_socket):
1183 * process.c (wait_reading_process_output):
1184 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
1185 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
1186 (emacs_write):
1187 * xterm.c (XTread_socket):
1188 Assume SYNC_INPUT.
1189 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
1190 * eval.c (handling_signal): Remove. All uses removed.
1191 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
1192 All uses replaced with the SYNC_INPUT version.
1193 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
1194 Remove decls.
1195 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
1196 Now static.
1197
634b8cac
PE
1198 * font.c (Ffont_shape_gstring): Remove unused local.
1199
83da1b55
GM
12002012-09-16 Glenn Morris <rgm@gnu.org>
1201
518650a5
GM
1202 * Makefile.in (clean): No longer run nextstep's clean.
1203
83da1b55
GM
1204 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
1205 (ns_frag): Remove.
1206 (ns-app): Move here from ns.mk, and simplify.
1207 (clean): Simplify nextstep entry.
1208 * ns.mk: Remove file.
1209
85a43e2e
KH
12102012-09-17 Kenichi Handa <handa@gnu.org>
1211
1212 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
1213 not covert the last few charactes.
1214
ba13e616 12152012-09-16 Kenichi Handa <handa@gnu.org>
ea964864
KH
1216
1217 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
1218 here, but just check the validity of glyphs in the glyph-string.
1219
a8c729af
MR
12202012-09-16 Martin Rudalics <rudalics@gmx.at>
1221
3a880af4
SM
1222 * window.c (Fwindow_parameter, Fset_window_parameter):
1223 Accept any window as argument (Bug#12452).
a8c729af 1224
c077c059
JD
12252012-09-16 Jan Djärv <jan.h.d@swipnet.se>
1226
1227 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
1228 to ns_term_init to avoid memory leak.
1229
1230 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
1231 explicit retain/release.
1232 (ns_term_init): Only allow one display. Initialize outerpool and
1233 ns_*_types.
1234
39a57ad0
PE
12352012-09-15 Paul Eggert <eggert@cs.ucla.edu>
1236
1237 Port _setjmp fix to POSIXish hosts as well as Microsoft.
1238 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
1239 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
1240 the Microsoft problem in a different way, by altering ../nt/config.nt.
1241
7105c8cb
EZ
12422012-09-15 Eli Zaretskii <eliz@gnu.org>
1243
1244 * w32xfns.c:
1245 * w32uniscribe.c:
1246 * w32term.c:
1247 * w32select.c:
1248 * w32reg.c:
1249 * w32proc.c:
1250 * w32menu.c:
1251 * w32inevt.c:
1252 * w32heap.c:
1253 * w32font.c:
1254 * w32fns.c:
1255 * w32console.c:
1256 * w32.c:
1257 * w16select.c: Remove inclusion of setjmp.h, as it is now included
1258 by lisp.h. This completes removal of setjmp.h inclusion
1259 erroneously announced in the previous commit. (Bug#12446)
1260
1261 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
1262 more accurate.
1263
1264 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
1265 not defined as a macro. The latter happens on MS-Windows.
1266 (Bug#12446)
1267
0328b6de
PE
12682012-09-15 Paul Eggert <eggert@cs.ucla.edu>
1269
1270 Port better to POSIX hosts lacking _setjmp (Bug#12446).
1271 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
7105c8cb 1272 Some instances of '#include <setjmp.h>' removed, if the
0328b6de
PE
1273 only reason for the instance was because "lisp.h" was included.
1274 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
1275 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
1276 and _longjmp with the new symbols. Emacs already uses _setjmp if
1277 available, so this change affects only POSIXish hosts that have
1278 sigsetjmp but not _setjmp, such as some versions of Solaris and
1279 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
1280 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
1281 (png_load_body) [HAVE_PNG]:
1282 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
1283 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
1284 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
1285 since PNG requires jmp_buf. This is the only exception to the
1286 general rule that we now use sys_setjmp and sys_longjmp.
1287 This exception is OK since this code does not change the signal
1288 mask or longjmp out of a signal handler.
1289
2af03429
PE
12902012-09-14 Paul Eggert <eggert@cs.ucla.edu>
1291
1292 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
1293 Include "syssignal.h", for 'main_thread'.
1294
2f294edf
DA
12952012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
1296
1297 Avoid out-of-range marker position (Bug#12426).
3a880af4
SM
1298 * insdel.c (replace_range, replace_range_2):
1299 Adjust markers before overlays, as suggested by comments.
2f294edf
DA
1300 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
1301 Remove redundant check before calling offset_intervals.
1302
6b533e9c
MR
13032012-09-14 Martin Rudalics <rudalics@gmx.at>
1304
1305 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
1306 current buffer (Bug#12387).
1307
2a7931e3
JB
13082012-09-14 Juanma Barranquero <lekktu@gmail.com>
1309
1310 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
1311
c18e885b
PE
13122012-09-13 Paul Eggert <eggert@cs.ucla.edu>
1313
1314 Use a more backwards-compatible timer format (Bug#12430).
1315 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
1316 vector element, not from the 4th, since PSECS is now at the end.
1317 (Fcurrent_idle_time): Doc fix.
1318
d59a1afb
DA
13192012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
1320
1321 Function to mark objects and remove killed buffers at once.
1322 * alloc.c (discard_killed_buffers): Rename to ...
1323 (mark_discard_killed buffers) ... new name. Add marking
1324 of remaining objects. Fix comment. Adjust users.
1325 (mark_object): Do not touch frame buffer lists here.
1326 * frame.c (delete_frame): Reset frame buffer lists here.
1327
5f0cb45a
PE
13282012-09-13 Paul Eggert <eggert@cs.ucla.edu>
1329
8ea47e3a
PE
1330 Better workaround for GNOME bug when --enable-gcc-warnings.
1331 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
1332 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
1333 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
1334
4a4bbad2
PE
1335 Simplify SIGIO usage (Bug#12408).
1336 The code that dealt with SIGIO was crufty and confusing, e.g., it
1337 played tricks like "#undef SIGIO" but these tricks were not used
1338 consistently. Simplify mostly by not #undeffing standard symbols,
1339 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
1340 or not as we please) rather than "defined SIGIO" (standard symbol
1341 that we probably shouldn't #undef).
1342 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
1343 Modules that need it can include it.
1344 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
1345 * dispextern.h (ignore_sigio): New decl.
1346 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
1347 unconditionally, since it's now a no-op if !USABLE_SIGIO.
1348 * emacs.c (shut_down_emacs):
1349 * keyboard.c (kbd_buffer_store_event_hold):
1350 Use ignore_sigio rather than invoking 'signal' directly.
1351 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
1352 for FIONREAD.
1353 (FIONREAD, SIGIO): Do not #undef.
1354 (tty_read_avail_input): Use #error rather than a syntax error.
1355 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
1356 for I_PIPE, used by SETUP_SLAVE_PTY.
1357 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
1358 * sysdep.c (croak): Remove; no longer needed. This bit of
1359 temporary code, with Fred N. Fish's comment that it's temporary,
1360 has been in Emacs since at least 1992!
1361 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
1362 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
1363 * syssignal.h (croak): Remove decl.
1364 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
1365 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
1366 now that we're termios-only.
1367 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
1368 * term.c (dissociate_if_controlling_tty): Use #error rather than
1369 a run-time error.
1370
5f0cb45a
PE
1371 Work around GCC and GNOME bugs when --enable-gcc-warnings.
1372 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
1373 to work around GNOME bug 683906.
1374 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
1375 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
1376 This works around GCC bug 54561.
1377
40bce90b
PE
13782012-09-12 Paul Eggert <eggert@cs.ucla.edu>
1379
1380 More fixes for 'volatile' and setjmp/longjmp.
1381 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
1382 * image.c (struct png_load_context) [HAVE_PNG]: New type.
1383 (png_load_body) [HAVE_PNG]:
1384 (jpeg_load_body) [HAVE_JPEG]:
1385 New function, with most of the old parent function's body.
1386 (png_load) [HAVE_PNG]:
1387 (jpeg_load) [HAVE_JPEG]:
1388 Invoke the new function, to avoid longjmp munging our locals.
1389 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
1390 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
1391 longjmp is passed 2, as the C standard doesn't guarantee this.
1392 Instead, store the failure code into mgr->failure_code.
1393
bfeae2cf
SM
13942012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
1395
1396 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
1397 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
1398 (syms_of_keyboard): Remove support for unread-command-char.
1399
8099e36b
EZ
14002012-09-12 Eli Zaretskii <eliz@gnu.org>
1401
1402 * w32proc.c (sys_kill): If PID is our process ID and the signal is
1403 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
1404 violation. (Bug#12426)
1405
92547ff9
PE
14062012-09-12 Paul Eggert <eggert@cs.ucla.edu>
1407
1408 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
1409
45b82ad0
SM
14102012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
1411
1412 * eval.c: Add `inhibit-debugger'.
1413 (Qinhibit_debugger): New symbol.
1414 (call_debugger): Bind it instead of Qdebug_on_error.
1415 (maybe_call_debugger): Test Vinhibit_debugger.
1416 (syms_of_eval): Define inhibit-debugger.
1417 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
1418 (syms_of_xdisp): Remove inhibit-debug-on-message.
1419
5779a1dc
PE
14202012-09-11 Paul Eggert <eggert@cs.ucla.edu>
1421
50f2e553
PE
1422 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
1423 If a nonvolatile local variable is written before a _longjmp to
1424 the frame containing the variable, and is read after the _longjmp,
1425 the value read is indeterminate. Some local variables of type
1426 'struct handler' and 'struct catchtag' are used in this way, so
1427 mark each of their slots as volatile if the slot can be set before
1428 _longjmp and read afterwards.
1429 * lisp.h (struct handler): var and chosen_clause are now volatile.
1430 (struct catchtag): val, next, and pdlcount are now volatile.
1431
ae1d87e2
PE
1432 * bidi.c (bidi_push_it, bidi_pop_it):
1433 * fns.c (copy_hash_table):
1434 * image.c (define_image_type):
1435 * keyboard.c (kbd_buffer_store_event_hold):
1436 * process.c (Fprocess_send_eof):
1437 * xfaces.c (x_create_gc) [HAVE_NS]:
1438 * xgselect.c (xg_select):
1439 Prefer assignment to memcpy when either will do.
1440
5779a1dc
PE
1441 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
1442 Use pointer-to-a-pointer to simplify and avoid a NILP check each
1443 time an item is removed. No need to mark this function 'inline';
1444 the compiler knows better than we do.
1445
c4c9756b
JD
14462012-09-11 Jan Djärv <jan.h.d@swipnet.se>
1447
1448 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
1449 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
1450 to change_frame_size (Bug#12388).
1451 (windowDidResize:): Pass YES to updateFrameSize.
1452
1453 * nsterm.h: Add delay parameter to updateFrameSize.
1454
d73e321c
DA
14552012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
1456
1457 Discard killed buffers from deleted window and frame objects.
1458 This reduces an amount of references to killed buffers and
1459 helps GC to reclaim them faster.
1460 * alloc.c (discard_killed_buffers): New function.
1461 (mark_object): Use it for deleted windows and frames.
1462 (mark_object): If symbol's value is set up for a killed buffer
1463 or deleted frame, restore it's global binding.
1464 * data.c (swap_in_global_binding): Add GC notice.
1465 (swap_in_symval_forwarding): Use convenient set_blv_where.
1466 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
1467 * window.h: ... to here.
1468
e578f381
DA
14692012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
1470
1471 Convenient macro to check whether the buffer is live.
1472 * buffer.h (BUFFER_LIVE_P): New macro.
1473 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
1474 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
1475
3057e615
YM
14762012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1477
1478 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
1479 composition cases (Bug#12364).
1480
1481 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
1482 overhang of succeeding glyphs overlapping box cursor.
1483
1484 * w32term.c (x_draw_glyph_string): Likewise.
1485
6fda35f2
PE
14862012-09-11 Paul Eggert <eggert@cs.ucla.edu>
1487
c990426a
PE
1488 Simplify, document, and port floating-point (Bug#12381).
1489 The porting part of this patch fixes bugs on non-IEEE platforms
1490 with frexp, ldexp, logb.
1491 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
1492 Now static.
1493 * floatfns.c: Simplify discussion of functions that Emacs doesn't
1494 support, by removing commented-out code and briefly listing the
1495 C89 functions excluded. The commented-out stuff was confusing
1496 maintenance, e.g., we thought we needed cbrt but it was commented out.
1497 (logb): Remove decl; no longer needed.
1498 (isfinite): New macro, if not already supplied.
1499 (isnan): Don't replace any existing macro.
1500 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
1501 are present on all C89 platforms.
1502 (Ffrexp): Do not special-case zero, as frexp does the right thing
1503 for that case.
1504 (Flogb): Do not use logb, as it doesn't have the desired meaning
1505 on hosts that use non-base-2 floating point. Instead, stick with
1506 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
1507 frexp, to avoid getting an unspecified result.
1508
6fda35f2
PE
1509 * xdisp.c (Qinhibit_debug_on_message): Now static.
1510
16130a58
JD
15112012-09-10 Jan Djärv <jan.h.d@swipnet.se>
1512
1513 * nsterm.m (ns_update_begin): Set clip path to whole view by using
1514 NSBezierPath (Bug#12131).
1515
d105a573
CY
15162012-09-10 Chong Yidong <cyd@gnu.org>
1517
1518 * fns.c (Fdelq, Fdelete): Doc fix.
1519
ff55dfe8
PE
15202012-09-10 Paul Eggert <eggert@cs.ucla.edu>
1521
1522 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
1523 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
1524
e7032e7c
SM
15252012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
1526
1527 * lisp.h (make_lisp_ptr): New macro to replace XSET.
1528 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
1529 Use it.
1530
e9957956
EZ
15312012-09-09 Eli Zaretskii <eliz@gnu.org>
1532
aba05ce9
EZ
1533 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
1534 left fringe if the window has a left margin. This avoids leaving
1535 traces of the cursor because its leftmost pixel is not drawn over.
1536
e9957956
EZ
1537 * dispnew.c (update_window_line): When the left margin area of a
1538 screen line is updated, set the redraw_fringe_bitmaps_p flag of
1539 that screen line. (Bug#12277)
1540
f6196b87
PE
15412012-09-09 Paul Eggert <eggert@cs.ucla.edu>
1542
1543 Assume C89 or later for math functions (Bug#12381).
1544 This simplifies the code, and makes it a bit smaller and faster,
1545 and (most important) makes it easier to clean up signal handling
1546 since we can stop worring about floating-point exceptions in
1547 library code. That was a problem before C89, but the problem
1548 went away many years ago on all practical Emacs targets.
1549 * data.c, image.c, lread.c, print.c:
1550 Don't include <math.h>; no longer needed.
1551 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
1552 might be autoconfigured, as that never happens.
1553 * data.c (fmod):
1554 * doprnt.c (DBL_MAX_10_EXP):
1555 * print.c (DBL_DIG):
1556 Remove. C89 or later always defines these.
1557 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
1558 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
1559 (arith_error, domain_error, domain_error2):
1560 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
1561 no longer needed -- we simply return what C returns. All uses removed.
1562 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
1563 the wrapped code.
1564 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
1565 Remove. All uses expanded, as these macros are no longer used
1566 more than once and are now more trouble than they're worth.
1567 (Ftan): Use tan, not sin / cos.
1568 (Flogb): Assume C89 frexp.
1569 (fmod_float): Assume C89 fmod.
1570 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
1571 (init_floatfns): Remove. All uses removed.
1572
9d7f1863
JD
15732012-09-08 Jan Djärv <jan.h.d@swipnet.se>
1574
1575 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
1576 compositeToPoint for OSX < 10.6 (Bug#12390).
1577
eabf0404
PE
15782012-09-08 Paul Eggert <eggert@cs.ucla.edu>
1579
1580 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
1581 This produces more-accurate results.
1582
0b3b1d23
JD
15832012-09-08 Jan Djärv <jan.h.d@swipnet.se>
1584
1585 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
1586 changes (Bug#12088).
1587
6dcef6ec
CY
15882012-09-08 Chong Yidong <cyd@gnu.org>
1589
1590 * syntax.c (Fstring_to_syntax): Doc fix.
1591
aa7d57c5
JD
15922012-09-08 Jan Djärv <jan.h.d@swipnet.se>
1593
1594 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
1595 in the internal border.
1596 (x_set_window_size): Remove static variables and their usage.
1597 (ns_redraw_scroll_bars): Fix NSTRACE arg.
3a880af4
SM
1598 (ns_after_update_window_line, ns_draw_fringe_bitmap):
1599 Remove fringe/internal border adjustment (Bug#11052).
aa7d57c5
JD
1600 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
1601 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
1602 (ns_fix_rect_ibw): Remove.
1603 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
1604 (ns_dumpglyphs_box_or_relief): Ditto.
1605 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
1606 adjustment.
1607 (ns_dumpglyphs_image): Ditto.
fc0c31f8 1608 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
aa7d57c5
JD
1609 border adjustment.
1610 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
1611 their usage. Add fringe_extended_p and its use as in other terms.
1612 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
1613 scroll bar was removed.
1614 (updateFrameSize): New function.
1615 (windowDidResize): Move code to updateFrameSize and call it.
1616
1617 * nsterm.h (EmacsView): Add updateFrameSize.
1618
1a5432bc
CY
16192012-09-07 Chong Yidong <cyd@gnu.org>
1620
b4f5313e
CY
1621 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
1622
1a5432bc
CY
1623 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
1624
1a4f1e9b
PE
16252012-09-07 Paul Eggert <eggert@cs.ucla.edu>
1626
1627 More signal-handler cleanup (Bug#12327).
eddb36a7
PE
1628 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
1629 Problem introduced when merging patches. Noted by Eli Zaretskii in
1630 <http://bugs.gnu.org/12327#67>.
1a4f1e9b
PE
1631 * floatfns.c: Comment fix.
1632 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
1633 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
1634 and anyway the declaration is harmless even if SIGDANGER is not defined.
1635 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
1636 defined BROKEN_FIONREAD). systty.h formerly did this, but other
1637 source files not surprisingly expected syssignal.h to define, or
1638 not define, SIGIO, and it's cleaner to do it that way, for consistency.
1639 Include <sys/ioctl.h>, for FIONREAD.
1640 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
1641 This eliminates a problem whereby other files mysteriously had
1642 to include "syssignal.h" before including "systty.h" if they
1643 wanted to use "#ifdef SIGIO".
1644
bc8000ff
EZ
16452012-09-07 Eli Zaretskii <eliz@gnu.org>
1646
3e6d6928
EZ
1647 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
1648
1649 * w32.c (sigemptyset): Empty the set.
1650 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
1651
bc8000ff
EZ
1652 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
1653
b4fa72f2
DA
16542012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
1655
1656 * alloc.c (mark_buffer): Revert unsafe marking optimization.
1657 (mark_object): Likewise for frame objects.
1658
30730c93
PE
16592012-09-07 Paul Eggert <eggert@cs.ucla.edu>
1660
1661 * syssignal.h (handle_on_main_thread): Always declare,
1662 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
1663 This ports to platforms without HAVE_PTHREAD.
1664
2fe28299
PE
16652012-09-06 Paul Eggert <eggert@cs.ucla.edu>
1666
1667 Signal-handler cleanup (Bug#12327).
1668 Emacs's signal handlers were written in the old 4.2BSD style with
1669 sigblock and sigmask and so forth, and this led to some
1670 inefficiencies and confusion. Rewrite these to use
1671 pthread_sigmask etc. without copying signal sets around. Also,
1672 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
1673 'signal', and instead use functions that do not attempt to take
1674 over the system name space. This patch causes Emacs's text
1675 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
1676 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
1677 Do not include <signal.h> or "syssignal.h", as these
1678 modules do not use signals.
1679 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
1680 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
1681 Do not include <signal.h>, as "syssignal.h" does that for us now.
1682 * atimer.c (sigmask_atimers): New function.
1683 (block_atimers, unblock_atimers): New functions,
1684 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
1685 All uses replaced.
1686 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
1687 no longer needed here.
1688 * emacs.c (main): Inspect existing signal handler with sigaction,
fc0c31f8 1689 so that there's no need to block and unblock SIGHUP.
2fe28299
PE
1690 * sysdep.c (struct save_signal): New member 'action', replacing
1691 old member 'handler'.
1692 (save_signal_handlers, restore_signal_handlers):
1693 Use sigaction instead of 'signal' to save and restore.
1694 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
1695 New function. All users of 'signal' modified to use set_sighandler
1696 if they're writeonly, and to use sys_signal if they're read+write.
1697 (emacs_sigaction_init, forwarded_signal): New functions.
1698 (sys_signal): Remove. All uses replaced by calls to sigaction
1699 and emacs_sigaction_init, or by direct calls to 'signal'.
1700 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
1701 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
1702 all uses replaced by pthread_sigmask etc. calls.
1703 * syssignal.h: Include <signal.h>.
1704 (emacs_sigaction_init, forwarded_signal): New decls.
1705 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
1706 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
1707 (sigmask, sys_sigmask): Remove; no longer needed.
1708 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
1709 (sigblock, sigunblock, sigfree):
1710 (sigsetmask) [!defined sigsetmask]:
1711 Remove. All uses replaced by pthread_sigmask.
1712 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
1713 no longer need to be replaced, and its typical old uses
1714 are now done via emacs_sigaction_init and sigaction.
1715 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
1716 (sys_sigdel): Remove; unused.
1717 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
1718
0216c128
EZ
17192012-09-06 Eli Zaretskii <eliz@gnu.org>
1720
1721 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
1722 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
1723
c752cfa9
DA
17242012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
1725
1726 Explicitly mark buffer_defaults and buffer_local_symbols.
1727 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
1728 mark_local_symbols here.
1729 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
1730 since special buffers aren't marked here any more.
1731 (allocate_buffer): Chain new buffer with all_buffers here...
1732 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
1733 not here.
1734 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
1735 (syms_of_buffer): Remove staticpro of the above.
1736 (init_buffer_once): Set names for buffer_defaults and
1737 buffer_local_symbols.
1738
a864ef14
PE
17392012-09-06 Paul Eggert <eggert@cs.ucla.edu>
1740
1741 Use bool for booleans in font-related modules.
1742 * font.c (font_intern_prop, font_style_to_value)
1743 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
1744 (generate_otf_features, font_check_otf_features, font_check_otf)
1745 (font_match_p, font_list_entities, font_at):
1746 * fontset.c (fontset_id_valid_p, reorder_font_vector
1747 (fontset_find_font, Fset_fontset_font)
1748 (face_suitable_for_char_p) [0]:
1749 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
1750 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
1751 (m17n_flt_initialized, ftfont_shape_by_flt):
1752 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
1753 * nsfont.m (nsfont_draw):
1754 * w32font.c (w32font_draw):
1755 * w32term.c (x_draw_glyphless_glyph_string_foreground):
1756 Use bool for booleans.
1757 * font.h: Adjust to above API changes.
1758 (struct font, struct font_driver, struct font_driver_list):
1759 Use bool for booleans.
1760 (struct font): Remove useless member encoding_type.
1761 All users removed.
1762 * fontset.c, xftfont.c: Omit unnecessary static decls.
1763
0699fc18
DA
17642012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
1765
1766 * alloc.c (mark_object): Revert window marking code
1767 since it's unsafe for the Fset_window_configuration.
1768
20ef56db
PE
17692012-09-05 Paul Eggert <eggert@cs.ucla.edu>
1770
2fe28299 1771 Fix race conditions with signal handlers and errno (Bug#12327).
20ef56db
PE
1772 Be more systematic about preserving errno whenever a signal
1773 handler returns, even if it's not in the main thread. Do this by
1774 renaming signal handlers to distinguish between signal delivery
1775 and signal handling. All uses changed.
1776 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
1777 * data.c (deliver_arith_signal): Rename from arith_error.
1778 * dispnew.c (deliver_window_change_signal): Rename from
1779 window_change_signal.
1780 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
1781 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
1782 * keyboard.c (deliver_input_available_signal): Rename from
1783 input_available_signal.
1784 (deliver_user_signal): Rename from handle_user_signal.
1785 (deliver_interrupt_signal): Rename from interrupt_signal.
1786 * process.c (deliver_pipe_signal): Rename from send_process_trap.
1787 (deliver_child_signal): Rename from sigchld_handler.
1788 * atimer.c (handle_alarm_signal):
1789 * data.c (handle_arith_signal):
1790 * dispnew.c (handle_window_change_signal):
1791 * emacs.c (handle_fatal_signal, handle_danger_signal):
1792 * keyboard.c (handle_input_available_signal):
1793 * keyboard.c (handle_user_signal, handle_interrupt_signal):
1794 * process.c (handle_pipe_signal, handle_child_signal):
1795 New functions, with the actual signal-handling code taken from the
1796 original respective signal handlers, sans the sporadic attempts to
1797 preserve errno, since that's now done by handle_on_main_thread.
1798 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
1799 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
1800 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
1801 Move to sysdep.c.
1802 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
1803 Move initialization of main_thread to sysdep.c's init_signals.
1804 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
1805 our usage, and simplifies the mainline code.
1806 (record_child_status_change): New static function, as a helper
1807 for handle_child_signal, and with most of the old child handler's
1808 contents.
1809 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
1810 (handle_child_signal): Use the above.
1811 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
1812 Moved here from emacs.c.
1813 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
1814 code moved here from emacs.c's main function.
1815 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
3a880af4
SM
1816 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
1817 This lets callers save and restore errno properly.
20ef56db 1818
e3ccf108
DA
18192012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
1820
1821 Remove redundant or unused things here and there.
1822 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
1823 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
1824 * editfns.c (Fcompare_buffer_substrings): Likewise.
1825 * frame.h (struct terminal, struct font_driver_list):
1826 Remove redundant declarations.
1827 * window.h (Qleft, Qright): Likewise.
1828
697e1e39
DA
18292012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
1830
1831 Do not mark objects from deleted buffers, windows and frames.
1832 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
1833 (mark_object): Likewise for windows and frames.
1834
c1ca42ca
DA
18352012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
1836
1837 * alloc.c (valid_lisp_object_p): Treat killed buffers,
1838 buffer_defaults and buffer_local_symbols as valid objects.
1839 Return special value to denote them.
1840
014d93be
PE
18412012-09-05 Paul Eggert <eggert@cs.ucla.edu>
1842
f75d7a91
PE
1843 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
1844 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
1845 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
1846 (file_name_absolute_p, Fsubstitute_in_file_name):
1847 (check_executable, check_writable, Ffile_accessible_directory_p)
1848 (Fset_file_selinux_context, Fdefault_file_modes)
1849 (Finsert_file_contents, choose_write_coding_system)
1850 (Fwrite_region, build_annotations, a_write, e_write)
1851 (Fdo_auto_save):
1852 * filelock.c (boot_time_initialized, get_boot_time)
1853 (get_boot_time_1, lock_file_1, within_one_second):
1854 * floatfns.c (in_float):
1855 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
1856 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
1857 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
1858 * lisp.h (struct Lisp_Hash_Table.cmpfn):
1859 * window.c (compare_window_configurations):
1860 Use bool for booleans.
1861 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
1862 (Fdefault_file_modes): Now mode_t, not int, for modes.
1863 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
1864 (internal_delete_file): Now returns void, not a (boolean) int,
1865 since nobody was looking at the return value.
1866 * lisp.h, window.h: Adjust to above API changes.
1867
014d93be
PE
1868 * xdisp.c (set_message): Simplify and reindent last change.
1869
776f29e1
JB
18702012-09-05 Juanma Barranquero <lekktu@gmail.com>
1871
1872 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
1873
7f7e0167
LI
18742012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
1875
1876 * eval.c (call_debugger): Make the function non-static so that we
1877 can call it from set_message.
1878
1879 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
1880 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
1881
cf29dd84
PE
18822012-09-04 Paul Eggert <eggert@cs.ucla.edu>
1883
1884 Give more-useful info on a fatal error (Bug#12328).
1885 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
1886 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
1887 of doing the work ourselves.
1888 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
1889 do most of the work.
1890 (fatal_error_backtrace): New function, taken from the guts
1891 of the old fatal_error_signal, but with a new option to output
1892 a backtrace.
1893 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
1894 info about the signal than just its number.
1895 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
1896 * sysdep.c: Include <execinfo.h>
1897 (emacs_backtrace): New function, taken partly from the previous
1898 code of the 'die' function.
1899 (emacs_abort): Call fatal_error_backtrace rather than abort.
1900
972debf2
SM
19012012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
1902
1903 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
1904 eager (load-time) macro-expansion.
1905 * lisp.mk (lisp): Add macroexp.
1906
1088b922
PE
19072012-09-04 Paul Eggert <eggert@cs.ucla.edu>
1908
1909 Simplify redefinition of 'abort' (Bug#12316).
1910 Do not try to redefine the 'abort' function. Instead, redo
1911 the code so that it calls 'emacs_abort' rather than 'abort'.
1912 This removes the need for the NO_ABORT configure-time macro
1913 and makes it easier to change the abort code to do a backtrace.
1914 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
1915 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
1916 Remove; sysdep.c's emacs_abort now takes its place.
1917 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
1918 'abort' changed to use 'emacs_abort'.
1919 * msdos.c (dos_abort) [defined abort]: Remove; not used.
1920 (abort) [!defined abort]: Rename to ...
1921 (emacs_abort): ... new name.
1922 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
1923 the place of the old 'abort' in emacs.c.
1924 * w32.c, w32fns.c (abort): Do not #undef.
1925 * w32.c (emacs_abort): Rename from w32_abort.
1926
30934d33
EZ
19272012-09-04 Eli Zaretskii <eliz@gnu.org>
1928
1929 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
1930 offsets[j].dv, since the y axis of the screen coordinates points
1931 down, while the y axis of the font definition coordinates points
1932 up. This fixes display of Arabic diacritics such as KASRA and
1933 KASRATAN. (Bug#11860)
1934
af26b72c
PE
19352012-09-04 Paul Eggert <eggert@cs.ucla.edu>
1936
1937 Be more systematic about _setjmp vs setjmp.
1938 * alloc.c (test_setjmp, mark_stack):
1939 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
1940 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
1941 (png_load, my_error_exit, jpeg_load):
1942 * process.c (send_process_trap, send_process):
1943 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
1944 The underscored versions are up to 30x faster on some hosts.
1945 Formerly, the code used setjmp+longjmp sometimes and
1946 _setjmp+_longjmp at other times, with no particular reason to
1947 prefer setjmp+longjmp.
1948
26d4541d
PE
19492012-09-03 Paul Eggert <eggert@cs.ucla.edu>
1950
d42f4f0f 1951 Fix minor problem found by static checking.
26d4541d 1952 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 1953
c5e28e39
MR
19542012-09-03 Martin Rudalics <rudalics@gmx.at>
1955
1956 * buffer.c (Fdelete_all_overlays): New function.
1957
3eab3ca9
CY
19582012-09-03 Chong Yidong <cyd@gnu.org>
1959
1960 * gtkutil.c: Add extern decl for Qxft.
1961
c04889f8
PE
19622012-09-02 Paul Eggert <eggert@cs.ucla.edu>
1963
1882aa38
PE
1964 * emacs.c, eval.c: Use bool for boolean.
1965 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
1966 (malloc_using_checking) [DOUG_LEA_MALLOC]:
1967 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
1968 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
1969 (main, decode_env_path, Fdaemon_initialized):
1970 * eval.c (call_debugger, Finteractive_p, interactive_p):
1971 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
1972 (maybe_call_debugger, Fbacktrace):
1973 * process.c (read_process_output, exec_sentinel):
1974 Use bool for booleans.
1975 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
1976 All callers changed.
1977 * eval.c (interactive_p): Omit always-true boolean argument
1978 EXCLUDE_SUBRS_P. All callers changed.
1979 * dispextern.h, lisp.h: Reflect above API changes.
1980 * firstfile.c (dummy): Use the address of 'main', whose signature
1981 won't change, instead of the address of 'initialize', whose
1982 signature just changed from int to bool.
1983 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
1984 * msdos.c (fatal_error_in_progress): ... from here.
1985 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
1986 of incrementing it.
1987 (redisplay_internal, unwind_redisplay): Simply clear
1988 REDISPLAYING_P when unwinding, instead of saving its previous,
1989 always-false value and then restoring it.
1990
a411ac43
PE
1991 Clean up some extern decls.
1992 Mostly, this hoists extern decls out of .c files and into .h files.
1993 That way, we're more likely to catch errors if the interfaces change.
1994 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
1995 declare xg_mark_data.
1996 * dispextern.h (x_frame_parm_handlers):
1997 * font.h (Qxft):
1998 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
1999 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
2000 (Qultra_bold, Qoblique, Qitalic):
2001 Move extern decl here from .c file.
2002 * alloc.c (xg_mark_data) [USE_GTK]:
2003 * doc.c (Qclosure):
2004 * eval.c (Qlexical_binding):
2005 * fns.c (time) [!HAVE_UNISTD_H]:
2006 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
2007 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
2008 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
2009 * lread.c (Qinternal_interpreter_environment):
2010 * minibuf.c (Qbuffer):
2011 * process.c (QCfamily, QCfilter):
2012 * widget.c (free_frame_faces):
2013 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
2014 * xfont.c (x_clear_errors):
2015 * xterm.c (x_frame_parm_handlers):
2016 Remove now-redundant extern decls.
2017 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
2018 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
2019 Now static.
2020 * xfaces.c: Remove unnecessary static decls.
2021 * xterm.c (updating_frame): Remove decl of nonexistent object.
2022
c04889f8
PE
2023 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
2024 when building globals.h, as the objects that are not built on
2025 this host are not needed to compile C files on this host.
2026
8b339673
JD
20272012-09-02 Jan Djärv <jan.h.d@swipnet.se>
2028
2029 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
2030
2031 * frame.h: Add missing prototype for x_wm_set_size_hint.
2032
a08d4ba7
PE
20332012-09-02 Paul Eggert <eggert@cs.ucla.edu>
2034
2035 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
2036 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
2037 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
2038 (Fsubstitute_command_keys):
2039 * editfns.c (region_limit, find_field, Fconstrain_to_field)
2040 (save_excursion_save, save_excursion_restore)
2041 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
2042 (format_time_string, general_insert_function)
2043 (make_buffer_string, make_buffer_string_both)
2044 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
2045 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
2046 (copy_text, insert_1, insert_1_both, insert_from_string)
2047 (insert_from_string_before_markers, insert_from_string_1)
2048 (insert_from_buffer, insert_from_buffer_1, replace_range)
2049 (replace_range_2, del_range_1, del_range_byte, del_range_both)
2050 (del_range_2, modify_region):
2051 * intervals.c (intervals_equal, balance_possible_root_interval)
2052 (adjust_intervals_for_insertion, merge_properties_sticky)
2053 (graft_intervals_into_buffer, lookup_char_property)
2054 (adjust_for_invis_intang, set_point_both)
2055 (get_property_and_range, compare_string_intervals)
2056 (set_intervals_multibyte_1, set_intervals_multibyte):
2057 * keyboard.c (decode_timer):
2058 Use bool for boolean.
2059 * intervals.h, lisp.h, systime.h: Reflect above API changes.
2060 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
2061
48c948de
CY
20622012-09-02 Chong Yidong <cyd@gnu.org>
2063
2064 * keymap.c (push_key_description): Print M-TAB as C-M-i
2065 (Bug#11758).
2066
6c49a40b
JB
20672012-09-02 Juanma Barranquero <lekktu@gmail.com>
2068
2069 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
2070 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
2071 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
2072 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
2073 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
2074 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
2075 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
2076
4dfbd238
EZ
20772012-09-01 Eli Zaretskii <eliz@gnu.org>
2078
7e510e28
EZ
2079 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
2080 more than one grapheme cluster passed to the shaper: compute the
2081 offset adjustment values separately for each cluster. (Bug#11860)
2082
4dfbd238
EZ
2083 * image.c: Restore mistakenly removed inclusion of w32.h. Without
2084 it, GCC doesn't see prototypes of w32_delayed_load, and complains
2085 about implicit conversions from integer to pointer.
2086
86571ae0
DC
20872012-09-01 Daniel Colascione <dancol@dancol.org>
2088
2089 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
2090 system used too early.
2091
0e23ef9d
PE
20922012-09-01 Paul Eggert <eggert@cs.ucla.edu>
2093
2094 Better seed support for (random).
2095 * emacs.c (main): Call init_random.
2096 * fns.c (Frandom): Set the seed from a string argument, if given.
2097 Remove long-obsolete Gentzel cruft.
2098 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
2099 (init_random): New function.
2100
17a2cbbd
DC
21012012-09-01 Daniel Colascione <dancol@dancol.org>
2102
2103 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
2104 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
2105 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
2106 x_wm_set_size_hint, x_query_colors, x_real_positions,
2107 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
2108 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
2109 all of which have been moved to common code.
2110
2111 * xfaces.c: Include TERM_HEADER instead of listing all possible
2112 window-system headers.
2113
2114 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
2115 to match header.
2116
2117 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
2118 directly accessing frame internals.
2119
f18cbb28 2120 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
2121 globals_of_w32font.
2122
2123 * process.c: Include TERM_HEADER instead of listing all possible
2124 window-system headers.
2125
3a880af4
SM
2126 * nsterm.h: Remove declarations now in frame.h.
2127 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
17a2cbbd
DC
2128
2129 * menu.c: Include TERM_HEADER instead of listing all possible
2130 window-system headers.
2131
2132 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
2133 window system.
2134
2135 * keyboard.c: Include TERM_HEADER instead of listing all possible
2136 window-system headers.
2137
2138 * image.c: Include TERM_HEADER instead of listing all possible
2139 window-system headers. Declare Vlibrary_cache when compiling for
2140 Windows.
2141
2142 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
2143 window system declarations.
2144
2145 * frame.h: Move common functions here: set_frame_menubar,
2146 x_set_window_size, x_sync, x_get_focus_frame,
2147 x_set_mouse_position, x_set_mouse_pixel_position,
2148 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
2149 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
2150 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
2151 x_activate_menubar, x_real_positions, x_bitmap_icon,
2152 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
2153 and x_query_colors.
2154
2155 * frame.c: Include TERM_HEADER instead of listing all possible
2156 window-system headers.
2157
2158 * font.c: Include TERM_HEADER instead of listing all possible
2159 window-system headers.
2160
2161 * emacs.c: Include TERM_HEADER.
2162
f18cbb28
EZ
2163 * dispnew.c: Include TERM_HEADER instead of listing all possible
2164 window-system headers.
17a2cbbd 2165
f18cbb28 2166 * ccl.h: Include character.h.
17a2cbbd
DC
2167
2168 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
2169 the current window system; include in list of objects to link into
2170 Emacs.
2171
c650a5de
DA
21722012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
2173
2174 Remove mark_ttys function and fix tty_display_info initialization.
2175 * lisp.h (mark_ttys): Remove prototype.
2176 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
2177 to mark_ttys because all possible values of 'top_frame' slot are
2178 the frames which are reachable from Vframe_list.
2179 * term.c (mark_ttys): Remove.
2180 (init_tty): Safely initialize 'top_frame' slot with Qnil.
2181
4e0f6479
DA
21822012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
2183
2184 Change struct frame bitfields from unsigned char to unsigned.
2185 * frame.h (struct frame): Change type of 'display_preempted',
2186 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
2187 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
2188 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
2189 bitfields from unsigned char to unsigned.
2190
8b96a52c
DA
21912012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
2192
2193 Remove unused member of struct x_output and struct w32_output.
2194 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
2195 * w32term.h (struct w32_output): Likewise.
2196
b4444c8a
JD
21972012-08-30 Jan Djärv <jan.h.d@swipnet.se>
2198
2199 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
2200 does not become zero (Bug#12234).
2201
b98521db
PE
22022012-08-30 Paul Eggert <eggert@cs.ucla.edu>
2203
2204 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
2205 for GCC 4.7.1 x86-64.
2206
31d02438
GM
22072012-08-30 Glenn Morris <rgm@gnu.org>
2208
2209 * lread.c (init_lread): For out-of-tree builds, only add the
2210 source directory's site-lisp dir to the load-path if it exists,
2211 consistent with in-tree builds. (Bug#12302)
2212
7f8941d8
JD
22132012-08-28 Jan Djärv <jan.h.d@swipnet.se>
2214
2215 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
fc0c31f8 2216 button_values to NULL. Call setStykeMask so dialogs get a close button.
7f8941d8
JD
2217 (windowShouldClose:): Set window_closed.
2218 (dealloc): New member, free button_values.
fc0c31f8
JB
2219 (process_dialog:): Make member function. Remove window argument,
2220 replace window with self. Count buttons and allocate and store values
7f8941d8
JD
2221 in button_values.
2222 (addButton:value:row:): value is int with the name tag. Call setTag
fc0c31f8 2223 with tag. Remove return self, declare return value as void.
7f8941d8
JD
2224 (addString:row:): Remove return self, declare return value as void.
2225 (addSplit): Remove return self, declare return value as void.
2226 (clicked:): Remove return self, declare return value as void.
fc0c31f8 2227 Set dialog_return to button_values[seltag]. Code formatting change.
7f8941d8
JD
2228 (initFromContents:isQuestion:): Adjust call to process_dialog.
2229 Code formatting change.
2230 (timeout_handler:): Set timer_fired to YES.
2231 (runDialogAt:): Set timer_fired to NO.
2232 Handle click on close button as quit.
2233
2234 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
2235 Add window_closed and button_values. Add void as return value for
2236 add(Button|String|Split). addButton takes int instead of Lisp_Object.
2237 Add process_dialog as new member.
2238
eada0861 22392012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 2240
eada0861
GM
2241 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
2242 is not one of the heaps we manage. (Bug#12242)
2243
22442012-08-28 Glenn Morris <rgm@gnu.org>
2245
2246 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
2247
457294dd
MR
22482012-08-28 Martin Rudalics <rudalics@gmx.at>
2249
2250 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
2251 auto-buffer-name window parameter. Install revision of reverted
2252 fix.
457294dd 2253
4f2daf31
DA
22542012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2255
2256 Do not allow to set major mode for a dead buffer.
2257 * buffer.c (Fset_buffer_major_mode): Signal an error
2258 if the buffer is dead.
2259 (Fother_buffer, other_buffer_safely): Remove redundant
2260 nested declaration.
2261
66322887
DA
22622012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2263
2264 Always use set_buffer_if_live to restore original buffer at unwind.
2265 * buffer.h (record_unwind_current_buffer): New function.
2266 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
2267 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
2268 * undo.c, window.c: Adjust users.
2269 * buffer.c (set_buffer_if_live): Fix comment.
2270
a3d794a1
DA
22712012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2272
2273 Fix usage of set_buffer_internal.
2274 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
2275 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
2276 * coding.c (decode_coding): Omit redundant test.
2277 * fileio.c (decide_coding_unwind): Likewise.
2278 * fns.c (secure_hash): Likewise.
2279 * insdel.c (modify_region): Likewise.
2280 * keyboard.c (command_loop_1): Likewise.
2281 * print.c (PRINTFINISH): Likewise.
2282 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
2283
59ea14cd
PE
22842012-08-27 Paul Eggert <eggert@cs.ucla.edu>
2285
2286 * dispnew.c: Use bool for boolean.
2287 (frame_garbaged, display_completed, delayed_size_change)
2288 (fonts_changed_p, add_window_display_history)
2289 (add_frame_display_history, verify_row_hash)
2290 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
2291 (row_equal_p, realloc_glyph_pool)
2292 (allocate_matrices_for_frame_redisplay)
2293 (showing_window_margins_p)
2294 (adjust_frame_glyphs_for_frame_redisplay)
2295 (build_frame_matrix_from_leaf_window, make_current)
2296 (mirrored_line_dance, mirror_line_dance, update_frame)
2297 (update_window_tree, update_single_window)
2298 (check_current_matrix_flags, update_window, update_text_area)
2299 (update_window_line, set_window_update_flags, scrolling_window)
2300 (update_frame_1, scrolling, buffer_posn_from_coords)
2301 (do_pending_window_change, change_frame_size)
2302 (change_frame_size_1, sit_for):
2303 Use bool for boolean.
2304 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
2305 and remove last int (actually boolean) argument, which was always 0.
2306 All callers changed.
2307 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
2308 * dispextern.h (struct composition_it): Use bool for boolean.
2309 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
2310 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
2311 * dired.c (file_name_completion):
2312 Use bool for boolean. (This was missed in an earlier change.)
2313
95072a94
MR
23142012-08-27 Martin Rudalics <rudalics@gmx.at>
2315
2316 * window.c (Fset_window_configuration): Revert first part of
2317 last change.
2318
0f19feff
JD
23192012-08-27 Jan Djärv <jan.h.d@swipnet.se>
2320
2321 * nsterm.h (NSPanel): New class variable dialog_return.
2322
3a880af4
SM
2323 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
2324 Initialize dialog_return.
0f19feff
JD
2325 (windowShouldClose:): Use stop instead of stopModalWithCode.
2326 (clicked:): Ditto, and also set dialog_return (Bug#12258).
2327 (timeout_handler:): Use stop instead of abortModal. Send a dummy
2328 event.
2329 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
2330 modal loop returns.
2331
f10fe38f
PE
23322012-08-27 Paul Eggert <eggert@cs.ucla.edu>
2333
de1339b0
PE
2334 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
2335 * composite.c (find_composition, composition_gstring_p)
2336 (composition_reseat_it, find_automatic_composition):
2337 * data.c (let_shadows_buffer_binding_p)
2338 (let_shadows_global_binding_p, set_internal, make_blv)
2339 (Fmake_variable_buffer_local, Fmake_local_variable)
2340 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
2341 (cons_to_signed, arith_driver):
2342 * dbusbind.c (xd_in_read_queued_messages):
2343 * dired.c (directory_files_internal, file_name_completion):
2344 Use bool for booleans.
2345 * dired.c (file_name_completion):
2346 * process.h (fd_callback):
2347 Omit int (actually boolean) argument. It wasn't being used.
2348 All uses changed.
2349 * composite.h, lisp.h: Reflect above API changes.
2350
f10fe38f
PE
2351 * cmds.c, coding.c: Use bool for booleans.
2352 * cmds.c (move_point, Fself_insert_command):
2353 * coding.h (struct composition status, struct coding_system):
2354 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
2355 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
2356 (emacs_mule_char, decode_coding_emacs_mule)
2357 (encode_coding_emacs_mule, detect_coding_iso_2022)
2358 (decode_coding_iso_2022, encode_invocation_designation)
2359 (encode_designation_at_bol, encode_coding_iso_2022)
2360 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
2361 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
2362 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
2363 (encode_coding_raw_text, detect_coding_charset)
2364 (decode_coding_charset, encode_coding_charset, detect_eol)
2365 (detect_coding, get_translation_table, produce_chars)
2366 (consume_chars, reused_workbuf_in_use)
2367 (make_conversion_work_buffer, code_conversion_save)
2368 (decode_coding_object, encode_coding_object)
2369 (detect_coding_system, char_encodable_p)
2370 (Funencodable_char_position, code_convert_region)
2371 (code_convert_string, code_convert_string_norecord)
2372 (Fset_coding_system_priority):
2373 * fileio.c (Finsert_file_contents):
2374 Use bool for booleans.
2375 * coding.h, lisp.h: Reflect above API changes.
2376 * coding.c: Remove unnecessary static function decls.
2377 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
2378 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
2379 not a boolean 'int', since callers never look at the return value.
2380 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
2381 * coding.h (decoding_buffer_size, encoding_buffer_size)
2382 (emacs_mule_string_char): Remove unused extern decls.
2383 (struct iso_2022_spec, struct coding_system):
2384 Use 'unsigned int : 1' for boolean fields, since there's more than one.
2385 (struct emacs_mule_spec): Remove unused field 'full_support'.
2386 All initializations removed.
2387 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
2388
5474c384
DA
23892012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
2390
f10fe38f 2391 Fix spare memory change (Bug#12286).
5474c384
DA
2392 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
2393 (valid_lisp_object_p): Likewise.
2394
c4b6914d
MR
23952012-08-27 Martin Rudalics <rudalics@gmx.at>
2396
2397 * window.c (Fset_window_configuration): Record any window's old
2398 buffer if it's replaced (see Bug#8789). If the new current
2399 buffer doesn't appear in the selected window, go to its old
2400 point (Bug#12208).
2401
35aaa1ea
DA
24022012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
2403
2404 Special MEM_TYPE_SPARE to denote reserved memory.
2405 * alloc.c (enum mem_type): New memory type.
2406 (refill_memory_reserve): Use new type for spare memory.
2407 This prevents live_cons_p and live_string_p from incorrect
2408 detection of uninitialized objects from spare memory as live.
2409
6af64513
PE
24102012-08-26 Paul Eggert <eggert@cs.ucla.edu>
2411
8b2e00a3
PE
2412 Spelling fixes.
2413 * Makefile.in (.PHONY): versioclean -> versionclean.
2414
b52d6985
PE
2415 Remove unused external symbols.
2416 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
2417 * window.c (Qwindow_valid_p, decode_valid_window):
2418 Now static, not extern.
2419 * data.c (Qinterval): Remove; unused.
2420 (syms_of_data): Do not define 'interval'.
2421 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
2422 * window.h (decode_valid_window):
2423 Remove decls.
2424
d5172d4f
PE
2425 * character.c, charset.c, chartab.c: Use bool for booleans.
2426 * character.c (lisp_string_width, string_count_byte8)
2427 (string_escape_byte8):
2428 * charset.c (charset_map_loaded, load_charset_map, read_hex):
2429 (load_charset_map_from_file, map_charset_chars)
2430 (Fdefine_charset_internal, define_charset_internal)
2431 (Fdeclare_equiv_charset, find_charsets_in_text)
2432 (Ffind_charset_region, char_charset, Fiso_charset):
2433 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
2434 (sub_char_table_set, sub_char_table_set_range)
2435 (char_table_set_range, optimize_sub_char_table)
2436 (map_sub_char_table):
2437 Use bool for boolean.
2438 * character.c (str_to_unibyte): Omit last boolean argument; it was
2439 always 0. All callers changed.
2440 * character.h, charset.h: Adjust to match previous changes.
2441 * character.h (char_printable_p): Remove decl of nonexistent function.
2442 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
2443 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
2444 are all boolean, so make them single-bit bitfields.
2445
6af64513
PE
2446 * lisp.h (ASET): Remove attempt to detect side effects.
2447 It was meant to be temporary and it often doesn't work,
2448 because when IDX has side effects the behavior of IDX==IDX
2449 is undefined. See Stefan Monnier in
2450 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
2451
e1f29348
BR
24522012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
2453
2454 * lisp.h (functionp): New function (extracted from Ffunctionp).
2455 (FUNCTIONP): Use it.
2456 * eval.c (Ffunctionp): Use it.
2457
17c05d74
PE
24582012-08-25 Paul Eggert <eggert@cs.ucla.edu>
2459
0f46bc75
PE
2460 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
2461 as that's faster and simpler than static storage. Don't bother
2462 with the g_main_context_query overhead if g_main_context_pending
2463 says no events are pending.
2464 (gfds, gfds_size): Remove these static vars.
2465 (xgselect_initialize): Remove; no longer needed.
2466 All uses and decls removed.
2467
ee4c0f69
PE
2468 * emacs.c (fatal_error_signal_hook): Remove.
2469 All uses removed. This leftover from old code was always 0.
2470
17c05d74
PE
2471 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
2472 * casefiddle.c (casify_object, casify_region):
2473 * casetab.c (set_case_table):
2474 * category.c, category.h (word_boundary_p):
2475 * category.h (CHAR_HAS_CATEGORY):
2476 Use bool for booleans, instead of int.
2477
391ceac5
EZ
24782012-08-25 Eli Zaretskii <eliz@gnu.org>
2479
2480 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
2481
2f221583
PE
24822012-08-25 Paul Eggert <eggert@cs.ucla.edu>
2483
f4a681b0
PE
2484 On assertion failure, print backtrace if available.
2485 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
2486 (die) [ENABLE_CHECKING]: Print a backtrace if available.
2487 * Makefile.in (LIB_EXECINFO): New macro.
2488 (LIBES): Use it.
2489
2f221583
PE
2490 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
2491 * bytecode.c (exec_byte_code):
2492 * callint.c (check_mark, Fcall_interactively):
2493 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
2494 (getenv_internal, sync_process_alive, call_process_exited):
2495 * lisp.h (USE_SAFE_ALLOCA):
2496 Use bool for booleans, instead of int.
2497 * lisp.h, process.h: Adjust prototypes to match above changes.
2498 * callint.c (Fcall_interactively): Don't assume the mark's
2499 offset fits in 'int'.
2500
37ef52bb
PE
25012012-08-24 Paul Eggert <eggert@cs.ucla.edu>
2502
2503 * buffer.c, buffer.h: Use bool for boolean.
2504 * buffer.c (reset_buffer_local_variables)
2505 (buffer_lisp_local_variables, Fset_buffer_modified_p)
2506 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
2507 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
2508 (overlay_touches_p, overlay_strings, Foverlay_put)
2509 (report_overlay_modification, call_overlay_mod_hooks):
2510 (mmap_enlarge, mmap_set_vars):
2511 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
2512 Use bool for booleans, instead of int.
2513 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
2514 since the 1-or-0 return value is always ignored anyway.
2515 (mmap_initialized_p):
2516 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
2517 * buffer.h, lisp.h: Adjust prototypes to match above changes.
2518
2cc21167
PE
25192012-08-23 Paul Eggert <eggert@cs.ucla.edu>
2520
2521 * bidi.c: Use bool for boolean.
2522 This is a bit more readable, and makes the text segment of bidi.o
2523 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
2524 Presumably it's faster too.
2525 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
2526 Now bool.
2527 (bidi_cache_find_level_change, bidi_cache_iterator_state)
2528 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
2529 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
2530 (bidi_explicit_dir_char, bidi_level_of_next_char)
2531 (bidi_find_other_level_edge, bidi_move_to_visually_next):
2532 Use bool for booleans, instead of int.
2533 * dispextern.h (bidi_init_it, bidi_paragraph_init)
2534 (bidi_unshelve_cache): Adjust decls to match code.
2535
7db4ddf4
MR
25362012-08-23 Martin Rudalics <rudalics@gmx.at>
2537
2538 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
2539 argument.
2540
b1bb8011
PE
25412012-08-23 Paul Eggert <eggert@cs.ucla.edu>
2542
2543 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
2544 * atimer.h: Include <stdbool.h>.
2545
ff687885
DN
25462012-08-22 Dan Nicolaescu <dann@gnu.org>
2547
2548 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
2549 compile time tests instead of run time tests on systems that do
2550 not use them.
2551 (FRAME_MAC_P): Remove leftover from deleted code.
2552 * frame.c (syms_of_frame): Remove leftover from deleted code.
2553
4ce7a138
JD
25542012-08-22 Jan Djärv <jan.h.d@swipnet.se>
2555
2556 * nsterm.m (insertText:): Don't clear modifiers if code is space.
2557
d733ec6d
PE
25582012-08-22 Paul Eggert <eggert@cs.ucla.edu>
2559
2560 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
2561 Otherwise, the compiler complains about (A?B:C) where B is void
fc0c31f8 2562 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
d733ec6d
PE
2563 (fontset_add): Return void, for FONTSET_ADD.
2564
d0d2d26f
PE
25652012-08-21 Paul Eggert <eggert@cs.ucla.edu>
2566
fce31d69
PE
2567 * alloc.c: Use bool for booleans.
2568 (gc_in_progress, abort_on_gc)
2569 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
2570 (dont_register_blocks) [GC_MALLOC_CHECK]:
2571 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
2572 (check_string_bytes, make_specified_string, memory_full)
2573 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
2574 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
2575 (mark_stack, valid_pointer_p, make_pure_string)
2576 (Fgarbage_collect, survives_gc_p, gc_sweep):
2577 Use bool for booleans, instead of int.
2578 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
2579 Remove unused local.
2580 * alloc.c (PURE_POINTER_P):
2581 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
2582 * editfns.c (Fformat):
2583 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
2584 (Fdo_auto_save):
2585 * fns.c (sweep_weak_table):
2586 * lisp.h (suppress_checking, push_message, survives_gc_p)
2587 (make_pure_string, gc_in_progress, abort_on_gc):
2588 * lread.c (readchar, read1):
2589 * print.c (Fprin1_to_string):
2590 * xdisp.c (push_message):
2591 Use bool for booleans affected directly or indirectly by
2592 alloc.c's changes.
2593
d0d2d26f
PE
2594 Make recently-introduced setters macros.
2595 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
2596 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
2597 (set_fontset_default, set_fontset_fallback): Rename from their
2598 upper-case counterparts, and make them functions rather than macros.
2599 This is more consistent with the other recently-introduced setters.
2600 These don't need to be inline, since they're local.
2601
d18e2bb6
JD
26022012-08-21 Jan Djärv <jan.h.d@swipnet.se>
2603
2604 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
2605 the loop (Bug#12247).
2606
1b9d9d16
PE
26072012-08-21 Paul Eggert <eggert@cs.ucla.edu>
2608
2609 * lisp.h (vcopy): Use memcpy rather than our own loop.
2610 This fixes a performance regression introduced by the recent
2611 addition of vcopy. This means 'vcopy' will need to be modified
2612 for a copying collector, but that's OK. Also, tighten the
2613 checking in the assertion.
2614
b2f09701
EZ
26152012-08-21 Eli Zaretskii <eliz@gnu.org>
2616
2617 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
2618 components for RTL text (Bug#11860). Adjust X-OFFSET of each
2619 non-base glyph for the width of the base character, according to
e1f29348
BR
2620 what x_draw_composite_glyph_string_foreground expects.
2621 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
2622 expectations, to produce correct width of the composed character.
2623 Reverse the sign of the DU offset produced by ScriptPlace.
2624
9b994fed
PE
26252012-08-21 Paul Eggert <eggert@cs.ucla.edu>
2626
2627 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
2628
086ca913
DA
26292012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
2630
2631 Avoid direct writes to contents member of struct Lisp_Vector.
2632 * lisp.h (vcopy): New function to copy data into vector.
2633 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
2634 * fns.c (Ffillarray): Use ASET.
2635 * keyboard.c (timer_check_2): Use AREF and ASET.
2636 (append_tool_bar_item, Frecent_keys): Use vcopy.
2637 * lread.c (read_vector): Use ASET.
2638 * msdos.c (Frecent_doskeys): Use vcopy.
2639 * xface.c (Finternal_copy_lisp_face): Use vcopy.
2640 (Finternal_merge_in_global_face): Use ASET and vcopy.
2641 * xfont.c (xfont_list_pattern): Likewise.
2642
5481664a
MR
26432012-08-21 Martin Rudalics <rudalics@gmx.at>
2644
2645 * window.c (Fwindow_point): For the selected window always return
2646 the position of its buffer's point.
2647 (Fset_window_point): For the selected window always go in its
2648 buffer to the specified position.
2649
6d470bdd
DA
26502012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
2651
2652 Setter macros for fontsets.
2653 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
2654 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
2655 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
2656 Adjust users.
2657
24564fe1
GM
26582012-08-20 Glenn Morris <rgm@gnu.org>
2659
2660 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
2661 Don't assume that `ln -f' works.
2662
0a05a035
EZ
26632012-08-20 Eli Zaretskii <eliz@gnu.org>
2664
2665 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
2666 and later about non-assignments with no effect. See discussion at
2667 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
2668 details.
2669
e46f2325
DA
26702012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2671
2672 Inline setter functions for Lisp_Objects slots of struct specbinding.
2673 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
2674 Adjust users.
2675
734fbd86
MR
26762012-08-20 Martin Rudalics <rudalics@gmx.at>
2677
2678 * window.c (select_window): Always make selected window's buffer
2679 current.
2680
f1a95992
DA
26812012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2682
2683 Use AREF and ASET for docstrings of category tables.
2684 * category.h (CATEGORY_DOCSTRING): Use AREF.
2685 (SET_CATEGORY_DOCSTRING): Use ASET.
2686 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
2687
e83064be
DA
26882012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2689
2690 Inline setter functions for hash table members.
2691 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
2692 (set_hash_hash, set_hash_index): Rename with _slot suffix.
2693 (set_hash_key_and_value, set_hash_index, set_hash_next)
2694 (set_hash_hash): New functions.
2695 * charset.c, fns.c: Adjust users.
2696
4ce60d2e
DA
26972012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2698
2699 Inline getter and setter functions for per-buffer values.
2700 * buffer.h (per_buffer_default, set_per_buffer_default)
2701 (per_buffer_value, set_per_buffer_value): New functions.
2702 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
2703 * buffer.c, data.c: Adjust users.
2704
c06c9690
JB
27052012-08-20 Juanma Barranquero <lekktu@gmail.com>
2706
2707 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
2708
32bd4250
PE
27092012-08-19 Paul Eggert <eggert@cs.ucla.edu>
2710
bad03192 2711 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
2712 as gnulib does this if the system doesn't.
2713 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
2714 Remove declaration. MS-Windows declares it on stdlib.h which is
2715 included by conf_post.h.
b69a6d22
PE
2716 * emacs.c (environ) [DOUG_LEA_MALLOC]:
2717 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
2718 * vm-limit.c: Include <unistd.h>, for 'environ'.
2719
22d7feb2
PE
2720 * unexaix.c, unexcoff.c: Include "mem-limits.h".
2721 (start_of_data): Remove decl; mem-limits.h provides it.
2722
32bd4250
PE
2723 * xdisp.c (handle_invisible_prop): Make it a bit faster
2724 and avoid a gcc -Wmaybe-uninitialized diagnostic.
2725
450809af
CY
27262012-08-19 Chong Yidong <cyd@gnu.org>
2727
2728 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
2729 ends (Bug#3874).
2730
9e677988
AS
27312012-08-19 Andreas Schwab <schwab@linux-m68k.org>
2732
6b1319ce
AS
2733 * .gdbinit: Use call instead of set when calling a function in the
2734 inferior.
2735
9e677988
AS
2736 * data.c (set_internal): Don't use set_blv_found.
2737 (Fkill_local_variable): Likewise.
2738
d7191076
AA
27392012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
2740
2741 * nsfont.m (ns_ascii_average_width): Ensure the string
2742 ascii_printable is initialized with a null-terminated character
2743 array. Otherwise, it can contain undesired extra characters.
2744
e757f1c6
PE
27452012-08-18 Paul Eggert <eggert@cs.ucla.edu>
2746
2747 port new setting code to Sun C 5.8 2005/10/13
2748 * chartab.c, lisp.h (char_table_set, char_table_set_range):
2749 Return void, not Lisp_Object. Otherwise, the compiler
2750 complains about (A?B:C) where B is void and C is Lisp_Object
2751 when compiling CHAR_TABLE_SET, due to the recent change to
2752 the API of sub_char_table_set_contents.
2753
a999ce26
CY
27542012-08-18 Chong Yidong <cyd@gnu.org>
2755
2756 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
2757 for the string case (Bug#3874).
2758
3f22b86f
PE
27592012-08-18 Paul Eggert <eggert@cs.ucla.edu>
2760
39eb03f1
PE
2761 * buffer.h (BSET): Remove (Bug#12215).
2762 Replace all uses with calls to new setter functions.
2763 (bset_bidi_paragraph_direction, bset_case_canon_table)
2764 (bset_case_eqv_table, bset_directory, bset_display_count)
2765 (bset_display_time, bset_downcase_table)
2766 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
2767 (bset_last_selected_window, bset_local_var_alist)
2768 (bset_mark_active, bset_point_before_scroll, bset_read_only)
2769 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
2770 (bset_width_table):
2771 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
2772 (bset_auto_fill_function, bset_auto_save_file_format)
2773 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
2774 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
2775 (bset_cache_long_line_scans, bset_case_fold_search)
2776 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
2777 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
2778 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
2779 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
2780 (bset_header_line_format, bset_indicate_buffer_boundaries)
2781 (bset_indicate_empty_lines, bset_invisibility_spec)
2782 (bset_left_fringe_width, bset_major_mode, bset_mark)
2783 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
2784 (bset_name, bset_overwrite_mode, bset_pt_marker)
2785 (bset_right_fringe_width, bset_save_length)
2786 (bset_scroll_bar_width, bset_scroll_down_aggressively)
2787 (bset_scroll_up_aggressively, bset_selective_display)
2788 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
2789 (bset_word_wrap, bset_zv_marker):
2790 * category.c (bset_category_table):
2791 * syntax.c (bset_syntax_table):
2792 New setter functions.
2793
6a09a33b
PE
2794 * process.h (PSET): Remove (Bug#12215).
2795 Replace all uses with calls to new setter functions.
2796 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
2797 (PROCESS_INLINE): New macro.
2798 (pset_childp): New setter function.
2799 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
2800 * process.c (PROCESS_INLINE):
2801 Define to EXTERN_INLINE, so that the corresponding functions
2802 are compiled into code.
2803 (pset_buffer, pset_command, pset_decode_coding_system)
2804 (pset_decoding_buf, pset_encode_coding_system)
2805 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
2806 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
2807 (pset_type, pset_write_queue): New setter functions.
2808
e8c17b81
PE
2809 * window.h (WSET): Remove (Bug#12215).
2810 Replace all uses with calls to new setter functions.
2811 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
2812 (WINDOW_INLINE): New macro.
2813 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
2814 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
2815 (wset_total_lines, wset_vertical_scroll_bar)
2816 (wset_window_end_pos, wset_window_end_valid)
2817 (wset_window_end_vpos): New setter functions.
2818 * window.c (WINDOW_INLINE):
2819 Define to EXTERN_INLINE, so that the corresponding functions
2820 are compiled into code.
2821 (wset_combination_limit, wset_dedicated, wset_display_table)
2822 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
2823 (wset_new_normal, wset_new_total, wset_next_buffers)
2824 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
2825 (wset_prev_buffers, wset_right_fringe_width)
2826 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
2827 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
2828 (wset_window_parameters):
2829 * xdisp.c (wset_base_line_number, wset_base_line_pos)
2830 (wset_column_number_displayed, wset_region_showing):
2831 New setter functions.
2832
3f22b86f
PE
2833 * termhooks.h (TSET): Remove (Bug#12215).
2834 Replace all uses with calls to new setter functions.
2835 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
2836 (TERMHOOKS_INLINE): New macro.
2837 (tset_charset_list, tset_selection_alist): New setter functions.
2838 * terminal.c (TERMHOOKS_INLINE):
2839 Define to EXTERN_INLINE, so that the corresponding functions
2840 are compiled into code.
2841 (tset_param_alist): New setter function.
2842
742af32f
PE
28432012-08-17 Paul Eggert <eggert@cs.ucla.edu>
2844
15dbb4d6
PE
2845 * keyboard.h (KSET): Remove (Bug#12215).
2846 Replace all uses with calls to new setter functions.
2847 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
2848 (KEYBOARD_INLINE): New macro.
2849 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
2850 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
2851 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
2852 New setter functions.
2853 * keyboard.c (KEYBOARD_INLINE):
2854 Define to EXTERN_INLINE, so that the corresponding functions
2855 are compiled into code.
2856 (kset_echo_string, kset_kbd_queue)
2857 (kset_keyboard_translate_table, kset_last_prefix_arg)
2858 (kset_last_repeatable_command, kset_local_function_key_map)
2859 (kset_overriding_terminal_local_map, kset_real_last_command)
2860 (kset_system_key_syms): New setter functions.
2861
f00af5b1
PE
2862 * frame.h (FSET): Remove (Bug#12215).
2863 Replace all uses with calls to new setter functions.
2864 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
2865 (FRAME_INLINE): New macro.
2866 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
2867 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
2868 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
2869 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
2870 (fset_param_alist, fset_root_window, fset_scroll_bars)
2871 (fset_selected_window, fset_title, fset_tool_bar_items)
2872 (fset_tool_bar_position, fset_tool_bar_window): New functions.
2873 * frame.c (FRAME_INLINE):
2874 Define to EXTERN_INLINE, so that the corresponding functions
2875 are compiled into code.
2876 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
2877
0c94c8d6
PE
2878 A few more naming-convention fixes for getters and setters.
2879 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
2880 and rename from buffer_overlays_set_before.
2881 (set_buffer_overlays_after): Move here from buffer.h, and rename
2882 from buffer_overlays_set_after.
2883 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
2884 All uses changed.
2885 (set_buffer_intervals): Rename from buffer_set_intervals.
2886 * intervals.c (set_interval_object): Move here from intervals.h,
2887 and rename from interval_set_object.
2888 (set_interval_left): Move here from intervals.h, and rename from
2889 interval_set_left.
2890 (set_interval_right): Move here from intervals.h, and rename from
2891 interval_set_right.
2892 (copy_interval_parent): Move here from intervals.h, and rename from
2893 interval_copy_parent.
2894 * intervals.h (set_interval_parent): Rename from interval_set_parent.
2895 (set_interval_plist): Rename from interval_set_plist.
2896 Return void, not Lisp_Object, since no caller uses the result.
2897 * lisp.h (string_intervals): Rename from string_get_intervals.
2898 (set_string_intervals): Rename from string_set_intervals.
2899
34dabdb7
PE
2900 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
2901 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 2902 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
2903 All uses changed. See the end of
2904 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
2905
742af32f
PE
2906 * lisp.h (CSET): Remove (Bug#12215).
2907 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
2908 (set_char_table_purpose): New functions,
2909 replacing CSET. All uses changed. For example, replace
2910 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 2911 "set_char_table_parent (char_table, parent);".
742af32f
PE
2912 The old version was confusing because it used the same name
2913 'parent' for two different things.
2914
a04e2c62
DA
29152012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
2916
2917 Functions to get and set Lisp_Object fields of buffer-local variables.
2918 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
2919 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
2920 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
2921 * data.c, eval.c, frame.c: Adjust users.
2922
383dcbf9
CY
29232012-08-17 Chong Yidong <cyd@gnu.org>
2924
2925 * xfaces.c (merge_face_vectors): If the target font specfies a
2926 font spec, make the font's attributes take precedence over
2927 directly-specified attributes.
2928 (merge_face_ref): Recognize :font.
2929
44386687
DA
29302012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
2931
2932 Do not use memcpy for copying intervals.
2933 * intervals.c (reproduce_interval): New function.
2934 (reproduce_tree, reproduce_tree_obj): Use it.
2935 (reproduce_tree_obj): Remove prototype.
2936
927c7216
PE
29372012-08-17 Paul Eggert <eggert@cs.ucla.edu>
2938
2939 * lisp.h (duration_to_sec_usec): Remove unused decl.
2940
93044f7b
AA
29412012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
2942
2943 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
2944 to an allocated instance of NSString, not to the class itself.
2945
9851e4a5
JB
29462012-08-17 Juanma Barranquero <lekktu@gmail.com>
2947
2948 * makefile.w32-in (C_CTYPE_H): New macro.
2949 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
2950 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
2951 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
2952
620f13b0
PE
29532012-08-16 Paul Eggert <eggert@cs.ucla.edu>
2954
2955 Use ASCII tests for character types.
2956 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
2957 * xfns.c, xterm.c:
2958 Don't include <ctype.h>; was not needed.
2959 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
2960 * sysdep.c, xfaces.c:
2961 Include <c-ctype.h> instead of <ctype.h>.
2962 * nsterm.m: Include <c-ctype.h>.
2963 * charset.c (read_hex):
2964 * doc.c (Fsnarf_documentation):
2965 * fileio.c (IS_DRIVE) [WINDOWSNT]:
2966 (DRIVE_LETTER) [DOS_NT]:
2967 (Ffile_name_directory, Fexpand_file_name)
2968 (Fsubstitute_in_file_name):
2969 * font.c (font_parse_xlfd, font_parse_fcname):
2970 * frame.c (x_set_font_backend):
2971 * gtkutil.c (xg_get_font):
2972 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
2973 * nsimage.m (hexchar):
2974 * nsterm.m (ns_xlfd_to_fontname):
2975 * sysdep.c (system_process_attributes):
2976 * xfaces.c (hash_string_case_insensitive):
2977 Use C-locale tests instead of locale-specific tests for character
2978 types, since we want the ASCII interpretation here, not the
2979 interpretation suitable for whatever happens to be the current locale.
2980
52162052
MR
29812012-08-16 Martin Rudalics <rudalics@gmx.at>
2982
2983 Consistently check windows for validity/liveness
2984 (Bug#11984, Bug#12025, Bug#12026).
2985 * lisp.h (CHECK_VALID_WINDOW): New macro.
2986 * window.c (decode_window): Rename to decode_live_window.
2987 (decode_valid_window, Fwindow_valid_p): New functions.
2988 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
2989 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
2990 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
2991 (Fwindow_prev_sibling, Fwindow_combination_limit)
2992 (Fset_window_combination_limit, Fwindow_use_time)
2993 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
2994 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
2995 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
2996 (Fwindow_hscroll, Fset_window_hscroll)
2997 (Fwindow_redisplay_end_trigger)
2998 (Fset_window_redisplay_end_trigger, Fwindow_edges)
2999 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
3000 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
3001 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
3002 (Fwindow_end, Fset_window_point, Fset_window_start)
3003 (Fpos_visible_in_window_p, Fwindow_line_height)
3004 (Fwindow_dedicated_p, Fset_window_dedicated_p)
3005 (Fwindow_prev_buffers, Fset_window_prev_buffers)
3006 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
3007 (Fset_window_parameter, Fwindow_display_table)
3008 (Fset_window_display_table, Fdelete_other_windows_internal)
3009 (Fset_window_buffer, Fset_window_new_total)
3010 (Fset_window_new_normal, Fdelete_window_internal)
3011 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
3012 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
3013 (Fwindow_scroll_bars): Check whether argument window is a valid or
3014 live window. Update doc-strings.
3015 (syms_of_window): New symbol Qwindow_valid_p.
3016 * keyboard.c (Fposn_at_x_y): Check whether argument
3017 frame_or_window denotes a valid window.
3018
2751c80f
DA
30192012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
3020
3021 Fix previous char table change.
3022 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
3023 * chartab.c (optimize_sub_char_table): Likewise.
3024
032a42c8
CY
30252012-08-16 Chong Yidong <cyd@gnu.org>
3026
a2d19368
CY
3027 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
3028
032a42c8
CY
3029 * xfont.c (xfont_open):
3030 * xftfont.c (xftfont_open): Set the font's max_width field.
3031
3032 * nsfont.m (nsfont_open): Similar to the Xft backend, set
3033 min_width to space_width and average_width to the average over
3034 printable ASCII characters.
3035 (ns_char_width): Code cleanup.
3036 (ns_ascii_average_width): New utility function.
3037
3038 * font.h (struct font): Update comments.
3039
a098c930
DA
30402012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
3041
032a42c8 3042 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
3043 * lisp.h (CSET): New macro.
3044 (char_table_set_extras, char_table_set_contents)
3045 (sub_char_table_set_contents): New function.
3046 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
3047 * syntax.c: Adjust users.
3048
8be3a09c
SM
30492012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
3050
3051 * eval.c (eval_sub): Bind lexical-binding.
3052 * lread.c (Qlexical_binding): Make non-static.
3053
ac4845a6
JD
30542012-08-15 Jan Djärv <jan.h.d@swipnet.se>
3055
ddee6515
JD
3056 * nsmenu.m (popupSession): Remove.
3057 (pop_down_menu): Remove endModalSession.
3058 (timeout_handler:): New method.
3059 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
3060 Call runModalForWindow. Check timer_fired when it returns.
3061 If not set, cancel timer and break out of loop.
3062 Otherwise loop again, with a new timeout.
3063
3064 * nsterm.m: Include fcntl.h if present.
3065 (fd_entry, t_readfds, inNsSelect): Remove.
3066 (select_writefds, select_valid, select_timeout, selfds)
3067 (select_mutex, apploopnr): Add.
3068 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
3069 Otherwise call kbd_buffer_store_event.
3070 (ns_send_appdefined): Remove release of fd_entry.
3071 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
3072 Increment and decrement apploopnr.
3073 (ns_select): If no file descriptors, just do a NSTimer.
3074 Otherwise copy read/write masks and start select thread (fd_handler).
3075 Start main loop and wait for application defined event.
3076 Inform select thread to stop selecting after main loop is exited.
3077 (ns_term_init): Create selfds pipe and set non-blocking.
fc0c31f8 3078 Initialize select_mutex. Start the select thread (fd_handler).
ddee6515
JD
3079 (fd_handler:): Loop forever, wait for info from the main thread
3080 to either start or stop selecting. When select returns, send
3081 and appdefined event.
3082 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
3083 If not call kbd_buffer_store_event.
3084
3085 * nsterm.h (EmacsApp): fd_handler takes id argument.
3086 (EmacsDialogPanel): Add timer_fired and timeout_handler.
3087
ac4845a6
JD
3088 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
3089
eb424fe3
EZ
30902012-08-15 Eli Zaretskii <eliz@gnu.org>
3091
3092 * region-cache.c (move_cache_gap): Update gap_len using the actual
3093 growth of the boundaries array. Do not change cache_len.
3094 (Bug#12196)
3095
4e6a86c6
DA
30962012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3097
3098 Generalize and cleanup font subsystem checks.
3099 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
3100 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
3101 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 3102
5bf192ca
DA
31032012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3104
3105 * gtkutil.c (xg_get_font): Use pango_units_to_double.
3106
f2045622
CY
31072012-08-15 Chong Yidong <cyd@gnu.org>
3108
8be3a09c
SM
3109 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
3110 When using the new font chooser, use gtk_font_chooser_get_font_desc to
3111 extract the font descriptor instead of just the font name.
3112 In that case, return a font spec instead of a string.
f2045622
CY
3113 (x_last_font_name): Move to this file from xfns.c.
3114
3115 * xfns.c (Fx_select_font): The return value can also be a font
3116 spec. Move x_last_font_name management to gtkutil.c.
3117
3118 * xfaces.c: Make font weight and style symbols non-static.
3119
7f6feb56
SM
31202012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
3121
3122 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
3123 (bug#12117).
3124
fecbd8ff
SM
31252012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
3126
3127 * alloc.c (Fgarbage_collect): Use plural form consistently.
3128
9b8d5165
EZ
31292012-08-14 Eli Zaretskii <eliz@gnu.org>
3130
3131 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
3132 iteration through the command loop. Fixes a problem whereby mouse
3133 movements are ignored until the first mouse click.
3134
f5d9e83a
PE
31352012-08-14 Paul Eggert <eggert@cs.ucla.edu>
3136
3137 Use bool, not int, for Lisp booleans.
3138 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
3139 makes Emacs a bit smaller and presumably a bit faster.
3140 * lisp.h: Include <stdbool.h>.
3141 (struct Lisp_Boolfwd, defvar_bool):
3142 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
3143 * regex.c [!emacs]: Include <stdbool.h>.
3144 (false, true): Remove; <stdbool.h> does this for us now.
3145
55802e4a
CY
31462012-08-14 Chong Yidong <cyd@gnu.org>
3147
4abcdac8
CY
3148 * character.c (Fcharacterp): Doc fix (Bug#12076).
3149
3150 * data.c (Findirect_variable): Doc fix (Bug#11040).
3151
55802e4a
CY
3152 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
3153
3154 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 3155 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 3156
8e99d072
BR
31572012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
3158
3159 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
3160 (bug#12022).
3161
08908aca
MR
31622012-08-14 Martin Rudalics <rudalics@gmx.at>
3163
3164 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
3165 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
3166 * minibuf.c (choose_minibuf_frame, read_minibuf):
3167 * w32fns.c (x_create_tip_frame):
3168 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
3169 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
3170
56120d6f
PE
31712012-08-14 Paul Eggert <eggert@cs.ucla.edu>
3172
3173 * intervals.c (offset_intervals): Remove obsolete comment.
3174
67b77c0b
AS
31752012-08-14 Andreas Schwab <schwab@linux-m68k.org>
3176
3177 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
3178
f48b82fd
GR
31792012-08-14 Gergely Risko <gergely@risko.hu>
3180
3181 * coding.c (decode_coding): Record buffer modification before
3182 disabling undo_list (Bug#11773).
3183
fd318b54
DA
31842012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3185
3186 Revert and cleanup some recent overlay changes.
3187 * buffer.h (enum overlay_type): Remove.
3188 (buffer_get_overlays, buffer_set_overlays): Likewise.
3189 (buffer_set_overlays_before, buffer_set_overlays_after):
3190 New function. Adjust users.
3191 (unchain_both): Add eassert.
3192
41a62dd9
DA
31932012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3194
3195 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
3196
5884c324
PE
31972012-08-14 Paul Eggert <eggert@cs.ucla.edu>
3198
3199 * gtkutil.c (xg_mark_data): Don't assume C99.
3200
ca06f160
JD
32012012-08-13 Jan Djärv <jan.h.d@swipnet.se>
3202
3203 * gtkutil.c (xg_frame_tb_info): New struct.
3204 (TB_INFO_KEY): New define.
3205 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
3206 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
3207 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
3208 if not present.
3209 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
fc0c31f8 3210 is up to date. Otherwise store new data.
ca06f160
JD
3211 (free_frame_tool_bar): Free xg_frame_tb_info if present.
3212
7864a3f7
DA
32132012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3214
3215 Use KSET for write access to Lisp_Object members of struct kboard.
3216 * keyboard.h (KSET): New macro.
3217 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
3218 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
3219 * xterm.c: Adjust users.
3220
4c31be61
DA
32212012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3222
3223 Use BSET for write access to Lisp_Object members of struct buffer.
3224 * buffer.h (BSET): New macro.
3225 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
3226 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
3227 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
3228 * window.c, xdisp.c, xfns.c: Adjust users.
3229
14ae4239
BT
32302012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
3231
3232 * lread.c (syms_of_lread): Initialize Vlexical_binding.
3233
32bcadb4
JD
32342012-08-11 Jan Djärv <jan.h.d@swipnet.se>
3235
3d29b2ce 3236 * nsterm.m (not_in_argv): New function.
fc0c31f8 3237 (application:openFile, application:openTempFile:):
3d29b2ce
JD
3238 (application:openFileWithoutUI:, application:openFiles:): Open file
3239 if not_in_argv returns non-zero (bug#12171).
3240
32bcadb4 3241 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
3242 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
3243 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
3244 (xg_get_font_name): Use those functions/macros here.
3245 Reported by Frans Oilinki <moilinki@gmail.com>.
3246
9ff9402d 32472012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
3248
3249 * unexmacosx.c (copy_data_segment): Copy initialized data in
3250 statically linked libraries from input file rather than memory.
3251
db74a5fc
YM
3252 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
3253 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
3254 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
3255
25e65510
GM
32562012-08-10 Glenn Morris <rgm@gnu.org>
3257
3258 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
3259 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
3260
7961135c
DA
32612012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3262
3263 Fix last change to allow compilation with low optimization levels.
3264 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
3265 Reported by Jan Djärv <jan.h.d@swipnet.se>.
3266
42b3a444
DA
32672012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3268
3269 Use common inline syntax in intervals.h.
3270 * intervals.h (INTERVALS_INLINE): New macro.
3271 Change all users from LISP_INLINE.
3272
9fb0c957
DA
32732012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3274
3275 Define Qnone once for all platforms.
3276 * frame.c (Qnone): Define here.
3277 (syms_of_frame): DEFSYM it.
3278 * lisp.h (Qnone): New declaration.
3279 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
3280 * xfns.c: Remove duplication. Adjust users.
3281
65e8ee52
DA
32822012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
3283
3284 Remove unused macros from intervals.h.
3285 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
3286 * intervals.c: Adjust comment.
3287
9b855fd6
EZ
32882012-08-10 Eli Zaretskii <eliz@gnu.org>
3289
3290 * w32fns.c <w32_unicode_gui>: New static variable.
3291 (globals_of_w32fns): Initialize it according to os_subtype.
3292 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
3293 testing os_subtype.
3294
39cb9e56 32952012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
3296 Eli Zaretskii <eliz@gnu.org>
3297
3298 Fix bug #10299 with Unicode characters sent by customized
3299 keyboards created by MSKLC.
3300 * w32fns.c (INIT_WINDOW_CLASS): New macro.
3301 (w32_init_class): Use it to initialize the Emacs class with either
3302 ANSI or Unicode API calls.
3303 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
3304 later.
3305 (w32_wnd_proc): If the character code sent by WM_CHAR or
3306 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
3307 original message. Call DefWindowProcW on NT and later.
3308
9374581a
GM
33092012-08-10 Glenn Morris <rgm@gnu.org>
3310
4b94e8cf
GM
3311 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
3312
9374581a
GM
3313 * lisp.h (DIRECTORY_SEP): Let configure set it.
3314
a2752828
DA
33152012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
3316
3317 Use TSET for write access to Lisp_Object slots of struct terminal.
3318 * termhooks.h (TSET): New macro.
3319 * coding.c, terminal.c, xselect.c: Adjust users.
3320
cc92c454
SM
33212012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
3322
3323 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
3324 the failing expression, include them in the error message.
3325 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
3326 * lisp.h (internal_condition_case_n): Update declaration.
3327
4cb3e6b3
DA
33282012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3329
3330 Inline functions to examine and change buffer overlays.
3331 * buffer.c (unchain_both): New function.
3332 * buffer.h (buffer_get_overlays, buffer_set_overlays):
3333 (buffer_has_overlays): New function.
3334 (enum overlay_type): New enum.
3335 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
3336 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
3337
8707c1e5
DA
33382012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3339
3340 Inline functions to examine and change buffer intervals.
3341 * alloc.c (mark_interval_tree): Remove.
3342 (MARK_INTERVAL_TREE): Simplify.
3343 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
3344 * intervals.c (buffer_balance_intervals): New function.
3345 (graft_intervals_into_buffer): Adjust indentation.
3346 (set_intervals_multibyte): Simplify.
3347 * buffer.h (BUF_INTERVALS): Remove.
3348 (buffer_get_intervals, buffer_set_intervals): New function.
3349 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
3350 * intervals.c, textprop.c: Adjust users.
3351
ad8c997f
DA
33522012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3353
3354 Inline functions to examine and change string intervals.
3355 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
3356 (string_get_intervals, string_set_intervals): New function.
3357 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
3358 * lread.c, print.c, textprop.c: Adjust users.
3359
32ac3a6b
GM
33602012-08-08 Glenn Morris <rgm@gnu.org>
3361
3362 * lisp.mk (lisp): Remove language/persian.elc.
3363
77c7bcb1
DA
33642012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3365
3366 Cleanup intervals.
3367 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
3368 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
3369 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
3370 Adjust comment. Move under #if 0.
77c7bcb1
DA
3371 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
3372 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
3373
9c08a8d4
DA
33742012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3375
3376 Check total length of intervals with eassert.
3377 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
3378 * intervals.c: Change all users to eassert.
3379
26d16b35
EZ
33802012-08-07 Eli Zaretskii <eliz@gnu.org>
3381
14ae4239
BT
3382 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
3383 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
3384 INTERNAL_FIELD in Lisp_Cons.
3385
c644523b
DA
33862012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3387
3388 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
3389 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
3390 name since all xname users are fixed long time ago. Do not
3391 use INTERNAL_FIELD.
3392 (set_symbol_name, set_symbol_function, set_symbol_plist):
3393 (set_symbol_next, set_overlay_plist): New function.
3394 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
3395 (struct Lisp_Overlay): Likewise.
3396 (CVAR, MVAR, SVAR): Remove.
3397 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
3398 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
3399 * xterm.c: Adjust users.
3400 * .gdbinit: Change to use name field of struct Lisp_Symbol
3401 where appropriate.
3402
6a3d20cc
DA
34032012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3404
3405 Basic functions to set Lisp_Object and pointer slots of intervals.
3406 * intervals.h (interval_set_parent, interval_set_object):
3407 (interval_set_left, interval_set_right, interval_set_plist):
3408 (interval_copy_parent): New function.
3409 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
3410 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
3411 Adjust indentation.
6a3d20cc
DA
3412 (INTERVAL_SIZE): Remove. Adjust users.
3413 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
3414
4d2b044c
DA
34152012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3416
3417 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
3418 * process.h (PGET): Remove.
3419 (struct Lisp_Process): Do not use INTERNAL_FIELD.
3420 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
3421
d3d50620
DA
34222012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3423
3424 Drop WGET and revert read access to Lisp_Objects slots of struct window.
3425 * window.h (WGET): Remove.
3426 (struct window): Do not use INTERNAL_FIELD.
3427 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
3428 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
3429 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
3430 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
3431 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
3432 Adjust users.
3433
d10a51dc
CY
34342012-08-07 Chong Yidong <cyd@gnu.org>
3435
3436 * window.c (Fwindow_edges, Fwindow_pixel_edges)
3437 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
3438 (Fdelete_window_internal): Signal an error if the window is not on
3439 a live frame (Bug#12025).
3440
e69b0960
DA
34412012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3442
3443 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
3444 * frame.h (FGET): Remove.
3445 (struct frame): Do not use INTERNAL_FIELD.
3446 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
3447 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
3448 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
3449 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
3450
25a20a3a
JB
34512012-08-06 Juanma Barranquero <lekktu@gmail.com>
3452
3453 * w32.c: Silence compiler warnings.
3454 (map_w32_filename): Remove unused variable `is_fat'.
3455 (chase_symlinks): Add parentheses around expression.
3456
1c6f11f4
GM
34572012-08-06 Glenn Morris <rgm@gnu.org>
3458
1db4583a
GM
3459 * sysdep.c: Respect BROKEN_GETWD.
3460
1c6f11f4
GM
3461 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
3462 Let configure handle it.
3463 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
3464
2b90362b
DA
34652012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3466
3467 Use GCALIGNMENT where appropriate.
3468 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
3469 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
3470 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
3471
5f50daf2
EZ
34722012-08-06 Eli Zaretskii <eliz@gnu.org>
3473
14ae4239
BT
3474 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
3475 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 3476
cbcc7007
SM
34772012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
3478
3479 * buffer.h (struct buffer): Revert `indirections' to a simple int;
3480 that should be sufficient for everyone.
3481
4d365fa4
JD
34822012-08-06 Jan Djärv <jan.h.d@swipnet.se>
3483
3484 * keyboard.c (timer_check_2): Add break so timer_check returns next
3485 timeout.
3486
dd86bd82
DA
34872012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3488
3489 Fix Windows build errors introduced after converting to WGET and WSET.
3490 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
3491 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
3492
054e1668
JD
34932012-08-06 Jan Djärv <jan.h.d@swipnet.se>
3494
3495 * nsterm.m (ns_frame_rehighlight): Use FSET.
3496
3497 * nsmenu.m (ns_update_menubar): Use FSET.
3498
21238f11
DA
34992012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3500
3501 Separate read and write access to Lisp_Object slots of Lisp_Process.
3502 * process.h (PGET, PSET): New macros similar to AREF and ASET.
3503 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
3504
077288cf
DA
35052012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3506
3507 Separate read and write access to Lisp_Object slots of struct window.
3508 * window.h (WGET, WSET): New macros similar to AREF and ASET.
3509 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
3510 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
3511 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
3512 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
3513 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
3514 Adjust users.
3515
71688bd7
DA
35162012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3517
3518 Fix Windows build errors introduced after converting to FGET and FSET.
3519 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
3520 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
3521 (w32_judge_scroll_bars): Change to use FSET.
3522 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
3523
f99bac93
DA
35242012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3525
3526 Fix replacement typo.
3527 * window.c (replace_window): Set root_window instead of
3528 selected_window. This fixes a total window subsystem
3529 malfunction reported by Bastien Guerry <bzg@gnu.org>.
3530
8c2a0f2d
GM
35312012-08-06 Glenn Morris <rgm@gnu.org>
3532
3533 * lisp.mk (lisp): Add language/persian.elc.
3534
edd74c35
DA
35352012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3536
3537 Separate read and write access to Lisp_Object slots of struct frame.
3538 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
3539 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
3540 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
3541 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
3542 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
3543
8671676c
AS
35442012-08-05 Andreas Schwab <schwab@linux-m68k.org>
3545
3546 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
3547
663e2b3f
DA
35482012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
3549
3550 Generalize common compile-time constants.
3551 * lisp.h (header_size, bool_header_size, word_size): Now here.
3552 (struct Lisp_Vector): Add comment.
3553 (struct Lisp_Bool_Vector): Move up to define handy constants.
3554 (VECSIZE, PSEUDOVECSIZE): Simplify.
3555 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
3556 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
3557 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
3558 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
3559 * xfont.c, xmenu.c: Use word_size where appropriate.
3560
d32e47af
LM
35612012-08-05 Lawrence Mitchell <wence@gmx.li>
3562
3563 * search.c (Freplace_match): Treat \? in the replacement text
3564 literally (Bug#8161).
3565
e5d9c0d1
CY
35662012-08-05 Chong Yidong <cyd@gnu.org>
3567
3568 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
3569 * frame.c (Vdelete_frame_functions):
3570 * emacs.c (Vkill_emacs_hook): Doc fix.
3571
8da0576b
EZ
35722012-08-04 Eli Zaretskii <eliz@gnu.org>
3573
3574 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
3575 --with-x-toolkit=no builds.
3576 Reported by Carsten Mattner <carstenmattner@gmail.com>.
3577
02676e5d
CY
35782012-08-04 Chong Yidong <cyd@gnu.org>
3579
3580 * syntax.c (Fmodify_syntax_entry): Doc fix.
3581
97147da9
EZ
35822012-08-04 Eli Zaretskii <eliz@gnu.org>
3583
76151e2c
EZ
3584 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
3585 * w32.c (init_environment): Change the default values of many
3586 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
3587 them into environment when they were not already defined.
3588 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 3589 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
3590 (check_windows_init_file): Now external, not static.
3591 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
3592 called when Vload_path is already set up.
3593
3594 * w32.h (check_windows_init_file): Add prototype.
3595
3596 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
3597 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
3598 compatibility with Posix platforms.
3599 (main): Move the call to check_windows_init_file to here from
3600 w32.c.
3601 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
3602 any, in the DEFALT argument into the root of the Emacs build or
3603 installation tree, as appropriate.
3604
3605 * callproc.c (init_callproc_1): Call decode_env_path instead of
3606 doing its equivalent by hand.
3607 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
3608 the code that sets Vexec_path run on MS-Windows.
3609
3610 * lread.c (init_lread): Add comments to #ifdef's.
3611
97147da9
EZ
3612 * msdos.c (dos_set_window_size, IT_update_begin)
3613 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
3614 instead of direct references.
3615
185ee146
PE
36162012-08-04 Paul Eggert <eggert@cs.ucla.edu>
3617
3618 Export DEFAULT_REHASH_* to GDB.
3619 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
3620 Now constants, not macros.
3621
8834c57a
PE
36222012-08-03 Paul Eggert <eggert@cs.ucla.edu>
3623
98c6f1e3
PE
3624 Remove unnecessary casts involving pointers.
3625 These casts are no longer needed now that we assume C89 or later,
3626 since they involve casting to or from void *.
3627 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
3628 (make_pure_float, make_pure_vector):
3629 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
3630 * macros.c (Fstart_kbd_macro):
3631 * menu.c (find_and_return_menu_selection):
3632 * minibuf.c (read_minibuf_noninteractive):
3633 * sysdep.c (closedir):
3634 * xdisp.c (x_produce_glyphs):
3635 * xfaces.c (compare_fonts_by_sort_order):
3636 * xfns.c (x_real_positions, select_visual):
3637 * xselect.c (x_stop_queuing_selection_requests)
3638 (x_get_window_property, x_get_window_property_as_lisp_data):
3639 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
3640 Remove unnecessary pointer casts.
3641 * alloc.c (record_xmalloc): New function.
3642 * lisp.h (record_xmalloc): New decl.
3643 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
3644 more like a function. This is because the pointer cast is not
3645 needed. All uses changed.
3646 * print.c (print_string, print_error_message): Avoid length recalc.
3647
8834c57a
PE
3648 Improve fix for macroexp crash with debugging (Bug#12118).
3649 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
3650 ARRAY_MARK_FLAG when checking subscripts, because ASET is
3651 not supposed to be invoked from the garbage collector.
3652 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
3653 (gc_aset): New function, which is like ASET but can be
3654 used in the garbage collector.
3655 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
3656 (set_hash_index): Use it instead of ASET.
3657
6dad7178
EZ
36582012-08-03 Eli Zaretskii <eliz@gnu.org>
3659
3660 Support symlinks on latest versions of MS-Windows.
3661 * w32.c: Include winioctl.h and aclapi.h.
3662 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
3663 (revert_to_self): Forward declarations of static functions.
3664 <static BOOL g_b_init_get_security_info>:
3665 <g_b_init_create_symbolic_link>: New static flags.
3666 (globals_of_w32): Initialize them to zero.
3667 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
3668 (map_w32_filename): Improve commentary. Simplify switch.
3669 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
3670 headers (most versions of MinGW w32api don't).
3671 (get_security_info, create_symbolic_link)
3672 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
3673 New functions.
3674 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
3675 in the argument file name.
3676 (sys_access): Call unc_volume_file_attributes only if
3677 GetFileAttributes fails with network-related error codes.
3678 (sys_rename): Diagnose renaming of a symlink when the user doesn't
3679 have the required privileges.
14ae4239 3680 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
3681 get_file_security_desc.
3682 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
3683 with addition of handling of symlinks and support for 'lstat'.
3684 If possible, get file's attributes and security information by
6dad7178
EZ
3685 handle, not by name. Produce S_IFLNK bit for symlinks, when
3686 called from 'lstat'.
3687 (stat, lstat): New functions, call 'stat_worker'.
3688 (symlink, readlink, careadlinkat): Rewritten to create and resolve
3689 symlinks when the underlying filesystem supports them.
3690
f162bcc3
PE
36912012-08-02 Paul Eggert <eggert@cs.ucla.edu>
3692
79ea6c20
PE
3693 Fix macroexp crash on Windows with debugging (Bug#12118).
3694 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
3695 checking subscripts; problem introduced with the recent
3696 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
3697 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
3698 since it's used in non-static inline functions now.
3699
c0ce93fd
PE
3700 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
3701 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 3702
f162bcc3
PE
3703 Use C99-style 'extern inline' if available.
3704 * buffer.h (BUFFER_INLINE):
3705 * category.h (CATEGORY_INLINE):
3706 * character.h (CHARACTER_INLINE):
3707 * charset.h (CHARSET_INLINE):
3708 * composite.h (COMPOSITE_INLINE):
3709 * dispextern.h (DISPEXTERN_INLINE):
3710 * lisp.h (LISP_INLINE):
3711 * systime.h (SYSTIME_INLINE):
3712 New macro, replacing 'static inline' in this header.
3713 * buffer.h, category.h, character.h, charset.h, composite.h:
3714 * dispextern.h, lisp.h, systime.h:
3715 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
3716 * alloc.c (LISP_INLINE):
3717 * buffer.c (BUFFER_INLINE):
3718 * category.c (CATEGORY_INLINE):
3719 * character.c (CHARACTER_INLINE):
3720 * charset.c (CHARSET_INLINE):
3721 * composite.c (COMPOSITE_INLINE):
3722 * dispnew.c (DISPEXTERN_INLINE):
3723 * sysdep.c (SYSTIME_INLINE):
3724 Define to EXTERN_INLINE, so that the corresponding functions
3725 are compiled into code.
3726 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
3727 (INLINE_HEADER_END): New macros.
3728 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
3729 since it's used in non-static inline functions now.
a8333d03 3730 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 3731
837b365b
GM
37322012-08-02 Glenn Morris <rgm@gnu.org>
3733
d66b744d
GM
3734 * s/: Remove empty directory.
3735
837b365b
GM
3736 * s/ms-w32.h: Move to ../nt/inc.
3737 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
3738 Update for new ms-w32.h location.
3739
13294f95
PE
37402012-08-02 Paul Eggert <eggert@cs.ucla.edu>
3741
3742 Port to Solaris 8.
3743 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
3744
90df0db3
GM
37452012-08-02 Glenn Morris <rgm@gnu.org>
3746
3747 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
3748 hard-coding the path separator.
3749
4939150c
PE
37502012-08-01 Paul Eggert <eggert@cs.ucla.edu>
3751
3752 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
3753 This how ASET and AREF are supposed to work, and makes
3754 it easier to think about future improvements. See
3755 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
3756 * charset.h (set_charset_attr): New function.
3757 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
3758 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
3759 (aref_addr): New function. All uses of &AREF(...) changed.
3760 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
3761 (set_hash_index): New functions. All lvalue-style uses of
3762 HASH_KEY etc. changed.
3763 * keyboard.c (set_prop): New function. All lvalue-style uses
3764 of PROP changed.
3765
947b2afd
AA
37662012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
3767
3768 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
3769 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
3770 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
3771 * nsfns.m (ns_set_name_as_filename): Likewise.
3772 * nsmenu.m (ns_update_menubar): Likewise.
3773 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
3774
4f5d0325
EZ
37752012-08-01 Eli Zaretskii <eliz@gnu.org>
3776
2008beae
EZ
3777 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
3778 Adapt to latest changes in field names of the corresponding Lisp
288479f6 3779 objects.
2008beae 3780
4f5d0325
EZ
3781 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
3782
fe3cc771
GM
37832012-08-01 Glenn Morris <rgm@gnu.org>
3784
3785 * s/msdos.h: Remove file.
3786 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
3787 * Makefile.in (S_FILE): Remove.
3788 (config_h): Remove S_FILE.
3789
c90acc54
JB
37902012-08-01 Juanma Barranquero <lekktu@gmail.com>
3791
3792 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
3793 Remove; moved to nt/config.nt.
3794
d8a05828
DA
37952012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
3796
3797 Use INTERNAL_FIELD for conses and overlays.
3798 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
3799 Remove obsolete comment.
3800 (MVAR): New macro.
3801 (struct Lisp_Overlay): Use INTERNAL_FIELD.
3802 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
3803
8271d590
DA
38042012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
3805
3806 Use INTERNAL_FIELD for symbols.
3807 * lisp.h (SVAR): New macro. Adjust users.
3808 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
3809 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
3810
3193acd2
DA
38112012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
3812
3813 Use INTERNAL_FIELD for processes.
3814 * process.h (PVAR): New macro. Adjust style.
3815 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
3816 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
3817
3a45383a
DA
38182012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
3819
3820 Use INTERNAL_FIELD for windows.
3821 * window.h (WVAR): New macro.
3822 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
3823 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
3824 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
3825 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
3826 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
3827 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
3828
c1dbc63c
PE
38292012-08-01 Paul Eggert <eggert@cs.ucla.edu>
3830
3831 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
3832
5c0c0e8a
GM
38332012-08-01 Glenn Morris <rgm@gnu.org>
3834
3835 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
3836 Move to configure.ac.
3837
552a99b4
JB
38382012-08-01 Juanma Barranquero <lekktu@gmail.com>
3839
3840 * makefile.w32-in (CONFIG_H): Update dependencies.
3841 (CONF_POST_H): New macro.
3842
3843 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
3844
8d8e2dfe
GM
38452012-07-31 Glenn Morris <rgm@gnu.org>
3846
bc96620a
GM
3847 * Makefile.in (S_FILE): No longer set by configure.
3848
476b1b2d
GM
3849 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
3850 is available.
3851 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
3852
b2c7a106
GM
3853 * process.h (NULL_DEVICE):
3854 * emacs.c (SEPCHAR):
3855 * editfns.c (USER_FULL_NAME): Let configure set them.
3856
d53d062a
GM
3857 * s/README, s/template.h: Remove files.
3858
4515017f
GM
3859 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
3860
8d8e2dfe
GM
3861 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
3862 Move to configure.ac.
3863
5b20b3cc
EZ
38642012-07-31 Eli Zaretskii <eliz@gnu.org>
3865
1e0afd9a
EZ
3866 * .gdbinit (xframe): Adapt to introduction of FVAR and the
3867 resulting renaming of 'struct frame' members.
3868
5b20b3cc
EZ
3869 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
3870
3871 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
3872 after introduction of FVAR.
3873
f1310128
JD
38742012-07-31 Jan Djärv <jan.h.d@swipnet.se>
3875
79e721e0
JD
3876 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
3877
3878 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
3879 instead of compositeToPoint.
3880 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
3881
8d7c7eed 3882 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 3883
e34f7f79
DA
38842012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
3885
3886 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
3887 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 3888 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
3889 (BVAR): Change to use INTERNAL_FIELD.
3890 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
3891 (KVAR): Change to use INTERNAL_FIELD.
3892 * frame.h (FVAR): New macro.
3893 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
3894 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
3895 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
3896 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
3897 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
3898
c09bfb2f
DA
38992012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
3900
3901 Miscellaneous fixes for non-default X toolkits.
3902 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
3903 * xterm.c (x_frame_of_widget): Remove redundant prototype.
3904 Move under #ifdef USE_LUCID.
3905 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
3906 definition and usage to avoid warnings.
3907
14c114ae
JD
39082012-07-31 Jan Djärv <jan.h.d@swipnet.se>
3909
3910 * nsterm.m (openFiles): Fix previous checkin.
3911
3bd21e82
PE
39122012-07-31 Paul Eggert <eggert@cs.ucla.edu>
3913
3914 * indent.c (compute_motion): Remove unused local.
3915
c1529ded
GM
39162012-07-31 Glenn Morris <rgm@gnu.org>
3917
400d5621
GM
3918 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
3919
268e2432
GM
3920 * conf_post.h [USG5_4]:
3921 Move remaining contents of s/usg5-4-common.h here.
3922 * s/usg5-4-common.h: Remove file.
3923
7552f3ee
GM
3924 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
3925 * s/irix6-5.h: Remove file.
3926
6a381852
GM
3927 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
3928 * s/darwin.h: Remove file.
3929
c1529ded
GM
3930 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
3931 * s/hpux10-20.h: Remove file, which is now empty.
3932
b429a4ee
GM
39332012-07-30 Glenn Morris <rgm@gnu.org>
3934
3935 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
3936 * Makefile.in (config_h): Add conf_post.h.
3937 * makefile.w32-in (CONFIG_H): Add conf_post.h.
3938
adff3182
JD
39392012-07-30 Jan Djärv <jan.h.d@swipnet.se>
3940
3941 * nsterm.m (ns_do_open_file): New variable.
b9031d69 3942 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
3943 (openFile, openTempFile, openFileWithoutUI, openFiles):
3944 Open files only if ns_do_open_file.
adff3182 3945
c32af1e4
PE
39462012-07-30 Paul Eggert <eggert@cs.ucla.edu>
3947
7393bcbb
PE
3948 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
3949 This no-op macro hasn't been needed for many years.
3950 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
3951
c32af1e4
PE
3952 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
3953 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
3954 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
3955 gdb_make_enums_visible.
3956 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
3957 (DIRECTORY_SEP): Now a constant, not a macro.
3958
302fc036
EZ
39592012-07-30 Eli Zaretskii <eliz@gnu.org>
3960
3961 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
3962 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
3963
3964 * w32term.c <w32_keyboard_codepage>: Renamed from
3965 keyboard_codepage and now external. All users changed.
3966
3967 * w32term.h: Add declaration of w32_keyboard_codepage.
3968
3969 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
3970 the codepage to translate keys to Unicode. If this argument is
3971 -1, use the value returned by GetConsoleCP. All callers changed.
3972
88fb40b4
PE
39732012-07-30 Paul Eggert <eggert@cs.ucla.edu>
3974
0aee6912
PE
3975 Update .PHONY listings in makefiles.
3976 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
3977 bootstrap-clean, distclean, maintainer-clean, versioclean,
3978 extraclean, frc.
3979
88fb40b4
PE
3980 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
3981 This is a bit clearer. Fix some commentary typos.
3982
0a763bd1
GM
39832012-07-30 Glenn Morris <rgm@gnu.org>
3984
32bac6d6
GM
3985 * s/netbsd.h: Let configure include signal.h if needed.
3986 Remove file, which is now empty.
3987
b65e7c46
GM
3988 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
3989 Let configure set them.
3990 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
3991 No more need to undefine.
0a763bd1 3992
169304bd
AS
39932012-07-30 Andreas Schwab <schwab@linux-m68k.org>
3994
3995 * keymap.c (Fkey_description): Don't remove 0x80 bit from
3996 non-single-byte char when adding meta modifier. (Bug#12090)
3997
6cd7a139
DA
39982012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
3999
4000 Convert safe_call to use variable number of arguments.
4001 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
4002 (safe_call2): Fix comment.
4003 * lisp.h (safe_call): Adjust prototype.
4004 * coding.c (encode_coding_object): Change to use safe_call2.
4005 * xfaces.c (merge_face_heights): Change to use safe_call1.
4006
d34d6ffc
GM
40072012-07-30 Glenn Morris <rgm@gnu.org>
4008
7b8a48e4 4009 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 4010 does that unconditionally. Remove file, which is now empty.
7b8a48e4 4011
d34d6ffc
GM
4012 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
4013 Remove empty files.
4014
03a660a6
PE
40152012-07-30 Paul Eggert <eggert@cs.ucla.edu>
4016
4017 Export to GDB most of lisp.h's remaining object-like macros.
4018 * lisp.h (min, max): Move earlier, because they're used earlier now.
4019 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
4020 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
4021 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
4022 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
4023 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
4024 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
4025 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
4026 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
4027 Now constants, for GDB. They need not be macros.
4028 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
4029 Now constants, for GDB, as well as macros, for static initializers.
4030 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
4031 Move to after the definition of struct Lisp_Char_Table,
4032 since the former now needs that type defined.
4033 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
4034 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
4035 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
4036 New enums, for gdb_make_enums_visible.
4037 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 4038 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
4039 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
4040 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
4041 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
4042 enum maxargs, enum MAX_ALLOCA.
4043 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
4044 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
4045 no longer needed, now that they are done in lisp.h.
4046
e499d0ee
DA
40472012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4048
4049 Cleanup string bytes checking.
4050 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
4051 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
4052 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
4053 (check_sblock, compact_small_strings): Simplify.
4054
d5040d2d
PE
40552012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4056
4057 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
4058 These macros are confusing and no longer need to be defined, as
4059 the enum values now suffice. All uses replaced with definiens.
4060 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
4061
7f259ae6
JB
40622012-07-29 Juanma Barranquero <lekktu@gmail.com>
4063
4064 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
4065 ($(BLD)/w32console.$(O)): Update dependencies.
4066
7e63e0c3
DA
40672012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4068
4069 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
4070 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
4071 time. Adjust users.
4072 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
4073
ffd817eb
JD
40742012-07-29 Jan Djärv <jan.h.d@swipnet.se>
4075
4076 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
4077 setting sitelisp (Bug#12010).
4078
417a7a0e
EZ
40792012-07-29 Eli Zaretskii <eliz@gnu.org>
4080
14ae4239 4081 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
4082
4083 * w32heap.c (cache_system_info):
4084 * w32.c (sys_rename):
4085 * w32proc.c (find_child_console, sys_kill): All users changed.
4086
387d4d92
PE
40872012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4088
4089 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
4090
55a6cca6
EZ
40912012-07-29 Eli Zaretskii <eliz@gnu.org>
4092
4093 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
4094
dbcf001c
DA
40952012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4096
4097 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
4098 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
4099 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 4100
e2688e4a
DA
41012012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4102
4103 Generalize marker debugging code under MARKER_DEBUG and use eassert.
4104 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
4105 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
4106 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
4107 (replace_range, replace_range_2, del_range_2): Change to eassert.
4108 * marker.c (byte_char_debug_check): Adjust style.
4109
b46a6a83
PE
41102012-07-29 Paul Eggert <eggert@cs.ucla.edu>
4111
4112 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
4113 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
4114 long-ago-commented-out code that talks about "WIN32".
4115 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
4116 All uses changed.
4117
e32a5799
PE
41182012-07-28 Paul Eggert <eggert@cs.ucla.edu>
4119
4120 Use Gnulib stdalign module (Bug#9772, Bug#9960).
4121 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
4122 Simplify by using alignof.
4123 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
4124 * lisp.h: Include <stdalign.h>.
4125 (GCALIGNMENT): New macro and constant.
4126 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
4127 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
4128 (stdalign): New macro, if not already defined.
4129
df81cd29
EZ
41302012-07-28 Eli Zaretskii <eliz@gnu.org>
4131
01bd1b0d
EZ
4132 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
4133 * w32inevt.c: Include w32inevt.h.
4134 (w32_read_console_input): New inline function, calls either
4135 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
4136 w32_console_unicode_input.
4137 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
4138 (w32_kbd_patch_key, key_event): Use the codepage returned by
4139 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
4140 (key_event): use uChar.UnicodeChar only if
4141 w32_console_unicode_input is non-zero.
4142
4143 * w32console.c: Include w32heap.h.
4144 <w32_console_unicode_input>: New global variable.
4145 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
4146 family of Windows, zero otherwise.
4147
4148 * w32inevt.h: Declare w32_console_unicode_input.
4149
df81cd29
EZ
4150 * xdisp.c (init_iterator): Don't reference tip_frame in a build
4151 --without-x. (Bug#11742)
4152
c20fdd9e
PE
41532012-07-27 Paul Eggert <eggert@cs.ucla.edu>
4154
4155 Adjust GDB to reflect pvec_type changes (Bug#12036).
4156 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
4157 2012-07-04 changes to pseudovector representation.
4158 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 4159
32770973 41602012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
4161
4162 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
4163 bus address.
4164 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
4165
3438fe21
EZ
41662012-07-27 Eli Zaretskii <eliz@gnu.org>
4167
bcfbc9de
EZ
4168 * alloc.c (listn): Fix the order the arguments are consed onto the
4169 list.
4170
3438fe21
EZ
4171 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
4172 enumeration constants, as PURE and HEAP are too general, and clash
4173 with other headers and sources, such as gmalloc.c and the
4174 MS-Windows system headers. All users changed.
4175
eeaea515
DA
41762012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4177
4178 Revert last save_excursion_save and save_excursion_restore changes.
4179 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
4180 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
4181
073c88c2
DA
41822012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4183
4184 Fix recently-introduced typos in Windows port.
4185 Reported by Martin Rudalics <rudalics@gmx.at>.
4186 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 4187 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 4188
4706125e
PE
41892012-07-27 Paul Eggert <eggert@cs.ucla.edu>
4190
4191 Improve GDB symbol export (Bug#12036).
4192 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
4193 arms of an 'if', not using conditional expressions; otherwise GDB
4194 complains about the types in the unevaluated arm when the argument
4195 is an integer literal.
4196 (xgetint): Simplify expression.
4197 * alloc.c (gdb_make_enums_visible): New constant. This ports to
4198 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
4199 Zaretskii in <http://bugs.gnu.org/12036#13>.
4200 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
4201 needed now that we have gdb_make_enums_visible.
4202 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
4203 (enum enum_USE_LSB_TAG):
4204 New enum types, packaging up enums that need to be exported to GDB.
4205
694b6c97
DA
42062012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4207
4208 Utility function to make a list from specified amount of objects.
4209 * lisp.h (enum constype): New datatype.
4210 (listn): New prototype.
4211 * alloc.c (listn): New function.
4212 (Fmemory_use_count, syms_of_alloc): Use it.
4213 * buffer.c (syms_of_buffer): Likewise.
4214 * callint.c (syms_of_callint): Likewise.
4215 * charset.c (define_charset_internal): Likewise.
4216 * coding.c (syms_of_coding): Likewise.
4217 * keymap.c (syms_of_keymap): Likewise.
4218 * search.c (syms_of_search): Likewise.
4219 * syntax.c (syms_of_syntax): Likewise.
4220 * w32.c (init_environment): Likewise.
4221 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
4222 * xdisp.c (syms_of_xdisp): Likewise.
4223 * xfns.c (syms_of_xfns): Likewise.
4224
6195f384
DA
42252012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
4226
4227 Fast save_excursion_save and save_excursion_restore.
4228 * lisp.h (struct Lisp_Excursion): New data type.
4229 (PVEC_EXCURSION): New pseudovector type.
4230 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
4231 to deal with it. Adjust comments.
4232 (init_marker, attach_marker): New prototype.
4233 (unchain_marker): Adjust prototype.
4234 * marker.c (attach_marker): Change to global.
4235 (init_marker): New function.
4236 * alloc.c (Fmake_marker, build_marker): Use it.
4237 (build_marker): More easserts.
4238 (mark_object): Handle struct Lisp_Excursion.
4239 * editfns.c (save_excursion_save, save_excursion_restore):
4240 Reimplement to use struct Lisp_Excursion. Add comments.
4241
5eceb8fb
PE
42422012-07-26 Paul Eggert <eggert@cs.ucla.edu>
4243
4244 Fix export of symbols to GDB (Bug#12036).
4245 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
4246 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
4247 emacs.c, as this is a more-suitable home. Had this been done earlier
4248 the fix for 12036 would have avoided some of the problems noted in
4249 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
4250 would have been more obvious.
562157c8
PE
4251 * emacs.c: Do not include <verify.h>; no longer needed.
4252 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
4253 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
4254 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
4255 Remove; now done in lisp.h.
4256 * lisp.h (PUBLISH_TO_GDB): New macro.
4257 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
4258 (DATA_SEG_BITS): Use it.
4259 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
4260 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
4261 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
4262 not be usable in #if. This simplifies things.
4263
d6749401
JB
42642012-07-26 Juanma Barranquero <lekktu@gmail.com>
4265
4266 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
4267
1781b9e9
PE
42682012-07-26 Paul Eggert <eggert@cs.ucla.edu>
4269
d89518db 4270 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
4271 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
4272 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
4273 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
4274 Adjust to changes in lisp.h and emacs.c, by using
4275 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
4276 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
4277 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
4278 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
4279 instead of gdb_valbits.
4280 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
4281 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
4282 instead of gdb_array_mark_flag.
4283 (xboolvector): Get size from $->size, not $->header.size.
4284 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
4285 (xreload, hook-run, hookpost-run): Remove.
4286 * emacs.c: Include <verify.h>.
4287 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
4288 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
4289 Remove.
4290 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
4291 (gdb_USE_LSB_TAG): New enum constants.
4292 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
4293 Also define these as enum constants, so they're visible to GDB.
4294 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
4295 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
4296 as constants, so they're visible to GDB.
4297 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
4298 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
4299 Now enum constants, not macros, so they're visible to GDB.
4300 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
4301 more convenient now. All uses changed.
4302 (VALMASK) [USE_LSB_TAG]: Also define in this case.
4303 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
4304
3628596a
DA
43052012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
4306
4307 Explicitly free restriction data that are not needed anymore.
4308 * editfns.c (save_restriction_restore): Free restriction data.
4309
7abaf5cc
SM
43102012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
4311
4312 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
4313 add argument, tune behavior, and adjust all callers.
4314
71f88e00
PE
43152012-07-25 Paul Eggert <eggert@cs.ucla.edu>
4316
4317 Use typedef for EMACS_INT, EMACS_UINT.
4318 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
4319 than macros. This simplifies debugging in the usual case, since
4320 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
4321 and it allows expressions involving EMACS_INT casts.
4322 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
4323
57ec3034
JD
43242012-07-25 Jan Djärv <jan.h.d@swipnet.se>
4325
4326 * nsterm.m (ns_read_socket): Return early if there is a modal
4327 window (Bug#12043).
4328
8137e7b3
MR
43292012-07-25 Martin Rudalics <rudalics@gmx.at>
4330
4331 * frame.c (Fredirect_frame_focus): In doc-string don't mention
4332 that FOCUS-FRAME can be omitted.
4333
04e9897c
DA
43342012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
4335
4336 Adjust buffer text indirection counters at the end of Fkill_buffer.
4337 * buffer.c (Fkill_buffer): Adjust indirection counters when the
4338 buffer is definitely dead. This should really fix an issue reported
4339 by Christoph Scholtes again. (Bug#12007).
4340 (init_buffer_once): Initialize indirection counters of
4341 buffer_defaults and buffer_local_symbols (for sanity and safety).
4342
8a0484e1
EZ
43432012-07-24 Eli Zaretskii <eliz@gnu.org>
4344
4345 * xdisp.c (init_iterator): Don't compute dimensions of truncation
4346 and continuation glyphs on tooltip frames, leave them at zero.
4347 Avoids continued lines in tooltips. (Bug#11832)
4348
fa691a83
DA
43492012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
4350
4351 Simplify copy_overlay.
04e9897c 4352 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
4353 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
4354
436bc8e0
EZ
43552012-07-23 Eli Zaretskii <eliz@gnu.org>
4356
4357 * print.c (print_object): Don't crash when a frame's name is nil
4358 or invalid. (Bug#12025)
4359
4360 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
4361 it signals an error when a tooltip frame is being created.
4362
d7a7fda3
DA
43632012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
4364
4365 Cleanup miscellaneous objects allocation and initialization.
4366 * alloc.c (allocate_misc): Change to static. Add argument to
4367 specify the subtype. Adjust comment and users.
4368 (build_overlay): New function.
4369 * buffer.c (copy_overlays, Fmake_overlay): Use it.
4370 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
4371 (allocate_misc): Remove prototype.
4372 (build_overlay): Add prototype.
4373
43742012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
4375
4376 Swap buffer text indirection counters in Fbuffer_swap_text.
4377 * buffer.c (Fbuffer_swap_text): Swap indirections too.
4378 This avoids crash reported by Christoph Scholtes at
4379 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
4380
9d7fa573
JD
43812012-07-22 Jan Djärv <jan.h.d@swipnet.se>
4382
4383 * nsmenu.m (Popdown_data): New struct.
4384 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
4385 free Popdown_data.
4386 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
4387 (initWithContentRect): Make imgView and contentView non-static
4388 and autorelease them. Also autorelease img and matrix (Bug#12005).
4389 (dealloc): Remove (Bug#12005).
4390
0dd6d66d
DA
43912012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
4392
4393 Adjust consing_since_gc when objects are explicitly freed.
4394 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
4395 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
4396 (free_cons, free_misc): Subtract object size from consing_since_gc.
4397
d36d71df
DA
43982012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
4399
4400 Simplify and cleanup markers positioning code.
4401 * marker.c (attach_marker): More useful eassert.
4402 (live_buffer, set_marker_internal): New function.
4403 (Fset_marker, set_marker_restricted): Use set_marker_internal.
4404 (set_marker_both, set_marker_restricted_both): Use live_buffer.
4405
fb9ea40f
PE
44062012-07-22 Paul Eggert <eggert@cs.ucla.edu>
4407
4408 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
4409 as it's limited by the amount of memory, not by INT_MAX.
4410
2d5c5f7d
EZ
44112012-07-21 Eli Zaretskii <eliz@gnu.org>
4412
07fb592e
EZ
4413 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
4414 in special-event-map. See the discussion at
4415 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
4416 for the reasons.
4417
37a9eac8 4418 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
4419 info.dwItemData. Fixes crashes on 64-bit Windows.
4420 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 4421
c4328746
JD
44222012-07-21 Jan Djärv <jan.h.d@swipnet.se>
4423
fc0c31f8 4424 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 4425 (conversationIdentifier): Return value is NSInteger.
784051c4 4426 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 4427
6e5d1c12
CY
44282012-07-21 Chong Yidong <cyd@gnu.org>
4429
4430 * window.c (decode_any_window): Signal an error if the window is
4431 on a dead frame (Bug#11984).
4432
9928463d
DA
44332012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4434
4435 Add indirection counting to speed up Fkill_buffer.
4436 * buffer.h (struct buffer): New member.
4437 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
4438 (Fmake_indirect_buffer): Set indirection counter to -1, increment
4439 base buffer indirection counter.
4440 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
4441 (Fkill_buffer): Adjust indirection counters as needed, don't walk
4442 through buffer list if indirection counter is 0.
4443
f8643a6b
DA
44442012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4445
4446 Extend the value returned by Fgarbage_collect with heap statistics.
4447 * alloc.c (Qheap): New symbol.
4448 (syms_of_alloc): DEFSYM it.
4449 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
4450 (Fmemory_free): Remove.
4451 (syms_of_alloc): Don't defsubr it.
4452 * buffer.c (Fcompact_buffer): Remove.
4453 (syms_of_buffer): Don't defsubr it.
4454
dac616ff
DA
44552012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4456
4457 Make maybe_gc inline.
4458 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
4459 * lisp.h (consing_since_gc, gc_relative_threshold)
4460 (memory_full_cons_threshold): Revert declaration.
4461 (maybe_gc): Remove prototype, define as inline.
4462 * alloc.c: Remove old commented-out code.
4463 (consing_since_gc, gc_relative_threshold)
4464 (memory_full_cons_threshold): Revert to global.
4465 (maybe_gc): Remove.
4466
d7ea76b4
DA
44672012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4468
4469 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
4470 * lisp.h (build_unibyte_string): New function.
4471 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
4472 * sysdep.c, w32fns.c, xfns.c: Use it.
4473 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
4474 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
4475 Adjust users accordingly.
4476 * font.h (font_open_by_name): Adjust prototype.
4477
765e61e3
DA
44782012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
4479
4480 Cleanup calls to Fgarbage_collect.
4481 * lisp.h (maybe_gc): New prototype.
4482 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
4483 Remove declarations.
4484 * alloc.c (maybe_gc): New function.
4485 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
4486 Make them static.
4487 * bytecode.c (MAYBE_GC): Use maybe_gc.
4488 * eval.c (eval_sub, Ffuncall): Likewise.
4489 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
4490 to avoid dependency from auto-save feature.
4491
52b852c7
PE
44922012-07-19 Paul Eggert <eggert@cs.ucla.edu>
4493
4494 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
4495 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
4496 'for_each_per_buffer_object_at'.
4497 All uses changed. It's better to use upper-case for macros that
4498 cannot be implemented as functions, to give the reader a clue
4499 that they're special.
4500
5db81e33
SM
45012012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
4502
4503 * alloc.c (Fgarbage_collect): Tweak docstring.
4504
5b835e1d
DA
45052012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
4506
4507 Tweak the value returned from Fgarbage_collect again.
4508 * alloc.c (Fgarbage_collect): New return value, as confirmed in
4509 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
4510 Adjust documentation.
4511 (total_vector_bytes): Rename to total_vector_slots, adjust
4512 accounting.
4513 (total_free_vector_bytes): Rename to total_free_vector_slots,
4514 adjust accounting.
4515 (Qstring_bytes, Qvector_slots): New symbols.
4516 (syms_of_alloc): DEFSYM them.
4517
9cd47b72
DA
45182012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
4519
4520 Buffer compaction primitive which may be used from Lisp.
4521 * buffer.c (compact_buffer, Fcompact_buffer): New function.
4522 (syms_of_buffer): Register Fcompact_buffer.
4523 * alloc.c (Fgarbage_collect): Use compact_buffer.
4524 * buffer.h (compact_buffer): New prototype.
4525 (struct buffer_text): New member.
4526
d17337e5
DA
45272012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
4528
4529 New macro to iterate over all buffers, miscellaneous cleanups.
4530 * lisp.h (all_buffers): Remove declaration.
4531 * buffer.h (all_buffers): Add declaration, with comment.
4532 (for_each_buffer): New macro.
4533 * alloc.c (Fgarbage_collect, mark_object): Use it.
4534 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
4535 (init_buffer): Likewise.
4536 * data.c (Fset_default): Likewise.
4537 * coding.c (code_conversion_restore): Remove redundant check
4538 for dead buffer.
4539 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
4540
60cfd278
AS
45412012-07-18 Andreas Schwab <schwab@linux-m68k.org>
4542
4543 Fix bug that created negative-length intervals.
4544 * intervals.c (merge_interval_right, merge_interval_left):
4545 Do not zero out this interval if it is absorbed by its children,
4546 as this interval's total length doesn't change in that case. See
4547 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
4548
d06714cb
PE
45492012-07-18 Paul Eggert <eggert@cs.ucla.edu>
4550
83713154
PE
4551 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
4552 when invoking (make-bool-vector N t) and N is a positive
4553 multiple of 8 -- the last 8 bits were mistakenly cleared.
4554
d06714cb
PE
4555 Remove some struct layout assumptions in bool vectors.
4556 * alloc.c (bool_header_size): New constant.
4557 (header_size, word_size): Move earlier, as they're now used earlier.
4558 Use 'word_size' in a few more places, where it's appropriate.
4559 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
4560 padding before the data member of a bool vector.
4561 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
4562 than doing the check by hand with an abort ().
4563
464d5a5e
SM
45642012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
4565
5fbc0409
SM
4566 * eval.c (Fdefvar): Don't check constants since we only set the var if
4567 it's not yet defined anyway (bug#11904).
4568
464d5a5e
SM
4569 * lisp.h (last_undo_boundary): Declare new var.
4570 * keyboard.c (command_loop_1): Set it.
4571 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
4572 were auto-added by the command loop (bug#11774).
4573
8dc2e44a
AS
45742012-07-18 Andreas Schwab <schwab@linux-m68k.org>
4575
4576 * w32font.c (Qsymbol): Remove local definition.
4577 (syms_of_w32font): Don't DEFSYM it.
4578
169925ec
DA
45792012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
4580
4581 Fix sweep_vectors to handle large bool vectors correctly.
4582 * alloc.c (sweep_vectors): Account total_vector_bytes for
4583 bool vectors larger than VBLOCK_BYTES_MAX.
4584
5fbfb018
CY
45852012-07-18 Chong Yidong <cyd@gnu.org>
4586
4587 * frame.c (x_set_frame_parameters): Revert bogus change introduced
4588 in 2012-05-25 commit by Paul Eggert (Bug#11738).
4589
3ab6e069
DA
45902012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
4591
4592 Return more descriptive data from Fgarbage_collect.
4593 Suggested by Stefan Monnier in
4594 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
4595 * alloc.c (bounded_number): New function.
4596 (total_buffers, total_vectors): New variable.
4597 (total_string_size): Rename to total_string_bytes, adjust users.
4598 (total_vector_size): Rename to total_vector_bytes, adjust users.
4599 (sweep_vectors): Account total_vectors and total_vector_bytes.
4600 (Fgarbage_collect): New return value. Adjust documentation.
4601 (gc_sweep): Account total_buffers.
4602 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
4603 (VECTOR_SIZE): Remove.
4604 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
4605 (Qinterval, Qmisc): New symbols.
4606 (syms_of_data): Initialize them.
4607 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
4608 (Qcons, Qbuffer): New declarations.
4609
6d02fe5b
PE
46102012-07-17 Paul Eggert <eggert@cs.ucla.edu>
4611
4612 * alloc.c (Fmemory_free): Account for memory-free's own storage.
4613 Round up, not down. Improve doc.
4614
b7ffe040
DA
46152012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4616
4617 Restore old code in allocate_string_data to avoid Faset breakage.
4618 Reported by Julien Danjou <julien@danjou.info> in
4619 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
4620 * alloc.c (allocate_string_data): Restore old code with minor
4621 adjustments, fix comment to explain this subtle issue.
4622
4dc7c8d5
SM
46232012-07-17 Eli Zaretskii <eliz@gnu.org>
4624
4625 Remove FILE_SYSTEM_CASE.
4626 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
4627
4628 * fileio.c (FILE_SYSTEM_CASE): Don't define.
4629 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
4630 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
4631 call-process-region passes it through expand-file-name.
4632
4633 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
4634
46352012-07-17 Andreas Schwab <schwab@linux-m68k.org>
4636
4637 Fix crash when creating indirect buffer (Bug#11917)
4638 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
4639 Don't handle unbound variables specially if non-zero.
4640 (Fbuffer_local_variables): Pass zero.
4641 (clone_per_buffer_values): Pass non-zero.
4642
46432012-07-17 Andreas Schwab <schwab@linux-m68k.org>
4644
4645 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
4646 to make the loop interruptible.
4647
46482012-07-17 Andreas Schwab <schwab@linux-m68k.org>
4649
4650 * gnutls.c (emacs_gnutls_handshake): Only retry if
4651 GNUTLS_E_INTERRUPTED.
4652
cce7fefc
DA
46532012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4654
4655 Cleanup and convert miscellaneous checks to eassert.
4656 * alloc.c (mark_interval): Fix comment, partially rephrase
4657 old comment from intervals.h (see below).
4658 * intervals.c (find_interval, adjust_intervals_for_insertion)
4659 (delete_interval, adjust_intervals_for_deletion)
4660 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
4661 Convert to eassert.
4662 (adjust_intervals_for_insertion, make_new_interval):
4663 Remove obsolete and unused code.
4664 * intervals.h (struct interval): Remove obsolete comment.
4665 * textprotp.c (erase_properties): Remove unused code.
4666 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
4667 (Fremove_list_of_text_properties): Convert to eassert.
4668
9ea10cc3
CY
46692012-07-17 Chong Yidong <cyd@gnu.org>
4670
4671 * editfns.c (Finsert_char): Doc fix.
4672
3900d5de
DA
46732012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4674
4675 Fix previous change to make Fmemory_free always accurate.
4676 * alloc.c (make_interval): Update total_free_intervals.
4677 (make_float): Likewise for total_free_floats.
4678 (free_cons, Fcons): Likewise for total_free_conses.
4679 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
4680 Likewise for total_free_vector_bytes.
4681 (Fmake_symbol): Likewise for total_free_symbols.
4682 (bytes_free): Remove.
4683
7098646f
DA
46842012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4685
4686 Simple free memory accounting feature.
4687 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
4688 (sweep_vectors): Accumulate size of free vectors.
4689 (Fgarbage_collect): Setup bytes_free.
4690 (Fmemory_free): New function.
4691 (syms_of_alloc): Register it.
4692
22657b40
DA
46932012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
4694
4695 Cleanup overlays checking.
4696 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
4697 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
4698 eassert and OVERLAYP.
4699 (sort_overlays): Change to use OVERLAYP.
4700
ddfc8813
RK
47012012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
4702
4703 * editfns.c (Finsert_char): Make it interactive, and make the
4704 second arg optional. Copy interactive spec and docstring from
4705 ucs-insert.
4706
7c26cf3c
PE
47072012-07-17 Paul Eggert <eggert@cs.ucla.edu>
4708
4709 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
4710 Unlike the other wrapped functions, fabs has an unspecified
4711 effect on errno.
4712
5d127af9
JD
47132012-07-16 Jan Djärv <jan.h.d@swipnet.se>
4714
4715 * nsterm.m (keyDown): Interpret flags without left/right bits
4716 as the left key (Bug#11670).
4717
6a0dd1d7
DA
47182012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
4719
4720 Remove empty and useless init functions.
4721 * lisp.h (init_character_once, init_fns, init_image)
4722 (init_filelock, init_sound): Remove prototype.
4723 * character.c (init_character_once): Remove.
4724 * filelock.c (init_filelock): Likewise.
4725 * fns.c (init_fns): Likewise.
4726 * image.c (init_image): Likewise.
4727 * sound.c (init_sound): Likewise.
4728 * emacs.c (main): Adjust accordingly.
4729
7a6136fd
DA
47302012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
4731
4732 * gtkutil.h: Tiny cleanups.
4733 (use_old_gtk_file_dialog): Remove useless declaration.
4734 (xg_uses_old_file_dialog): Add suggested const attribute.
4735
ce811ad9
EZ
47362012-07-15 Eli Zaretskii <eliz@gnu.org>
4737
4738 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
4739 (bidi_paragraph_init): Use it to limit search forward for a strong
4740 directional character in abnormally large paragraphs full of
4741 neutral or weak characters. (Bug#11943)
4742
c9adfeaa
SF
47432012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
4744
4745 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
4746 the toolbar (Bug#9451).
4747 (xg_make_tool_item): Give the widget event box a transparent
4748 background.
4749
fff62aa9
DA
47502012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
4751
4752 Cleanup basic allocation variables and functions.
4753 * alloc.c (ignore_warnings, init_intervals, init_float)
4754 (init_cons, init_symbol, init_marker): Remove.
4755 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
4756 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
4757 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
4758 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
4759 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
4760 (staticidx, init_alloc_once, init_strings, free_ablock):
4761 Remove redundant initialization.
4762 * fns.c (init_weak_hash_tables): Remove.
4763 * lisp.h (init_weak_hash_tables): Remove prototype.
4764
9730daca
DA
47652012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
4766
4767 Use zero_vector where appropriate.
4768 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
4769 accordingly.
4770 * lisp.h (zero_vector): New declaration.
4771 * font.c (null_vector): Remove.
4772 (syms_of_font): Remove initialization and staticpro.
4773 (font_list_entities, font_find_for_lface): Change to use zero_vector.
4774 * keymap.c (Faccessible_keymaps): Likewise.
4775
2e2d2a13
LL
47762012-07-15 Leo Liu <sdl.web@gmail.com>
4777
4778 * fringe.c: Fix typo in comments.
4779
cd276f6e
LL
47802012-07-14 Leo Liu <sdl.web@gmail.com>
4781
4782 * fringe.c: Add a new bitmap exclamation-mark.
4783
5a1131d9
EZ
47842012-07-14 Eli Zaretskii <eliz@gnu.org>
4785
4786 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
4787
4788 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
4789 (HAVE_MENUS): Don't define, defined by editing config.in with
4790 msdos/sed2v2.inp.
4791 (GMALLOC_INHIBIT_VALLOC): Don't define.
4792 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
4793
22e983b7
JB
47942012-07-14 Juanma Barranquero <lekktu@gmail.com>
4795
4796 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
4797
5b3f250f
GM
47982012-07-14 Glenn Morris <rgm@gnu.org>
4799
4800 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
4801 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
4802 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
4803
33d63ff4
GM
48042012-07-13 Glenn Morris <rgm@gnu.org>
4805
5b633342
GM
4806 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
4807
33d63ff4
GM
4808 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
4809 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
4810
b55b9f85
JD
48112012-07-13 Jan Djärv <jan.h.d@swipnet.se>
4812
0dc8cf50
JD
4813 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
4814 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
4815 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
4816 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
4817 where appropriate.
4818 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
4819 as boolean expression.
4820 (x_set_window_size): Remove unused variable toolbar.
4821 (ns_get_color_default, ns_mod_to_lisp): Remove.
4822 (ns_mouse_position): Remove unused variables xchar and ychar.
4823 (ns_compute_glyph_string_overhangs): Remove unused variable face.
4824 (ns_set_vertical_scroll_bar): Remove unused variable count.
4825 (ns_delete_terminal): Remove unused variable i.
4826 (ns_term_init): Remove unused variables r, g and b.
4827 (mouseDown): Remove unused variable window.
4828 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
4829 (initFrameFromEmacs): Remove unused variable vbextra.
4830 (mouseEntered): Remove unused variables p and dpyinfo.
4831 (mouseExited): Remove unused variables p and r.
4832 (ns_define_frame_cursor, ns_clear_frame_area)
4833 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
4834 (menuDown): Assign [sender tag] to variable and cast the variable.
4835
4836 * nsterm.h (menuDown): Add id as type to argument sender.
4837 (ns_display_info_for_name): Add Lisp_Object argument.
4838 (ns_term_init): Add Lisp_Object argument.
4839 (ns_map_event_to_object): Add void argument.
4840 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
4841 prototype with arguments and only declare if __OBJC__.
4842 (nxatoms_of_nsselect): Add void argument.
4843 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
4844 (ns_alloc_autorelease_pool): Add void argument.
4845 (ns_release_autorelease_pool): Add void* argument.
4846 (ns_get_defaults_value): Add const char* argument.
4847
4848 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
4849 (initFromContents): Use SSDATA where appropriate.
4850 (ns_update_menubar): Add braces to ambigous if-else.
4851 (initWithTitle): Put () around assignment in if statement.
4852 (ns_menu_show): Remove unused variables window and keymap.
4853 (update_frame_tool_bar): Remove unused variable selected_p.
4854 (initWithContentRect): Remove unused variable this_cmd_name.
4855
4856 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
4857 appropriate.
4858 (setXBMColor): Remove unused variable len.
4859 (setPixmapData): Put () around assignment in loop statement.
4860
4861 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
4862 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
4863 where appropriate.
4864 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
4865 around assignment in loop statement.
4866 (nsfont_open): Remove unused variable i.
4867 (nsfont_open): Remove unused variable len.
4868 (nsfont_draw): Remove unused variable cs.
4869
4870 * nsfns.m (x_set_icon_name, ns_set_name_internal)
4871 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
4872 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
4873 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
4874 (Fns_font_name, Fns_perform_service)
4875 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
4876 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
4877 (ns_set_name): Remove unused variable view.
4878 (x_set_menu_bar_lines): Remove unused variable olines.
4879 (x_set_tool_bar_lines): Remove unused variable root_window.
4880 (Fns_list_colors): Put () around assignment in while statement.
4881 (Fns_perform_service): Remove unused variable len.
4882 (Fns_display_usable_bounds): Remove unused variable top.
4883 (syms_of_nsfns): Remove unused variable i.
4884
b55b9f85
JD
4885 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
4886 memcpy (Bug#11907).
4887
ed9265fc 48882012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
4889
4890 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
4891 and free it with DestroyExceptionInfo (Bug#11558).
4892
ef099b57
JB
48932012-07-13 Juanma Barranquero <lekktu@gmail.com>
4894
4895 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
4896 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
4897 Set here, not in nt/config.nt.
4898
ea814a5d
EZ
48992012-07-13 Eli Zaretskii <eliz@gnu.org>
4900
4901 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
4902 cursor overflow into the last glyph on display line when the right
4903 fringe is off. (Bug#11832)
4904
1a952767
PE
49052012-07-13 Paul Eggert <eggert@cs.ucla.edu>
4906
4907 * xdisp.c (produce_special_glyphs): Now static.
4908 * dispextern.h (produce_special_glyphs): Remove decl.
4909
983188fd
GM
49102012-07-13 Glenn Morris <rgm@gnu.org>
4911
8d7c7eed 4912 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
4913 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
4914
983188fd
GM
4915 * s/usg5-4-common.h (USG, USG5):
4916 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
4917 * s/sol2-6.h (SOLARIS2):
4918 * s/irix6-5.h (IRIX6_5):
4919 * s/hpux10-20.h (USG, USG5, HPUX):
4920 * s/gnu-linux.h (USG, GNU_LINUX):
4921 * s/freebsd.h (BSD_SYSTEM):
4922 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
4923 * s/cygwin.h (CYGWIN):
4924 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
4925 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
4926
d1e68667 49272012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
4928
4929 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 4930
6de0e799
GM
49312012-07-13 Glenn Morris <rgm@gnu.org>
4932
739ae010
GM
4933 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
4934
dbee5793
GM
4935 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
4936
6de0e799
GM
4937 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
4938 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
4939
b82da769
GM
49402012-07-12 Glenn Morris <rgm@gnu.org>
4941
4fae5a7a 4942 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
4943
4944 * process.c (init_process_emacs): Rename from init_process.
4945 The old name is also the name of a Mach system call.
4946 * lisp.h, emacs.c: Update for this name change.
4947 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
4948 longer needed.
4949
5a979817
EZ
49502012-07-12 Eli Zaretskii <eliz@gnu.org>
4951
4952 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
4953 memmove call that removes glyphs covered by the left truncation
4954 glyph. Improve commentary.
4955 (display_line): Fix display of continuation glyphs on GUI frames
4956 when the right fringe is turned off and variable-size fonts are
4957 used in the window. Move the code that appends a stretch glyph to
4958 produce_special_glyphs, so that it could be used for truncation
4959 and continuation glyphs alike.
4960 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
4961 glyph of a suitably computed width, to align the special glyphs at
4962 the window margin. Code moved from display_line. (Bug#11832)
4963
3e91a053
GM
49642012-07-12 Glenn Morris <rgm@gnu.org>
4965
ba9e4b84
GM
4966 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
4967
4968 * s/gnu-linux.h, s/hpux10-20.h:
4969 Do not unconditionally define HAVE_XRMSETDATABASE.
4970
3e91a053
GM
4971 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
4972
b300b1f4
PE
49732012-07-12 Paul Eggert <eggert@cs.ucla.edu>
4974
4975 Fix typos that broke OS X build.
4976 Reported by Randal L. Schwartz in
4977 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
4978 * nsterm.m (ns_timeout): Add missing local decl.
4979 (ns_get_color): snprintf -> sprintf, to fix typo.
4980
6e777848
GM
49812012-07-12 Glenn Morris <rgm@gnu.org>
4982
3f922c37
GM
4983 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
4984 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
4985 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
4986 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
4987
0ab7b23a
GM
4988 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
4989 Move PTY_OPEN to configure.
4990
6e777848
GM
4991 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
4992 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
4993 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
4994
4a7edc24
DA
49952012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
4996
4997 Use empty_unibyte_string where applicable.
4998 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
4999 * lread.c (read1): Likewise.
5000 * xsettings.c (syms_of_xsettings): Likewise.
5001
308aab79
GM
50022012-07-12 Glenn Morris <rgm@gnu.org>
5003
42bd1719
GM
5004 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
5005 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
5006 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
5007 * s/hpux10-20.h (RUN_TIME_REMAP):
5008 * s/bsd-common.h (TABDLY): Move to configure.
5009
5010 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
5011
5012 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
5013
ea0bbd17 5014 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 5015 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
5016
5017 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 5018
308aab79
GM
5019 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
5020 * s/template.h: Move NARROWPROTO to configure.
5021
ee1cf5cf
GM
50222012-07-11 Glenn Morris <rgm@gnu.org>
5023
30fe9bf4
GM
5024 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
5025 unused since 2011-01-17 change to systty.h.
5026
ee1cf5cf
GM
5027 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
5028 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
5029 Move HAVE_PTYS and HAVE_SOCKETS to configure.
5030
63e47e07
PE
50312012-07-11 Paul Eggert <eggert@cs.ucla.edu>
5032
5033 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
5034
c43fb4c3
GM
50352012-07-11 Glenn Morris <rgm@gnu.org>
5036
5037 * s/darwin.h, s/gnu-linux.h, s/template.h:
5038 Move INTERRUPT_INPUT to configure.
5039
e8df9267
DA
50402012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5041
5042 Minor adjustments to interning code.
5043 * lisp.h (intern, intern_c_string): Redefine as static inline
5044 wrappers for intern_1 and intern_c_string_1, respectively.
5045 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
5046 * lread.c (intern_1, intern_c_string_1, oblookup):
5047 Simplify Vobarray checking.
e8df9267
DA
5048 * font.c (font_intern_prop): Likewise. Adjust comment.
5049 * w32font.c (intern_font_name): Likewise.
5050
34348bd4
AS
50512012-07-11 Andreas Schwab <schwab@linux-m68k.org>
5052
d96a1e0c
AS
5053 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
5054
34348bd4
AS
5055 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
5056 of Fcar/Fcdr if possible.
5057 * font.c (check_otf_features): Likewise.
5058 * fontset.c (Fnew_fontset): Likewise.
5059 * gnutls.c (Fgnutls_boot): Likewise.
5060 * minibuf.c (read_minibuf): Likewise.
5061 * msdos.c (IT_set_frame_parameters): Likewise.
5062 * xmenu.c (Fx_popup_dialog): Likewise.
5063 * w32menu.c (Fx_popup_dialog): Likewise.
5064
c8add24e
GM
50652012-07-11 Glenn Morris <rgm@gnu.org>
5066
4b575b3c
GM
5067 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
5068 since nothing has defined it on these platforms.
5069
09f4e3b0
GM
5070 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
5071 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
5072
172bedef
GM
5073 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
5074 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
5075 Move CLASH_DETECTION to configure.
5076
249685df
GM
5077 * s/gnu.h: Remove file, which is now empty.
5078
c8add24e
GM
5079 * s/gnu.h, s/gnu-linux.h:
5080 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
5081
b41253a3
JW
50822012-07-11 John Wiegley <johnw@newartisans.com>
5083
5084 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
5085 function attribute, so we only use it if it exists in the
5086 compiler.
5087
d923b542
DA
50882012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5089
5090 Avoid call to strlen in fast_c_string_match_ignore_case.
5091 * search.c (fast_c_string_match_ignore_case): Change to use
5092 length argument. Adjust users accordingly.
5093 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
5094
5ebbef1d
PE
50952012-07-11 Paul Eggert <eggert@cs.ucla.edu>
5096
bb352260
PE
5097 Assume mkdir, rmdir.
5098 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
5099 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
5100
57054ddd
PE
5101 Assume rename.
5102 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
5103
b747d3f7
PE
5104 Assume perror.
5105 * s/hpux10-20.h (HAVE_PERROR): Remove.
5106 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
5107 Remove dummy definition, as this problem was obsolete long ago.
5108
5ebbef1d
PE
5109 Assume strerror.
5110 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
5111
984e7f30
DA
51122012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
5113
5114 Avoid calls to strlen in font processing functions.
5115 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
5116 (font_open_by_name): Change to use length argument.
5117 Adjust users accordingly.
d923b542
DA
5118 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
5119 Adjust prototypes.
5120 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
5121 Change to return ptrdiff_t.
984e7f30
DA
5122 (xfont_list_pattern, xfont_match): Use length returned by
5123 xfont_decode_coding_xlfd.
5124 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
5125
20e94fdd
GM
51262012-07-11 Glenn Morris <rgm@gnu.org>
5127
9d596af3
GM
5128 * s/darwin.h, s/freebsd.h, s/netbsd.h:
5129 Move DONT_REOPEN_PTY to configure.
5130
20e94fdd
GM
5131 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
5132 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
5133
e99a530f
PE
51342012-07-10 Paul Eggert <eggert@cs.ucla.edu>
5135
22ffb973
PE
5136 Remove "#define unix" that is no longer needed (Bug#11905).
5137 * s/aix4-2.h (unix): Remove; no longer needed.
5138
e9a9ae03
PE
5139 EMACS_TIME simplification (Bug#11875).
5140 This replaces macros (which typically do not work in GDB)
5141 with functions, typedefs and enums, making the code easier to debug.
5142 The functional style also makes code easier to read and maintain.
5143 * systime.h: Include <sys/time.h> on all hosts, not just if
5144 WINDOWSNT, since 'struct timeval' is needed in general.
5145 (EMACS_TIME): Now a typedef, not a macro.
5146 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
5147 not macros.
5148 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
5149 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
5150 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
5151 (EMACS_TIME_LE): Now functions, not macros.
5152 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
5153 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
5154 which are not functions. All uses rewritten to use:
5155 (make_emacs_time): New function.
5156 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
5157 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
5158 not functions. All uses rewritten to use the following, respectively:
5159 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
5160 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 5161 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
5162 * fileio.c (Fcopy_file):
5163 * xterm.c (XTflash): Get the current time closer to when it's used.
5164 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
5165
ffacb126
PE
5166 * bytecode.c (targets): Suppress -Woverride-init warnings.
5167
e99a530f
PE
5168 Simplify by avoiding confusing use of strncpy etc.
5169 * doc.c (Fsnarf_documentation):
5170 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
5171 * frame.c (Fmake_terminal_frame):
5172 * gtkutil.c (get_utf8_string):
5173 * lread.c (openp):
5174 * nsmenu.m (ns_update_menubar):
5175 * regex.c (regerror):
5176 Prefer memcpy to strncpy and strncat when either will do.
5177 * fileio.c (Fsubstitute_in_file_name):
5178 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
5179 (menu_separator_name_p):
5180 * nsmenu.m (ns_update_menubar):
5181 Prefer memcmp to strncmp when either will do.
5182 * nsterm.m: Include <ftoastr.h>.
5183 (ns_get_color):
5184 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
5185 Prefer snprintf to strncpy.
5186 * nsterm.m (ns_term_init):
5187 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
5188 * nsterm.m (ns_term_init):
5189 Avoid the need for strncpy, by using build_string or
5190 make_unibyte_string directly. Use dtoastr, not snprintf.
5191 * process.c (Fmake_network_process): Diagnose service names that
5192 are too long, rather than silently truncating them or creating
5193 non-null-terminated names.
5194 (Fnetwork_interface_info): Likewise, for interface names.
5195 * sysdep.c (system_process_attributes) [GNU_LINUX]:
5196 Prefer sprintf to strncat.
5197 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
5198 Prefer vsnprintf to vsprintf + strncpy.
5199
c59592b3
GM
52002012-07-10 Glenn Morris <rgm@gnu.org>
5201
5202 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
5203 Clarify fallback case.
5204
7d7bbefd
DA
52052012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5206
5207 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
5208 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
5209 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 5210 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
5211 where argument type is known to be a Lisp_Cons.
5212
3a4c8000
TT
52132012-07-10 Tom Tromey <tromey@redhat.com>
5214
5215 * bytecode.c (BYTE_CODE_THREADED): New macro.
5216 (BYTE_CODES): New macro. Replaces all old byte-code defines.
5217 (enum byte_code_op): New type.
5218 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
5219 (exec_byte_code): Use them. Use token threading when applicable.
5220
2a0213a6
DA
52212012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5222
5223 Optimize pure C strings initialization.
5224 * lisp.h (make_pure_string): Fix prototype.
5225 (build_pure_c_string): New function, defined as static inline. This
5226 provides a better opportunity to optimize away calls to strlen when
5227 the function is called with compile-time constant argument.
5228 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
5229 argument, adjust users accordingly. Use build_pure_c_string where
5230 appropriate.
5231 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
5232 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
5233 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
5234
cb1caeaf
DA
52352012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5236
5237 Avoid calls to strlen in miscellaneous functions.
5238 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
5239 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
5240 * lread.c (openp): Likewise.
5241
c293e30c
DA
52422012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
5243
5244 Avoid calls to strlen in path processing functions.
5245 * fileio.c (file_name_as_directory): Add comment. Change to add
5246 srclen argument and return the length of result. Adjust users
5247 accordingly.
5248 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
5249 swap 1st and 2nd arguments to obey the common convention.
5250 Adjust users accordingly.
c293e30c
DA
5251 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
5252
9e059e3f
GM
52532012-07-10 Glenn Morris <rgm@gnu.org>
5254
d02eb359
GM
5255 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
5256 Move PENDING_OUTPUT_COUNT definition to configure.
5257
882cf227
GM
5258 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
5259 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
5260 * s/gnu.h (DATA_START): Move definitions to configure.
5261
af6e839f
GM
5262 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
5263 We include usg5-4-common.h, which defines them both.
5264
40289a12
GM
5265 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
5266 O_RDONLY already includes it).
5267
9e059e3f
GM
5268 Stop ns builds setting the EMACSLOADPATH environment variable.
5269 * nsterm.m (ns_load_path): Rename from ns_init_paths.
5270 Now it does not set EMACSLOADPATH, just returns the load-path string.
5271 * nsterm.h: Update accordingly.
5272 * lread.c [HAVE_NS]: Include nsterm.h.
5273 (init_lread) [HAVE_NS]: Use ns_load_path.
5274 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
5275
7c4e8ec0
GM
52762012-07-09 Glenn Morris <rgm@gnu.org>
5277
d4f600ff
GM
5278 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
5279 since the included bsd-common.h does so.
5280
cbb31951
GM
5281 Stop ns builds setting the EMACSPATH environment variable.
5282 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
5283 (ns_init_paths): Do not set EMACSPATH.
5284 * nsterm.h (ns_exec_path): Add it.
5285 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
5286 Use ns_exec_path.
5287
7c4e8ec0
GM
5288 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
5289
26bccfae
PE
52902012-07-09 Paul Eggert <eggert@cs.ucla.edu>
5291
a0bee46f
PE
5292 * process.c (wait_reading_process_output): 'waitchannels' was unset
5293 when read_kbd || !NILP (wait_for_cell); fix this.
5294
5994c183
PE
5295 Add GCC-style 'const' attribute to functions that can use it.
5296 * character.h (char_resolve_modifier_mask):
5297 * keyboard.h (make_ctrl_char):
5298 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
5299 (init_character_once, next_almost_prime, init_fns, init_image)
5300 (flush_pending_output, init_sound):
5301 * mem-limits.h (start_of_data):
5302 * menu.h (finish_menu_items):
5303 Add ATTRIBUTE_CONST.
5304 * emacs.c (DEFINE_DUMMY_FUNCTION):
5305 Declare the dummy function with ATTRIBUTE_CONST.
5306 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
5307 Add decls with ATTRIBUTE_CONST.
5308
26bccfae
PE
5309 Minor improvements to make_formatted_string.
5310 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
5311 where int is good enough, as vsprintf returns an int.
5312 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
5313
a8290ec3
DA
53142012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
5315
5316 Use make_formatted_string to avoid double length calculation.
5317 * lisp.h (make_formatted_string): New prototype.
5318 * alloc.c (make_formatted_string): New function.
5319 * buffer.c (Fgenerate_new_buffer_name): Use it.
5320 * dbus.c (syms_of_dbusbind): Likewise.
5321 * editfns.c (Fcurrent_time_zone): Likewise.
5322 * filelock.c (get_boot_time): Likewise.
5323 * frame.c (make_terminal_frame, set_term_frame_name)
5324 (x_report_frame_params): Likewise.
5325 * image.c (gs_load): Likewise.
5326 * minibuf.c (get_minibuffer): Likewise.
5327 * msdos.c (dos_set_window_size): Likewise.
5328 * process.c (make_process): Likewise.
5329 * xdisp.c (ensure_echo_area_buffers): Likewise.
5330 * xsettings.c (apply_xft_settings): Likewise.
5331
d01ba2f1
GM
53322012-07-09 Glenn Morris <rgm@gnu.org>
5333
5334 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
5335 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
5336 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
5337 * nsterm.h (ns_etc_directory): Add it.
5338 * callproc.c [HAVE_NS]: Include nsterm.h.
5339 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
5340
f1f924b6
DA
53412012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
5342
5343 Move marker debugging code under MARKER_DEBUG.
5344 * marker.c (MARKER_DEBUG): Move marker debugging code under
5345 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
5346 for bootstrap with --enable-checking (~3x slowdown reported
5347 by Juanma Barranquero <lekktu@gmail.com>).
5348 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
5349
ab531b66
PE
53502012-07-08 Paul Eggert <eggert@cs.ucla.edu>
5351
5352 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
5353 See <http://bugs.gnu.org/11825#29>.
5354
c4b3bc8a
EZ
53552012-07-08 Eli Zaretskii <eliz@gnu.org>
5356
5357 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
5358 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
5359 (display_line): Add commentary about displaying truncation glyphs
5360 on GUI frames.
5361 (produce_special_glyphs): Move here from term.c.
5362
5363 * term.c (produce_special_glyphs): Move to xdisp.c.
5364
5365 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
5366 section.
c4b3bc8a 5367
b676b881
AS
53682012-07-07 Andreas Schwab <schwab@linux-m68k.org>
5369
f17c5273
AS
5370 * xdisp.c (display_line): Avoid warning about implicit declaration
5371 of FRAME_FONT.
5372
298819b9
AS
5373 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
5374
b676b881
AS
5375 * lisp.h: Remove empty conditional.
5376
6045c4fd
PE
53772012-07-07 Paul Eggert <eggert@cs.ucla.edu>
5378
b3350bf9
PE
5379 * lread.c (load_path_check): Now static.
5380
6045c4fd
PE
5381 Fix some minor --with-ns problems found by static checking.
5382 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
5383 (x_set_font) [!HAVE_X_WINDOWS]:
5384 * image.c (xpm_load_image) [HAVE_NS]:
5385 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
5386 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
5387 Remove unused local.
5388 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
5389 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
5390 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
5391 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
5392 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
5393 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
5394 Fix pointer signedness problem.
5395 * xfaces.c (FRAME_X_FONT_TABLE):
5396 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
5397
929e7845
GM
53982012-07-07 Glenn Morris <rgm@gnu.org>
5399
5400 * lread.c (load_path_check): New function, split from init_lread.
5401 (init_lread): Reorganize. Motivation:
5402 If EMACSLOADPATH is set, check/warn about that rather than the
5403 defaults, which we are not going to use. Hence we can remove
5404 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
5405 Don't warn if site-lisp directories are missing.
5406 If not installed, start from a blank load-path, since
5407 PATH_LOADSEARCH refers to the eventual installation directories.
5408
58dd0aa4
EZ
54092012-07-07 Eli Zaretskii <eliz@gnu.org>
5410
5411 Support truncation and continuation glyphs on GUI frames, when
5412 fringes are disabled. (Bug#11832)
5413 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
5414 continuation glyphs even if on GUI frames.
5415 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
5416 or both, are absent.
5417 (start_display, move_it_in_display_line_to): Handle the case of a
5418 GUI frame without a fringe to display continuation or truncation
5419 glyphs.
5420 (insert_left_trunc_glyphs): Support GUI frames: make sure
5421 truncation glyphs overwrite enough glyphs from the current line to
5422 have sufficient space in pixels.
5423 (display_line): Support truncation and continuation glyphs on GUI
5424 frames. If some spare pixels are left on the line after inserting
5425 the truncation glyphs, fill that space with a stretch glyph of a
5426 suitably computed width.
5427
5428 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
5429 produce_glyphs, to support GUI sessions.
5430
31571fd7
PE
54312012-07-07 Paul Eggert <eggert@cs.ucla.edu>
5432
5a16b9bc
PE
5433 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
5434
f3047c75
PE
5435 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
5436
31571fd7
PE
5437 Do not require float-time's arg to fit in time_t (Bug#11825).
5438 This works better on hosts where time_t is unsigned, and where
5439 float-time is applied to the (negative) difference between two times.
5440 * editfns.c (decode_time_components): Last arg is now double *,
5441 not int *, and means to store all the result as a double, without
5442 worrying about whether the seconds part fits in time_t.
5443 All callers changed.
5444 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
5445 All callers changed.
5446 (Ffloat_time): Do not fail merely because the specified time falls
5447 outside of time_t range.
5448
4516fbef
GM
54492012-07-07 Glenn Morris <rgm@gnu.org>
5450
5451 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
5452 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
5453 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
5454
07adc2c6
JB
54552012-07-07 Juanma Barranquero <lekktu@gmail.com>
5456
5457 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
5458 Update dependencies.
5459
5460 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
5461
fd573f31
PE
54622012-07-06 Paul Eggert <eggert@cs.ucla.edu>
5463
fee5959d
PE
5464 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
5465 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
5466 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
5467 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
5468 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
5469 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
5470
fd573f31
PE
5471 * xfont.c (compare_font_names): Redo to omit the need for casts.
5472
ddadbc0e
AS
54732012-07-06 Andreas Schwab <schwab@linux-m68k.org>
5474
fca8d6b6
AS
5475 * xfns.c (Fx_change_window_property): Doc fix.
5476 * w32fns.c (Fx_change_window_property): Doc fix.
5477
ddadbc0e
AS
5478 * w32fns.c (Fx_window_property): Accept the same arguments as the
5479 X Windows version. Doc fix.
5480 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
5481
ed9265fc 54822012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
5483 Eli Zaretskii <eliz@gnu.org>
5484
5485 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
5486 Windows-specific code from nt/config.nt moved here.
5487 Obsolete settings removed.
5488
216ee680
PE
54892012-07-06 Paul Eggert <eggert@cs.ucla.edu>
5490
5491 * process.c: Avoid unnecessary calls to gettime.
5492 (wait_reading_process_output): Don't get the time of day
5493 when gobbling data immediately and not waiting, as there's no need
5494 for it in that case. This removes a FIXME.
5495
bdd091e4
JD
54962012-07-06 Jan Djärv <jan.h.d@swipnet.se>
5497
5498 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
5499 is defined (Bug#11768).
5500
9d44f8ce
DA
55012012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5502
5503 Fix marker debugging code.
5504 * marker.c (byte_char_debug_check): Do not perform the check
5505 if buffer is not multibyte.
090bd7cb
JB
5506 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
5507 Call byte_char_debug_check with correct arguments.
9d44f8ce 5508
90fc4786
DA
55092012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5510
5511 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
5512 * marker.c (byte_char_debug_check, count_markers):
5513 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
5514 (byte_debug_flag): Remove.
5515 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
5516 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
5517
7b7ae965
DA
55182012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5519
4e57b342
DA
5520 Avoid code repetition in marker-related functions.
5521 * marker.c (attach_marker): New function.
5522 (Fset_marker, set_marker_restricted, set_marker_both)
5523 (set_marker_restricted_both): Use it.
5524 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
5525 Consistently rename charno to charpos.
5526 (marker_position): Add eassert.
5527 (marker_byte_position): Convert to eassert.
5528
55292012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5530
5531 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 5532 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 5533 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 5534
657924ff
DA
55352012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5536
5537 Introduce fast path for the widely used marker operation.
5538 * alloc.c (build_marker): New function.
5539 * lisp.h (build_marker): New prototype.
5540 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
5541 * composite.c (autocmp_chars): Likewise.
5542 * editfns.c (buildmark): Remove.
5543 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
5544 (save_restriction_save): Use build_marker.
5545 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
5546 * window.c (save_window_save): Likewise.
5547
041a49a6
DA
55482012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
5549
5550 Do not use Fdelete_overlay in delete_all_overlays
5551 to avoid redundant calls to unchain_overlay.
5552 * buffer.c (drop_overlay): New function.
5553 (delete_all_overlays, Fdelete_overlay): Use it.
5554 * minibuf.c (get_minibuffer): Fix comment.
5555
7dca65a4
PE
55562012-07-06 Paul Eggert <eggert@cs.ucla.edu>
5557
5558 Port to OpenBSD 5.1 amd64.
5559 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
5560 This is needed for OpenBSD, and should be harmless on all BSD systems.
5561 Also, include <sys/sysctl.h>, as it should be available on all
5562 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
5563 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
5564 use p_pid member, not kp_proc.pid.
5565
8eb876e2
GM
55662012-07-06 Glenn Morris <rgm@gnu.org>
5567
5568 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
5569
38182d90
PE
55702012-07-05 Paul Eggert <eggert@cs.ucla.edu>
5571
5572 More xmalloc and related cleanup.
5573 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
5574 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
5575 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
5576 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
5577 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
5578 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
5579 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
5580 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
5581 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
5582 * xterm.c:
5583 Omit needless casts involving void * pointers and allocation.
5584 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
5585 as the former is more robust if P's type is changed.
5586 Prefer xzalloc to xmalloc + memset 0.
5587 Simplify malloc-or-realloc to realloc.
5588 Don't worry about xmalloc returning a null pointer.
5589 Prefer xstrdup to xmalloc + strcpy.
5590 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
5591 growing it.
5592 * keyboard.c (apply_modifiers_uncached): Prefer local array to
5593 alloca of a constant.
5594
6dd5a677
EZ
55952012-07-05 Eli Zaretskii <eliz@gnu.org>
5596
5597 * xdisp.c (display_line): Fix horizontal pixel coordinates when
5598 hscroll is larger than the line width. Fixes long and futile
5599 looping inside extend_face_to_end_of_line (on a TTY) producing
5600 glyphs that are not needed and thrown away.
5601
6b312f0f
DA
56022012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
5603
5604 * marker.c (set_marker_restricted_both): Simplify by using
5605 clip_to_bounds.
5606
f520ef9b
PE
56072012-07-05 Paul Eggert <eggert@cs.ucla.edu>
5608
5609 * editfns.c (region_limit): Simplify by using clip_to_bounds.
5610
383b7c95
JD
56112012-07-05 Jan Djärv <jan.h.d@swipnet.se>
5612
5613 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
5614 not defined (Bug#11768).
5615 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
5616 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
5617 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
5618 followed by gtk_box_set_homogeneous (Bug#11768).
5619 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
5620 (update_theme_scrollbar_width, xg_create_scroll_bar):
5621 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
5622 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
5623 (is_box_type): New function (Bug#11768).
5624 (xg_tool_item_stale_p): Call is_box_type.
5293d758 5625 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
5626 with default display (Bug#11768).
5627
d6e7bf45
EZ
56282012-07-05 Eli Zaretskii <eliz@gnu.org>
5629
5630 * xdisp.c (window_hscroll_limited): New function.
5631 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
5632 coordinates when window's hscroll is set to insanely large
5633 values. (Bug#11857)
5634
431391ec
JB
56352012-07-05 Juanma Barranquero <lekktu@gmail.com>
5636
5637 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
5638 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
5639
23f86fce
DA
56402012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
5641
5642 Cleanup xmalloc.
5643 * lisp.h (xzalloc): New prototype. Omit needless casts.
5644 * alloc.c (xzalloc): New function. Omit needless casts.
5645 * charset.c: Omit needless casts. Convert all calls to
5646 xmalloc with following memset to xzalloc.
5647 * dispnew.c: Likewise.
5648 * fringe.c: Likewise.
5649 * image.c: Likewise.
5650 * sound.c: Likewise.
5651 * term.c: Likewise.
5652 * w32fns.c: Likewise.
5653 * w32font.c: Likewise.
5654 * w32term.c: Likewise.
5655 * xfaces.c: Likewise.
5656 * xfns.c: Likewise.
5657 * xterm.c: Likewise.
5658 * atimer.c: Omit needless casts.
5659 * buffer.c: Likewise.
5660 * callproc.c: Likewise.
5661 * ccl.c: Likewise.
5662 * coding.c: Likewise.
5663 * composite.c: Likewise.
5664 * doc.c: Likewise.
5665 * doprnt.c: Likewise.
5666 * editfns.c: Likewise.
5667 * emacs.c: Likewise.
5668 * eval.c: Likewise.
5669 * filelock.c: Likewise.
5670 * fns.c: Likewise.
5671 * gtkutil.c: Likewise.
5672 * keyboard.c: Likewise.
5673 * lisp.h: Likewise.
5674 * lread.c: Likewise.
5675 * minibuf.c: Likewise.
5676 * msdos.c: Likewise.
5677 * print.c: Likewise.
5678 * process.c: Likewise.
5679 * region-cache.c: Likewise.
5680 * search.c: Likewise.
5681 * sysdep.c: Likewise.
5682 * termcap.c: Likewise.
5683 * terminal.c: Likewise.
5684 * tparam.c: Likewise.
5685 * w16select.c: Likewise.
5686 * w32.c: Likewise.
5687 * w32reg.c: Likewise.
5688 * w32select.c: Likewise.
5689 * w32uniscribe.c: Likewise.
5690 * widget.c: Likewise.
5691 * xdisp.c: Likewise.
5692 * xmenu.c: Likewise.
5693 * xrdb.c: Likewise.
5694 * xselect.c: Likewise.
5695
0497dc44
PE
56962012-07-05 Paul Eggert <eggert@cs.ucla.edu>
5697
5698 * fileio.c (time_error_value): Check the right error number.
5699 Problem reported by Troels Nielsen in
5700 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
5701
356e7178
PE
57022012-07-04 Paul Eggert <eggert@cs.ucla.edu>
5703
4e71fd89
PE
5704 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
5705 This should be fixed in a better way; see Eli Zaretskii in
5706 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
5707 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
5708
f0941253
PE
5709 * fileio.c (time_error_value): Rename from special_mtime.
5710 The old name's problems were noted by Eli Zaretskii in
5711 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
5712
065c9eb4
PE
5713 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
5714 This variable's comment says Emacs needs at least one GDB-visible
5715 symbol of type enum pvec_type, to work around GDB problems.
5716 The symbol's value doesn't matter.
5717
356e7178
PE
5718 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
5719 that causes compilation to fail on pre-C99 compilers.
5720
ed9265fc 57212012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
5722
5723 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
5724 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
5725
3884d954
DA
57262012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
5727
d209e2fb 5728 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
5729 headers for buffer_defaults and buffer_local_symbols.
5730 Reported by Juanma Barranquero <lekktu@gmail.com>.
5731
ee28be33
SM
57322012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
5733
5734 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
5735 * lisp.h (enum pvec_type): Use fewer bits.
5736 (PSEUDOVECTOR_SIZE_BITS): New constant.
5737 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
5738 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
5739 change in pvec_type.
5740 (PSEUDOVECTOR_TYPEP): New macro.
5741 (TYPED_PSEUDOVECTORP): Use it.
5742 * fns.c (internal_equal): Adapt code to extract pvectype.
5743 * emacs.c (gdb_pvec_type): Update type.
5744 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
5745 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
5746 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
5747 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
5748 (sweep_vectors): Use it. Use local var `total_bytes' instead of
5749 abusing vector->header.next.nbytes.
5750 (live_vector_p): Use PVEC_TYPE.
5751 (mark_object): Adapt code to extract pvectype. Use switch.
5752
c7f2cd7f
PE
57532012-07-04 Paul Eggert <eggert@cs.ucla.edu>
5754
5755 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
5756 Tighten new eassert a bit.
5757
8ce70ed2
DA
57582012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
5759
5760 Fix compilation with --enable-gcc-warnings and -O1
5761 optimization level.
5762 * doprnt.c (doprnt): Change type of tem to int, initialize
5763 to avoid compiler warning. Add eassert.
5764 * search.c (simple_search): Initialize match_byte to avoid
5765 compiler warning. Add eassert.
5766
dea7f1e5
PE
57672012-07-04 Paul Eggert <eggert@cs.ucla.edu>
5768
24a212eb
PE
5769 Avoid weird behavior with large horizontal scrolls.
5770 Without this change, for example, large hscroll values would
5771 mess up Emacs's display on Fedora 15 x86, presumably due to
5772 overflows in int calculations in the display code.
5773 Also, if buffers had long lines, Emacs would freeze.
5774 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
5775 (set_window_hscroll): New function, containing the old guts of
5776 Fset_window_hscroll. Return the clipped value.
5777 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
5778 This avoids the need to check against PTRDIFF_MAX.
5779
dea7f1e5
PE
5780 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
5781
76046526
DA
57822012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
5783
5784 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
5785
39adff0d
PE
57862012-07-04 Paul Eggert <eggert@cs.ucla.edu>
5787
63807d47
PE
5788 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
5789 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
5790 since GCC 4.4.6 issues a bogus warning for them.
5791
39adff0d
PE
5792 Fix bugs in file timestamp newness comparisons.
5793 * fileio.c (Ffile_newer_than_file_p):
5794 * lread.c (Fload): Use full timestamp resolution of files,
5795 not just the 1-second resolution, so that files that are only
5796 slightly newer still count as newer.
5797 * fileio.c (Ffile_newer_than_file_p): Don't assume file
5798 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
5799
dbeed9a6
PE
58002012-07-03 Paul Eggert <eggert@cs.ucla.edu>
5801
5802 * fileio.c: Improve handling of file time marker. (Bug#11852)
5803 (special_mtime): New function.
5804 (Finsert_file_contents, Fverify_visited_file_modtime):
5805 Use it to set special mtime values consistently.
5806
636334d6
AS
58072012-07-03 Andreas Schwab <schwab@linux-m68k.org>
5808
5809 * fileio.c (Finsert_file_contents): Properly handle st_mtime
5810 marker for non-existing file. (Bug#11852)
5811
e2017fe2
GM
58122012-07-03 Glenn Morris <rgm@gnu.org>
5813
5814 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
5815 and did not make it into globals.h).
5816
404dbd37
TT
58172012-07-03 Tom Tromey <tromey@redhat.com>
5818
5819 * window.c (Fset_window_margins, Fset_window_fringes)
5820 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
5821 * textprop.c (Fprevious_property_change): No longer static.
5822 * syntax.c (Fsyntax_table_p): No longer static.
5823 * process.c (Fget_process, Fprocess_datagram_address): No longer
5824 static.
5825 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
5826 * keyboard.c (Fcommand_execute): No longer static.
5827 Remove EXFUN.
5828 * insdel.c (Fcombine_after_change_execute): No longer static.
5829 * image.c (Finit_image_library): No longer static.
5830 * fileio.c (Fmake_symbolic_link): No longer static.
5831 * eval.c (Ffetch_bytecode): No longer static.
5832 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
5833 * doc.c (Fdocumentation_property, Fsnarf_documentation):
5834 No longer static.
404dbd37
TT
5835 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
5836 static.
5837 * dired.c (Ffile_attributes): No longer static.
5838 * composite.c (Fcomposition_get_gstring): No longer static.
5839 * callproc.c (Fgetenv_internal): No longer static.
5840
5841 * ccl.h: Remove EXFUNs.
5842 * buffer.h: Remove EXFUNs.
5843 * dispextern.h: Remove EXFUNs.
5844 * intervals.h: Remove EXFUNs.
5845 * fontset.h: Remove EXFUN.
5846 * font.h: Remove EXFUNs.
5847 * dosfns.c (system_process_attributes): Remove EXFUN.
5848 * keymap.h: Remove EXFUNs.
5849 * lisp.h: Remove EXFUNs.
5850 * w32term.h: Remove EXFUNs.
5851 * window.h: Remove EXFUNs.
5852 * xsettings.h: Remove EXFUN.
5853 * xterm.h: Remove EXFUN.
5854
8e4fd1e1
GM
58552012-07-03 Glenn Morris <rgm@gnu.org>
5856
5857 * lisp.h (Frandom): Make it visible to C.
5858 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
5859 buffer for invisible buffers. (Bug#1229)
5860
ca95b3eb
DA
58612012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5862
5863 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
5864 values which aren't power of 2.
14ae4239
BT
5865 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
5866 Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
5867 accordingly.
5868
7555c33f
SM
58692012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
5870
5871 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
5872
5873 * alloc.c (mark_object): Revert part of last patch to use `switch'.
5874
d12e8f5a
DA
58752012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5876
5877 * alloc.c (allocate_vector_block): Remove redundant
5878 calls to mallopt if DOUG_LEA_MALLOC is defined.
5879 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
5880 avoid calls to mallopt if zero_vector is returned.
5881
296094c3
DA
58822012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5883
5884 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
5885 is enabled, avoid dereferencing NULL current_sblock if
5886 running undumped.
5887
36429c89
DA
58882012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
5889
5890 Cleanup basic buffer management.
5891 * buffer.h (struct buffer): Change layout to use generic vector
5892 marking code. Fix some comments. Change type of 'clip_changed'
5893 to bitfield. Remove unused #ifndef old.
5894 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
5895 (GET_OVERLAYS_AT): Fix indentation.
5896 (for_each_per_buffer_object_at): New macro.
5897 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
5898 (Fbuffer_local_variables): Use it.
5899 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
5900 * alloc.c (allocate_buffer): Adjust to match new layout of
5901 struct buffer. Fix comment.
5902 (mark_overlay): New function.
5903 (mark_buffer): Use it. Use mark_vectorlike to mark normal
5904 Lisp area of struct buffer.
5905 (mark_object): Use it. Adjust marking of misc objects
5906 and related comments.
5907
3b3e4cac
PE
59082012-07-02 Paul Eggert <eggert@cs.ucla.edu>
5909
5910 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
5911 wrapper that is not needed because the wrapped code is a no-op (zero
5912 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
5913 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
5914
cf5c0175
DA
59152012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
5916
5917 * alloc.c (mark_buffer): Simplify. Remove prototype.
5918 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 5919 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
5920 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
5921 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 5922
ca26824c
GM
59232012-06-30 Glenn Morris <rgm@gnu.org>
5924
2e4c5312
GM
5925 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
5926
ca26824c
GM
5927 * epaths.in (PATH_SITELOADSEARCH): New.
5928 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
5929 This is rather than relying on --enable-locallisppath elements
5930 having "site-lisp" in their names. (Bug#10208#25, 11658)
5931
0d23c240
EZ
59322012-06-30 Eli Zaretskii <eliz@gnu.org>
5933
c9240d7a
EZ
5934 * w32proc.c (sys_select): Accept and ignore one more argument.
5935
5936 * w32.c (emacs_gnutls_pull): Call select with one more argument.
5937
0d23c240 5938 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 5939 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
5940
5941 * sysdep.c: Don't include dos.h and dosfns.h.
5942
5943 * process.c (sys_select):
5944 * msdos.c (sys_select): Accept one more argument and ignore it.
5945
5946 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
5947 adapt data types and code to that.
5948
5949 * dosfns.c:
5950 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
5951 which clashes with the gnulib function of the same name.
5952
af5a5a98
AS
59532012-06-30 Andreas Schwab <schwab@linux-m68k.org>
5954
c5e4379c
AS
5955 * font.c (font_style_to_value, font_style_symbolic)
5956 (font_prop_validate_style): Add type checks for values in
5957 font_style_table.
5958
af5a5a98
AS
5959 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
5960 argument.
5961 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
5962 uses.
5963
8d38f461
EZ
59642012-06-29 Eli Zaretskii <eliz@gnu.org>
5965
2e5a6631
EZ
5966 * xdisp.c (try_window_id): Undo last change.
5967
8d38f461
EZ
5968 * w32.c (getwd): Adjust commentary about startup_dir.
5969 (init_environment): Always call sys_access, even in non-MSVC
5970 builds. Don't chdir to the directory of the Emacs executable.
5971 This undoes code from 1997 which was justified by the need to
5972 "avoid conflicts when removing and renaming directories". But its
5973 downside was that every relative file name was being interpreted
5974 relative to the directory of the Emacs executable, which can never
5975 be TRT. In particular, it broke sys_access when called with
5976 relative file names.
5977 (sys_access): Map GetLastError to errno.
5978
2af3565e
DA
59792012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
5980
5981 * window.h (struct window): Change type of 'fringes_outside_margins'
5982 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 5983 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
5984 Adjust comment.
5985 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
5986 to ptrdiff_t.
5987
c8d3a25c 59882012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 5989
c8d3a25c
GM
5990 * gnutls.c (emacs_gnutls_handshake):
5991 Add QUIT to make the loop interruptible.
57570cd3 5992
c8d3a25c 59932012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 5994
c8d3a25c
GM
5995 * charset.c (init_charset): Make lack of etc/charsets fatal.
5996
3e984ee8
DA
59972012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
5998
5999 * editfns.c (region_limit): Fix type mismatch.
6000
ef884f23
DA
60012012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
6002
6003 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
6004 undefined. Convert from xassert to eassert.
6005 * nsmenu.m: Convert from xassert to eassert.
6006 * nsterm.m: Likewise.
6007
7d7e0027
SM
60082012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
6009
6010 * editfns.c (region_limit): Clip to narrowing (bug#11770).
6011
aa754e6a
PE
60122012-06-28 Paul Eggert <eggert@cs.ucla.edu>
6013
6014 Avoid integer overflow on scroll-left and scroll-right.
6015 * window.c (HSCROLL_MAX): New macro.
6016 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
6017 overflow when requested scroll falls outside ptrdiff_t range.
6018
80b00b08
DA
60192012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6020
6021 * window.h (struct window): Change type of 'hscroll',
6022 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
6023 'last_modified' and 'last_overlay_modified' to EMACS_INT.
6024 Adjust users accordingly.
6025 * xdisp.c (try_cursor_movement): Replace type check with eassert.
6026 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
6027 from EMACS_INT to ptrdiff_t.
6028 (make_window): Omit redundant initialization.
6029
62b2bcf6
JB
60302012-06-28 Juanma Barranquero <lekktu@gmail.com>
6031
6032 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
6033
45942c7d
DA
60342012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6035
6036 * window.h (struct window): Change type of 'use_time' and
6037 'sequence_number' from Lisp_Object to int.
6038 * frame.c (make_frame): Adjust users accordingly.
6039 * print.c (print_object): Likewise.
6040 * window.c (select_window, Fwindow_use_time, make_parent_window)
6041 (make_window): Likewise.
6042
e509cfa6
DA
60432012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6044
6045 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
6046 enabled with --enable-checking=[all,glyphs] configure option.
6047 Fix GLYPH_DEBUG usage assuming that it may be undefined,
6048 adjust comments accordingly.
6049 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
6050 undefined, adjust comments accordingly.
6051 * image.c: Likewise.
6052 * scroll.c: Likewise.
6053 * w32fns.c: Likewise.
6054 * w32term.c: Likewise.
6055 * xdisp.c: Likewise.
6056 * xfaces.c: Likewise.
6057 * xfns.c: Likewise.
6058 * xterm.c: Likewise.
6059
a54e2c05
DA
60602012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
6061
6062 Generalize run-time debugging checks.
6063 * dispextern.h (XASSERTS): Remove.
6064 * fontset.c (xassert): Remove.
6065 Convert from xassert to eassert.
6066 * alloc.c: Convert from xassert to eassert.
6067 * bidi.c: Likewise.
6068 * dispnew.c: Likewise.
6069 * fns.c: Likewise.
6070 * fringe.c: Likewise.
6071 * ftfont.c: Likewise.
6072 * gtkutil.c: Likewise.
6073 * image.c: Likewise.
6074 * keyboard.c: Likewise.
6075 * menu.c: Likewise.
6076 * process.c: Likewise.
6077 * scroll.c: Likewise.
6078 * sound.c: Likewise.
6079 * term.c: Likewise.
6080 * w32console.c: Likewise.
6081 * w32fns.c: Likewise.
6082 * w32term.c: Likewise.
6083 * window.c: Likewise.
6084 * xdisp.c: Likewise.
6085 * xfaces.c: Likewise.
6086 * xfns.c: Likewise.
6087 * xselect.c: Likewise.
6088 * xterm.c: Likewise.
6089
1ec4b7b2
SM
60902012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
6091
6092 * fns.c (maybe_resize_hash_table): Output message when growing the
6093 purify-hashtable.
6094
2014308a
DA
60952012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6096
6097 * alloc.c (allocate_string_data): Remove dead code.
6098 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
6099 avoid GCC warning about unused macro.
6100
246155eb
DA
61012012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6102
6103 * alloc.c (allocate_string): Omit intervals initialization.
6104 * alloc.c (make_uninit_multibyte_string): Initialize intervals
6105 as in make_pure_string and make_pure_c_string.
6106
43184b7b
DA
61072012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6108
d209e2fb 6109 * alloc.c (allocate_string): Fix last change.
43184b7b 6110
3fe6dd74
DA
61112012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
6112
d209e2fb 6113 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
6114 to memset, add explicit initialization where appropriate.
6115
1ba6038a
GM
61162012-06-27 Glenn Morris <rgm@gnu.org>
6117
6118 * lisp.mk (lisp): Remove paths.elc.
6119
c89926a5
CY
61202012-06-27 Chong Yidong <cyd@gnu.org>
6121
6122 * doc.c (Fsubstitute_command_keys): Fix punctuation.
6123
ed6b3510
JW
61242012-06-26 John Wiegley <johnw@newartisans.com>
6125
1ec4b7b2 6126 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
6127 on Mac OS X Lion: __mod_init_func and __mod_term_func.
6128
ed6b3510
JW
6129 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
6130 when building with Clang.
6131
8edd4a2b
SM
61322012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
6133
6134 * eval.c (Fapply): Allow calling it with a single argument.
6135
f6f62d1b
EZ
61362012-06-26 Eli Zaretskii <eliz@gnu.org>
6137
6138 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
6139 _stricmp and _strnicmp.
6140 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
6141
62efea5e
DA
61422012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
6143
6144 * alloc.c (allocate_window): Zero out non-Lisp part of newly
6145 allocated window.
6146 (allocate_process): Likewise for new process.
8edd4a2b 6147 (allocate_terminal): Change to use offsetof.
62efea5e
DA
6148 (allocate_frame): Likewise.
6149 * frame.c (make_frame): Omit redundant initialization.
6150 * window.c (make_parent_window): Use memset.
6151 (make_window): Omit redundant initialization.
6152 * process.c (make_process): Omit redundant initialization.
6153 * terminal.c (create_terminal): Likewise.
6154
42997f4d
DA
61552012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
6156
6157 * term.c (delete_tty): Remove redundant call to memset.
6158
1130ecfc
DA
61592012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
6160
6161 * alloc.c: Remove build_string.
6162 * lisp.h: Define build_string as static inline. This provides
6163 a better opportunity to optimize away calls to strlen when the
6164 function is called with compile-time constant argument.
6165 * image.c (imagemagick_error): Convert to build_string.
6166 * w32proc.c (sys_spawnve): Likewise.
6167 * xterm.c (x_term_init): Likewise.
6168
cf38a720
PE
61692012-06-26 Paul Eggert <eggert@cs.ucla.edu>
6170
99027bdd
PE
6171 Use sprintf return value instead of invoking strlen on result.
6172 In the old days this wasn't portable, since some sprintf
6173 implementations returned char *. But they died out years ago and
6174 Emacs already assumes sprintf returns int.
6175 Similarly for float_to_string.
6176 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
6177 * ccl.c (ccl_driver):
6178 * character.c (string_escape_byte8):
6179 * data.c (Fnumber_to_string):
6180 * doprnt.c (doprnt):
6181 * print.c (print_object):
6182 * xdisp.c (message_dolog):
6183 * xfns.c (syms_of_xfns):
6184 Use sprintf or float_to_string result to avoid need to call strlen.
6185 * data.c (Fnumber_to_string):
6186 Use make_unibyte_string, since the string must be ASCII.
6187 * lisp.h, print.c (float_to_string): Now returns int length.
6188 * term.c (produce_glyphless_glyph):
6189 Use sprintf result rather than recomputing it.
6190
cf38a720
PE
6191 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
6192 * Makefile.in (ALL_CFLAGS):
6193 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
6194 * gmalloc.c, regex.c: Include <config.h> unconditionally.
6195
3511c784
DA
61962012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6197
0a08eb21 6198 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
6199 strcasecmp if available.
6200 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
6201
fb7da12e
AS
62022012-06-25 Andreas Schwab <schwab@linux-m68k.org>
6203
6204 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
6205 Avoid comma operator.
6206 * menu.c (push_submenu_start, push_submenu_end)
6207 (push_left_right_boundary, push_menu_pane): Likewise.
6208 * msdos.c (dos_rawgetc): Likewise.
6209
afa2ffd8
DA
62102012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6211
6212 * xfns.c (xic_create_fontsetname): Remove redundant calls
6213 to memset.
6214
b3b4476b
PE
62152012-06-25 Paul Eggert <eggert@cs.ucla.edu>
6216
4495ff38
PE
6217 * gtkutil.c (get_utf8_string): Remove redundant assignment.
6218 sprintf already null-terminates its output.
6219
b3b4476b
PE
6220 * xfns.c (x_window): Remove redundant cast.
6221
b00876c9
DA
62222012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6223
6224 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
6225 `const char *' to `char *' to avoid compiler warning.
6226
d188e26b
PE
62272012-06-24 Paul Eggert <eggert@cs.ucla.edu>
6228
885d1d74
PE
6229 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
6230 instead of truncating it to 63 (admittedly a generous limit).
6231
d188e26b
PE
6232 * process.c: Fix spelling and caps in comments.
6233
e2f560b1
DN
62342012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
6235
e86db54b 6236 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
6237 * sysdep.c (setpgrp): Remove definition, not used in this file.
6238
7583a3a1
JB
62392012-06-24 Juanma Barranquero <lekktu@gmail.com>
6240
6241 * makefile.w32-in: Update dependencies.
6242
696056c2
EZ
62432012-06-24 Eli Zaretskii <eliz@gnu.org>
6244
6245 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
6246 (SYSTIME_H): Add nt/inc/sys/time.h.
6247
6248 * systime.h [WINDOWSNT]: Include sys/time.h.
6249
6250 * s/ms-w32.h (struct timespec): Definition moved from
6251 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
6252
845ca893
PE
62532012-06-24 Paul Eggert <eggert@cs.ucla.edu>
6254
6255 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
6256 * buffer.h (buffer_slot_type_mismatch):
6257 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
6258 * eval.c (unwind_to_catch):
6259 * image.c (my_png_error, my_error_exit):
6260 * keyboard.c (quit_throw_to_read_char, user_error)
6261 (Fexit_recursive_edit, Fabort_recursive_edit):
6262 * lisp.h (die, args_out_of_range, args_out_of_range_3)
6263 (wrong_type_argument, buffer_overflow, __executable_start)
6264 (memory_full, buffer_memory_full, string_overflow, Fthrow)
6265 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
6266 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
6267 (fatal):
6268 (child_setup) [!DOS_NT]:
6269 * lread.c (end_of_file_error, invalid_syntax):
6270 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
6271 * puresize.h (pure_write_error):
6272 * search.c (matcher_overflow):
6273 * sound.c (sound_perror, alsa_sound_perror):
6274 * sysdep.c, syssignal.h (croak):
6275 * term.c (maybe_fatal, vfatal):
6276 * textprop.c (text_read_only):
6277 * undo.c (user_error):
6278 * unexmacosx.c (unexec_error):
6279 * xterm.c (x_ins_del_lines, x_delete_glyphs):
6280 Use _Noreturn rather than NO_RETURN.
6281 No need for separate decl merely because of _Noreturn.
6282 * sound.c (sound_warning, parse_sound):
6283 Remove unnecessary forward decls.
6284
f1dd8073
PE
62852012-06-24 Paul Eggert <eggert@cs.ucla.edu>
6286
6287 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
6288 * lisp.h (WAIT_READING_MAX): New macro.
6289 * dispnew.c (Fsleep_for, sit_for):
6290 * keyboard.c (kbd_buffer_get_event):
6291 * process.c (Faccept_process_output):
6292 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
6293 This improves on the previous patch, which introduced a bug
6294 when time_t is unsigned and as wide as intmax_t.
6295 See <http://bugs.gnu.org/9000#51>.
6296
b82c1755
EZ
62972012-06-23 Eli Zaretskii <eliz@gnu.org>
6298
6299 * dispnew.c (sit_for, Fsleep_for):
6300 * keyboard.c (kbd_buffer_get_event):
6301 * process.c (Faccept_process_output): Avoid compiler warnings when
6302 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
6303
ca300656
JB
63042012-06-23 Juanma Barranquero <lekktu@gmail.com>
6305
049ec95b
JB
6306 * makefile.w32-in: Update dependencies.
6307
ca300656
JB
6308 * w32.c (ltime): Add return type and declare static.
6309 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
6310
db7b8d06
PE
63112012-06-23 Paul Eggert <eggert@cs.ucla.edu>
6312
6313 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
6314 Privately reported by Herbert J. Skuhra.
6315 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
6316 All uses changed.
6317 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
6318 not make_lisp_timeval, when the argument is of type EMACS_TIME.
6319
0bd8297f
EZ
63202012-06-23 Eli Zaretskii <eliz@gnu.org>
6321
96512555
EZ
6322 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
6323 last argument of make_unibyte_string.
6324
0bd8297f
EZ
6325 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
6326 language ID in the event parameters.
6327
6328 * w32term.c (w32_read_socket): Put the new keyboard codepage into
6329 event.code, not the obscure "character set ID".
6330
63def6b6
CY
63312012-06-23 Chong Yidong <cyd@gnu.org>
6332
6333 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
6334
e8a02204
EZ
63352012-06-23 Eli Zaretskii <eliz@gnu.org>
6336
388cdec0
EZ
6337 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
6338 * w32.c (fdutimens): New function.
6339
6340 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
6341
6342 * s/ms-w32.h (pselect): Redirect to sys_select.
6343
6344 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
6345
e8a02204
EZ
6346 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
6347 in the logic of incrementing and decrementing the value of
6348 use_relocatable_buffers.
6349
d054f3fb
PE
63502012-06-23 Paul Eggert <eggert@cs.ucla.edu>
6351
6352 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
6353 Privately reported by Herbert J. Skuhra.
6354 [__FreeBSD__]: Remove "*/" typo after "#include".
6355 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
6356 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
6357 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
6358 Don't assume EMACS_TIME and struct timeval are the same type.
6359
d35af63c
PE
63602012-06-22 Paul Eggert <eggert@cs.ucla.edu>
6361
6362 Support higher-resolution time stamps (Bug#9000).
6363 The time stamps are only nanosecond-resolution at the C level,
6364 since that's the best that any real-world system supports now.
6365 But they are picosecond-resolution at the Lisp level, as that's
6366 easy, and leaves room for future OS improvements.
6367
6368 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
6369 (LIBES): Use it.
6370
6371 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
6372 Don't get current time unless it's needed.
6373
6374 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
6375 now provides it if it's absent.
6376 (start_atimer): Port to higher-res time stamps.
6377 Check for time stamp overflow. Don't get current time more
6378 often than is needed.
6379
6380 * buffer.h (struct buffer): Buffer modtime now has high resolution.
6381 Include systime.h, not time.h.
6382 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
6383
6384 * dired.c: Include stat-time.h.
6385 (Ffile-attributes): File times now have higher resolution.
6386
6387 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
6388 (struct image): Timestamp now has higher resolution.
6389
6390 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
6391 has at least microseconds now. All uses removed.
6392 (update_frame, update_single_window, update_window, update_frame_1)
6393 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 6394 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
6395
6396 * editfns.c (time_overflow): Now extern.
6397 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
6398 (float-time, Fformat_time_string, Fcurrent_time_string)
6399 (Fcurrent_time_zone): Accept and generate higher-resolution
6400 time stamps.
6401 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
6402 (decode_time_components, lisp_seconds_argument): New functions.
6403 (make_time): Now static.
6404 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
6405 Report an error if the time is invalid, rather than having the caller
6406 do that.
6407
6408 * fileio.c: Include <stat-time.h>
6409 (Fcopy_file): Copy higher-resolution time stamps.
6410 Prefer to set the time stamp via a file descriptor if that works.
6411 (Fset_file_times, Finsert_file_contents, Fwrite_region)
6412 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
6413 (Fvisited_file_modtime, Fset_visited_file_modtime):
6414 Support higher-resolution time stamps.
6415
6416 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
6417
6418 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
6419
6420 * image.c (prepare_image_for_display, clear_image_cache)
6421 (lookup_image): Port to higer-resolution time stamps.
6422
6423 * keyboard.c (start_polling, bind_polling_period):
6424 Check for time stamp overflow.
6425 (read_char, kbd_buffer_get_event, timer_start_idle)
6426 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
6427 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
6428 Port to higher-resolution time stamps. Do not assume time_t is signed.
6429 (decode_timer): New function. Timers are now vectors of length 9,
6430 not 8, to accommodate the picosecond component.
6431 (timer_check_2): Use it.
6432
6433 * nsterm.m (select_timeout, timeval_subtract): Remove.
6434 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
6435 as they're a bit more accurate and handle overflow better.
6436 (ns_select): Change prototype to be compatible with pselect.
6437 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
6438 * nsterm.h (ns_select): Adjust prototype.
6439
6440 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
6441 us-resolution time stamps.
6442 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
6443
6444 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
6445
6446 * lisp.h (time_overflow): New decl.
6447 (wait_reading_process_output): First arg is now intmax_t, not int,
6448 to accommodate larger waits.
6449
6450 * process.h (struct Lisp_Process.read_output_delay):
6451 Now counts nanoseconds, not microseconds.
6452 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
6453 EMACS_HAS_USECS.
6454 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
6455 (wait_reading_process_output):
6456 Port to ns-resolution time stamps.
6457 (Faccept_process_output, wait_reading_process_output):
6458 Check for time stamp overflow. Do not assume time_t is signed.
6459 (select_wrapper): Remove; we now use pselect.
6460 (Fprocess_attributes): Now generates ns-resolution time stamps.
6461
6462 * sysdep.c: Include utimens.h. Don't include utime.h
6463 or worry about struct utimbuf; gnulib does that for us now.
6464 (gettimeofday): Remove; gnulib provides a substitute.
6465 (make_timeval): New function.
6466 (set_file_times): Now sets ns-resolution time stamps.
6467 New arg FD; all uses changed.
6468 (time_from_jiffies, ltime_from_jiffies, get_up_time)
6469 (system_process_attributes):
6470 Now returns ns-resolution time stamp. All uses changed.
6471 Check for time stamp overflow.
6472
6473 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
6474 provides a substitute now.
6475
6476 * systime.h: Include timespec.h rather than sys/time.h and time.h,
6477 since it guarantees struct timespec.
6478 (EMACS_TIME): Now struct timespec, so that we can support
6479 ns-resolution time stamps.
6480 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
6481 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
6482 (EMACS_USECS): Remove.
6483 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
6484 so multiply the arg by 1000 before storing it.
6485 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
6486 New macros.
6487 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
6488 Port to ns-resolution time stamps.
6489 (EMACS_TIME_NEG_P): Remove; replaced by....
6490 (EMACS_TIME_SIGN): New macro.
6491 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
6492 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
6493 (set_file_times, make_time, lisp_time_argument): Adjust signature.
6494 (make_timeval, make_lisp_time, decode_time_components): New decls.
6495 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
6496 that it mishandled time_t overflow. You can't compare by subtracting!
6497 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
6498 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
6499
6500 * term.c: Include <sys/time.h>.
6501 (timeval_to_Time): New function, for proper overflow wraparound.
6502 (term_mouse_position, term_mouse_click): Use it.
6503
6504 * undo.c (record_first_change): Support higher-resolution time stamps
6505 in the undo buffer.
6506 (Fprimitive_undo): Use them when restoring time stamps.
6507
6508 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
6509 (w32_get_internal_run_time):
6510 Port to higher-resolution Emacs time stamps.
6511 (ltime): Now accepts single 64-bit integer, as that's more convenient
6512 for callers.
6513
6514 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
6515
6516 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
6517 for compatibility with pselect. Support ns-resolution time stamps.
6518
6519 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
6520
6521 * xselect.c (wait_for_property_change, x_get_foreign_selection):
6522 Check for time stamp overflow, and support ns-resolution time stamps.
6523
6524 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
6525 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
6526 (timeval_subtract): Remove; no longer needed.
6527 (XTflash, XTring_bell, x_wait_for_event):
6528 Port to ns-resolution time stamps. Don't assume time_t is signed.
6529
b6a92dfe
CY
65302012-06-22 Chong Yidong <cyd@gnu.org>
6531
6532 * xdisp.c (x_consider_frame_title): Revert last change.
6533
d251c37c
EZ
65342012-06-22 Eli Zaretskii <eliz@gnu.org>
6535
6536 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
6537 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
6538 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
6539 staticidx goes up to 1597 out of 1600 = 0x640.)
6540
f10deafb
PE
65412012-06-20 Paul Eggert <eggert@cs.ucla.edu>
6542
6543 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
6544 Otherwise, the umask might be mistakenly 0 while handling input signals.
6545
ec6de1e2
SM
65462012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
6547
6548 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
6549
28be1ada
DA
65502012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
6551
6552 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
6553 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
6554 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
6555 access to `contents' member of Lisp_Vector objects with AREF and ASET
6556 where appropriate.
6557
c6bf3022
CY
65582012-06-19 Chong Yidong <cyd@gnu.org>
6559
6560 * frame.c (delete_frame): When selecting a frame on a different
6561 text terminal, do not alter the terminal's top-frame.
6562
6563 * xdisp.c (format_mode_line_unwind_data): Record the target
6564 frame's selected window and its terminal's top-frame.
6565 (unwind_format_mode_line): Restore them.
6566 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
6567 Callers changed.
6568 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
6569 since tty frames can be explicitly named.
6570 (prepare_menu_bars): Likewise.
6571
6572 * term.c (Ftty_top_frame): New function.
6573
defd4196
PE
65742012-06-18 Paul Eggert <eggert@cs.ucla.edu>
6575
6576 Port byte-code-meter to modern targets.
6577 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
6578 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 6579 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
6580 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
6581 (METER_1, METER_2): Simplify.
6582
1053a871
SM
65832012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
6584
6585 * data.c (Fdefalias): Return `symbol' (bug#11686).
6586
b7e8d081
MR
65872012-06-18 Martin Rudalics <rudalics@gmx.at>
6588
6589 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
6590 gets killed during executing of this function (Bug#11665).
6591 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
6592 (Vkill_buffer_query_functions): In doc-string say that functions
6593 run by this hook should not change the current buffer.
6594
7ea2b339
PE
65952012-06-18 Paul Eggert <eggert@cs.ucla.edu>
6596
6597 Fix recently-introduced process.c problems found by static checking.
6598 * process.c (write_queue_push, write_queue_pop, send_process):
6599 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
6600 (write_queue_pop): Fix pointer signedness problem.
6601 (send_process): Remove unused local.
6602
96a313a1
CY
66032012-06-17 Chong Yidong <cyd@gnu.org>
6604
6605 * xdisp.c (redisplay_internal): No need to redisplay terminal
6606 frames that are not on top.
6607
20ca2e94
TN
66082012-06-17 Troels Nielsen <bn.troels@gmail.com>
6609
6610 * process.c (make_process): Initialize write_queue.
6611 (write_queue_push, write_queue_pop): New functions.
6612 (send_process): Use them to maintain correct ordering of process
6613 writes (Bug#10815).
6614
9a900ca9
PE
66152012-06-17 Paul Eggert <eggert@cs.ucla.edu>
6616
310fbfa8
PE
6617 * lisp.h (eassert): Assume C89 or later.
6618 This removes the need for CHECK.
6619 (CHECK): Remove. Its comments about always evaluating its
6620 argument were confusing, as 'eassert' typically does not evaluate
6621 its argument.
6622
27bb1ca4
PE
6623 * coding.c (produce_chars): Use ptrdiff_t, not int.
6624
9a900ca9
PE
6625 * xterm.c (x_draw_underwave): Check for integer overflow.
6626 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
6627
41b7f8bc 66282012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
6629
6630 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
6631 referenced (Bug#11583).
6632
9b0e3eba
AA
66332012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
6634
6635 Implement wave-style variant of underlining.
6636 * dispextern.h (face_underline_type): New enum.
6637 (face): Add field for underline type.
6638 * nsterm.m (ns_draw_underwave): New function.
6639 (ns_draw_text_decoration): Use it.
6640 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
6641 New functions.
6642 (x_draw_glyph_string): Use them.
6643 * xfaces.c (Qline, Qwave): New Lisp objects.
6644 (check_lface_attrs, merge_face_ref)
1053a871
SM
6645 (Finternal_set_lisp_face_attribute, realize_x_face):
6646 Handle wave-style underline face attributes.
9b0e3eba
AA
6647 * xterm.c (x_draw_underwave): New function.
6648 (x_draw_glyph_string): Use it.
6649
0fb52f11
JB
66502012-06-16 Juanma Barranquero <lekktu@gmail.com>
6651
6652 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
6653 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
6654 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
6655 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
6656 ($(BLD)/w32select.$(O)): Update dependencies.
6657
e5560ff7
AS
66582012-06-16 Andreas Schwab <schwab@linux-m68k.org>
6659
6660 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
6661 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
6662 * character.c (_fetch_multibyte_char_p): Remove.
6663 * alloc.c: Include "character.h" before "buffer.h".
6664 * bidi.c: Likewise.
6665 * buffer.c: Likewise.
6666 * bytecode.c: Likewise.
6667 * callint.c: Likewise.
6668 * callproc.c: Likewise.
6669 * casefiddle.c: Likewise.
6670 * casetab.c: Likewise.
6671 * category.c: Likewise.
6672 * cmds.c: Likewise.
6673 * coding.c: Likewise.
6674 * composite.c: Likewise.
6675 * dired.c: Likewise.
6676 * dispnew.c: Likewise.
6677 * doc.c: Likewise.
6678 * dosfns.c: Likewise.
6679 * editfns.c: Likewise.
6680 * emacs.c: Likewise.
6681 * fileio.c: Likewise.
6682 * filelock.c: Likewise.
6683 * font.c: Likewise.
6684 * fontset.c: Likewise.
6685 * fringe.c: Likewise.
6686 * indent.c: Likewise.
6687 * insdel.c: Likewise.
6688 * intervals.c: Likewise.
6689 * keyboard.c: Likewise.
6690 * keymap.c: Likewise.
6691 * lread.c: Likewise.
6692 * macros.c: Likewise.
6693 * marker.c: Likewise.
6694 * minibuf.c: Likewise.
6695 * nsfns.m: Likewise.
6696 * nsmenu.m: Likewise.
6697 * print.c: Likewise.
6698 * process.c: Likewise.
6699 * regex.c: Likewise.
6700 * region-cache.c: Likewise.
6701 * search.c: Likewise.
6702 * syntax.c: Likewise.
6703 * term.c: Likewise.
6704 * textprop.c: Likewise.
6705 * undo.c: Likewise.
6706 * unexsol.c: Likewise.
6707 * w16select.c: Likewise.
6708 * w32fns.c: Likewise.
6709 * w32menu.c: Likewise.
6710 * window.c: Likewise.
6711 * xdisp.c: Likewise.
6712 * xfns.c: Likewise.
6713 * xmenu.c: Likewise.
6714 * xml.c: Likewise.
6715 * xselect.c: Likewise.
6716
2f07e6af
EZ
67172012-06-16 Eli Zaretskii <eliz@gnu.org>
6718
1053a871
SM
6719 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
6720 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 6721 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
6722 row.
6723 (handle_face_prop): Use chunk-relative overlay string index when
6724 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
6725 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
6726 the rightmost. (Bug#11720)
2f07e6af 6727
29b83cec
AS
67282012-06-16 Andreas Schwab <schwab@linux-m68k.org>
6729
6730 * category.h (CHAR_HAS_CATEGORY): Define as inline.
6731 (CATEGORY_MEMBER): Enforce 1/0 value.
6732 * category.c (_temp_category_set): Remove.
6733
4c5501e9
EZ
67342012-06-16 Eli Zaretskii <eliz@gnu.org>
6735
6736 * window.c (Fdelete_other_windows_internal)
6737 (Fdelete_window_internal): Don't access frame's mouse highlight
6738 info of the initial frame. (Bug#11677)
6739
2b570124
PE
67402012-06-14 Paul Eggert <eggert@cs.ucla.edu>
6741
e93864f9
PE
6742 * .gdbinit (xgetint): Fix recently-introduced paren typo.
6743 Assume USE_2_TAGS_FOR_INTS.
6744 (xreload): Adjust $tagmask width to match recent lisp.h change.
6745
2b570124
PE
6746 Simplify lisp.h in minor ways that should not affect code.
6747 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
6748 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
6749 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
6750 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
6751 (INTTYPEBITS): New macro, for clarity.
6752 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
6753 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
6754 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
6755 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
6756 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
6757
81755f69
JB
67582012-06-13 Juanma Barranquero <lekktu@gmail.com>
6759
6760 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
6761
16192a57
GM
67622012-06-13 Glenn Morris <rgm@gnu.org>
6763
6764 * s/bsd-common.h (BSD4_3):
6765 * s/usg5-4-common.h (USG5_4): No longer define; unused.
6766
646b5f55
AS
67672012-06-13 Andreas Schwab <schwab@linux-m68k.org>
6768
6769 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
6770 instead of union.
6771 (XLI, XIL): Define.
1053a871
SM
6772 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
6773 Use them.
6774 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 6775 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 6776 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
6777 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
6778 * frame.c (delete_frame): Remove outdated comment.
6779 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
6780 USE_LISP_UNION_TYPE.
6781 (Fw32_unregister_hot_key): Likewise.
6782 (Fw32_toggle_lock_key): Likewise.
6783 * w32menu.c (add_menu_item): Likewise.
6784 (w32_menu_display_help): Use XIL instead of checking
6785 USE_LISP_UNION_TYPE.
6786 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
6787 (init_heap): Likewise.
6788 * w32term.c (w32_read_socket): Update comment.
6789
1d3823c9
GM
67902012-06-13 Glenn Morris <rgm@gnu.org>
6791
c62ff706
GM
6792 * s/usg5-4-common.h, src/s/unixware.h:
6793 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
6794
1d3823c9
GM
6795 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
6796
bfe3e0a2
PE
67972012-06-13 Paul Eggert <eggert@cs.ucla.edu>
6798
6799 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
6800 * alloc.c (make_number) [!defined make_number]:
6801 Remove, as lisp.h always defines this now.
6802 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
6803 (roundup_size): Verify that it is a power of 2.
6804 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
6805 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
6806 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
6807 -DUSE_LSB_TAG=0, to override the automatically-selected default.
6808 USE_LSB_TAG now is always defined to be either 0 or 1.
6809 All uses changed.
6810 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
6811 code works fine either way, and efficiency is not a concern here,
6812 as the union type is for debugging, not for production.
6813 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
6814 Use an inline function on all platforms when using the union type,
6815 since this is simpler and 'static inline' can be used portably
6816 within Emacs now.
6817 (LISP_INITIALLY_ZERO): New macro.
6818 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
6819 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
6820
45fa9c0f
GM
68212012-06-12 Glenn Morris <rgm@gnu.org>
6822
b4492cba
GM
6823 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
6824
6825 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 6826
45fa9c0f
GM
6827 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
6828 Move BROKEN_SIGIO to configure.
6829
6830 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
6831 Move NO_TERMIO to configure.
6832
0e25d334
CY
68332012-06-12 Chong Yidong <cyd@gnu.org>
6834
6835 * image.c (imagemagick_load_image): Use MagickFlattenImage if
6836 MagickMergeImageLayers is undefined. Use pixel pusher loop if
6837 MagickExportImagePixels is undefined.
6838
43682bb6
PE
68392012-06-12 Paul Eggert <eggert@cs.ucla.edu>
6840
6841 * image.c (imagemagick_load_image): Remove unused label.
6842
a9be7d2b
GM
68432012-06-11 Glenn Morris <rgm@gnu.org>
6844
6845 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
6846 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
6847 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
6848 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
6849
3017f87f
SM
68502012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
6851
6852 * alloc.c (make_byte_code): New function.
6853 (Fmake_byte_code): Use it. Don't purify here.
6854 * lread.c (read1): Use it as well to avoid extra allocation.
6855
1b9b4cf4
CY
68562012-06-11 Chong Yidong <cyd@gnu.org>
6857
6858 * image.c (imagemagick_load_image): Implement transparency.
6859
95988fcf
AS
68602012-06-10 Andreas Schwab <schwab@linux-m68k.org>
6861
6862 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
6863 account for preceding backslashes. (Bug#11663)
6864
cd4eb164
CY
68652012-06-09 Chong Yidong <cyd@gnu.org>
6866
6867 * term.c: Support italics in capable terminals (Bug#9652).
6868 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
6869 (turn_on_face): Output using TS_enter_italic_mode if available.
6870 Don't handle unused blinking and alt-charset cases.
6871 (turn_off_face): Handle italic case; discard unused tty_blinking_p
6872 and tty_alt_charset_p cases.
6873 (tty_capable_p, init_tty): Support italics.
6874
6875 * termchar.h (struct tty_display_info): Add field for italics.
6876 Remove unused blink field.
6877
6878 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
6879 Handle slant.
6880
6881 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
6882 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
6883 tty_alt_charset_p. Add tty_italic_p.
6884
ff88beb8
MA
68852012-06-09 Michael Albinus <michael.albinus@gmx.de>
6886
6887 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
6888 dbus_type_is_basic if available.
6889 (xd_extract_signed, xd_extract_unsigned): Rename from
6890 extract_signed and extract_unsigned, respectively. Adapt callers.
6891
44286096
CY
68922012-06-09 Chong Yidong <cyd@gnu.org>
6893
1682701f
CY
6894 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
6895
44286096
CY
6896 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
6897 case (Bug#9752).
6898
d86feb17
PE
68992012-06-08 Paul Eggert <eggert@cs.ucla.edu>
6900
6901 * xdisp.c (vmessage): Treat frame message as multibyte.
6902 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
6903 would generate the diagnostic "Making \302\247 buffer-local while
6904 let-bound!".
6905
d5c20fe8
EZ
69062012-06-08 Eli Zaretskii <eliz@gnu.org>
6907
6908 * dispnew.c (showing_window_margins_p): Undo last change, which
6909 was done due to an inadvertent commit.
6910 (adjust_frame_glyphs_for_frame_redisplay): Do call
6911 showing_window_margins_p.
6912
513749ee
SM
69132012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
6914
6915 * eval.c (Fmake_var_non_special): New primitive.
6916 (syms_of_eval): Defsubr it.
6917 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
6918
d4a8f5c1
JB
69192012-06-08 Juanma Barranquero <lekktu@gmail.com>
6920
6921 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
6922 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
6923
8bbbc977
EZ
69242012-06-08 Eli Zaretskii <eliz@gnu.org>
6925
6926 * alloc.c (allocate_vectorlike): Fix last change.
6927
f3372c87
DA
69282012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
6929
6930 Block-based vector allocation of small vectors.
6931 * lisp.h (struct vectorlike_header): New field `nbytes',
6932 adjust comment accordingly.
6933 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
fc0c31f8 6934 to denote vector blocks. Adjust users (live_vector_p,
f3372c87
DA
6935 mark_maybe_pointer, valid_lisp_object_p) accordingly.
6936 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
6937 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
6938 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
6939 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
6940 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
6941 (roundup_size): New constant.
6942 (struct vector_block): New data type.
6943 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 6944 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
6945 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
6946 (sweep_vectors): New functions.
6947 (allocate_vectorlike): Return `zero_vector' as the only vector of
fc0c31f8 6948 0 items. Allocate new vector from block if vector size is less than
f3372c87
DA
6949 or equal to VBLOCK_BYTES_MAX.
6950 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
6951 (init_alloc_once): Add call to init_vectors.
6952
4f18a4ed
SM
69532012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
6954
6955 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
6956
86f158bc
PE
69572012-06-07 Paul Eggert <eggert@cs.ucla.edu>
6958
6959 * doprnt.c (doprnt): Truncate multibyte char correctly.
6960 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
6961 would mishandle a string argument "Xc" if X was a multibyte
6962 character of length 2: it would truncate after X's first byte
6963 rather than including all of X.
6964
c5cfcbe0
CY
69652012-06-06 Chong Yidong <cyd@gnu.org>
6966
6967 * buffer.c (word_wrap): Doc fix.
6968
c05cf390
PE
69692012-06-04 Paul Eggert <eggert@cs.ucla.edu>
6970
6971 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
6972
0c3461de
GM
69732012-06-03 Glenn Morris <rgm@gnu.org>
6974
6975 * xdisp.c (tool-bar-style): Doc fix.
6976
c71232db
UM
69772012-06-03 Ulrich Müller <ulm@gentoo.org>
6978
6979 * Makefile.in (PAXCTL): Define.
6980 (temacs$(EXEEXT)): Disable memory randomization for the temacs
6981 binary via PaX flags if the paxctl utility is available.
6982 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
6983 Restore PaX flags to their default. (Bug#11398)
6984
383f7350
CY
69852012-06-03 Chong Yidong <cyd@gnu.org>
6986
6987 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
6988 buffer (Bug#11226).
6989
5f2c76c6
CY
69902012-06-03 Chong Yidong <cyd@gnu.org>
6991
6992 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
6993 (note_mode_line_or_margin_highlight): If there is no help echo,
6994 use mode-line-default-help-echo. Handle the case where the mouse
6995 position is past the end of the mode line string.
6996
6997 * buffer.c (buffer_local_value_1): New function, split from
6998 Fbuffer_local_value; can return Qunbound.
6999 (Fbuffer_local_value): Use it.
7000 (Vmode_line_format): Docstring tweaks.
7001
773d47f6
PE
70022012-06-02 Paul Eggert <eggert@cs.ucla.edu>
7003
7004 * sysdep.c (system_process_attributes): Improve comment.
7005
f2d6a3df
SM
70062012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
7007
7008 * keyboard.c: Export real-this-command to Elisp.
7009 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
7010 and DEFVAR it. Update all users.
7011
63810350
PE
70122012-06-02 Paul Eggert <eggert@cs.ucla.edu>
7013
7bd5c1f4
PE
7014 * minibuf.c (Fassoc_string): Remove duplicate declaration.
7015
63810350
PE
7016 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
7017 Convert pctcpu and pctmem to Lisp float properly.
7018 Let the compiler fold better, as 100.0/0x8000 is exact.
7019
a2821611
AS
70202012-06-02 Andreas Schwab <schwab@linux-m68k.org>
7021
7022 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
7023 cons_block.
7024
5fceba1d
PE
70252012-06-01 Paul Eggert <eggert@cs.ucla.edu>
7026
7027 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
7028
c98ff5dd
DA
70292012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
7030
7031 For a 'struct window', replace some Lisp_Object fields to
7032 bitfields where appropriate, remove unused fields.
7033 * window.h (struct window): Remove unused 'last_mark_x' and
7034 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
7035 change it's type from Lisp_Object to bitfield.
7036 Change type of 'force_start', 'optional_new_start',
7037 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fc0c31f8 7038 fields from Lisp_Object to bitfield. Adjust users accordingly.
c98ff5dd 7039
ca34e0be
PE
70402012-05-31 Paul Eggert <eggert@cs.ucla.edu>
7041
7042 Pacify gcc -Wdouble-precision when using Xaw.
7043 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
7044 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
7045 Use 'float' consistently, rather than 'float' in most places
7046 and 'double' in a couple of places.
7047
efc00ab1 70482012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
7049
7050 * xdisp.c (handle_stop): Detect whether we have overlay strings
7051 loaded by testing it->current.overlay_string_index to be
7052 non-negative, instead of checking whether n_overlay_strings is
7053 positive. (Bug#11587)
7054
efc00ab1 70552012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
7056
7057 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
7058
7059 * doc.c (Fsubstitute_command_keys): Doc fix.
7060
efc00ab1 70612012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
7062
7063 * search.c (search_buffer): Remove calls to
7064 r_alloc_inhibit_buffer_relocation, as it is now called by
7065 maybe_unify_char, which was the cause of relocation of buffer text
7066 in bug#11519.
7067
efc00ab1 70682012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
7069
7070 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
7071 for the duration of call to load_charset, to avoid problems with
7072 callers of maybe_unify_char that access buffer text through C
7073 pointers.
7074
7075 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
7076 decrement the inhibition flag, instead of just setting or
7077 resetting it.
7078
ba93a187
PE
70792012-05-31 Paul Eggert <eggert@cs.ucla.edu>
7080
7081 Remove obsolete '#define static' cruft.
7082 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
7083 This #undef was "temporary" in 2000; it is no longer needed
7084 now that '#define static' has gone away.
7085 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
7086 (gray_bitmap_bits): Remove; no longer needed.
7087 All uses replaced with definiens.
7088 * xterm.c: Include "bitmaps/gray.xbm".
7089
9e4bf381
PE
70902012-05-30 Paul Eggert <eggert@cs.ucla.edu>
7091
7092 Clean up __executable_start, monstartup when --enable-profiling.
7093 The following changes affect the code only when profiling.
7094 * dispnew.c (__executable_start): Rename from safe_bcopy.
7095 Define only on platforms that need it.
7096 * emacs.c: Include <sys/gmon.h> when profiling.
7097 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
7098 (__executable_start): Remove decl, since lisp.h does it now.
7099 (safe_bcopy): Remove decl; no longer has that name.
7100 (main): Coalesce #if into single bit of code, for simplicity.
7101 Cast pointers to uintptr_t, since standard libraries want integers
7102 and not pointers.
7103 * lisp.h (__executable_start): New decl.
7104
32d72c2f
GM
71052012-05-31 Glenn Morris <rgm@gnu.org>
7106
7107 * image.c (Fimagemagick_types): Doc fix.
7108
baac5bc7
JM
71092012-05-30 Jim Meyering <meyering@redhat.com>
7110
7111 * callproc.c (Fcall_process_region): Include directory component
7112 in mkstemp error message (Bug#11586).
7113
72cb32cf
PE
71142012-05-30 Paul Eggert <eggert@cs.ucla.edu>
7115
7116 * alloc.c, lisp.h (make_pure_vector): Now static.
7117
61b108cc
SM
71182012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
7119
7120 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
7121 Move to byte-run.el.
7122 (Fautoload): Do the hash-doc more carefully.
7123 * data.c (Fdefalias): Purify definition, except for keymaps.
7124 (Qdefun): Move from eval.c.
7125 * lisp.h (Qdefun): Remove.
7126 * lread.c (read1): Tiny simplification.
7127
471fe23d
TN
71282012-05-29 Troels Nielsen <bn.troels@gmail.com>
7129
934f3f58 7130 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
7131 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
7132 Bug#9642, but explicitly check that the buffer the overlay would
7133 be moved to is live and rearrange lines to make sure that errors
7134 will not put the overlay in an inconsistent state.
7135 (Fdelete_overlay): Cosmetics.
7136
85d0efd1
EZ
71372012-05-28 Eli Zaretskii <eliz@gnu.org>
7138
7139 * w32term.c (my_bring_window_to_top): New function.
7140 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
7141 could be different from the original one.
7142 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
7143 (Bug#11513)
7144
7145 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
7146 by calling BringWindowToTop.
7147
7148 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
7149 (WM_EMACS_END): Increase by one.
7150
da92a98c
PE
71512012-05-28 Paul Eggert <eggert@cs.ucla.edu>
7152
7153 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
7154 This avoids undefined behavior that might cause the eassert
7155 to not catch an out-of-range value.
7156
74d1f848
JB
71572012-05-28 Juanma Barranquero <lekktu@gmail.com>
7158
7159 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
7160 Update dependencies.
7161
9e1a06fc
EZ
71622012-05-27 Eli Zaretskii <eliz@gnu.org>
7163
7164 * bidi.c (bidi_mirror_char): Fix last change.
7165
f3dd7312
AS
71662012-05-27 Andreas Schwab <schwab@linux-m68k.org>
7167
7168 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
7169 when referring to sectname field in printf format.
7170
81899c91
PE
71712012-05-27 Paul Eggert <eggert@cs.ucla.edu>
7172
57b81a9f
PE
7173 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
7174 Only r_alloc_inhibit_buffer_relocation needed to be added;
7175 the others were already declared.
7176
81899c91
PE
7177 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
7178 before checking whether it's out of range. Put the check inside
7179 eassert. See
7180 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
7181
33017faf 71822012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
7183
7184 * callproc.c (Fcall_process): Restore a line that was accidentally
7185 commented out in the 2011-02-13 change (bug#11547).
7186
33017faf 71872012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
7188
7189 * lisp.h [REL_ALLOC]: Add prototypes for external functions
7190 defined on ralloc.c.
7191
7192 * buffer.c [REL_ALLOC]: Remove prototypes of
7193 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
7194 they are now on lisp.h.
7195
7196 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
7197
7198 * search.c (search_buffer): Use it to inhibit relocation of buffer
7199 text while re_search_2 is doing its job, because re_search_2 is
7200 passed C pointers to buffer text. (Bug#11519)
7201
23415acf
EZ
7202 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
7203 Update value to 24.
7204
44e27368
EZ
7205 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
7206 state after an additional call to move_it_in_display_line_to, keep
7207 the values of it->max_ascent and it->max_descent found for the
7208 entire line.
7209 (pos_visible_p): Revert the comparison against bottom_y to what it
7210 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
7211 (Bug#11464)
7212
c1892f11
PE
72132012-05-26 Paul Eggert <eggert@cs.ucla.edu>
7214
7215 Fix coding-related core dumps with gcc -ftrapv.
7216 The code was computing A - B, where A and B are pointers, and B is
7217 random garbage. This can lead to core dumps on platforms that
7218 have special pointer registers, and it also leads to core dumps on
7219 x86-64 when compiled with gcc -ftrapv. The fix is to compute
7220 A - B only when B is initialized properly.
7221 * coding.c (coding_set_source, coding_set_destination): Return void.
7222 (coding_change_source, coding_change_destinations): New functions,
7223 with the old behaviors of coding_set_source and coding_set_destination.
7224 All callers that need an offset changed to use these new functions.
7225
eb7afdad
GM
72262012-05-26 Glenn Morris <rgm@gnu.org>
7227
7228 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
7229
f12fdf02
EZ
72302012-05-26 Eli Zaretskii <eliz@gnu.org>
7231
53a63be6 7232 Extend mouse support on W32 text-mode console.
61b108cc
SM
7233 * xdisp.c (draw_row_with_mouse_face):
7234 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 7235
eb3f6f01 7236 * w32console.c: Include window.h.
61b108cc
SM
7237 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
7238 New functions.
eb3f6f01
EZ
7239 (initialize_w32_display): Initialize mouse-highlight data.
7240
53a63be6
EZ
7241 * w32inevt.c: Include termchar.h and window.h.
7242 (do_mouse_event): Support mouse-autoselect-window. When the mouse
7243 moves, call note_mouse_highlight. If help_echo changed, call
7244 gen_help_event to produce help-echo message in the echo area.
7245 Call clear_mouse_face if mouse_face_hidden is set in the mouse
7246 highlight info.
7247
4cfd81f6
PE
72482012-05-26 Paul Eggert <eggert@cs.ucla.edu>
7249
7250 * lread.c (read1): Simplify slightly to avoid an overflow warning
7251 with GCC 4.7.0 on x86-64.
7252
4446092a
EZ
72532012-05-26 Eli Zaretskii <eliz@gnu.org>
7254
7255 * bidi.c (bidi_mirror_char): Revert last change: an int is
7256 definitely wide enough here.
7257
42b2a986 72582012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 7259
42b2a986 7260 Fix integer width and related bugs (Bug#9874).
eb106a49 7261 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
7262 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
7263 (string_bytes, check_sblock, allocate_string_data):
7264 (compact_small_strings, Fmake_bool_vector, make_string)
7265 (make_unibyte_string, make_multibyte_string)
7266 (make_string_from_bytes, make_specified_string)
7267 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
7268 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
7269 (mark_vectorlike):
7270 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7271 (allocate_pseudovector):
7272 Use int, not EMACS_INT, where int is wide enough.
7273 (inhibit_garbage_collection, Fgarbage_collect):
7274 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7275 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
7276 int might not be wide enough.
7277 (bidi_cache_search, bidi_cache_find, bidi_init_it)
7278 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
7279 (bidi_at_paragraph_end, bidi_find_paragraph_start)
7280 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
7281 (bidi_level_of_next_char, bidi_move_to_visually_next):
7282 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7283 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
7284 (Fkill_buffer, Fset_buffer_major_mode)
7285 (advance_to_char_boundary, Fbuffer_swap_text)
7286 (Fset_buffer_multibyte, overlays_at, overlays_in)
7287 (overlay_touches_p, struct sortvec, record_overlay_string)
7288 (overlay_strings, recenter_overlay_lists)
7289 (adjust_overlays_for_insert, adjust_overlays_for_delete)
7290 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
7291 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
7292 (Foverlay_recenter, last_overlay_modification_hooks_used)
7293 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
7294 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
7295 (validate_region): Omit unnecessary test for b <= e,
7296 since that's guaranteed by the previous test.
d311d28c
PE
7297 (adjust_overlays_for_delete): Avoid pos + length overflow.
7298 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
7299 (report_overlay_modification):
7300 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7301 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
7302 Omit pointer cast, which isn't needed anyway, and doesn't work
7303 after the EMACS_INT -> ptrdiff_t change.
02481186 7304 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
7305 * buffer.h: Adjust decls to match defn changes elsewhere.
7306 (struct buffer_text, struct buffer):
7307 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7308 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
7309 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
7310 not int, to avoid needless 32-bit limit on 64-bit hosts.
7311 (exec_byte_code): Use tighter memory-full test, one that checks
7312 for alloca overflow. Don't compute the address of the object just
7313 before an array, as that's not portable. Use EMACS_INT, not
7314 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
7315 * callint.c (Fcall_interactively):
7316 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7317 * callproc.c (call_process_kill, Fcall_process):
7318 Don't assume pid_t fits into an Emacs fixnum.
7319 (call_process_cleanup, Fcall_process, child_setup):
7320 Don't assume pid_t fits into int.
7321 (call_process_cleanup, Fcall_process, delete_temp_file)
7322 (Fcall_process_region):
7323 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7324 (Fcall_process): Simplify handling of volatile integers.
7325 Use int, not EMACS_INT, where int will do.
7326 * casefiddle.c (casify_object, casify_region, operate_on_word)
7327 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
7328 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7329 (casify_object): Avoid integer overflow when overallocating buffer.
7330 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 7331 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
7332 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
7333 * category.h (CATEGORYP): Don't assume arg is nonnegative.
7334 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
7335 integers are now checked earlier. All uses replaced with XINT.
7336 (ccl_driver):
7337 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7338 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
7339 (ccl_driver, Fregister_code_conversion_map):
7340 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
7341 (resolve_symbol_ccl_program): Check that vector header is in range.
7342 Always copy the vector, so that we can check its contents reliably
7343 now rather than having to recheck each instruction as it's being
7344 executed. Check that vector words fit in 'int'.
7345 (ccl_get_compiled_code, Fregister_ccl_program)
7346 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
7347 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
7348 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
7349 contents are in range.
7350 (Fccl_execute_on_string): Check that status is in range.
7351 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
7352 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
7353 Accept and return EMACS_INT, not int, because callers can pass values
7354 out of 'int' range.
7355 (c_string_width, strwidth, lisp_string_width, chars_in_text)
7356 (multibyte_chars_in_text, parse_str_as_multibyte)
7357 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
7358 (str_as_unibyte, str_to_unibyte, string_count_byte8)
7359 (string_escape_byte8, Fget_byte):
7360 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 7361 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
7362 avoid mishandling large integers.
7363 * character.h: Adjust decls to match defn changes elsewhere.
7364 * charset.c (load_charset_map_from_file, find_charsets_in_text)
7365 (Ffind_charset_region):
7366 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7367 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
7368 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 7369 Don't assume fixnum fits in int.
d311d28c
PE
7370 (load_charset_map_from_vector, Fmap_charset_chars):
7371 Remove now-unnecessary CHECK_NATNUMs.
7372 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
7373 Don't rely on undefined behavior with signed left shift overflow.
7374 Don't assume unsigned int fits into fixnum, or that fixnum fits
7375 into unsigned int. Don't require max_code to be a valid fixnum;
7376 that's not true for gb10830 4-byte on a 32-bit host. Allow
7377 invalid_code to be a cons, for the same reason. Require code_offset
7378 to be a character. Avoid int overflow if max_char is close
7379 to INT_MAX.
7380 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
7381 this is intended anyway and avoids some undefined behavior.
7382 (load_charset_map): Pass unsigned, not int, as 2nd arg of
7383 INDEX_TO_CODE_POINT, as that's what it expects.
7384 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
7385 * charset.h (DECODE_CHAR): Return int, not unsigned;
7386 this is what was intended anyway, and it avoids undefined behavior.
7387 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
7388 integer-overflow issues.
7389 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
7390 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
7391 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
7392 * chartab.c (Fmake_char_table, Fset_char_table_range)
7393 (uniprop_get_decoder, uniprop_get_encoder):
7394 Don't assume fixnum fits in int.
7395 * cmds.c (move_point): New function, that does the gist of
7396 Fforward_char and Fbackward_char, but does so while checking
7397 for integer overflow more accurately.
c96e5d6a 7398 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
7399 (Fforward_line, Fend_of_line, internal_self_insert)
7400 (internal_self_insert):
7401 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7402 Fix a FIXME, by checking for integer overflow when calculating
7403 target_clm and actual_clm.
7404 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 7405 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
7406 (ASSURE_DESTINATION, coding_alloc_by_realloc)
7407 (coding_alloc_by_making_gap, alloc_destination)
7408 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
7409 (encode_coding_utf_16, detect_coding_emacs_mule)
7410 (decode_coding_emacs_mule, encode_coding_emacs_mule)
7411 (detect_coding_iso_2022, decode_coding_iso_2022)
7412 (encode_invocation_designation, encode_designation_at_bol)
7413 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
7414 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
7415 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
7416 (encode_coding_ccl, encode_coding_raw_text)
7417 (detect_coding_charset, decode_coding_charset)
7418 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
7419 (produce_composition, produce_charset, produce_annotation)
7420 (decode_coding, handle_composition_annotation)
7421 (handle_charset_annotation, consume_chars, decode_coding_gap)
7422 (decode_coding_object, encode_coding_object, detect_coding_system)
7423 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
7424 (code_convert_region, code_convert_string)
8f50130c
PE
7425 (Fdefine_coding_system_internal)
7426 (coding_set_source, coding_set_destination):
d311d28c
PE
7427 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7428 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
7429 (Fdefine_coding_system_internal):
7430 Don't assume fixnums fit in int.
7431 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 7432 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
7433 (Funencodable_char_position, Fcheck_coding_systems_region)
7434 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 7435 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 7436 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 7437 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 7438 Don't access memory outside of the args array.
d311d28c 7439 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
7440 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
7441 result of ENCODE_CHAR.
d311d28c
PE
7442 * coding.h: Adjust decls to match defn changes elsewhere.
7443 (struct coding_system):
7444 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7445 * composite.c (get_composition_id, find_composition)
7446 (run_composition_function, update_compositions)
7447 (compose_text, composition_gstring_put_cache)
7448 (composition_gstring_p, composition_gstring_width)
7449 (fill_gstring_header, fill_gstring_body, autocmp_chars)
7450 (composition_compute_stop_pos, composition_reseat_it)
7451 (composition_update_it, struct position_record)
7452 (find_automatic_composition, composition_adjust_point)
7453 (Fcomposition_get_gstring, Ffind_composition_internal):
7454 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7455 (update_compositions):
7456 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7457 * composite.h: Adjust decls to match defn changes elsewhere.
7458 (struct composition):
7459 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7460 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
7461 Do not attempt to compute the address of the object just before a
7462 buffer; this is not portable.
7463 (Faref, Faset):
7464 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7465 (Faset): Use int, not EMACS_INT, where int is wide enough.
7466 (Fstring_to_number): Don't assume fixnums fit in int.
7467 (Frem): Don't assume arg is nonnegative.
7468 * dbusbind.c (xd_append_arg): Check for integers out of range.
7469 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 7470 (extract_signed, extract_unsigned): New functions.
243e0530
PE
7471 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
7472 (xd_get_connection_references): Return ptrdiff_t, not int.
7473 All uses changed.
7474 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
7475 (xd_read_message_1):
7476 Use int, not unsigned, where the dbus API uses int.
7477 (Fdbus_message_internal): Don't overflow mtype.
7478 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
7479 * dired.c (directory_files_internal, file_name_completion, scmp)
7480 (file_name_completion_stat):
7481 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7482 (file_name_completion): Don't overflow matchcount.
7483 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
7484 * dispextern.h: Adjust decls to match defn changes elsewhere.
7485 (struct text_pos, struct glyph, struct bidi_saved_info)
7486 (struct bidi_string_data, struct bidi_it, struct composition_it)
7487 (struct it):
7488 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7489 (struct display_pos, struct composition_it, struct it):
7490 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7491 * dispnew.c (increment_matrix_positions)
7492 (increment_row_positions, mode_line_string)
7493 (marginal_area_string):
7494 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 7495 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
7496 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7497 (duration_to_sec_usec): New function, to check for overflow better.
7498 (Fsleep_for, sit_for): Use it.
7499 * doc.c (get_doc_string, store_function_docstring):
7500 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7501 (get_doc_string, Fsnarf_documentation):
7502 Use int, not EMACS_INT, where int is wide enough.
7503 (get_doc_string):
7504 Use SAFE_ALLOCA, not alloca.
7505 Check for overflow when converting EMACS_INT to off_t.
7506 * doprnt.c (doprnt):
7507 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7508 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
7509 Don't assume uid_t fits into fixnum.
7510 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
7511 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
7512 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
7513 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
7514 (general_insert_function)
7515 (Finsert_char, make_buffer_string, make_buffer_string_both)
7516 (update_buffer_properties, Fbuffer_substring)
7517 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
7518 (Fsubst_char_in_region, check_translation)
7519 (Ftranslate_region_internal, save_restriction_restore, Fformat)
7520 (transpose_markers, Ftranspose_regions):
7521 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7522 (clip_to_bounds): Move to lisp.h as an inline function).
7523 (Fconstrain_to_field): Don't assume integers are nonnegative.
7524 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
7525 (Fsubst_char_in_region, Fsave_restriction):
7526 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7527 (Femacs_pid): Don't assume pid_t fits into fixnum.
7528 (lo_time): Use int, not EMACS_INT, when int suffices.
7529 (lisp_time_argument): Check for usec out of range.
7530 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
7531 (Fuser_login_name, Fuser_full_name): Signal an error
7532 if a uid argument is out of range, rather than relying on
7533 undefined behavior.
c8d5c857
PE
7534 (Fformat_time_string): Remove now-unnecessary check.
7535 lisp_time_argument checks for out-of-range usec now.
243e0530 7536 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
7537 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
7538 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
7539 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
7540 (init_cmdargs, Fdump_emacs):
7541 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7542 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
7543 the bottom (typically) 32 bits of the fixnum.
7544 * eval.c (specpdl_size, call_debugger):
7545 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7546 (when_entered_debugger, Fbacktrace_debug):
7547 Don't assume fixnum can fit in int.
7548 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
7549 the object just before a buffer; this is not portable.
7550 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
7551 (grow_specpdl, unbind_to):
7552 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7553 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
7554 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 7555 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
7556 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
7557 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
7558 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7559 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
7560 (a_write, e_write):
7561 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7562 (Fcopy_file, non_regular_nbytes, read_non_regular)
7563 (Finsert_file_contents):
7564 Use int, not EMACS_INT, where int is wide enough.
7565 (READ_BUF_SIZE): Verify that it fits in int.
7566 (Finsert_file_contents): Check that counts are in proper range,
7567 rather than assuming fixnums fit into ptrdiff_t etc.
7568 Don't assume fixnums fit into int.
125b3835 7569 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
7570 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
7571 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
7572 (string_char_to_byte, string_byte_to_char)
7573 (string_make_multibyte, string_to_multibyte)
7574 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
7575 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
7576 (substring_both, Fdelete, internal_equal, Ffillarray)
7577 (Fclear_string, mapcar1)
7578 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
7579 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
7580 (larger_vector, make_hash_table, maybe_resize_hash_table)
7581 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
7582 (Fmaphash, secure_hash):
7583 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7584 (concat): Check for string index and length overflow.
7585 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
7586 (Frequire):
7587 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7588 (larger_vector): New API (vec, incr_min, size_max) replaces old
7589 one (vec, new_size, init). This catches size overflow.
7590 INIT was removed because it was always Qnil.
7591 All callers changed.
7592 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
7593 the upper bound on a hash table index size.
7594 (make_hash_table, maybe_resize_hash_table): Use it.
7595 (secure_hash): Computer start_byte and end_byte only after
7596 they're known to be in ptrdiff_t range.
7597 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
7598 (Ffont_get_glyphs, Ffont_at):
7599 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7600 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
7601 (Flist_fonts, Fopen_font):
7602 Don't assume fixnum can fit in int.
7603 (check_gstring): Don't assume index can fit in int.
7604 (font_match_p): Check that fixnum is a character, not a nonnegative
7605 fixnum, since the later code needs to stuff it into an int.
7606 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
7607 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
7608 conversion overflow issues.
7609 (Fopen_font): Check for integer out of range.
7610 (Ffont_get_glyphs): Don't assume index can fit in int.
7611 * font.h: Adjust decls to match defn changes elsewhere.
7612 * fontset.c (reorder_font_vector): Redo score calculation to avoid
7613 integer overflow.
7614 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
7615 printmax_t, where ptrdiff_t is wide enough.
7616 (Finternal_char_font):
7617 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7618 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
7619 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
7620 (Fset_frame_position, x_set_frame_parameters)
7621 (x_set_line_spacing, x_set_border_width)
7622 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
7623 Check that fixnums are in proper range for system types.
7624 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
7625 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7626 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
7627 Use SAFE_ALLOCA_LISP, not alloca.
7628 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
7629 intptr_t is wide enough.
7630 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
7631 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
7632 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
7633 Check for fixnum out of range.
7634 * ftfont.c (ftfont_list): Don't assume index fits in int.
7635 Check that fixnums are in proper range for system types.
7636 (ftfont_shape_by_flt):
7637 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
7638 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
7639 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7640 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
7641 Check that fixnums are in proper range for system types.
7642 * gnutls.h: Adjust decls to match defn changes elsewhere.
7643 * gtkutil.c (xg_dialog_run):
7644 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7645 (update_frame_tool_bar):
7646 Check that fixnums are in proper range for system types.
7647 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 7648 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
7649 * indent.c (last_known_column, last_known_column_point):
7650 (current_column_bol_cache):
7651 (skip_invisible, current_column, check_display_width):
7652 (check_display_width, scan_for_column, current_column_1)
7653 (Findent_to, Fcurrent_indentation, position_indentation)
7654 (indented_beyond_p, Fmove_to_column, compute_motion):
7655 (Fcompute_motion, Fvertical_motion):
7656 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7657 (last_known_column_modified): Use EMACS_INT, not int.
7658 (check_display_width):
7659 (Fcompute_motion):
7660 Check that fixnums and floats are in proper range for system types.
7661 (compute_motion): Don't assume index or fixnum fits in int.
7662 (compute_motion, Fcompute_motion):
7663 Use int, not EMACS_INT, when it is wide enough.
7664 (vmotion): Omit local var start_hpos that is always 0; that way
7665 we don't need to worry about overflow in expressions involving it.
7666 * indent.h: Adjust decls to match defn changes elsewhere.
7667 (struct position):
7668 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7669 Use int, not EMACS_INT, where int is wide enough.
7670 Remove unused members ovstring_chars_done and tab_offset;
7671 all uses removed.
7672 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
7673 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
7674 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
7675 (make_gap, copy_text, insert, insert_and_inherit)
7676 (insert_before_markers, insert_before_markers_and_inherit)
7677 (insert_1, count_combining_before, count_combining_after)
7678 (insert_1_both, insert_from_string)
7679 (insert_from_string_before_markers, insert_from_string_1)
7680 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
7681 (adjust_after_replace, adjust_after_insert, replace_range)
7682 (replace_range_2, del_range, del_range_1, del_range_byte)
7683 (del_range_both, del_range_2, modify_region)
7684 (prepare_to_modify_buffer, signal_before_change)
7685 (signal_after_change, Fcombine_after_change_execute):
7686 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7687 * intervals.c (traverse_intervals, rotate_right, rotate_left)
7688 (balance_an_interval, split_interval_right, split_interval_left)
7689 (find_interval, next_interval, update_interval)
7690 (adjust_intervals_for_insertion, delete_node, delete_interval)
7691 (interval_deletion_adjustment, adjust_intervals_for_deletion)
7692 (static_offset_intervals, offset_intervals)
7693 (merge_interval_right, merge_interval_left, make_new_interval)
7694 (graft_intervals_into_buffer, temp_set_point_both)
7695 (temp_set_point, set_point, adjust_for_invis_intang)
7696 (set_point_both, move_if_not_intangible, get_property_and_range)
7697 (get_local_map, copy_intervals, copy_intervals_to_string)
7698 (compare_string_intervals, set_intervals_multibyte_1):
7699 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7700 * intervals.h: Adjust decls to match defn changes elsewhere.
7701 (struct interval):
7702 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7703 * keyboard.c (this_command_key_count, this_single_command_key_start)
7704 (before_command_key_count, before_command_echo_length, echo_now)
7705 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
7706 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
7707 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
7708 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
7709 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7710 (last_non_minibuf_size, last_point_position, echo_truncate)
7711 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
7712 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
7713 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
7714 (stuff_buffered_input):
7715 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7716 (last_auto_save, command_loop_1, read_char):
7717 Use EMACS_INT, not int, to avoid integer overflow.
7718 (record_char): Avoid overflow in total_keys computation.
7719 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
7720 * keyboard.h: Adjust decls to match defn changes elsewhere.
7721 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
7722 (Fkey_description, Fdescribe_vector, Flookup_key):
7723 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7724 (click_position): New function, to check that positions are in range.
7725 (Fcurrent_active_maps):
7726 (describe_command):
7727 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7728 (Faccessible_keymaps, Fkey_description):
7729 (preferred_sequence_p):
7730 Don't assume fixnum can fit into int.
7731 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
7732 Check for integer overflow in size calculations.
7733 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
7734 avoid mishandling large integers.
7735 * lisp.h: Adjust decls to match defn changes elsewhere.
7736 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
7737 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
7738 (struct Lisp_Marker):
7739 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7740 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
7741 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
7742 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
7743 All callers changed.
7744 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
7745 Assume the arg has valid form, since it always does.
7746 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
7747 unsigned integer system type.
7748 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
7749 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
7750 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7751 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
7752 (duration_to_sec_usec): New decl.
7753 * lread.c (read_from_string_index, read_from_string_index_byte)
7754 (read_from_string_limit, readchar, unreadchar, openp)
7755 (read_internal_start, read1, oblookup):
7756 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7757 (Fload, readevalloop, Feval_buffer, Feval_region):
7758 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7759 (openp): Check for out-of-range argument to 'access'.
7760 (read1): Use int, not EMACS_INT, where int is wide enough.
7761 Don't assume fixnum fits into int.
6efdadfd 7762 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
7763 (read_filtered_event): Use duration_to_sec_usec
7764 to do proper overflow checking on durations.
d311d28c
PE
7765 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
7766 in size calculation.
7767 (Fexecute_kbd_macro):
7768 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7769 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
7770 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
7771 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
7772 (set_marker_both, set_marker_restricted_both, marker_position)
7773 (marker_byte_position, Fbuffer_has_markers_at):
7774 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7775 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 7776 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
7777 It now merely ensures that the menu is large enough, without
7778 necessarily growing it, as this avoids some integer overflow issues.
7779 All callers changed.
7780 (keymap_panes, parse_single_submenu, Fx_popup_menu):
7781 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7782 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
7783 Use SAFE_ALLOCA_LISP, not alloca.
7784 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
7785 to EMACS_INT. Check that fixnums are in proper range for system types.
7786 * minibuf.c (minibuf_prompt_width, string_to_object)
7787 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
7788 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
7789 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7790 (get_minibuffer, read_minibuf_unwind):
7791 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7792 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
7793 this simplifies overflow checking. All callers changed.
7794 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
7795 (Ftest_completion):
7796 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7797 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
7798 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
7799 Check that fixnums are in proper range for system types.
7800 (Fx_create_frame, Fx_show_tip):
7801 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7802 * nsfont.m (ns_findfonts, nsfont_list_family):
7803 Don't assume fixnum fits in long.
7804 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
7805 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7806 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
7807 wide enough.
17fdb222 7808 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
7809 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7810 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
7811 (PRINTDECLARE, PRINTPREPARE):
7812 (strout, print_string):
7813 (print, print_preprocess, print_check_string_charset_prop)
7814 (print_object):
7815 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7816 (PRINTDECLARE):
7817 (temp_output_buffer_setup, Fprin1_to_string, print_object):
7818 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7819 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 7820 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 7821 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
7822 (print_error_message): Use SAFE_ALLOCA, not alloca.
7823 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
7824 (print_depth, new_backquote_output, print_number_index):
7825 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
7826 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
7827 (Fset_process_window_size, Fformat_network_address)
7828 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 7829 (sigchld_handler):
d311d28c 7830 Check that fixnums are in proper range for system types.
d44287d4 7831 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
7832 Check for process-ids out of pid_t range rather than relying on
7833 undefined behavior.
e4d81efc 7834 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
7835 (Fformat_network_address, read_process_output, send_process)
7836 (Fprocess_send_region, status_notify):
7837 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7838 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
7839 (wait_reading_process_output, read_process_output, exec_sentinel):
7840 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7841 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
7842 (Faccept_process_output): Use duration_to_sec_usec to do proper
7843 overflow checking on durations.
dde14581
PE
7844 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
7845 Don't assume pid_t fits in int.
02481186
PE
7846 * process.h (struct Lisp_Process): Members tick and update_tick
7847 are now of type EMACS_INT, not int.
b62b53e8
PE
7848 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
7849 configured --with-wide-int.
d311d28c
PE
7850 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
7851 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
7852 * search.c (looking_at_1, string_match_1):
7853 (fast_string_match, fast_c_string_match_ignore_case)
7854 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
7855 (scan_newline, find_before_next_newline, search_command)
7856 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
7857 (set_search_regs, wordify):
7858 (Freplace_match):
7859 (Fmatch_data):
7860 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7861 (string_match_1, search_buffer, set_search_regs):
7862 (Fmatch_data):
7863 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7864 (wordify): Check for overflow in size calculation.
7865 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
7866 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
7867 Check that fixnums are in proper range for system types.
7868 * sound.c (struct sound_device)
7869 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
7870 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7871 (Fplay_sound_internal):
7872 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 7873 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
7874 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
7875 (Fparse_partial_sexp):
7876 Don't assume fixnums can fit in int.
7877 (struct lisp_parse_state, find_start_pos, find_start_value)
7878 (find_start_value_byte, find_start_begv)
7879 (update_syntax_table, char_quoted, dec_bytepos)
7880 (find_defun_start, prev_char_comend_first, back_comment):
7881 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
7882 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
7883 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7884 (Finternal_describe_syntax_value): Check that match_lisp is a
7885 character, not an integer, since the code stuffs it into int.
7886 (scan_words, scan_sexps_forward):
7887 Check that fixnums are in proper range for system types.
7888 (Fforward_word):
7889 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7890 (scan_sexps_forward):
7891 Use CHARACTERP, not INTEGERP, since the value must fit into int.
7892 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
7893 * syntax.h: Adjust decls to match defn changes elsewhere.
7894 (struct gl_state_s):
7895 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
7896 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
7897 MOST_POSITIVE_FIXNUM.
d311d28c
PE
7898 * sysdep.c (wait_for_termination_1, wait_for_termination)
7899 (interruptible_wait_for_termination, mkdir):
7900 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
7901 (emacs_read, emacs_write):
7902 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
7903 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
7904 and double all fit in int.
d311d28c
PE
7905 * term.c (set_tty_color_mode):
7906 Check that fixnums are in proper range for system types.
7907 * termhooks.h (struct input_event):
7908 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7909 * textprop.c (validate_interval_range, interval_of)
7910 (Fadd_text_properties, set_text_properties_1)
7911 (Fremove_text_properties, Fremove_list_of_text_properties)
7912 (Ftext_property_any, Ftext_property_not_all)
7913 (copy_text_properties, text_property_list, extend_property_ranges)
7914 (verify_interval_modification):
7915 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7916 (Fnext_single_char_property_change)
7917 (Fprevious_single_char_property_change):
7918 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
7919 (copy_text_properties):
7920 Check for integer overflow in index calculation.
d311d28c
PE
7921 * undo.c (last_boundary_position, record_point, record_insert)
7922 (record_delete, record_marker_adjustment, record_change)
7923 (record_property_change):
7924 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7925 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
7926 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7927 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
7928 (Fx_hide_tip, Fx_file_dialog):
7929 * w32menu.c (set_frame_menubar):
7930 Use ptrdiff_t, not int, for consistency with rest of code.
7931 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
7932 (select_window, Fdelete_other_windows_internal)
7933 (window_scroll_pixel_based, window_scroll_line_based)
7934 (Frecenter, Fset_window_configuration):
7935 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7936 (Fset_window_hscroll, run_window_configuration_change_hook)
7937 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 7938 (Fscroll_other_window, Frecenter):
d311d28c
PE
7939 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7940 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
7941 Don't assume fixnum fits in int.
7942 (Fset_window_scroll_bars):
7943 Check that fixnums are in proper range for system types.
7944 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
7945 (string_pos, c_string_pos, number_of_chars, init_iterator)
7946 (in_ellipses_for_invisible_text_p, init_from_display_pos)
7947 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
7948 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
7949 (face_before_or_after_it_pos, handle_invisible_prop)
7950 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
7951 (display_prop_intangible_p, string_buffer_position_lim)
7952 (string_buffer_position, handle_composition_prop, load_overlay_strings)
7953 (get_overlay_strings_1, get_overlay_strings)
7954 (iterate_out_of_display_property, forward_to_next_line_start)
7955 (back_to_previous_visible_line_start, reseat, reseat_to_string)
7956 (get_next_display_element, set_iterator_to_next)
7957 (get_visually_first_element, compute_stop_pos_backwards)
7958 (handle_stop_backwards, next_element_from_buffer)
7959 (move_it_in_display_line_to, move_it_in_display_line)
7960 (move_it_to, move_it_vertically_backward, move_it_by_lines)
7961 (add_to_log, message_dolog, message_log_check_duplicate)
7962 (message2, message2_nolog, message3, message3_nolog
7963 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
7964 (current_message_1, truncate_echo_area, truncate_message_1)
7965 (set_message, set_message_1, store_mode_line_noprop)
7966 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
7967 (text_outside_line_unchanged_p, check_point_in_composition)
7968 (reconsider_clip_changes)
7969 (redisplay_internal, set_cursor_from_row, try_scrolling)
7970 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
7971 (redisplay_window, find_last_unchanged_at_beg_row)
7972 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
7973 (trailing_whitespace_p, find_row_edges, display_line)
7974 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
7975 (display_mode_element, store_mode_line_string)
7976 (pint2str, pint2hrstr, decode_mode_spec)
7977 (display_count_lines, display_string, draw_glyphs)
7978 (x_produce_glyphs, x_insert_glyphs)
7979 (rows_from_pos_range, mouse_face_from_buffer_pos)
7980 (fast_find_string_pos, mouse_face_from_string_pos)
7981 (note_mode_line_or_margin_highlight, note_mouse_highlight):
7982 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
7983 (safe_call, init_from_display_pos, handle_fontified_prop)
7984 (handle_single_display_spec, load_overlay_strings)
7985 (with_echo_area_buffer, setup_echo_area_for_printing)
7986 (display_echo_area, echo_area_display)
7987 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
7988 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
7989 (redisplay_window, dump_glyph_row, display_mode_line)
7990 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 7991 (handle_display_spec, display_prop_string_p):
d311d28c
PE
7992 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
7993 (handle_single_display_spec, build_desired_tool_bar_string)
7994 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
7995 (get_specified_cursor_type):
7996 Check that fixnums are in proper range for system types.
7997 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
7998 (Flookup_image_map):
7999 Don't assume fixnums fit in int.
8000 (compare_overlay_entries):
8001 Avoid mishandling comparisons due to subtraction overflow.
8002 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
8003 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
8004 (handle_tool_bar_click):
8005 Use int, not unsigned, since we prefer signed and the signedness
8006 doesn't matter here.
8007 (get_next_display_element, next_element_from_display_vector):
8008 Use int, not EMACS_INT, when int is wide enough.
8009 (start_hourglass): Use duration_to_sec_usec to do proper
8010 overflow checking on durations.
8011 * xfaces.c (Fbitmap_spec_p):
8012 Check that fixnums are in proper range for system types.
8013 (compare_fonts_by_sort_order):
8014 Avoid mishandling comparisons due to subtraction overflow.
8015 (Fx_family_fonts, realize_basic_faces):
8016 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8017 (Fx_family_fonts):
8018 Don't assume fixnum fits in int.
8019 Use SAFE_ALLOCA_LISP, not alloca.
8020 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
8021 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
8022 (face_at_buffer_position, face_for_overlay_string)
8023 (face_at_string_position):
8024 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8025 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
8026 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
8027 (Fx_show_tip):
8028 Check that fixnums are in proper range for system types.
8029 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
8030 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
8031 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8032 (Fx_change_window_property): Don't assume fixnums fit in int.
8033 * xfont.c (xfont_chars_supported):
8034 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8035 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
8036 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
8037 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8038 * xml.c (parse_region):
8039 * xrdb.c (magic_file_p):
8040 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
8041 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
8042 (x_get_local_selection, x_reply_selection_request)
8043 (x_handle_selection_request, wait_for_property_change):
8044 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8045 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
8046 short is wide enough.
8047 (x_send_client_event): Don't assume fixnum fits in int.
8048 * xterm.c (x_x_to_emacs_modifiers):
8049 Don't assume EMACS_INT overflows nicely into int.
8050 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
8051 may come from Lisp.
8052 (handle_one_xevent): NATNUMP can eval its arg twice.
8053 (x_connection_closed):
8054 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
8055 * xterm.h: Adjust decls to match defn changes elsewhere.
8056 (struct scroll_bar): Use struct vectorlike_header
8057 rather than rolling our own approximation.
8058 (SCROLL_BAR_VEC_SIZE): Remove; not used.
8059
c6574eb5
GM
80602012-05-25 Glenn Morris <rgm@gnu.org>
8061
8062 * lisp.mk (lisp): Update for more files being compiled now.
8063
e8d32c7e
SM
80642012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
8065
48def666
SM
8066 * lread.c: Remove `read_pure' which makes no difference.
8067 (read_pure): Remove var.
8068 (unreadpure): Remove function.
8069 (readevalloop): Don't call read_list with -1 flag.
8070 (read1, read_vector): Don't test read_pure any more.
8071 (read_list): Simplify.
8072
e8d32c7e
SM
8073 * fileio.c, character.h: Minor style tweaks.
8074
4b2addb7
DA
80752012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
8076
8077 * window.h (clip_changed): Remove useless declaration.
8078
584461b2
JB
80792012-05-22 Juanma Barranquero <lekktu@gmail.com>
8080
8081 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
8082 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
8083
34374650
PE
80842012-05-22 Paul Eggert <eggert@cs.ucla.edu>
8085
8086 Remove src/m/*.
8087 This directory predates autoconf and is no longer needed nowadays.
8088 Move its few remaining bits of functionality to where they're needed.
8089 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
8090 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
8091 * m/template.h: Remove.
8092 * Makefile.in (M_FILE): Remove. All uses removed.
8093 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
8094 * lisp.h (USE_LSB_TAG):
8095 * mem-limits.h (EXCEEDS_LISP_PTR):
8096 Use VAL_MAX, not VALBITS, in #if.
8097 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
8098 (EMACS_UINT): Define unconditionally now.
8099 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
8100 (BITS_PER_EMACS_INT): New constants, replacing
8101 what used to be in config.h, but not useful in #if.
8102 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
8103 define them any more.
8104 (VAL_MAX): New macro.
8105 (VALMASK): Use it.
8106 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
8107 BITS_PER_EMACS_INT, in #if.
8108 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
8109 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
8110 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
8111 * s/ms-w32.h (DATA_START):
8112 Move here from removed file m/intel386.h.
8113 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
8114 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
8115
261cb4bb
PE
81162012-05-21 Paul Eggert <eggert@cs.ucla.edu>
8117
8118 Assume C89 or later.
8119 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
8120 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
8121 (xrealloc):
8122 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
8123 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
8124 * textprop.c, tparam.c (NULL): Remove.
8125 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
8126 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
8127 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
8128 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
8129 * xterm.c (input_signal_count): Assume volatile works.
8130
ff23cd9f
KB
81312012-05-21 Ken Brown <kbrown@cornell.edu>
8132
8133 * xgselect.c (xg_select): Fix first argument in call to 'select'
8134 (bug#11508).
8135
1b170bc6
KB
81362012-05-20 Ken Brown <kbrown@cornell.edu>
8137
8138 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 8139 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 8140
b2f4d39f
KB
81412012-05-19 Ken Brown <kbrown@cornell.edu>
8142
8143 * xfns.c (x_in_use): Remove `static' qualifier.
8144 * xterm.h (x_in_use): Declare.
8145 * xgselect.c: Include xterm.h.
8146 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
8147 and `display_arg' (bug#9754).
8148
003fdae2
PE
81492012-05-19 Paul Eggert <eggert@cs.ucla.edu>
8150
9232a6d9
PE
8151 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
8152
003fdae2
PE
8153 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
8154 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
8155
784b56e2
EZ
81562012-05-18 Eli Zaretskii <eliz@gnu.org>
8157
8158 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
8159
8160 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 8161 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
8162
8163 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
8164 reference to image_cache->refcount.
8165 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
8166
a0a79cde
JL
81672012-05-17 Juri Linkov <juri@jurta.org>
8168
8169 * search.c (Fword_search_regexp, Fword_search_backward)
8170 (Fword_search_forward, Fword_search_backward_lax)
8171 (Fword_search_forward_lax): Move functions to isearch.el
8172 (bug#10145, bug#11381).
8173
b0572523
PE
81742012-05-16 Paul Eggert <eggert@cs.ucla.edu>
8175
8176 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
8177
9660f5fc
SM
81782012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
8179
8180 * lread.c (init_obarray): Declare Qt and Qnil as special.
8181
4374de83
GM
81822012-05-14 Glenn Morris <rgm@gnu.org>
8183
8184 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 8185 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 8186
dc44c39a
PE
81872012-05-14 Paul Eggert <eggert@cs.ucla.edu>
8188
078c97cb
PE
8189 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
8190
dc44c39a
PE
8191 * unexaix.c: Port to more-recent AIX compilers.
8192 (report_error, report_error_1, make_hdr, copy_sym)
8193 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
8194 Make arguments const char *, not char *, to avoid violations of C
8195 standard and to fix some AIX warnings reported by Gilles Pion.
8196
e18afed7 81972012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
8198
8199 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
8200 already have overlays loaded.
8201 (handle_single_display_spec): Before returning without displaying
8202 fringe bitmap, synchronize the bidi iterator with the main display
8203 iterator, by calling iterate_out_of_display_property.
8204 (iterate_out_of_display_property): Detect buffer iteration by
8205 testing that it->string is a Lisp string.
8206 (get_next_display_element): When the current object is exhausted,
8207 and there's something on it->stack, call set_iterator_to_next to
8208 proceed with what's on the stack, instead of returning zero.
8209 (set_iterator_to_next): If called at the end of a Lisp string,
8210 proceed to consider_string_end without incrementing string
8211 position. Don't increment display vector index past the end of
8212 the display vector. (Bug#11417)
c8fb9dc6
EZ
8213 (pos_visible_p): Don't report a position visible when move_it_to
8214 stopped at the last line of window, which happens to be scanned
8215 backwards by the bidi iteration. (Bug#11464)
ac268e67 8216
e18afed7 82172012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
8218
8219 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
8220 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
8221 are on a TTY, and thus unable to display on the fringes.
8222 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
8223 so we need to signal to the caller that this is a "replacing"
8224 display spec. This fixes display when the spec is invalid or we
8225 are on a TTY.
8226
e18afed7 82272012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
8228
8229 * unexaix.c (make_hdr): Fix typo in prototype.
8230 This bug broke the build on AIX. Problem reported by Gilles Pion.
8231
9d0a235a
MA
82322012-05-14 Michael Albinus <michael.albinus@gmx.de>
8233
8234 * keyboard.c (kbd_buffer_get_event): Read special events also in
8235 batch mode. (Bug#11415)
8236
9e6b06ed
GM
82372012-05-12 Glenn Morris <rgm@gnu.org>
8238
8239 * ns.mk: Update for ns_appbindir no longer having trailing "/".
8240
c1a1d7a3
EZ
82412012-05-12 Eli Zaretskii <eliz@gnu.org>
8242
8243 * lisp.mk (lisp): Add newcomment.elc.
8244
3fe7cdc8
GM
82452012-05-12 Glenn Morris <rgm@gnu.org>
8246
8247 * Makefile.in (MKDIR_P): New, set by configure.
8248 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
8249
53f7d2c0
PE
82502012-05-11 Paul Eggert <eggert@cs.ucla.edu>
8251
8252 Remove unused function hourglass_started.
8253 * dispextern.h (hourglass_started):
8254 * w32fns.c (hourglass_started):
8255 * xdisp.c (hourglass_started): Remove.
8256
75aafb17
JB
82572012-05-10 Juanma Barranquero <lekktu@gmail.com>
8258
8259 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
8260 Update dependencies.
8261
12959e8e
PE
82622012-05-10 Paul Eggert <eggert@cs.ucla.edu>
8263
97107e2e
PE
8264 * xgselect.c (xg_select): Put maxfds+1 into a var.
8265 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
8266
12959e8e
PE
8267 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
8268
836d29b3
DA
82692012-05-10 Dave Abrahams <dave@boostpro.com>
8270
8271 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
8272 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
8273
5cb67954
MA
82742012-05-09 Michael Albinus <michael.albinus@gmx.de>
8275
8276 * dbusbind.c (xd_registered_buses): New internal Lisp object.
8277 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
8278 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
8279 Initialize xd_registered_buses.
8280
3478ec45
PE
82812012-05-09 Paul Eggert <eggert@cs.ucla.edu>
8282
b263a6b0
PE
8283 Untag more efficiently if USE_LSB_TAG.
8284 This is based on a proposal by YAMAMOTO Mitsuharu in
8285 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
8286 For an admittedly artificial (nth 8000 longlist) benchmark on
8287 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
8288 Emacs's overall text size by 1%.
8289 * lisp.h (XUNTAG): New macro.
8290 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
8291 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
8292 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
8293 * eval.c (Fautoload):
8294 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
8295 * frame.h (XFRAME): Use XUNTAG.
8296
3478ec45
PE
8297 Port recent dbusbind.c changes to 32-bit --with-wide-int.
8298 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
8299 Remove unportable assumptions about print widths of types like
8300 dbus_uint32_t.
8301 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
8302 intptr_t when converting between pointer and integer, to avoid GCC
8303 warnings about wrong width.
8304
666b903b 83052012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
8306
8307 * w32proc.c (new_child): Force Windows to reserve only 64KB of
8308 stack for each reader_thread, instead of defaulting to 8MB
8309 determined by the linker. This avoids failures in creating
8310 subprocesses on Windows 7, see the discussion in this thread:
8311 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
8312
b120cc17
JC
83132012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
8314
8315 Fix up display of the *Minibuf-0* buffer in the mini window.
8316 * keyboard.c (read_char): Don't clear the echo area if there's no
8317 message to clear.
8318 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 8319 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 8320
9a4b36f8
MA
83212012-05-07 Michael Albinus <michael.albinus@gmx.de>
8322
8323 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
8324 batch mode.
8325
e5f9458f
CY
83262012-05-06 Chong Yidong <cyd@gnu.org>
8327
8328 * lisp.mk (lisp): Update.
8329
eceeb5fc 83302012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
8331
8332 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
8333
71873e2b
SM
83342012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
8335
8336 * data.c (PUT_ERROR): New macro.
8337 (syms_of_data): Use it. Add new error type `user-error'.
8338 * undo.c (user_error): New function.
8339 (Fprimitive_undo): Use it.
8340 * print.c (print_error_message): Adjust print style for `user-error'.
8341 * keyboard.c (user_error): New function.
8342 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
8343
ab0fa4e4
PE
83442012-05-03 Paul Eggert <eggert@cs.ucla.edu>
8345
8346 Do not limit current-time-string to years 1000..9999.
8347 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
8348 (Fcurrent_time_string): Support any year that is supported by the
8349 underlying localtime representation. Don't use asctime, as it
8350 has undefined behavior for years outside the range -999..9999.
8351
7ed806a7
PE
83522012-05-02 Paul Eggert <eggert@cs.ucla.edu>
8353
8354 Fix race conditions involving setenv, gmtime, localtime, asctime.
8355 Without this fix, interrupts could mess up code that uses these
8356 nonreentrant functions, since setting TZ invalidates existing
8357 tm_zone or tzname values, and since most of these functions return
8358 pointers to static storage.
8359 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
8360 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
8361 Grow the critical sections to include not just invoking
8362 localtime/gmtime, but also accessing these functions' results
8363 including their tm_zone values if any, and any related TZ setting.
8364 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
8365 so that the struct tm is saved in the critical section.
8366 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
8367 motivated by the fact that memory allocation needs to be outside
8368 the critical section.
8369
0c16dfed
DA
83702012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
8371
8372 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
8373 with RESET_INTERVAL.
8374
8375 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
8376 Remove duplicated buffer name initialization.
8377
3f83ace8
JM
83782012-05-02 Jim Meyering <jim@meyering.net>
8379
8380 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
8381
c7b8541e
JM
8382 * xfns.c (x_window): Use xstrdup (Bug#11375).
8383
90207a15 83842012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
8385
8386 * xdisp.c (pos_visible_p): If already at a newline from the
8387 display string before the 'while' loop, don't walk back the glyphs
8388 from it3.glyph_row. Solves assertion violation when the display
8389 string begins with a newline (egg.el). (Bug#11367)
8390
b593d6a9
AH
83912012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
8392
8393 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
8394 Move to simple.el.
8395
4737362e
GM
83962012-05-01 Glenn Morris <rgm@gnu.org>
8397
99cf43f9
GM
8398 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
8399 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
8400 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
8401 All were removed before 23.1.
8402
9311dcff
GM
8403 * dispnew.c: Remove HAVE_LIBNCURSES test;
8404 it is always true on relevant platforms.
8405
4d5c6349
GM
8406 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
8407 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
8408
4737362e
GM
8409 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
8410
74dd3a6b
AS
84112012-04-30 Andreas Schwab <schwab@linux-m68k.org>
8412
8413 * .gdbinit (xpr): Remove checks for no longer existing misc types.
8414 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
8415 Remove.
8416
13c379ee
PE
84172012-04-28 Paul Eggert <eggert@cs.ucla.edu>
8418
8419 Do not avoid creating empty evaporating overlays (Bug#9642).
8420 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
8421 That is, do not delete an evaporating overlay if it becomes
8422 empty after its bounds are adjusted to fit within its buffer.
8423 This fix caused other problems, and I'm reverting it until we get
8424 to the bottom of them.
8425
a8e7d6d7 84262012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
8427
8428 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
8429
a8e7d6d7 84302012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
8431
8432 * xdisp.c (pos_visible_p): If the window start position is beyond
8433 ZV, start the display from buffer beginning. Prevents assertion
8434 violation in init_iterator when the minibuffer window is scrolled
8435 via the scroll bar.
8436
8437 * window.c (window_scroll_pixel_based): Likewise.
8438
a8e7d6d7 84392012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
8440
8441 * keymap.c (where_is_internal): Doc fix (Bug#10872).
8442
a8e7d6d7 84432012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
8444
8445 * fileio.c (Fcopy_file, Fset_file_selinux_context):
8446 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
8447
a8e7d6d7 84482012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 8449
b593d6a9
AH
8450 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
8451 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 8452
1c6900d9
EZ
84532012-04-26 Eli Zaretskii <eliz@gnu.org>
8454
4c3fa1d9
EZ
8455 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
8456 display element, check also the underlying string or buffer
8457 character. (Bug#11341)
8458
1c6900d9
EZ
8459 * w32menu.c: Include w32heap.h.
8460 (add_menu_item): If the call to AppendMenuW (via
8461 unicode_append_menu) fails, disable Unicode menus only if we are
8462 running on Windows 9X/Me.
8463
42bf8205
AS
84642012-04-24 Andreas Schwab <schwab@linux-m68k.org>
8465
8466 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
8467 (xgetint): Add missing shift for LSB tags.
8468
b1bac16e
MR
84692012-04-24 Martin Rudalics <rudalics@gmx.at>
8470
8471 * keyboard.c (read_char): Don't wipe echo area for select window
8472 events: These might get delayed via `mouse-autoselect-window'
8473 (Bug#11304).
8474
d69621cc
JB
84752012-04-24 Juanma Barranquero <lekktu@gmail.com>
8476
8477 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
8478 manipulation of :loaded-from data.
8479
02fd101b
JB
84802012-04-23 Juanma Barranquero <lekktu@gmail.com>
8481
8482 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
8483 now a cons (bug#11311).
8484
888bec30
PE
84852012-04-23 Paul Eggert <eggert@cs.ucla.edu>
8486
89a438bd
PE
8487 Do not create empty overlays with the evaporate property (Bug#9642).
8488 * buffer.c (Fmove_overlay): Delete an evaporating overlay
8489 if it becomes empty after its bounds are adjusted to fit within
8490 its buffer. Without this fix, in a nonempty buffer (let ((o
8491 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
8492 yields an empty overlay that has the evaporate property, which is
8493 not supposed to happen.
8494
1068fe4d
PE
8495 Fix minor GTK3 problems found by static checking.
8496 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
8497 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
8498 (struct _EmacsFixedClass, emacs_fixed_get_type):
8499 Move decls here from emacsgtkfixed.h, since they needn't be public.
8500 (emacs_fixed_get_type): Now static.
8501 (emacs_fixed_class_init): Omit unused local.
8502 (emacs_fixed_child_type): Remove; unused.
8503 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
8504 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
8505 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
8506 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
8507 (EMACS_FIXED_GET_CLASS): Remove; unused.
8508 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
8509
888bec30
PE
8510 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
8511 Problem reported by Juanma Barranquero for Windows -Wunused-function.
8512
de85e130
PE
85132012-04-22 Paul Eggert <eggert@cs.ucla.edu>
8514
d0baac98 8515 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 8516 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
8517 (__malloc_size_t, __malloc_ptrdiff_t):
8518 Remove. All uses removed, replaced by the definiens if needed,
8519 since we can assume C89 or better now.
8520 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
8521 (protect_malloc_state, align, get_contiguous_space)
8522 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
8523 (malloc_atfork_handler_child, malloc_enable_thread)
8524 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
8525 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
8526 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
8527 (special_realloc, _realloc_internal_nolock, _realloc_internal)
8528 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
8529 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
8530 Define using prototypes, not old style.
8531 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
8532 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
8533 (align): Don't assume that signed integer overflow wraps around.
8534 Omit unused local var.
8535 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
8536 (_free_internal_nolock, memalign, mallochook, reallochook):
8537 Omit no-longer-needed casts.
8538 (valloc): Use getpagesize, not __getpagesize.
8539 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
8540 (struct hdr): The 'magic' member is now size_t, not unsigned long.
8541
de85e130
PE
8542 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
8543
dcbf5805
MA
85442012-04-22 Michael Albinus <michael.albinus@gmx.de>
8545
8546 Move functions from C to Lisp. Make non-blocking method calls
8547 the default. Implement further D-Bus standard interfaces.
8548
8549 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
8550 (QCdbus_request_name_allow_replacement)
8551 (QCdbus_request_name_replace_existing)
8552 (QCdbus_request_name_do_not_queue)
8553 (QCdbus_request_name_reply_primary_owner)
8554 (QCdbus_request_name_reply_in_queue)
8555 (QCdbus_request_name_reply_exists)
8556 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
8557 (QCdbus_registered_serial, QCdbus_registered_method)
8558 (QCdbus_registered_signal): New Lisp objects.
8559 (XD_DEBUG_MESSAGE): Use sizeof.
8560 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
8561 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
8562 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
8563 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
8564 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
8565 (xd_signature, xd_append_arg): Allow float for integer types.
8566 (xd_get_connection_references): New function.
b593d6a9
AH
8567 (xd_get_connection_address): Rename from xd_initialize.
8568 Return cached address.
dcbf5805
MA
8569 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
8570 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
8571 level.
8572 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 8573 Return number of refcounts.
dcbf5805
MA
8574 (Fdbus_get_unique_name): Make stronger parameter check.
8575 (Fdbus_message_internal): New defun.
8576 (Fdbus_call_method, Fdbus_call_method_asynchronously)
8577 (Fdbus_method_return_internal, Fdbus_method_error_internal)
8578 (Fdbus_send_signal, Fdbus_register_service)
8579 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
8580 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
8581 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
8582 (Vdbus_compiled_version, Vdbus_runtime_version)
8583 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
8584 (Vdbus_message_type_method_return, Vdbus_message_type_error)
8585 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
8586 (Vdbus_registered_buses, Vdbus_registered_objects_table):
8587 Adapt docstring.
dcbf5805 8588
52828e02
PE
85892012-04-22 Paul Eggert <eggert@cs.ucla.edu>
8590
da05bc4c
PE
8591 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
8592 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
8593 Do not assume ptrdiff_t is the same width as 'int'.
8594
52828e02
PE
8595 * alloc.c: Handle unusual debugging option combinations.
8596 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
8597 since the two debugging options are incompatible.
8598 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
8599 is defined.
8600 (mem_init, mem_insert, mem_insert_fixup):
8601 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
8602 (NEED_MEM_INSERT): Remove; no longer needed.
8603
f01769f9
LL
86042012-04-22 Leo Liu <sdl.web@gmail.com>
8605
8606 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
8607
5790543d
PE
86082012-04-22 Paul Eggert <eggert@cs.ucla.edu>
8609
8610 * sysdep.c [__FreeBSD__]: Minor cleanups.
8611 (list_system_processes, system_process_attributes) [__FreeBSD__]:
8612 Use Emacs indenting style more consistently. Avoid some casts.
8613 Use 'double' consistently rather than mixing 'float' and 'double'.
8614
b91b7e4d
EW
86152012-04-21 Eduard Wiebe <usenet@pusto.de>
8616
b593d6a9
AH
8617 * sysdep.c (list_system_processes, system_process_attributes):
8618 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 8619
6114eb15
AS
86202012-04-21 Andreas Schwab <schwab@linux-m68k.org>
8621
8622 * lisp.mk (lisp): Update.
8623
2f38dff7
PE
86242012-04-20 Paul Eggert <eggert@cs.ucla.edu>
8625
8626 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
8627 It is never used otherwise.
8628
4ae29f89
SM
86292012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
8630
8631 * print.c (print_preprocess): Only check print_depth if print-circle
8632 is nil.
8633 (print_object): Check for cycles even when print-circle is nil and
8634 print-gensym is t, but only check print_depth if print-circle is nil.
8635
f30d612a
CY
86362012-04-20 Chong Yidong <cyd@gnu.org>
8637
8638 * process.c (wait_reading_process_output): If EIO occurs on a pty,
8639 set the status to "failed" and ensure that sentinel is run.
8640
c07a4c0b 86412012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
8642
8643 * process.c (Fset_process_inherit_coding_system_flag)
8644 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 8645 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 8646
c07a4c0b 86472012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
8648
8649 * xdisp.c (string_buffer_position_lim): Limit starting position to
8650 BEGV.
8651 (set_cursor_from_row): If called for a mode-line or header-line
8652 row, return zero immediately.
8653 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
8654 farther than the first row after the header line, if any.
8655 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
8656 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
8657
c07a4c0b 86582012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 8659
4ae29f89
SM
8660 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
8661 (bug#11238).
ad3a2b41 8662
c07a4c0b 86632012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 86642012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
8665
8666 configure: new option --enable-gcc-warnings (Bug#11207)
8667 * Makefile.in (C_WARNINGS_SWITCH): Remove.
8668 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
8669 (ALL_CFLAGS): Use new macros rather than old.
8670 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
8671 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
8672 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
8673 -Wunused-result, -Wunused-variable. This should go away once
8674 the Emacs and Gnulib regex code is merged.
8675 (xmalloc, xrealloc): Now static.
8676
aba027e8
PE
86772012-04-17 Paul Eggert <eggert@cs.ucla.edu>
8678
8679 * dired.c (Fsystem_groups): Remove unused local.
8680
e5a36063
GM
86812012-04-17 Glenn Morris <rgm@gnu.org>
8682
8683 * dired.c (Fsystem_users): Doc fix.
8684
316411f0
DA
86852012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
8686
8687 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
8688 (syms_of_dired): Add them.
8689
9426aba4
PE
86902012-04-16 Paul Eggert <eggert@cs.ucla.edu>
8691
b62a57be
PE
8692 Fix minor alloc.c problems found by static checking.
8693 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
8694 New extern decls, to avoid calling undeclared functions.
8695 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
8696 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
8697 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
8698 (NEED_MEM_INSERT): New macro.
8699 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 8700 Remove one incorrect comment and fix another.
b62a57be 8701
3539f31f
PE
8702 Fix minor ralloc.c problems found by static checking.
8703 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
8704 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
8705 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
8706 (r_alloc_sbrk): Now static.
8707
a041960a
PE
8708 Improve ralloc.c interface checking.
8709 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
8710 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
8711 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
8712 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
8713 [REL_ALLOC]: ... to here, to check interface.
8714 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
8715 Remove decls. This fixes an "It stinks!".
8716
9426aba4
PE
8717 * alloc.c (which_symbols): Fix alignment issue / type clash.
8718
d55c12ed
AS
87192012-04-15 Andreas Schwab <schwab@linux-m68k.org>
8720
8721 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
8722 (struct Lisp_Misc_Any): Likewise.
8723 (struct Lisp_Free): Likewise.
8724 * alloc.c (union aligned_Lisp_Symbol): Define.
8725 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
8726 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
8727 (union aligned_Lisp_Misc): Define.
8728 (MARKER_BLOCK_SIZE, struct marker_block): Use union
8729 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 8730 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 8731
b948ce8b
PE
87322012-04-14 Paul Eggert <eggert@cs.ucla.edu>
8733
8734 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
8735 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
8736 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
8737 * s/netbsd.h, s/sol2-6.h:
8738 Remove definition of GC_MARK_STACK, since the default now works.
8739 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
8740 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
8741 no longer the default.
8742 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
8743
35dc09a1 87442012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 8745
35dc09a1
GM
8746 * lread.c (lisp_file_lexically_bound_p):
8747 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 8748
35dc09a1
GM
87492012-04-14 Eli Zaretskii <eliz@gnu.org>
8750
8751 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
8752 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
8753
87542012-04-14 Jan Djärv <jan.h.d@swipnet.se>
8755
8756 * nsterm.m (constrainFrameRect): Always constrain when there is only
8757 one screen (Bug#10962).
8758
bcd86815
KB
87592012-04-13 Ken Brown <kbrown@cornell.edu>
8760
8761 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
8762
c25df26e
RT
87632012-04-13 Reuben Thomas <rrt@sc3d.org>
8764
8765 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
8766
0fc59f1e
DC
87672012-04-11 Daniel Colascione <dancol@dancol.org>
8768
8769 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
8770 against is gone. It's better to use vfork now so that when Cygwin
8771 gains a new, working vfork, we use it automatically (bug#10398).
8772
de8c03dc
SM
87732012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
8774
8775 * window.c (save_window_save): Obey window-point-insertion-type.
8776
2f097256
GM
87772012-04-11 Glenn Morris <rgm@gnu.org>
8778
8779 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
8780
453b951e
SM
87812012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
8782
8783 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
8784
75f1671a 87852012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
8786
8787 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
8788 (force_quit_count): New var.
8789 (handle_interrupt): Use it.
8790
2a8ce227
JB
87912012-04-10 Juanma Barranquero <lekktu@gmail.com>
8792
8793 * w32.c (w32_delayed_load): Record the full path of the library
8794 being loaded (bug#10424).
8795
935396c0
GM
87962012-04-09 Glenn Morris <rgm@gnu.org>
8797
05920a43
GM
8798 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
8799 not just in the obarray, before snarfing them. (Bug#11036)
8800
935396c0
GM
8801 * Makefile.in ($(leimdir)/leim-list.el):
8802 Pass EMACS rather than BUILT_EMACS.
8803
a18ecafa
TZ
88042012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
8805
8806 * process.c (make_process):
8807 * process.h: Add integer `gnutls_handshakes_tried' member to
8808 process struct.
8809
6bbef4e5
JC
8810 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
8811 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
8812
8813 * gnutls.c (gnutls_log_function2i): Convenience log function.
8814 (emacs_gnutls_read): Use new log functions,
8815 `gnutls_handshakes_tried' process member, and
8816 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
8817 attempts per process (connection).
8818
b4d3bc10
CY
88192012-04-09 Chong Yidong <cyd@gnu.org>
8820
8821 * eval.c (Fuser_variable_p, user_variable_p_eh)
8822 (lisp_indirect_variable): Functions deleted.
8823 (Fdefvar): Caller changed.
8824
8825 * callint.c (Finteractive, Fcall_interactively):
8826 * minibuf.c (Fread_variable): Callers changed.
8827
70f4d973
EZ
88282012-04-09 Eli Zaretskii <eliz@gnu.org>
8829
8830 * xdisp.c (set_cursor_from_row): If the display string appears in
8831 the buffer at position that is closer to point than the position
8832 after the display string, display the cursor on the first glyph of
8833 the display string. Fixes cursor display when a 'display' text
8834 property immediately follows invisible text. (Bug#11094)
8835
cb3c2e3e
PE
88362012-04-09 Paul Eggert <eggert@cs.ucla.edu>
8837
8838 composite.c: use 'double' consistently
8839 * composite.c (get_composition_id): Use 'double' consistently
8840 instead of converting 'float' to 'double' and vice versa; this is
8841 easier to understand and avoids a GCC warning.
8842
fd06db5d
GM
88432012-04-09 Glenn Morris <rgm@gnu.org>
8844
50fe702a
GM
8845 * Makefile.in: Generate leim-list with bootstrap-emacs, in
8846 preparation for dumping it with emacs. (Bug#4789)
8847 (leimdir): New variable.
8848 ($(leimdir)/leim-list.el): New rule.
8849 (emacs$(EXEEXT)): Depend on leim-list.el.
8850
fd06db5d
GM
8851 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
8852 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
8853 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
8854
55c131ee
AS
88552012-04-08 Andreas Schwab <schwab@linux-m68k.org>
8856
8857 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
8858 proper alignment.
8859
9209588f
JB
88602012-04-07 Juanma Barranquero <lekktu@gmail.com>
8861
8862 * xml.c (init_libxml2_functions) [WINDOWSNT]:
8863 Remove unused local variable.
8864
e3fb2efb
PE
88652012-04-07 Paul Eggert <eggert@cs.ucla.edu>
8866
8867 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
8868 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
8869 (mark_memory): Mark Lisp_Objects only if pointers might hide in
8870 objects, as mark_maybe_pointer will catch them otherwise.
8871 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
8872 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
8873
b5385551
PE
88742012-04-07 Paul Eggert <eggert@cs.ucla.edu>
8875
8876 Fix typo that broke non-Windows builds.
8877 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
8878
9078ead6
EZ
88792012-04-07 Eli Zaretskii <eliz@gnu.org>
8880
8881 Support building on MS-Windows with libxml2.
8882
8883 * makefile.w32-in (OBJ2): Add xml.$(O).
8884 (GLOBAL_SOURCES): Add xml.c.
8885 ($(BLD)/xml.$(O)): New dependency list.
8886
8887 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
8888 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
8889 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
8890 [!WINDOWSNT]: New macros.
8891 (init_libxml2_functions, libxml2_loaded_p): New functions.
8892 (parse_region): Call fn_xmlCheckVersion instead of using the macro
8893 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
8894 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
8895 Calls xmlCleanupParser only if libxml2 was loaded (or statically
8896 linked in).
6bbef4e5
JC
8897 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
8898 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
8899 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
8900
8901 * emacs.c: Don't include libxml/parser.h.
8902 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
8903 xmlCleanupParser directly.
8904
8905 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
8906
3811fdf3
EZ
89072012-04-07 Eli Zaretskii <eliz@gnu.org>
8908
8909 * indent.c (Fvertical_motion): If there is a display string at
8910 point, use it.vpos to compute how many lines to backtrack after
8911 move_it_to point. (Bug#11133)
8912
2f8e16b2
EZ
89132012-04-06 Eli Zaretskii <eliz@gnu.org>
8914
8915 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
8916 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
8917 about subtle differences between FETCH_CHAR* and STRING_CHAR*
8918 macros related to unification of CJK characters. For the details,
8919 see the discussion following the message here:
8920 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
8921
3d439cd1
CY
89222012-04-04 Chong Yidong <cyd@gnu.org>
8923
8924 * keyboard.c (Vdelayed_warnings_list): Doc fix.
8925
8bc53d00
EZ
89262012-04-01 Eli Zaretskii <eliz@gnu.org>
8927
8928 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
8929 instead of alloca. (Bug#11138)
8930
3b0512a3
AS
89312012-04-01 Andreas Schwab <schwab@linux-m68k.org>
8932
8933 * w32menu.c (is_simple_dialog): Properly check lisp types.
8934 (Bug#11141)
8935
8427ddd2
EZ
89362012-03-31 Eli Zaretskii <eliz@gnu.org>
8937
979022ef
EZ
8938 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
8939 position we get to after a call to move_it_to fails the
8940 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
8941 only if we wind up in a string from display property. (Bug#11063)
8942
a6b1c7cc
EZ
8943 * window.c (Fdelete_other_windows_internal): Invalidate the row
8944 and column information about mouse highlight, so that redisplay
8945 restores it after reallocating the glyph matrices. (Bug#7464)
8946
8427ddd2
EZ
8947 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
8948 string comes from a `display' text property, use the buffer
8949 position of that property as if we actually saw that position in
8950 the row's glyphs.
697ba24b
EZ
8951 (move_it_by_lines): Remove the assertion that
8952 "it->current_x == 0 && it->hpos == 0" which can be legitimately
8953 violated when there's a before-string at the beginning of a line.
8954 (Bug#11063)
8427ddd2 8955
65a0a738
EZ
89562012-03-30 Eli Zaretskii <eliz@gnu.org>
8957
8958 * xdisp.c (append_space_for_newline): If the default face was
8959 remapped, use the remapped face for the appended newline.
8960 (extend_face_to_end_of_line): Use the remapped default face for
8961 extending the face to the end of the line.
8962 (display_line): Call extend_face_to_end_of_line when the default
8963 face was remapped. (Bug#11068)
8964
581355cc
EZ
89652012-03-29 Eli Zaretskii <eliz@gnu.org>
8966
8967 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
8968
e8fc049f
SM
89692012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
8970
8971 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
8972
4fb9a543
GM
89732012-03-27 Glenn Morris <rgm@gnu.org>
8974
8975 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
8976 Doc fixes.
8977
679910f1
KH
89782012-03-26 Kenichi Handa <handa@m17n.org>
8979
8980 * dispextern.h (struct glyph): Fix previous change. Change the
8981 bit length of glyphless.ch to 25 (Bug#11082).
8982
90d49b7f
CY
89832012-03-26 Chong Yidong <cyd@gnu.org>
8984
8985 * keyboard.c (Vselection_inhibit_update_commands): New variable.
8986 (command_loop_1): Use it; inhibit selection update for
8987 handle-select-window too (Bug#8996).
8988
f514f6f0
FP
89892012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
8990
e8fc049f 8991 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 8992
bf43fa51
KH
89932012-03-25 Kenichi Handa <handa@m17n.org>
8994
8995 * dispextern.h (struct glyph): Change the bit length of
8996 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
8997
8a0c01dd
EZ
89982012-03-24 Eli Zaretskii <eliz@gnu.org>
8999
9000 * s/ms-w32.h (tzname): Include time.h before redirecting to
9001 _tzname. Fixes the MSVC build. (Bug#9960)
9002
7d1c3a76
AS
90032012-03-24 Andreas Schwab <schwab@linux-m68k.org>
9004
8ed79523
AS
9005 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
9006 characters.
9007
7d1c3a76
AS
9008 * xterm.c (XTread_socket): Only modify handling_signal if
9009 !SYNC_INPUT. (Bug#11080)
9010
e99a9b8b
EZ
90112012-03-23 Eli Zaretskii <eliz@gnu.org>
9012
9013 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
9014 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
9015 when fetching a multibyte character consumes more bytes than
9016 CHAR_BYTES returns, due to unification of CJK characters in
9017 string_char. (Bug#11073)
9018
5063c0e1
TN
90192012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
9020
9021 * process.c (wait_reading_process_output): Handle pty disconnect
9022 by refraining from sending oneself a SIGCHLD (bug#10933).
9023
9f851fbd
CY
90242012-03-22 Chong Yidong <cyd@gnu.org>
9025
9026 * dispextern.h (struct it): New member string_from_prefix_prop_p.
9027
5063c0e1 9028 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
9029 Mark string as coming from a prefix property.
9030 (handle_face_prop): Use default face for prefix strings (Bug#4281).
9031 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
9032
fb5b8aca
CY
90332012-03-21 Chong Yidong <cyd@gnu.org>
9034
9035 * xfaces.c (Vface_remapping_alist): Doc fix.
9036
62356a1b
EZ
90372012-03-20 Eli Zaretskii <eliz@gnu.org>
9038
9039 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
9040 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
9041 Doc fixes.
62356a1b 9042
025de85b
CY
90432012-03-20 Chong Yidong <cyd@gnu.org>
9044
9045 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
9046 to reflect default non-nil value of redisplay-dont-pause.
9047
4827f94e
KH
90482012-03-19 Kenichi Handa <handa@m17n.org>
9049
9050 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
9051 it fit in a valid range (Bug#11003).
9052
e50a24a2
EZ
90532012-03-18 Eli Zaretskii <eliz@gnu.org>
9054
9055 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
9056 that is not from display property, accept the row as a "cursor
9057 row" if one of the string's character has a non-nil `cursor'
9058 property. Fixes cursor positioning when there are newlines in
9059 overlay strings, e.g. in icomplete.el. (Bug#11035)
9060
9af5ed87
PE
90612012-03-12 Paul Eggert <eggert@cs.ucla.edu>
9062
9063 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
9064
d1f55f16
CY
90652012-03-12 Chong Yidong <cyd@gnu.org>
9066
9067 * eval.c (inhibit_lisp_code): Rename from
9068 inhibit_window_configuration_change_hook; move from window.c.
9069
9070 * xfns.c (unwind_create_frame_1, Fx_create_frame):
9071 * window.c (run_window_configuration_change_hook)
9072 (syms_of_window): Callers changed.
9073
66c5eebd
CY
90742012-03-11 Chong Yidong <cyd@gnu.org>
9075
413df973
CY
9076 * keymap.c (Fkey_description): Doc fix (Bug#9700).
9077
66c5eebd
CY
9078 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
9079
1de11f56
CY
90802012-03-10 Chong Yidong <cyd@gnu.org>
9081
9082 * frame.c (other_visible_frames): Don't assume the selected frame
9083 is visible (Bug#10955).
9084
cae07000
SM
90852012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
9086
9087 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
9088
89c94350
JD
90892012-03-08 Jan Djärv <jan.h.d@swipnet.se>
9090
9091 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
9092 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
9093 zero (Bug#10954).
9094
999dd333
GM
90952012-03-03 Glenn Morris <rgm@gnu.org>
9096
01a6dcc8 9097 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 9098
de0100f2
EZ
90992012-03-02 Eli Zaretskii <eliz@gnu.org>
9100
9101 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
9102 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
9103 (redisplay_window, next_element_from_string): Fix typos in
9104 comments.
3e441275
EZ
9105 (redisplay_window): Pass to move_it_vertically the margin in
9106 pixels, not in screen lines.
de0100f2 9107
96a72ee9
GM
91082012-03-02 Glenn Morris <rgm@gnu.org>
9109
9110 * buffer.c (buffer-list-update-hook): Doc fix.
9111
312508d7
EZ
91122012-02-29 Eli Zaretskii <eliz@gnu.org>
9113
9114 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
9115 push_it before setting up the iterator for the first overlay
9116 string, even if we have an empty string loaded.
9117 (next_overlay_string): If there's an empty string on the iterator
9118 stack, pop the stack. (Bug#10903)
9119
27f3c637
PE
91202012-02-25 Paul Eggert <eggert@cs.ucla.edu>
9121
9122 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
9123 Suggested by Stefan Monnier in
9124 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
9125 * alloc.c (widen_to_Lisp_Object): New static function.
9126 (mark_memory): Also mark Lisp_Objects by fetching pointer words
9127 and widening them to Lisp_Objects. This would work even if
9128 USE_LSB_TAG is defined and wide integers are used, which might
9129 happen in a future version of Emacs.
9130
3c9dfce6
CY
91312012-02-25 Chong Yidong <cyd@gnu.org>
9132
fa74b241
CY
9133 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
9134 Doc fix.
9135
3c9dfce6
CY
9136 * xselect.c (Fx_selection_exists_p): Doc fix.
9137 (x_clipboard_manager_save_all): Print an informative message
9138 before saving to clipboard manager.
9139
9486df08
CY
91402012-02-24 Chong Yidong <cyd@gnu.org>
9141
9142 * keyboard.c (process_special_events): Handle all X selection
9143 requests in kbd_buffer, not just the next one (Bug#8869).
9144
f01d3321
CY
91452012-02-23 Chong Yidong <cyd@gnu.org>
9146
9147 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
9148 call when setting menu-bar-lines and tool-bar-lines parameters.
9149 (unwind_create_frame_1): New helper function.
9150
9151 * window.c (inhibit_window_configuration_change_hook): New var.
9152 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 9153 (syms_of_window): Initialize it.
f01d3321 9154
86b847b6
CY
91552012-02-22 Chong Yidong <cyd@gnu.org>
9156
9157 * xterm.c (x_draw_image_relief): Add missing type check for
9158 Vtool_bar_button_margin (Bug#10743).
9159
a59225b1
CY
91602012-02-21 Chong Yidong <cyd@gnu.org>
9161
9162 * fileio.c (Vfile_name_handler_alist): Doc fix.
9163
9164 * buffer.c (Fget_file_buffer): Protect against invalid file
9165 handler return value.
9166
310f5bd4
PE
91672012-02-20 Paul Eggert <eggert@cs.ucla.edu>
9168
cb3a28cc
PE
9169 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
9170 when computing $valmask.
9171
310f5bd4
PE
9172 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
9173 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
9174 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
9175 It's useless in that case, and it can cause problems on hosts
9176 that allocate halves of EMACS_INT values separately.
9177 Reported by Dan Horák. Diagnosed by Andreas Schwab in
9178 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
9179 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
9180 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
9181 it avoids undefined behavior on hosts where shifting right by more
9182 than the word width has undefined behavior.
9183
2375c96a
CY
91842012-02-19 Chong Yidong <cyd@gnu.org>
9185
9186 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
9187 (Funhandled_file_name_directory, Ffile_name_as_directory)
9188 (Fdirectory_file_name, Fexpand_file_name)
9189 (Fsubstitute_in_file_name): Protect against invalid file handler
9190 return values (Bug#10845).
9191
3eb49e71
EZ
91922012-02-18 Eli Zaretskii <eliz@gnu.org>
9193
9194 * .gdbinit (pitx): Fix incorrect references to fields of the
9195 iterator stack.
9196
7b926f3f
CY
91972012-02-17 Chong Yidong <cyd@gnu.org>
9198
9199 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
9200
11273115
PE
92012012-02-15 Paul Eggert <eggert@cs.ucla.edu>
9202
9203 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
9204 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
9205
c3a70e2b
CY
92062012-02-15 Chong Yidong <cyd@gnu.org>
9207
9208 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
9209 marked as special. Also, starting docstrings with * is obsolete.
9210
0ca43699
AS
92112012-02-13 Andreas Schwab <schwab@linux-m68k.org>
9212
9213 * gnutls.c (emacs_gnutls_write): Fix last change.
9214
2e8f3c56
LI
92152012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
9216
9217 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
9218 send_process.
9219
af70074f
SM
92202012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
9221
9222 * keymap.c (Fsingle_key_description): Handle char ranges.
9223
95986d52
CY
92242012-02-12 Chong Yidong <cyd@gnu.org>
9225
afd83bd1
CY
9226 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
9227 as that creates a dangerous corner case.
9228
95986d52
CY
9229 * window.c (Fdelete_window_internal): Invalidate the mouse
9230 highlight (Bug#9904).
9231
bd7da63e
GM
92322012-02-12 Glenn Morris <rgm@gnu.org>
9233
9234 * xselect.c (Fx_own_selection_internal)
9235 (Fx_get_selection_internal, Fx_disown_selection_internal)
9236 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
9237 * nsselect.m (Fx_own_selection_internal)
9238 (Fx_disown_selection_internal, Fx_selection_exists_p)
9239 (Fx_selection_owner_p, Fx_get_selection_internal):
9240 Sync docs and argument specs with the xselect.c versions.
9241
77abcbc2
LI
92422012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
9243
9244 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
9245
90b671e2
EZ
92462012-02-11 Eli Zaretskii <eliz@gnu.org>
9247
1c0ca0b7
EZ
9248 * w32select.c (Fx_selection_exists_p): Sync doc string and
9249 argument list with xselect.c. (Bug#10783)
9250
9251 * w16select.c (Fx_selection_exists_p): Sync doc string and
9252 argument list with xselect.c. (Bug#10783)
90b671e2 9253
49241268
GM
92542012-02-10 Glenn Morris <rgm@gnu.org>
9255
9256 * fns.c (Fsecure_hash): Doc fix.
9257
f998bbe7 92582012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
9259
9260 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
9261
0992bd9c
CY
92622012-02-07 Chong Yidong <cyd@gnu.org>
9263
9264 * buffer.c (Fbuffer_local_variables)
9265 (buffer_lisp_local_variables): Handle unbound vars correctly;
9266 don't let Qunbound leak into Lisp.
9267
af008560
GM
92682012-02-07 Glenn Morris <rgm@gnu.org>
9269
dd605cc4
GM
9270 * image.c (Fimagemagick_types): Doc fix.
9271
af008560
GM
9272 * image.c (imagemagick-render-type): Change it from a lisp object
9273 to an integer. Move the doc here from the lisp manual.
9274 Treat all values not equal to 0 the same.
9275
1449fa1d
CY
92762012-02-06 Chong Yidong <cyd@gnu.org>
9277
9278 * doc.c (store_function_docstring): Avoid applying docstring of
9279 alias to base function (Bug#2603).
9280
3723ec07
AS
92812012-02-04 Andreas Schwab <schwab@linux-m68k.org>
9282
9283 * .gdbinit (pp1, pv1): Remove redundant defines.
9284 (pr): Use pp.
9285
79c1cc1e
CY
92862012-02-04 Chong Yidong <cyd@gnu.org>
9287
9288 * nsterm.m: Declare a global (Bug#10694).
9289
d7f29f8e
EZ
92902012-02-04 Eli Zaretskii <eliz@gnu.org>
9291
cae07000
SM
9292 * w32.c (get_emacs_configuration_options):
9293 Include --enable-checking, if specified, in the return value.
d7f29f8e 9294
3b95a6f9
MR
92952012-02-04 Martin Rudalics <rudalics@gmx.at>
9296
9297 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
9298 after rounding frame sizes. (Bug#9723)
9299
d6fa96a6
EZ
93002012-02-04 Eli Zaretskii <eliz@gnu.org>
9301
9302 * keyboard.c (adjust_point_for_property): Don't position point
9303 before BEGV. (Bug#10696)
9304
df0b2940
PE
93052012-02-03 Paul Eggert <eggert@cs.ucla.edu>
9306
9307 Handle overflow when computing char display width (Bug#9496).
9308 * character.c (char_width): Return EMACS_INT, not int.
9309 (char_width, c_string_width): Check for overflow when
9310 computing the width; this is possible now that individual
9311 characters can have unbounded width. Problem introduced
9312 by merge from Emacs 23 on 2012-01-19.
9313
6bee44d6
MA
93142012-02-02 Michael Albinus <michael.albinus@gmx.de>
9315
9316 * dbusbind.c (Fdbus_register_method): Mention the return value
9317 :ignore in the docstring.
9318
44f92739
GM
93192012-02-02 Glenn Morris <rgm@gnu.org>
9320
1b9f60cc
GM
9321 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
9322
44f92739
GM
9323 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
9324 Unconditionally set to t. (Bug#10673)
9325 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
9326 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
9327 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
9328
c5d3843c
KH
93292012-02-02 Kenichi Handa <handa@m17n.org>
9330
9331 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
9332 0, do not call append_composite_glyph.
9333
159462d4 93342012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
9335
9336 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
9337 NULL (Bug#6988).
9338 (x_produce_glyphs): If the component of a composition is a null
9339 string, set it->pixel_width to 1 to avoid zero-width glyph.
9340
78cef877
EZ
93412012-02-01 Eli Zaretskii <eliz@gnu.org>
9342
9343 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
9344 first 2 arguments are identical. This makes inserting large
9345 output from a subprocess an order of magnitude faster on
9346 MS-Windows, where all sbrk'ed memory is always contiguous.
9347
97897668
GM
93482012-01-31 Glenn Morris <rgm@gnu.org>
9349
9350 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 9351 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
9352 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
9353
31fd3586
GM
93542012-01-29 Glenn Morris <rgm@gnu.org>
9355
9356 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
9357
0e24a8b2
CY
93582012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
9359
9360 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
9361
cc0adcb0
CY
93622012-01-28 Chong Yidong <cyd@gnu.org>
9363
9364 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
9365
acc28cb9
CY
93662012-01-26 Chong Yidong <cyd@gnu.org>
9367
9c69cfb7
CY
9368 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
9369
acc28cb9
CY
9370 * search.c (Fsearch_forward, Fsearch_backward): Document negative
9371 repeat counts (Bug#10507).
9372
48da7392
GM
93732012-01-26 Glenn Morris <rgm@gnu.org>
9374
9375 * lread.c (syms_of_lread): Doc fix.
9376
14af5f7f
CY
93772012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
9378
9379 * coding.c (encode_designation_at_bol): Change return value to
9380 EMACS_INT.
9381
0b21c100
CY
93822012-01-25 Chong Yidong <cyd@gnu.org>
9383
9384 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
9385
3c2907f7
CY
93862012-01-21 Chong Yidong <cyd@gnu.org>
9387
9388 * floatfns.c (Fcopysign): Make the second argument non-optional,
9389 since nil is not allowed anyway.
9390
959ad23f
AS
93912012-01-21 Andreas Schwab <schwab@linux-m68k.org>
9392
9393 * process.c (read_process_output): Use p instead of XPROCESS (proc).
9394 (send_process): Likewise.
9395
34a02f46
MR
93962012-01-19 Martin Rudalics <rudalics@gmx.at>
9397
9398 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
9399 (Vwindow_persistent_parameters): Do not use Qstate.
9400 Rewrite doc-strings.
34a02f46 9401
1259009a 94022012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
9403
9404 * character.c (char_width): New function.
70d4fdf6
GM
9405 (Fchar_width, c_string_width, lisp_string_width):
9406 Use char_width (Bug#9496).
25ed9e61 9407
6a6ee00d
MR
94082012-01-16 Martin Rudalics <rudalics@gmx.at>
9409
9410 * window.c (Vwindow_persistent_parameters): New variable.
9411 (Fset_window_configuration, save_window_save): Handle persistent
9412 window parameters.
9413
c85efaf7
EZ
94142012-01-14 Eli Zaretskii <eliz@gnu.org>
9415
9416 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
9417 thrashing the stack of the thread. (Bug#9087)
9418
5944709e
PE
94192012-01-12 Paul Eggert <eggert@cs.ucla.edu>
9420
9421 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
9422
e71f5d99
EZ
94232012-01-11 Eli Zaretskii <eliz@gnu.org>
9424
9425 * xdisp.c (rows_from_pos_range): Handle the case where the
9426 highlight ends on a newline. (Bug#10464)
9427 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
9428 he end column for display of highlight that ends on a newline
9429 before a R2L line.
9430
ce316182
GM
94312012-01-11 Glenn Morris <rgm@gnu.org>
9432
9433 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
9434 from load-path also when installation-directory is nil. (Bug#10208)
9435
5b43da69
GM
94362012-01-10 Glenn Morris <rgm@gnu.org>
9437
74cc8ff9
GM
9438 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
9439
7d8d6e4e
GM
9440 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
9441 Update template values to be closer to their typical values these days.
5b43da69 9442
a0db8d43
EZ
94432012-01-09 Eli Zaretskii <eliz@gnu.org>
9444
9445 * xdisp.c (rows_from_pos_range): Accept additional argument
9446 DISP_STRING, and accept any glyph in a row whose object is that
9447 string as eligible for mouse highlight. Fixes mouse highlight of
9448 display strings from overlays. (Bug#10464)
9449
9a0115ab 94502012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 9451
b9110d6a 9452 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
9453 * fileio.c (auto_saving_dir_umask): New static var.
9454 (Fmake_directory_internal): Use it.
9455 (do_auto_save_make_dir): Set it, instead of invoking chmod after
9456 creating the directory. The old code temporarily assigns
9457 too-generous permissions to the directory.
9458 (do_auto_save_eh): Clear it.
b9110d6a 9459 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
9460 that the var is always cleared.
9461
6c1bd3f3
EZ
94622012-01-07 Eli Zaretskii <eliz@gnu.org>
9463
9464 * search.c (scan_buffer): Pass character positions to
9465 know_region_cache, not byte positions. (Bug#6540)
9466
069d2b50
L
94672012-01-07 LynX <_LynX@bk.ru> (tiny change)
9468
9469 * w32.c (sys_rename): Report EXDEV when rename of a directory
9470 fails because the target is on another logical disk. (Bug#10284)
9471
75bf0d33
DB
94722012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
9473
9474 * xterm.c (x_embed_request_focus): New function.
9475
9476 * xterm.h: Add prototype.
9477
9478 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
9479
1c6e5a32
GM
94802012-01-05 Glenn Morris <rgm@gnu.org>
9481
9482 * emacs.c (emacs_copyright): Update short copyright year to 2012.
9483
651e947e
EZ
94842012-01-01 Eli Zaretskii <eliz@gnu.org>
9485
9486 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
9487 Load gnutls_transport_set_lowat only if GnuTLS version is below
9488 2.11.1.
9489 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
9490 GnuTLS versions below 2.11.1.
9491
3778cdd8
AL
94922011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
9493
9494 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
9495 to the doc string advising against its use for altering the way
9496 windows are scrolled.
9497
0e5317f7
KH
94982011-12-28 Kenichi Handa <handa@m17n.org>
9499
9500 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
9501 coding-system ASCII compatible only when it does not produce BOM
9502 on encoding (Bug#10383).
9503
93d5ca1f
JD
95042011-12-26 Jan Djärv <jan.h.d@swipnet.se>
9505
9506 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
9507 can scroll.
9508 (create_and_show_popup_menu): Always use menu_position_func for
9509 Gtk3 (Bug#10361).
9510
ca22b785
AS
95112011-12-24 Andreas Schwab <schwab@linux-m68k.org>
9512
9513 * callint.c (Fcall_interactively): Don't truncate prompt string.
9514
d048e1e6
EZ
95152011-12-23 Eli Zaretskii <eliz@gnu.org>
9516
9517 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
9518 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 9519 resumed from there (after widening). (Bug#10360)
d048e1e6 9520
5ccaba1f
JD
95212011-12-22 Jan Djärv <jan.h.d@swipnet.se>
9522
9523 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
9524
204ee57f
JD
95252011-12-21 Jan Djärv <jan.h.d@swipnet.se>
9526
b81d40f0
JB
9527 * nsterm.m (x_free_frame_resources):
9528 Release f->output_data.ns->miniimage.
204ee57f
JD
9529 (ns_index_color): Fix indentation. Do not retain
9530 color_table->colors[i].
9531
9532 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
9533 before returning.
9534
9535 * nsfns.m (x_set_background_color): Assign return value from
9536 ns_index_color to face-background instead of NSColor*.
9537 (ns_implicitly_set_icon_type): Fix indentation.
9538 Change assignment in for loop to comparison.
9539
9540 * emacs.c (ns_pool): New variable.
9541 (main): Assign ns_pool.
9542 (Fkill_emacs): Call ns_release_autorelease_pool.
9543
9544 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
9545 autorelease fdesc, release fdAttrs and tdict.
9546 (ns_get_covering_families): Release charset.
9547 (ns_findfonts): Release NSFontDescriptor created with new.
9548 (ns_uni_to_glyphs): Fix indentation.
9549 (setString): Release attrStr before assigning new value.
9550
c803b2b7
JD
95512011-12-18 Jan Djärv <jan.h.d@swipnet.se>
9552
678f4426
JD
9553 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
9554 and NS_IMPL_COCOA.
9555 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
9556 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
9557
cd394be1 95582011-12-18 David Reitter <reitter@cmu.edu>
678f4426 9559
5fecd5fc
JD
9560 * nsterm.m (ns_term_init): Subscribe for notifications
9561 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
9562 to method trackingNotification in EmacsMenu.
9563
9564 * nsmenu.m (trackingMenu): New variable.
3771cb17 9565 (trackingNotification): New method (from Aquamacs).
5fecd5fc 9566 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 9567 from Aquamacs (Bug#7030).
678f4426
JD
9568
95692011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 9570
c803b2b7
JD
9571 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
9572 (symbol_to_nsstring): Fix indentation.
9573 (ns_symbol_to_pb): New function.
cae07000
SM
9574 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
9575 (Fns_rotate_cut_buffers_internal): Remove.
9576 (Fns_store_selection_internal): Rename from
c803b2b7
JD
9577 Fns_store_cut_buffer_internal.
9578 (ns_get_foreign_selection, Fx_own_selection_internal)
9579 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
9580 (Fns_get_selection_internal, Fns_store_selection_internal):
9581 Use ns_symbol_to_pb and check if return value is nil.
9582 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
9583 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
9584 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
9585 renamed to Sns_store_selection_internal.
9586 (ns_handle_selection_request): Move code to Fx_own_selection_internal
9587 and remove this function.
9588 (ns_handle_selection_clear): Remove, never used.
9589 (Fx_own_selection_internal): Move code from ns_handle_selection_request
9590 here.
9591
e1b01a3a
KB
95922011-12-17 Ken Brown <kbrown@cornell.edu>
9593
9594 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
9595 GID is unknown (Bug#10257).
9596
2adb6e85
PE
95972011-12-17 Paul Eggert <eggert@cs.ucla.edu>
9598
9599 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
9600 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
9601 which caused a build failure on GNU/Linux IA-64. This problem was
9602 introduced by my 2011-10-07 patch.
9603
d1d7b339
JL
96042011-12-15 Juri Linkov <juri@jurta.org>
9605
9606 * image.c (imagemagick_error): New function. (Bug#10112)
9607 (imagemagick_load_image): Comment out `MagickSetResolution' call.
9608 Use `imagemagick_error' where ImageMagick functions return
9609 `MagickFalse'.
9610 (Fimagemagick_types): Add `Fnreverse' to return the list in the
9611 proper order.
9612
100d5755
KH
96132011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9614
9615 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
9616 fill background (Bug#8992).
9617
454592a6
MR
96182011-12-13 Martin Rudalics <rudalics@gmx.at>
9619
9620 * window.c (Vwindow_combination_resize)
9621 (Vwindow_combination_limit): Use t instead of non-nil in
9622 doc-strings.
61d4b438
MR
9623 (Vrecenter_redisplay): Add first sentence of doc-string on
9624 separate line.
53524d93 9625 (Frecenter): Fix doc-string typo.
454592a6 9626
3633e3aa
KH
96272011-12-11 Kenichi Handa <handa@m17n.org>
9628
9629 * coding.c (Funencodable_char_position): Pay attention to the
9630 buffer text relocation (Bug#9389).
9631
7b9d523a 96322011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 9633
7b9d523a
JD
9634 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
9635 gtk_init (Bug#10100).
9636
b73189c6
EZ
96372011-12-10 Eli Zaretskii <eliz@gnu.org>
9638
9639 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
9640 IT->string is nil. (Bug#10263)
9641
f7dfe5d6
JD
96422011-12-10 Jan Djärv <jan.h.d@swipnet.se>
9643
83faebb4
JD
9644 * nsterm.h (x_free_frame_resources): Declare.
9645
f7dfe5d6
JD
9646 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
9647 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
9648
9649 * nsterm.h (ns_get_defaults_value): Declare.
9650
9651 * nsterm.m (ns_default): Call ns_get_defaults_value.
9652
7cd4e72c
EZ
96532011-12-09 Eli Zaretskii <eliz@gnu.org>
9654
9655 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
9656 (Bug#10170)
9657
b34d7317
YM
96582011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9659
9660 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
9661 that where the value of an _OBJC_* symbol points to is in the .bss
9662 section (Bug#10240).
9663
76470ad1
KH
96642011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
9665
9666 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 9667 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 9668
745fff94
KH
96692011-12-08 Kenichi Handa <handa@m17n.org>
9670
9671 * ftfont.c (get_adstyle_property): Fix previous change
9672 (Bug#10233).
9673
6e44397c
JB
96742011-12-07 Juanma Barranquero <lekktu@gmail.com>
9675
9676 * w32.c (init_environment): If no_site_lisp, remove site-lisp
9677 dirs from the default value of EMACSLOADPATH (bug#10208).
9678
7efa6272
GM
96792011-12-07 Glenn Morris <rgm@gnu.org>
9680
9681 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
9682 installation and source directories as well. (Bug#10208)
9683
f6fc4d87
CY
96842011-12-06 Chong Yidong <cyd@gnu.org>
9685
9686 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
9687
2bf26180
GM
96882011-12-06 Glenn Morris <rgm@gnu.org>
9689
9690 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
9691 as an error, not just -1. (Bug#10217)
9692
3a6ad4f0
CY
96932011-12-05 Chong Yidong <cyd@gnu.org>
9694
9695 * keyboard.c (process_special_events): New function.
9696 (swallow_events, Finput_pending_p): Use it (Bug#10195).
9697
75a3b399
PE
96982011-12-05 Paul Eggert <eggert@cs.ucla.edu>
9699
9700 * coding.c (encode_designation_at_bol): Don't use uninitialized
9701 local variable (Bug#9318).
9702
c3c9e25e
KH
97032011-12-05 Kenichi Handa <handa@m17n.org>
9704
9705 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
9706 return Qnil (Bug#8046, Bug#10193).
9707
5eb05ea3
KH
97082011-12-05 Kenichi Handa <handa@m17n.org>
9709
9710 * coding.c (encode_designation_at_bol): New args charbuf_end and
9711 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
9712 (coding_set_source): Return how many bytes coding->source was
9713 relocated.
9714 (coding_set_destination): Return how many bytes
9715 coding->destination was relocated.
9716 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 9717 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
9718
97192011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
9720
9721 * coding.c (CODING_CHAR_CHARSET_P): New macro.
9722 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
9723 macro (Bug#9318).
9724
97252011-12-05 Andreas Schwab <schwab@linux-m68k.org>
9726
9727 The following changes are to fix Bug#9318.
9728
a79703f5 9729 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
9730 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
9731 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 9732 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 9733
7dbda6df
JB
97342011-12-05 Juanma Barranquero <lekktu@gmail.com>
9735
9736 * lisp.h (process_quit_flag): Fix external declaration.
9737
6d5eb5b0
SM
97382011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
9739
9740 Don't macro-inline non-performance-critical code.
9741 * eval.c (process_quit_flag): New function.
9742 * lisp.h (QUIT): Use it.
9743
a0c3fad0
JD
97442011-12-04 Jan Djärv <jan.h.d@swipnet.se>
9745
9746 * nsfns.m (get_geometry_from_preferences): New function.
9747 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
9748
6c07aac2
AS
97492011-12-04 Andreas Schwab <schwab@linux-m68k.org>
9750
9751 * emacs.c (Qkill_emacs): Define.
9752 (syms_of_emacs): Initialize it.
9753 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
9754 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
9755 (quit_throw_to_read_char): Add parameter `from_signal'.
9756 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
9757 * lisp.h (QUIT): Call Fkill_emacs if requested.
9758
c052ead4
JD
97592011-12-03 Jan Djärv <jan.h.d@swipnet.se>
9760
9761 * widget.c (update_wm_hints): Return if wmshell is null.
9762 (widget_update_wm_size_hints): New function.
9763
9764 * widget.h (widget_update_wm_size_hints): Declare.
9765
9766 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
9767 widget_update_wm_size_hints (Bug#10104).
9768
9e49252b
EZ
97692011-12-03 Eli Zaretskii <eliz@gnu.org>
9770
9771 * xdisp.c (handle_invisible_prop): If the invisible text ends just
9772 before a newline, prepare the bidi iterator for consuming the
9773 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 9774 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 9775
02b16839
JL
97762011-12-02 Juri Linkov <juri@jurta.org>
9777
9778 * search.c (Fword_search_regexp): New Lisp function created from
9779 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
9780 (Fword_search_backward, Fword_search_forward)
9781 (Fword_search_backward_lax, Fword_search_forward_lax):
9782 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
9783 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
9784
0068070e
SM
97852011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
9786
9787 * fileio.c (Finsert_file_contents): Move after-change-function call
9788 to before the "handled:" label, since all "goto handled" appear in
9789 cases where the *-change-functions have already been properly called
9790 (bug#10117).
9791
3360a3fc
AS
97922011-12-01 Andreas Schwab <schwab@linux-m68k.org>
9793
9794 * keyboard.c (interrupt_signal): Don't call kill-emacs when
9795 waiting for input. (Bug#10169)
9796
73d6c093
EZ
97972011-11-30 Eli Zaretskii <eliz@gnu.org>
9798
9799 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
9800 verifies glyph row's hash code--we have just reallocated the
9801 glyphs, so their contents can be complete garbage. (Bug#10164)
9802
febe6bea
JB
98032011-11-30 Juanma Barranquero <lekktu@gmail.com>
9804
9805 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
9806
801a4313
EZ
98072011-11-30 Eli Zaretskii <eliz@gnu.org>
9808
9809 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
9810 attributes are tested _before_ calling verify_row_hash, to protect
9811 against GCC re-ordering of the tests. (Bug#10164)
9812
2b56b87e
JD
98132011-11-29 Jan Djärv <jan.h.d@swipnet.se>
9814
9815 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
9816
9817 * xterm.c (handle_one_xevent): Only set async_visible and friends
9818 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 9819 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
9820 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
9821
dbf31225
PE
98222011-11-28 Paul Eggert <eggert@cs.ucla.edu>
9823
9824 Remove GCPRO-related macros that exist only to avoid shadowing locals.
9825 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
9826 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
9827 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
9828 All uses changed to use GCPRO1 etc.
9829 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
9830 Revert to old implementation (i.e., before 2011-03-11).
9831
1305621b
YM
98322011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9833
9834 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
9835 of scroll runs so as to avoid assigning disabled bogus rows and
9836 unnecessary graphics copy operations.
9837
8c9afb46
EZ
98382011-11-27 Eli Zaretskii <eliz@gnu.org>
9839
9840 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
9841 (snprintf) [_MSC_VER]: Redirect to _snprintf.
9842 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
9843 (malloc, free, realloc, calloc): Redirect to e_* only when
9844 compiling Emacs.
9845
9846 * lisp.h (GCTYPEBITS): Move before first use.
9847 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
9848 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
9849 this macro definition.
9850
9851 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
9852 _MSC_VER.
9853
54e9e3bf
JD
98542011-11-27 Jan Djärv <jan.h.d@swipnet.se>
9855
6d5eb5b0
SM
9856 * gtkutil.c (xg_create_frame_widgets):
9857 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
9858 present with Gtk+ 2.0.
9859
83aca1cb
PE
98602011-11-26 Paul Eggert <eggert@cs.ucla.edu>
9861
9862 * fileio.c (Finsert_file_contents): Undo previous change; see
9863 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
9864
5b76caa4
PE
98652011-11-26 Paul Eggert <eggert@cs.ucla.edu>
9866
9867 Rename locals to avoid shadowing.
9868 * fileio.c (Finsert_file_contents):
9869 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
9870 * process.c (wait_reading_process_output):
9871 Rename inner 'proc' to 'p' to avoid shadowing.
9872 Indent for consistency with usual Emacs style.
9873
8c535114
EZ
98742011-11-25 Eli Zaretskii <eliz@gnu.org>
9875
9876 * xdisp.c (redisplay_window): If cursor row is not fully visible
9877 after recentering, and scroll-conservatively is set to a large
9878 number, scroll window by a few more lines to make the cursor fully
9879 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
9880 (start_display): Don't move to the next line if the display should
9881 start at a newline that is part of a display vector or an overlay
9882 string. (Bug#10119)
8c535114 9883
fa4fdb5c
JL
98842011-11-24 Juri Linkov <juri@jurta.org>
9885
9886 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
9887 after the `MagickPingImage' call. (Bug#10112)
9888
90ec88df
CY
98892011-11-23 Chong Yidong <cyd@gnu.org>
9890
9891 * window.c (Fcoordinates_in_window_p): Accept only live windows.
9892
56e2e794
MR
98932011-11-23 Martin Rudalics <rudalics@gmx.at>
9894
9895 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
9896 making another buffer current. (Bug#10114)
9897
b6e64c41
GM
98982011-11-23 Glenn Morris <rgm@gnu.org>
9899
9900 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
9901
6b21de18
CY
99022011-11-23 Chong Yidong <cyd@gnu.org>
9903
9904 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
9905 using it (Bug#5984).
9906
b12cd789
EZ
99072011-11-22 Eli Zaretskii <eliz@gnu.org>
9908
9909 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
9910 and header-lines, as they don't have one computed for them.
9911 (Bug#10098)
9912
9913 * .gdbinit (prow): Make displayed values more self-explaining.
9914 Add row's hash code.
9915
261b6fd4
LMI
99162011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
9917
9918 * process.c (wait_reading_process_output): Fix asynchrounous
9919 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 9920 (wait_reading_process_output): Add comment and URL.
261b6fd4 9921
e7cfd277
JD
99222011-11-21 Jan Djärv <jan.h.d@swipnet.se>
9923
9924 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
9925
a9b9b7f5
CY
99262011-11-21 Chong Yidong <cyd@gnu.org>
9927
9928 * window.c (Fnext_window, Fprevious_window): Doc fix.
9929
b0d15b4f
SM
99302011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
9931
9932 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
9933
fe7a3057
JB
99342011-11-20 Juanma Barranquero <lekktu@gmail.com>
9935
9936 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
9937
d2999b1a
MR
99382011-11-20 Martin Rudalics <rudalics@gmx.at>
9939
9940 * window.c (Fset_window_combination_limit): Rename argument
9941 STATUS to LIMIT.
9942 (Vwindow_combination_limit): Remove "status" from doc-string.
9943
d5ff9cd0
AS
99442011-11-20 Andreas Schwab <schwab@linux-m68k.org>
9945
9946 * m/ibms390.h: Remove.
9947 * m/ibms390x.h: Don't include "ibms390.h".
9948
a5bb9bd3
SM
99492011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
9950
9951 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
9952 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
9953
cd1181db
JB
99542011-11-20 Juanma Barranquero <lekktu@gmail.com>
9955
9956 * casetab.c (Fset_case_table):
9957 * charset.c (Fcharset_after): Fix typos.
9958
615a3b8d 99592011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 9960
17e845af
PE
9961 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
9962 Otherwise, valgrind does not work on some platforms.
9963 Problem reported by Andreas Schwab in
6a0bf43d
PE
9964 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
9965 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
9966 is set, removing the need for VIRT_ADDRESS_VARIES.
9967 (PURE_P): Use a more-efficient implementation that needs just one
9968 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
9969 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
9970 to 4 (xorl, subq, cmpq, setbe).
9971 * alloc.c (pure): Always extern now, since that's the
9972 VIRT_ADDR_VARIES behavior.
9973 (PURE_POINTER_P): Use a single comparison, not two, for
9974 consistency with the new puresize.h.
9975 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
9976 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
9977 Remove VIRT_ADDR_VARIES no longer needed.
9978
f8fe6f96
EZ
99792011-11-19 Eli Zaretskii <eliz@gnu.org>
9980
9981 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
9982 (erase_phys_cursor, update_window_cursor, show_mouse_face)
9983 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
9984 behave as if the cursor position were at the window margin.
9985
9986 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
9987 and the cursor position is out of bounds, behave as if the cursor
9988 position were at the window margin. (Bug#10075)
9989
df05a53c
CY
99902011-11-18 Chong Yidong <cyd@gnu.org>
9991
9992 * window.c (Fwindow_combination_limit): Make first argument
9993 non-optional, since it is meaningless for live windows like the
9994 selected window.
61ccba97 9995
2071918e
DA
99962011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
9997
9998 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
9999
b50a28de
SM
100002011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
10001
10002 * intervals.c: Fix grafting over the whole buffer (bug#10071).
10003 (graft_intervals_into_buffer): Simplify.
10004
015137db
EZ
100052011-11-18 Eli Zaretskii <eliz@gnu.org>
10006
10007 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
10008 hash values of the two rows.
10009 (copy_row_except_pointers): Preserve the used[] arrays and the
10010 hash values of the two rows. (Bug#10035)
68c95424 10011 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
10012
10013 * xdisp.c (row_hash): New function, body extracted from
10014 compute_line_metrics.
10015 (compute_line_metrics): Call row_hash, instead of computing the
10016 hash code inline.
10017
10018 * dispnew.c (verify_row_hash): Call row_hash for computing the
10019 hash code of a row, instead of duplicating code from xdisp.c.
10020
10021 * dispextern.h (row_hash): Add prototype.
10022
a2addb04
TH
100232011-11-18 Tassilo Horn <tassilo@member.fsf.org>
10024
10025 * frame.c (delete_frame): Don't delete the terminal when the last
10026 X frame is closed if emacs is built with GTK toolkit.
10027
df85d315
JB
100282011-11-17 Juanma Barranquero <lekktu@gmail.com>
10029
10030 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
10031
a0c2d0ae
MR
100322011-11-17 Martin Rudalics <rudalics@gmx.at>
10033
10034 * window.c (Vwindow_splits): Rename to
10035 Vwindow_combination_resize. Suggested by Juri Linkov.
10036 (Fsplit_window_internal): Use Vwindow_combination_resize instead
10037 of Vwindow_splits.
10038
58179cce
JB
100392011-11-16 Juanma Barranquero <lekktu@gmail.com>
10040
7877f373
JB
10041 * nsfns.m (Fns_font_name):
10042 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 10043
b6f67890
MR
100442011-11-16 Martin Rudalics <rudalics@gmx.at>
10045
10046 * window.h (window): Rename slot "nest" to "combination_limit".
10047 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
10048 (Fset_window_nest): Rename to Fset_window_combination_limit.
10049 (Vwindow_nest): Rename to Vwindow_combination_limit.
10050 (recombine_windows, make_parent_window, make_window)
10051 (Fsplit_window_internal, saved_window)
10052 (Fset_window_configuration, save_window_save): Rename all
10053 occurrences of window_nest to window_combination_limit.
10054
c7015153
JB
100552011-11-15 Juanma Barranquero <lekktu@gmail.com>
10056
10057 * image.c (imagemagick_load_image): Fix typo.
10058
322ad6ec
EZ
100592011-11-14 Eli Zaretskii <eliz@gnu.org>
10060
10061 * xdisp.c (display_line): Move the call to
10062 highlight_trailing_whitespace before the call to
10063 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
10064 faces of all the glyphs to compute ROW's hash value.
10065 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 10066
f067b8ec
JB
100672011-11-14 Juanma Barranquero <lekktu@gmail.com>
10068
10069 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
10070 just return (bug#10044).
10071
1e5b2111
EZ
100722011-11-12 Eli Zaretskii <eliz@gnu.org>
10073
7ef3cbd5
EZ
10074 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
10075 with user-defined heap size. Bump the default size of the temacs
10076 heap to 27MB, to avoid memory warning when running temacs.
10077 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
10078
1e5b2111
EZ
10079 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
10080 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
10081 (verify_row_hash) [XASSERTS]: New function.
10082 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
10083 that the hash value of glyph rows is correct.
1e5b2111 10084
89d61221
MR
100852011-11-12 Martin Rudalics <rudalics@gmx.at>
10086
10087 * window.h (window): Remove splits slot.
10088 * window.c (Fwindow_splits, Fset_window_splits): Remove.
10089 (Fdelete_other_windows_internal, make_parent_window)
10090 (make_window, Fsplit_window_internal, Fdelete_window_internal)
10091 (Fset_window_configuration, save_window_save): Don't deal with
10092 split status of windows.
10093 (saved_window): Remove splits slot.
10094 (Vwindow_splits): Rewrite doc-string.
10095
97f18cc8
JD
100962011-11-11 Jan Djärv <jan.h.d@swipnet.se>
10097
10098 * xfns.c (unwind_create_frame):
10099 * nsfns.m (unwind_create_frame):
10100 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
10101 Vframe_list (Bug#9999).
10102
22a648b4
DA
101032011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
10104
0b381c7e 10105 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 10106
659afede
KH
101072011-11-11 Kenichi Handa <handa@m17n.org>
10108
10109 * callproc.c (Fcall_process): Set the member dst_multibyte of
10110 process_coding.
10111
9ac0394b
KH
101122011-11-11 Johan Bockgård <bojohan@gnu.org>
10113
10114 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
10115 avoid a crash (bug#9496).
10116
2fbdc249
CY
101172011-11-09 Chong Yidong <cyd@gnu.org>
10118
10119 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
10120 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
10121
ac6b1f81
PE
101222011-11-08 Paul Eggert <eggert@cs.ucla.edu>
10123
10124 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
10125
09db192c
PE
101262011-11-08 Paul Eggert <eggert@cs.ucla.edu>
10127
10128 Avoid some portability problems by eschewing 'extern inline' functions.
10129 The trivial performance wins aren't worth the portability hassles; see
10130 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
10131 et seq.
10132 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
10133 (window_box_width, window_box_left, window_box_left_offset)
10134 (window_box_right, window_box_right_offset): Undo previous change,
10135 by removing the "extern"s.
10136 * intervals.c (adjust_intervals_for_insertion)
10137 (adjust_intervals_for_deletion): Undo previous change,
10138 making these static again.
10139 (offset_intervals, temp_set_point_both, temp_set_point)
10140 (copy_intervals_to_string): No longer inline.
10141 * xdisp.c (window_text_bottom_y, window_box_width)
10142 (window_box_height, window_box_left_offset)
10143 (window_box_right_offset, window_box_left, window_box_right)
10144 (window_box): No longer inline.
10145
105216ed
CY
101462011-11-08 Chong Yidong <cyd@gnu.org>
10147
10148 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
10149 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
10150 Signal an error if not a live window.
105216ed
CY
10151 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
10152 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
10153
ae9e237f
JB
101542011-11-07 Juanma Barranquero <lekktu@gmail.com>
10155
10156 * lisp.h (syms_of_abbrev): Remove declaration.
10157 Reported by CHENG Gao <chenggao@royau.me>.
10158
c7aa8333
EZ
101592011-11-07 Eli Zaretskii <eliz@gnu.org>
10160
10161 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
10162 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
10163 of temacs in GUI mode.
10164
be7f5545
MR
101652011-11-07 Martin Rudalics <rudalics@gmx.at>
10166
10167 * window.h: Declare delete_all_child_windows instead of
10168 delete_all_subwindows.
10169 * window.c (Fwindow_nest, Fset_window_nest)
10170 (Fset_window_new_total, Fset_window_new_normal)
10171 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
10172 (delete_all_subwindows): Rename to delete_all_child_windows.
10173 (Fdelete_other_windows_internal, Fset_window_configuration):
10174 Call delete_all_child_windows instead of delete_all_subwindows.
10175 * frame.c (delete_frame): Call delete_all_child_windows instead
10176 of delete_all_subwindows.
10177
ca78dc43
PE
101782011-11-07 Paul Eggert <eggert@cs.ucla.edu>
10179
10180 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
10181 This is also needed for porting to any host where GC_MARK_STACK is
10182 not GC_MAKE_GCPROS_NOOPS.
10183 (which_symbols): Use it.
10184
a0241d01
KH
101852011-11-07 Kenichi Handa <handa@m17n.org>
10186
10187 * coding.c (coding_set_destination): Check coding->src_pos only
10188 when coding->src_object is a buffer (bug#9910).
10189
10190 * process.c (send_process): Set the member src_multibyte of coding
10191 to 0 (bug#9911) when sending a unibyte text.
10192
10193 * callproc.c (Fcall_process): Set the member src_multibyte of
10194 process_coding to 0 (bug#9912).
10195
a64bfdfa 101962011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
10197
10198 * xmenu.c (cleanup_widget_value_tree): New function.
10199 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
10200 calling free_menubar_widget_value_tree directly (Bug#9830).
10201
cb41b32a
PE
102022011-11-06 Paul Eggert <eggert@cs.ucla.edu>
10203
10204 Fix some portability problems with 'inline'.
10205 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
10206 (window_box_width, window_box_left, window_box_left_offset)
10207 (window_box_right, window_box_right_offset): Declare extern.
10208 Otherwise, these inline functions do not conform to C99 and
10209 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
10210 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
10211 * intervals.c (adjust_intervals_for_insertion)
10212 (adjust_intervals_for_deletion): Now extern, because otherwise the
10213 extern inline functions 'offset_intervals' couldn't refer to it.
10214 (static_offset_intervals): Remove.
10215 (offset_intervals): Rewrite using the old contents of
10216 static_offset_intervals. The old version didn't conform to C99
10217 because an extern inline function contained a reference to an
10218 identifier with static linkage.
10219
b7041366
AS
102202011-11-06 Andreas Schwab <schwab@linux-m68k.org>
10221
10222 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
10223 GC.
10224
88a37c4d
EZ
102252011-11-06 Eli Zaretskii <eliz@gnu.org>
10226
10227 * xdisp.c (init_iterator, reseat_to_string): Don't set the
10228 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
10229 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
10230 return Qleft_to_right.
10231
49745b39
CY
102322011-11-06 Chong Yidong <cyd@gnu.org>
10233
10234 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
10235 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
10236 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
10237 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
10238 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
10239 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
10240 (Fwindow_vscroll): Doc fix.
10241 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
10242 argument, since it makes no sense to pass a live window and for
10243 consistency with window-child.
10244
1f05cd82
CS
102452011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
10246
10247 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
10248 support MSVC.
10249
22610910
JR
102502011-11-05 Jason Rumney <jasonr@gnu.org>
10251
10252 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
10253 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
10254 fonts (Bug#6029).
10255 (add_font_entity_to_list): Fix logic errors in mixed boolean and
10256 bitwise arithmetic preventing use of unicode-sip and non-truetype
10257 opentype fonts.
10258
a06776b2
EZ
102592011-11-05 Eli Zaretskii <eliz@gnu.org>
10260
3ad924ba
EZ
10261 * s/ms-w32.h (fstat, stat, utime): Move redirections to
10262 "emacs"-only part.
10263
a06776b2
EZ
10264 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
10265 initialization code to keep similarity to xfns.c after changes
10266 from 2011-11-05.
10267
c9e7db78
JD
102682011-11-05 Jan Djärv <jan.h.d@swipnet.se>
10269
a97f8f3f
JD
10270 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
10271 (unwind_create_frame): New function (Bug#9943).
10272 (Fx_create_frame): Restructure code to be more similar to the one in
10273 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
10274 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
10275 Move terminal->reference_count++ just before making the frame official
10276 (Bug#9943).
10277
10278 * nsterm.m (x_free_frame_resources): New function.
10279 (x_destroy_window): Move code to x_free_frame_resources.
10280
c9e7db78 10281 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
10282 (Fx_create_frame, x_create_tip_frame):
10283 Move terminal->reference_count++ just before making the frame
75f1671a 10284 official. Move initialization of image_cache_refcount and
c9e7db78
JD
10285 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
10286
a6fc3b5c
EZ
102872011-11-05 Eli Zaretskii <eliz@gnu.org>
10288
10289 Support MSVC build with newer versions of Visual Studio.
10290 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
10291 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
10292 nt/gmake.defs.
10293
10294 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
10295 which are not supported by MSVC.
10296 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
10297 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
10298 bitfields.
10299 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
10300 types in bitfields.
10301 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
10302
10303 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
10304
58179cce 103052011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
10306
10307 Support MSVC build with newer versions of Visual Studio.
10308 * w32.c: Don't include w32api.h for MSVC.
10309 (init_environment) [_MSC_VER]: Call sys_access, not _access.
10310
10311 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
10312 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
10313 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
10314 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
10315 e_* cousins.
10316 (alloca) [_MSC_VER]: Define to _alloca.
10317
10318 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
10319
10320 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
10321
a58c13ed
EZ
103222011-11-04 Eli Zaretskii <eliz@gnu.org>
10323
10324 * xdisp.c (note_mouse_highlight): If either of
10325 previous/next-single-property-change returns nil, treat that as
10326 the beginning or the end of the buffer. (Bug#9955)
10327
fe0b6370
JD
103282011-11-04 Jan Djärv <jan.h.d@swipnet.se>
10329
a58c13ed 10330 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
10331 label is not null (Bug#9951).
10332 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
10333 may be NULL.
10334
89bd5ee1
EZ
103352011-11-04 Eli Zaretskii <eliz@gnu.org>
10336
10337 * window.c (Fwindow_body_size): Mention in the doc string that the
10338 return value is in frame's canonical units. (Bug#9949)
10339
84c3edb9
EZ
103402011-11-03 Eli Zaretskii <eliz@gnu.org>
10341
4e2fb5c7
EZ
10342 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
10343
84c3edb9 10344 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 10345 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 10346 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 10347
bc17a887
EZ
103482011-11-01 Eli Zaretskii <eliz@gnu.org>
10349
10350 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
10351 Don't stop backward scan on the continuation glyph, even though
10352 its CHARPOS is positive.
6d5eb5b0
SM
10353 (mouse_face_from_buffer_pos, note_mouse_highlight):
10354 Rename cover_string to disp_string.
bc17a887 10355
4ee88440
MR
103562011-11-01 Martin Rudalics <rudalics@gmx.at>
10357
10358 * window.c (temp_output_buffer_show): Don't use
10359 Vtemp_buffer_show_specifiers.
10360 (Vtemp_buffer_show_specifiers): Remove unused variable.
10361
c2ff3c02
EZ
103622011-10-30 Eli Zaretskii <eliz@gnu.org>
10363
10364 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
10365 past the beginning of the current glyph matrix.
10366
58179cce 103672011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
10368
10369 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
10370 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
10371 HAVE_GTK3 (Bug#9869).
b77a6a7f 10372
3b574623
JD
10373 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
10374 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
10375
b77a6a7f
JD
10376 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
10377
10378 * xterm.c: Declare x_handle_net_wm_state to return int.
10379 (handle_one_xevent): Check if we are iconified but don't have
10380 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
10381 (get_current_wm_state): Return non-zero if not hidden,
10382 check for _NET_WM_STATE_HIDDEN (Bug#9893).
10383 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
10384 (x_handle_net_wm_state): Return what get_current_wm_state returns.
10385 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
10386
196e41e4
PE
103872011-10-29 Paul Eggert <eggert@cs.ucla.edu>
10388
10389 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
10390 so that this new function doesn't get optimized away by a
10391 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
10392
021f2e1a
AS
103932011-10-29 Andreas Schwab <schwab@linux-m68k.org>
10394
10395 * frame.h (MOUSE_HL_INFO): Remove excess parens.
10396
8b058d44
EZ
103972011-10-29 Eli Zaretskii <eliz@gnu.org>
10398
10399 Fix the `xbytecode' command.
10400 * .gdbinit (xprintbytestr): New command.
b50a28de 10401 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
10402 (xbytecode): Print the byte-code string as well.
10403
4452fb80
EZ
104042011-10-29 Kim Storm <storm@cua.dk>
10405
8b058d44
EZ
10406 * alloc.c (which_symbols): New function.
10407
21b72067
AS
104082011-10-29 Andreas Schwab <schwab@linux-m68k.org>
10409
10410 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
10411 line. (Bug#9903)
10412
83ed7b5c
GM
104132011-10-29 Glenn Morris <rgm@gnu.org>
10414
10415 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
10416 Not clear what it was for, and it causes various bugs. (Bug#9839)
10417
5a7a728b
EZ
104182011-10-28 Eli Zaretskii <eliz@gnu.org>
10419
10420 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
10421 possible random value that matches one of those tested as
10422 condition to clear the mouse face.
10423
d3d0842f
CY
104242011-10-28 Chong Yidong <cyd@gnu.org>
10425
10426 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
10427
31b39d13
DN
104282011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
10429
10430 * window.c (make_window): Initialize phys_cursor_on_p.
10431
9aba6043
SM
104322011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
10433
10434 * lisp.h (struct Lisp_Symbol): Update comments.
10435
c20992f4
JB
104362011-10-28 Juanma Barranquero <lekktu@gmail.com>
10437
10438 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
10439
db4f02f2
EZ
104402011-10-28 Eli Zaretskii <eliz@gnu.org>
10441
10442 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
10443 <oslsachem@gmail.com> for helping to debug this.
10444
10445 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
10446 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
10447 (g_b_init_get_glyph_outline_w): New static variables.
10448 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
10449 (GetGlyphOutlineW_Proc): New typedefs.
10450 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
10451 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
10452 New functions.
10453 (w32font_open_internal, compute_metrics):
10454 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
10455 instead of calling the "wide" APIs directly.
10456
10457 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
10458
10459 * w32.h (syms_of_w32font): Add prototype.
10460
87e68db4
JB
104612011-10-27 Juanma Barranquero <lekktu@gmail.com>
10462
10463 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
10464 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
10465 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
10466 (Fmove_to_window_line): Doc fix.
10467
435c1d67
CY
104682011-10-27 Chong Yidong <cyd@gnu.org>
10469
10470 * process.c (make_process): Set gnutls_state to NULL.
10471
10472 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
10473 non-NULL, regardless of GNUTLS_INITSTAGE.
10474 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
10475 an error. Set process slots as soon as we allocate them.
10476
10477 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
10478
9c6c6f49
CY
104792011-10-27 Chong Yidong <cyd@gnu.org>
10480
9aba6043
SM
10481 * gnutls.c (emacs_gnutls_deinit): New function.
10482 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
10483 (Fgnutls_deinit, Fgnutls_boot): Use it.
10484
10485 * process.c (make_process): Initialize GnuTLS credentials to NULL.
10486 (deactivate_process): Call emacs_gnutls_deinit.
10487
657d08d3
JB
104882011-10-27 Juanma Barranquero <lekktu@gmail.com>
10489
10490 * image.c (x_create_x_image_and_pixmap):
10491 * w32.c (sys_rename, w32_delayed_load):
10492 * w32font.c (fill_in_logfont):
10493 * w32reg.c (x_get_string_resource): Silence compiler warnings.
10494
5430d399
JB
104952011-10-26 Juanma Barranquero <lekktu@gmail.com>
10496
10497 * w32fns.c (w32_default_color_map): New function,
10498 extracted from Fw32_default_color_map.
a7ef684b 10499 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 10500
fe0055fa
PE
105012011-10-25 Paul Eggert <eggert@cs.ucla.edu>
10502
10503 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
10504
e6346438
SM
105052011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
10506
10507 * keyboard.c (test_undefined): New function (bug#9751).
10508 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
10509
e112cc37
ET
105102011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
10511
10512 * sysdep.c (init_sys_modes): Fix the check for the controlling
10513 terminal (Bug#6649).
10514
7b5d6677
EZ
105152011-10-20 Eli Zaretskii <eliz@gnu.org>
10516
10517 * dispextern.h (struct bidi_it): New member next_en_type.
10518
10519 * bidi.c (bidi_line_init): Initialize the next_en_type member.
10520 (bidi_resolve_explicit_1): When next_en_pos is valid for the
10521 current character, check also for next_en_type being WEAK_EN.
10522 (bidi_resolve_weak): Don't enter the expensive loop if the current
10523 position is before next_en_pos. Record the bidi type of the first
10524 non-ET, non-BN character we find, in addition to its position.
10525 (bidi_level_of_next_char): Invalidate next_en_type when
10526 next_en_pos is over-stepped.
10527
7da0b018
PE
105282011-10-20 Paul Eggert <eggert@cs.ucla.edu>
10529
10530 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
10531 * editfns.c: Rewrite current-time-zone so that it invokes
10532 the equivalent of (format-time-string "%Z") to get the time zone name.
10533 This fixes a bug when the time zone name contains characters that
10534 need converting from the system time locale to Emacs internal format.
10535 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
10536 that patch fixed format-time-string to do the conversion, but
10537 I forgot to fix current-time-zone.
10538 (format_time_string): New function, containing most of
10539 what Fformat_time_string used to contain.
10540 (Fformat_time_string): Rewrite in terms of format_time_string.
10541 This doesn't change this function's behavior.
10542 (current-time-zone): Rewrite to use format_time_string.
10543 This fixes the bug reported by Michael Schierl in
10544 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
10545 Jason Rumney's 2007-06-07 change worked around this bug, but
10546 didn't fix it.
10547 * systime.h (tzname, timezone): Remove no-longer-used declarations.
10548
8547b010
EZ
105492011-10-19 Eli Zaretskii <eliz@gnu.org>
10550
10551 * xdisp.c (start_display): If the character at POS is displayed
10552 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
10553 (try_window_reusing_current_matrix): If a line ends in a display
10554 vector or the next line starts in a display vector, continue
10555 redrawing the window even though the character position of
10556 start_row was reached.
8547b010
EZ
10557 (Bug#9771, part 2)
10558
4e948d15
CY
105592011-10-18 Chong Yidong <cyd@gnu.org>
10560
10561 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
10562 with nobreak-char-display too.
10563
4787455f
EZ
105642011-10-18 Eli Zaretskii <eliz@gnu.org>
10565
10566 Fix part 3 of bug#9771.
10567 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
10568 (bidi_resolve_neutral): Don't enter the expensive loop looking for
10569 non-neutral characters if the current character is a paragraph
10570 separator (a.k.a. Newline). This avoids running the same
10571 expensive loop twice, once when we consume the preceding newline
10572 and the other time when the line actually needs to be displayed.
10573 Avoid the loop when we see neutrals on the base embedding level
10574 following a character whose directionality is the same as the
10575 paragraph's. This avoids running the expensive loop when a line
10576 ends in a long sequence of neutrals, like control characters.
10577 Add assertion against STRONG_AL type. Slightly rearrange code
10578 that determines the type of a neutral given the first non-neutral
10579 that follows it.
10580 (bidi_level_of_next_char): Set next_en_pos to zero when
10581 invalidating its info.
10582
2c91f553
EZ
105832011-10-17 Eli Zaretskii <eliz@gnu.org>
10584
10585 * xdisp.c (push_display_prop): Determine whether to record string
10586 or buffer position by IT->string, not by IT->method. Allow
10587 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
10588 (move_it_vertically_backward): Don't look for character position
10589 immediately after the newline when in a continuation line.
10590 (Bug#9771, part 1)
2c91f553 10591
c7b08b0d
MR
105922011-10-15 Martin Rudalics <rudalics@gmx.at>
10593
10594 * window.c (coordinates_in_window): Rewrite and delabelize
10595 vertical border check. (Bug#5357) (Bug#9618)
10596
6b02f655
SM
105972011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
10598
10599 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
10600 errors in XSetWindowBorder (bug#9310).
10601
81d40c92
DA
106022011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
10603
10604 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
10605 avoid crash when xmalloc overrun checking is enabled.
10606
d4172c3b
EZ
106072011-10-13 Eli Zaretskii <eliz@gnu.org>
10608
10609 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
10610 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
10611 cursor motion with <left> and <right> arrow keys.
10612
10613 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
10614 some callers set that themselves.
10615
b00eea75
EZ
106162011-10-12 Eli Zaretskii <eliz@gnu.org>
10617
10618 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
10619 display string and the previous row comes from the same string and
10620 is empty. (Bug#9739) (Bug#9738)
10621
8fe012c4
SM
106222011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
10623
10624 * doc.c (get_doc_string): Encode file name (bug#9735).
10625
0074aef2
EZ
106262011-10-12 Eli Zaretskii <eliz@gnu.org>
10627
79beb178
EZ
10628 * bidi.c (bidi_level_of_next_char):
10629 * xdisp.c (get_visually_first_element): Remove old incorrect
10630 comments regarding the Unicode Line Separator character.
10631
0074aef2
EZ
10632 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
10633
6e4b3fbe
DA
106342011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
10635
10636 * alloc.c (Fgc_status): Do not access beyond zombies array
10637 boundary if nzombies > MAX_ZOMBIES.
10638 * alloc.c (dump_zombies): Add missing format specifier.
10639
0324f3af
PE
106402011-10-12 Paul Eggert <eggert@cs.ucla.edu>
10641
b5525cac
PE
10642 * xdisp.c (set_cursor_from_row): Simplify conditionals,
10643 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
10644
0324f3af
PE
10645 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
10646 Some packages use them to denote characters with modifiers.
10647
e9b5f888
AS
106482011-10-11 Andreas Schwab <schwab@linux-m68k.org>
10649
10650 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
10651 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
10652 matching a pp-number. Rename parameter var to var1.
10653
127827c0
SM
106542011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
10655
10656 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
10657
c8fd3bd0
GM
106582011-10-08 Glenn Morris <rgm@gnu.org>
10659
10660 * callint.c (Fcall_interactively): Give a more explicit error for the
10661 'c' case with a non-character input. (Bug#8479)
10662
352ec8ff
EZ
106632011-10-08 Eli Zaretskii <eliz@gnu.org>
10664
03669ccb
EZ
10665 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
10666 lines.
7061c986
EZ
10667 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
10668 lines that are hscrolled on the left.
03669ccb 10669
352ec8ff
EZ
10670 * dispnew.c (buffer_posn_from_coords): Account for a possible
10671 presence of header-line. (Bug#4426)
10672
a66cfb1c
SM
106732011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
10674
6b02f655
SM
10675 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
10676 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 10677
7c5ee88e
PE
106782011-10-07 Paul Eggert <eggert@cs.ucla.edu>
10679
10680 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
10681 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
10682 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
10683 this makes Emacs dump core during garbage collection on rare
10684 occasions. sizeof is obviously inferior to offsetof here, so
10685 stick with offsetof.
10686 (GC_POINTER_ALIGNMENT): New macro.
10687 (mark_memory): Omit 3rd (offset) arg; caller changed.
10688 Don't assume EMACS_INT alignment is the same as pointer alignment.
10689
df1bbe5b
SM
106902011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
10691
10692 * keyboard.c (read_key_sequence_remapped): New var.
10693 (read_key_sequence): Compute remapping in the right buffer.
10694 (command_loop_1): Use read_key_sequence's remapping directly.
10695
51553db6
SM
106962011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
10697
32c1fffd
SM
10698 * dired.c (file_name_completion): Don't expand file name.
10699 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
10700 before checking file name handler.
10701
51553db6
SM
10702 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
10703 they've been requested explicitly (bug#9591).
10704
b6bd1599 107052011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
10706
10707 * keymap.c (Fsingle_key_description): Use make_specified_string
10708 instead of build_string to build string from push_key_description.
10709 (Bug#5193)
10710
f701dc2a
PE
107112011-09-30 Paul Eggert <eggert@cs.ucla.edu>
10712
4222c55d
PE
10713 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
10714 This fixes a Y2038 bug on 64-bit hosts.
10715 * buffer.c (reset_buffer):
10716 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
10717 (Fclear_buffer_auto_save_failure):
10718 Use 0, not -1, to represent an unset failure time, since time_t
10719 might not be signed.
10720
f701dc2a
PE
10721 Remove dependency on glibc malloc internals.
10722 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
10723 Move back here from lisp.h, but with their new implementations.
10724 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
10725 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
10726 * charset.c (charset_table_init): New static var.
10727 (syms_of_charset): Use it instead of xmalloc. This removes a
10728 dependency on glibc malloc internals. See Eli Zaretskii's comment in
10729 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
10730 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
10731 Move back to alloc.c.
10732 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
10733 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
10734
9ceebf39
JD
107352011-09-30 Jan Djärv <jan.h.d@swipnet.se>
10736
10737 * nsterm.m (windowDidResize): Call x_set_window_size only when
10738 ns_in_resize is true. Otherwise set pixelwidth/height and
10739 call change_frame_size (Bug#9628).
10740
cb993c58
PE
107412011-09-30 Paul Eggert <eggert@cs.ucla.edu>
10742
3930c88b
PE
10743 Port --enable-checking=all to Fedora 14 x86-64.
10744 * charset.c (syms_of_charset): Also account for glibc malloc's
10745 internal overhead when calculating the initial malloc maximum.
10746
cb993c58
PE
10747 Port --enable-checking=all to Fedora 14 x86.
10748 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
10749 Move to lisp.h.
10750 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
10751 (overrun_check_realloc, overrun_check_free):
10752 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
10753 That way, xmalloc returns a properly-aligned pointer even if
10754 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
10755 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
10756 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
10757 into account when calculating the initial malloc maximum.
10758 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
10759 Move here from alloc.c, so that charset.c can use it too.
10760 Properly align; the old code wasn't right for common 32-bit hosts
10761 when configured with --enable-checking=all.
10762 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
10763 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
10764
31bed486
EZ
107652011-09-29 Eli Zaretskii <eliz@gnu.org>
10766
04c70788 10767 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
10768 use EDOM.
10769
fbcaa2f3
EZ
107702011-09-28 Eli Zaretskii <eliz@gnu.org>
10771
10772 * xdisp.c (compute_display_string_end): If there's no display
10773 string at CHARPOS, return -1.
10774
10775 * bidi.c (bidi_fetch_char): When compute_display_string_end
10776 returns a negative value, treat the character as a normal
10777 character not covered by a display string. (Bug#9624)
10778
a239d4e9
JB
107792011-09-28 Juanma Barranquero <lekktu@gmail.com>
10780
10781 * lread.c (Fread_from_string): Fix typo in docstring.
10782
88652fd5
EZ
107832011-09-27 Eli Zaretskii <eliz@gnu.org>
10784
10785 * xdisp.c (handle_invisible_prop): If invisible text ends on a
10786 newline, reseat the iterator instead of bidi-iterating there one
10787 character at a time. (Bug#9610)
32c1fffd
SM
10788 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
10789 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 10790
ed497dd4
AS
107912011-09-27 Andreas Schwab <schwab@linux-m68k.org>
10792
10793 * lread.c (readevalloop): Use correct code for NBSP.
10794 (read1): Likewise. (Bug#9608)
10795
b2bf61aa
MA
107962011-09-25 Michael Albinus <michael.albinus@gmx.de>
10797
10798 * dbusbind.c (Fdbus_register_signal): When service is not
10799 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
10800
32bbb17c
GM
108012011-09-25 Glenn Morris <rgm@gnu.org>
10802
10803 * buffer.c (truncate-lines): Doc fix.
10804
94e0933e
CY
108052011-09-24 Chong Yidong <cyd@stupidchicken.com>
10806
10807 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
10808 (Fset_window_next_buffers): Doc fix.
10809
cddde921
GM
108102011-09-24 Glenn Morris <rgm@gnu.org>
10811
10812 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
10813
1260aef1
PE
108142011-09-24 Paul Eggert <eggert@cs.ucla.edu>
10815
25b4bfa0
PE
10816 Fix minor problems found by static checking.
10817 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
10818 * indent.c (Fvertical_motion): Fix == vs = typo.
10819
e3cbd34b
EZ
108202011-09-24 Eli Zaretskii <eliz@gnu.org>
10821
a66cfb1c
SM
10822 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
10823 Default value is now t. Doc fix.
6bf7006f 10824
e3cbd34b 10825 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 10826 logic when moving up, not only when moving down. Fix the
e3cbd34b 10827 confusing name and values of the it_overshoot_expected variable;
32c1fffd 10828 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
10829
10830 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
10831 CHARPOS is covered by a display string which includes newlines.
10832 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
10833 is covered by a display string with embedded newlines.
10834
a3de0cbd
MA
108352011-09-24 Michael Albinus <michael.albinus@gmx.de>
10836
10837 * dbusbind.c (Fdbus_register_signal): Add match rule to
10838 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
10839 (Fdbus_register_method, Vdbus_registered_objects_table):
10840 Fix docstring.
a3de0cbd 10841
b260039d
JM
108422011-09-24 Jim Meyering <meyering@redhat.com>
10843
32c1fffd 10844 do not ignore write error for any output size
b260039d
JM
10845 The previous change was incomplete.
10846 While it makes emacs --batch detect the vast majority of stdout
10847 write failures, errors were still ignored whenever the output size is
10848 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
10849 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
10850 && echo FAIL: ignored write error
10851 FAIL: ignored write error
10852 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
10853 && echo FAIL: ignored write error
10854 FAIL: ignored write error
10855 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
10856
8eca8a7c
AS
108572011-09-23 Andreas Schwab <schwab@linux-m68k.org>
10858
10859 * emacs.c (Fkill_emacs): In noninteractive mode exit
10860 non-successfully if a write error occurred on stdout. (Bug#9574)
10861
3341db62
EZ
108622011-09-21 Eli Zaretskii <eliz@gnu.org>
10863
10864 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
10865 the xassert test.
10866
10867 * dispextern.h (struct it): Update the comment documenting what
10868 can it->OBJECT be.
10869
8c203dbf
EZ
108702011-09-20 Eli Zaretskii <eliz@gnu.org>
10871
10872 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
10873 a display string, extend search for cursor position to end of row.
10874 (find_row_edges): If the row ends in a newline from a display
10875 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
10876 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
10877 (Fcurrent_bidi_paragraph_direction): Fix search for previous
10878 non-empty line. Fixes confusing cursor motion with arrow keys at
10879 the beginning of a line that starts with whitespace.
8c203dbf 10880
a4824228
LMI
108812011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
10882
10883 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
10884 (bug#9493).
10885
33ed493b
CY
108862011-09-18 Chong Yidong <cyd@stupidchicken.com>
10887
10888 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
10889 boolean (Bug#9154).
10890
56cd55c8
EZ
108912011-09-18 Eli Zaretskii <eliz@gnu.org>
10892
10893 * xdisp.c (display_line): Record maximum and minimum buffer
10894 positions even if no glyphs were produced (e.g., by a zero-width
10895 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
10896 buffer positions that will be removed from the glyph row because
10897 they don't fit.
c02dcedf
EZ
10898 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
10899 column is beyond frame width: don't subtract 1 "pixel" when
10900 computing width of the stretch.
3e62b7e0
EZ
10901 (reseat_at_next_visible_line_start): Undo the change made on
10902 2011-09-17 that saved paragraph information and restored it after
10903 the call to `reseat'. (Bug#9545)
56cd55c8 10904
5ed99d36 109052011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
10906
10907 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
10908 and turn window cursor on if cleared (Bug#9415).
10909
5ed99d36 109102011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
10911
10912 * search.c (boyer_moore): Take unibyte characters from pattern
10913 literally. (Bug#9458)
10914
9bade7b2
EZ
109152011-09-18 Eli Zaretskii <eliz@gnu.org>
10916
10917 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
10918
e5e9d610
PE
109192011-09-18 Paul Eggert <eggert@cs.ucla.edu>
10920
87e4427a
PE
10921 Fix minor problem found by static checking.
10922 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
10923 initialized, to pacify gcc -Wuninitialized.
10924
e5e9d610
PE
10925 * fileio.c: Report proper errno when syscall falls.
10926 (Finsert_file_contents): Save and restore errno,
10927 so that report_file_error outputs the correct diagnostic.
10928 (Fwrite_region) [CLASH_DETECTION]: Likewise.
10929
a1674f0b
EZ
109302011-09-18 Eli Zaretskii <eliz@gnu.org>
10931
10932 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
10933
fbfb6dd4
EZ
109342011-09-17 Eli Zaretskii <eliz@gnu.org>
10935
10936 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
10937 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
10938
bb187662
EZ
109392011-09-17 Eli Zaretskii <eliz@gnu.org>
10940
1137e8b8 10941 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 10942 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
10943
10944 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
10945 (bidi_find_paragraph_start): Search back for paragraph beginning
10946 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
10947 (bidi_move_to_visually_next): Only trigger paragraph-related
10948 computations when the last character is a newline or at EOB, not
10949 just any NEUTRAL_B. (Bug#9470)
10950
bb187662
EZ
10951 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
10952 truncated lines if point is covered by a display string. (Bug#9524)
10953
2e621251
PE
109542011-09-16 Paul Eggert <eggert@cs.ucla.edu>
10955
10956 * xselect.c: Relax test for outgoing X longs (Bug#9498).
10957 (cons_to_x_long): New function.
10958 (lisp_data_to_selection_data): Use it. Correct the test for
10959 short-versus-long data; it was negated. Break out of vector
10960 loop, for efficiency, when a long datum is discovered.
10961
91a15bc6
SM
109622011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
10963
10964 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
10965
b41c3a35
EZ
109662011-09-16 Eli Zaretskii <eliz@gnu.org>
10967
10968 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
10969 GCC PR/17406) by declaring this function with external scope.
10970
7812ba2d
PE
109712011-09-15 Paul Eggert <eggert@cs.ucla.edu>
10972
10973 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
10974 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
10975
cf7edc2a
AS
109762011-09-15 Andreas Schwab <schwab@linux-m68k.org>
10977
10978 * editfns.c (Fformat): Correctly handle text properties on "%%".
10979
bd01620e
EZ
109802011-09-15 Eli Zaretskii <eliz@gnu.org>
10981
10982 * xterm.c (x_draw_composite_glyph_string_foreground):
10983 * w32term.c (x_draw_composite_glyph_string_foreground):
10984 * term.c (encode_terminal_code):
10985 * composite.c (composition_update_it, get_composition_id):
10986 * xdisp.c (get_next_display_element)
10987 (fill_composite_glyph_string): Add comments about special meaning
10988 of TAB characters in a composition.
10989
a02719a3
PE
109902011-09-15 Paul Eggert <eggert@cs.ucla.edu>
10991
10992 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
10993 This occurs when processing a multibyte format.
10994 Problem reported by Wolfgang Jenker.
a02719a3 10995
72589a3c
JB
109962011-09-15 Johan Bockgård <bojohan@gnu.org>
10997
10998 * xdisp.c (try_cursor_movement): Only check for exact match if
10999 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
11000
1c14176c
PE
110012011-09-14 Paul Eggert <eggert@cs.ucla.edu>
11002
11003 Remove unused external symbols.
11004 * dispextern.h (calc_pixel_width_or_height): Remove decl.
11005 * xdisp.c (calc_pixel_width_or_height): Now static.
11006 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
11007 * indent.c (check_display_width):
11008 * w32term.c: Fix comment to match code.
11009 * xterm.c, xterm.h (x_catching_errors): Remove.
11010
d2eea5b5
PE
110112011-09-14 Paul Eggert <eggert@cs.ucla.edu>
11012
11013 * xselect.c: Use signed conversions more consistently (Bug#9498).
11014 (selection_data_to_lisp_data): Assume incoming selection data are
11015 signed integers, not unsigned. This is to be consistent with
11016 outgoing selection data, which was modified to use signed integers
11017 in as part of the fix to Bug#9196 in response to Jan D.'s comment
11018 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
11019 expects long, not unsigned long.
11020
46888499
EZ
110212011-09-14 Eli Zaretskii <eliz@gnu.org>
11022
11023 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
11024 computation of loop end. Reported by Johan Bockgård
11025 <bojohan@gnu.org>.
11026
ef8ef9fb
CY
110272011-09-13 Chong Yidong <cyd@stupidchicken.com>
11028
11029 * frame.c (Fother_visible_frames_p): Function deleted.
11030
fa819fed
EZ
110312011-09-12 Eli Zaretskii <eliz@gnu.org>
11032
11033 * indent.c (compute_motion): Process display vector front to back
11034 rather than the other way around. (Bug#2496)
11035
2ba8e008
SM
110362011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
11037
11038 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
11039
20f53c69
CY
110402011-09-11 Chong Yidong <cyd@stupidchicken.com>
11041
11042 * minibuf.c (Fread_from_minibuffer): Doc fix.
11043
d562d7a4
EZ
110442011-09-11 Eli Zaretskii <eliz@gnu.org>
11045
11046 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
11047 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
11048
1c4d7f3d
LMI
110492011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
11050
11051 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
11052 value for non-existent files.
11053
b885bf36
EZ
110542011-09-11 Eli Zaretskii <eliz@gnu.org>
11055
11056 * fileio.c (Finsert_file_contents): If the file cannot be opened,
11057 set its "size" to -1. This will set the modtime_size field of
11058 the corresponding buffer to -1, which is what
11059 verify-visited-file-modtime expects for files that do not exist.
11060 (Bug#9139)
11061
6612f0bf
PE
110622011-09-11 Paul Eggert <eggert@cs.ucla.edu>
11063
11064 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
11065 here ...
11066 * lisp.h: ... from here. push_key_description is no longer
11067 defined in keyboard.c, so its declaration should not be in
11068 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
11069 logically belongs with push_key_description.
11070
dfb3f755
PE
110712011-09-10 Paul Eggert <eggert@cs.ucla.edu>
11072
11073 * buffer.h: Include <sys/types.h> instead of <time.h>.
11074 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
11075 Problem reported by Herbert J. Skuhra.
11076
3134906c
LMI
110772011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
11078
11079 * xml.c (parse_region): Make the parsing work for
11080 non-comment-starting XML files again (bug#9144).
11081
8d903f4e
AS
110822011-09-10 Andreas Schwab <schwab@linux-m68k.org>
11083
11084 * image.c (gif_load): Fix calculation of bottom and right corner.
11085 (Bug#9468)
11086
80ad64f4
EZ
110872011-09-10 Eli Zaretskii <eliz@gnu.org>
11088
11089 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
11090 redisplay in small windows.
11091
208a048d
EZ
110922011-09-09 Eli Zaretskii <eliz@gnu.org>
11093
11094 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
11095
9b1c252e
MR
110962011-09-08 Martin Rudalics <rudalics@gmx.at>
11097
11098 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
11099 Operate on live windows only.
11100
2949f33b
JB
111012011-09-08 Juanma Barranquero <lekktu@gmail.com>
11102
11103 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
11104
e08dcafd
EZ
111052011-09-07 Eli Zaretskii <eliz@gnu.org>
11106
11107 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
11108 only under bidi iteration.
11109
115b96bd
JD
111102011-09-07 Jan Djärv <jan.h.d@swipnet.se>
11111
11112 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
11113
c8199d0f
PE
111142011-09-06 Paul Eggert <eggert@cs.ucla.edu>
11115
11116 isnan: Fix porting problem to Solaris 10 with bundled gcc.
11117 Without this fix, the command to link temacs failed due to an
11118 undefined symbol __builtin_isnan. This is because
11119 /usr/include/iso/math_c99.h #defines isnan(x) to
11120 __builtin_isnan(x), but the bundled gcc, which identifies itself
11121 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
11122 a __builtin_isnan.
11123 * floatfns.c (isnan): #undef, and then #define to a clone of
11124 what's in data.c.
11125 (Fisnan): Always define, since it's always available now.
11126 (syms_of_floatfns): Always define isnan at the Lisp level.
11127
e39b275c 111282011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
11129
11130 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
11131
b2db44d9 111322011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 11133
f4af5137 11134 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
11135 The previous code assumed that file offsets (off_t values) fit in
11136 EMACS_INT variables, which is not true on typical 32-bit hosts.
11137 The code messed up by falsely reporting buffer overflow in cases
11138 such as (insert-file-contents "big" nil 1 2) into an empty buffer
11139 when "big" contains more than 2**29 bytes, even though this
11140 inserts just one byte and does not overflow the buffer.
11141 (Finsert_file_contents): Store file offsets as off_t
11142 values, not as EMACS_INT values. Check for overflow when
11143 converting between EMACS_INT and off_t. When checking for
11144 buffer overflow or for overlap, take the offsets into account.
11145 Don't use EMACS_INT for small values where int suffices.
11146 When checking for overlap, fix a typo: ZV was used where
11147 ZV_BYTE was intended.
11148 (Fwrite_region): Don't assume off_t fits into 'long'.
11149 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
11150
ecfc0a49
MA
111512011-09-05 Michael Albinus <michael.albinus@gmx.de>
11152
11153 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
11154
6511acf2 111552011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 11156
0999621a 11157 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
11158
11159 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 11160 (esprintf, exprintf, evxprintf): New functions.
62f19c19 11161 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 11162 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
11163 (modify_event_symbol): Do not assume that the length of
11164 name_alist_or_stem is safe to alloca and fits in int.
11165 (Fexecute_extended_command): Likewise for function name and binding.
11166 (Frecursion_depth): Wrap around reliably on integer overflow.
11167 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
11168 since some callers pass EMACS_INT values.
11169 (Fsingle_key_description): Don't crash if symbol name contains more
11170 than MAX_ALLOCA bytes.
11171 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
11172 (get_minibuffer): Arg is now EMACS_INT, not int.
11173 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 11174 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
11175 * window.h (command_loop_level, minibuf_level): Reflect API changes.
11176
2be7d702
PE
11177 * dbusbind.c (signature_cat): New function.
11178 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
11179 Do not overrun buffer; instead, report string overflow.
11180
9d1df220
PE
11181 * dispnew.c (add_window_display_history): Don't overrun buffer.
11182 Truncate instead; this is OK since it's just a log.
11183
33ef5c64
PE
11184 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
11185 even if the time zone offset is outlandishly large.
11186 Don't mishandle offset == INT_MIN.
11187
66c6fdd5
PE
11188 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
11189 when creating daemon; the previous buffer-overflow check was incorrect.
11190
d749b01b
PE
11191 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
11192 which has the guts of the old verror function.
11193
b5cd1905
PE
11194 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
11195 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
11196
6e1a67fb
PE
11197 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
11198 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 11199 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 11200 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
11201 length of string rather than counting it via multiple sprintfs;
11202 that's simpler and more reliable.
c21721cc
PE
11203 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
11204 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
11205 sprintf, in case result does not fit in int.
11206
c57b67fc
PE
11207 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
11208 (fontset_from_font): Print it.
11209
8a401434
PE
11210 * frame.c (tty_frame_count): Now printmax_t, not int.
11211 (make_terminal_frame, set_term_frame_name): Print it.
11212 (x_report_frame_params): In X, window IDs are unsigned long,
11213 not signed long, so print them as unsigned.
11214 (validate_x_resource_name): Check for implausibly long names,
11215 and don't assume name length fits in 'int'.
11216 (x_get_resource_string): Don't blindly alloca invocation name;
11217 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
11218 not fit in int.
11219
6e1a67fb
PE
11220 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
11221 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
11222 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
11223
0df02bf3
PE
11224 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
11225 Use esprintf, not sprintf, in case result does not fit in int.
11226
48e30793
PE
11227 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
11228 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
11229 it as a large positive number.
11230 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
11231 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
11232
a66ff6d8
PE
11233 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
11234 in case result does not fit in int.
11235
aca216ff
PE
11236 * print.c (float_to_string): Detect width overflow more reliably.
11237 (print_object): Make sprintf buffer a bit bigger, to avoid potential
11238 buffer overrun. Don't assume list length fits in 'int'. Treat
11239 print length of 0 as 0, not as infinity; to be consistent with other
11240 uses of print length in this function. Don't overflow print length
11241 index. Don't assume hash table size fits in 'long', or that
11242 vectorlike size fits in 'unsigned long'.
11243
31c286f7
PE
11244 * process.c (make_process): Use printmax_t, not int, to format
11245 process-name gensyms.
11246
55e5faa1
PE
11247 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
11248
80f2e268
PE
11249 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
11250 to avoid potential buffer overrun.
11251
670741ab
PE
11252 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
11253 if X resource line is longer than 512 bytes.
11254
b7163a50
PE
11255 * xfns.c (x_window): Make sprintf buffer a bit bigger
11256 to avoid potential buffer overrun.
11257
ae58ff1f
PE
11258 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
11259
c43c8a6a
PE
11260 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
11261
3f8236f4
PE
112622011-09-04 Paul Eggert <eggert@cs.ucla.edu>
11263
53e9fe90 11264 Integer overflow fixes for scrolling, etc.
6511acf2
PE
11265 Without these, Emacs silently mishandles large integers sometimes.
11266 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
11267 it were "C-u 1 M-x recenter" on a typical 64-bit host.
11268
6511acf2
PE
11269 * xdisp.c (try_window_id): Check Emacs fixnum range before
11270 converting to 'int'.
806add1d 11271
6511acf2 11272 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
11273 Check that an Emacs fixnum is in range before assigning it to 'int'.
11274 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
11275 values converted from Emacs fixnums.
11276 (Frecenter): Don't wrap around a line count if it is out of 'int'
11277 range; instead, treat it as an extreme value.
11278 (Fset_window_configuration, compare_window_configurations):
11279 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
11280
6511acf2
PE
11281 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
11282 that can exceed INT_MAX. Check that EMACS_INT value is in range
11283 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
11284 (match_limit): Don't assume that a fixnum can fit in 'int'.
11285
6511acf2 11286 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
11287 exceed INT_MAX.
11288
6511acf2 11289 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
11290 (Fvertical_motion): Don't wrap around LINES values that don't fit
11291 in 'int'. Instead, treat them as extreme values. This is good
11292 enough for windows, which can't have more than INT_MAX lines anyway.
11293
fcb901a7
LMI
112942011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
11295
0f2f6b6d
LMI
11296 * Require libxml/parser.h to avoid compilation warning.
11297
fcb901a7
LMI
11298 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
11299
11300 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
11301 since this reportedly can destroy thread storage.
11302
6e20a0d4
CY
113032011-08-30 Chong Yidong <cyd@stupidchicken.com>
11304
11305 * syntax.c (find_defun_start): Update all cache variables if
11306 exiting early (Bug#9401).
11307
148ae00e
EZ
113082011-08-30 Eli Zaretskii <eliz@gnu.org>
11309
f6cfbd8f
EZ
11310 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
11311
148ae00e
EZ
11312 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
11313 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
11314 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
11315
11316 * term.c (tty_append_glyph): New function.
11317 (produce_stretch_glyph): Static function and its prototype deleted.
11318
a66cfb1c
SM
11319 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
11320 Add prototypes.
148ae00e 11321
c4a07a4c
PE
113222011-08-29 Paul Eggert <eggert@cs.ucla.edu>
11323
11324 * image.c (parse_image_spec): Check for nonnegative, not for positive,
11325 when checking :margin (Bug#9390).
11326 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 11327 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
11328 so that the name doesn't mislead. All uses changed.
11329
6bc8cd65
JB
113302011-08-28 Johan Bockgård <bojohan@gnu.org>
11331
11332 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
11333 set_tty_hooks.
11334
dca4927e
EZ
113352011-08-27 Eli Zaretskii <eliz@gnu.org>
11336
11337 * xdisp.c (move_it_to): Don't bail out early when reaching
11338 position beyond to_charpos, if we are scanning backwards.
11339 (move_it_vertically_backward): When DY == 0, make sure we get to
11340 the first character in the line after the newline.
11341
f2cad773
PE
113422011-08-27 Paul Eggert <eggert@cs.ucla.edu>
11343
11344 * ccl.c: Improve and simplify overflow checking (Bug#9196).
11345 (ccl_driver): Do not generate an out-of-range pointer.
11346 (Fccl_execute_on_string): Remove unnecessary check for
11347 integer overflow, noted by Stefan Monnier in
11348 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
11349 Remove a FIXME that didn't need fixing.
11350 Simplify the newly-introduced buffer reallocation code.
11351
0cae2cdb
JB
113522011-08-27 Juanma Barranquero <lekktu@gmail.com>
11353
11354 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
11355
5fc295a4 113562011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 11357
70c60eb2 11358 Integer and memory overflow issues (Bug#9196).
726e0ab1 11359
d31850da
PE
11360 * doc.c (get_doc_string): Rework so that
11361 get_doc_string_buffer_size is the actual buffer size, rather than
11362 being 1 less than the actual buffer size; this makes xpalloc more
11363 convenient.
11364
a69fbedb
PE
11365 * image.c (x_allocate_bitmap_record, cache_image):
11366 * xselect.c (Fx_register_dnd_atom):
11367 Simplify previous changes by using xpalloc.
11368
fe5c5d37
PE
11369 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
11370 since either will do and ptrdiff_t is convenient with xpalloc.
11371
0065d054
PE
11372 * charset.c (charset_table_size)
11373 (struct charset_sort_data.priority): Now ptrdiff_t.
11374 (charset_compare): Don't overflow if priorities differ greatly.
11375 (Fsort_charsets): Don't assume list length fits in int.
11376 Check for size-calculation overflow when allocating sort data.
11377 (syms_of_charset): Allocate an initial charset table that is
11378 just under 64 KiB, to avoid problems with glibc malloc and mmap.
11379
11380 * cmds.c (internal_self_insert): Check for size-calculation overflow.
11381
11382 * composite.h (struct composition.glyph_len): Now int, not unsigned.
11383 The actual value is always <= INT_MAX, and leaving it unsigned made
11384 overflow checking harder.
11385
11386 * dispextern.h (struct glyph_matrix.rows_allocated)
11387 (struct face_cache.size): Now ptrdiff_t, for convenience in use
11388 with xpalloc. The values are still always <= INT_MAX.
11389
11390 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
11391
11392 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
11393 (SAFE_NALLOCA): New macro.
11394
11395 * region-cache.c (struct boundary.pos, find_cache_boundary)
11396 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
11397 (set_cache_region, invalidate_region_cache)
11398 (revalidate_region_cache, know_region_cache, region_cache_forward)
11399 (region_cache_backward, pp_cache):
11400 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
11401 so that ptrdiff_t * can be passed to xpalloc.
11402 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
11403 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
11404 (pp_cache): Don't assume cache_len fits in int.
11405 * region-cache.h: Adjust extern decls to match.
11406
11407 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
11408 EMACS_INT, since either will do, for xpalloc.
11409
11410 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
11411 (xnmalloc, xnrealloc, xpalloc): New functions.
11412
726e0ab1
PE
11413 * bidi.c (bidi_shelve_header_size): New constant.
11414 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
11415 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
11416
51f30bc5 11417 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
11418 * buffer.c (overlays_at, overlays_in, record_overlay_string)
11419 (overlay_strings):
11420 Don't update size of array until after memory allocation succeeds,
11421 because xmalloc/xrealloc may not return.
0065d054
PE
11422 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
11423 now that we have proper integer overflow checking.
11424 (record_overlay_string, overlay_strings): Catch overflows when
11425 calculating size of overlay_str_buf.
726e0ab1 11426
0065d054
PE
11427 * callproc.c (Fcall_process): Check for size overflow when
11428 calculating size of args2.
11429 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
11430 Normally we prefer signed values, but sticking with ptrdiff_t would
11431 require adding more-complicated checks.
726e0ab1
PE
11432
11433 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
11434 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
11435 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 11436 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
11437
11438 * character.c (Fstring): Check for size-calculation overflow.
11439
11440 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
11441 unnecessary integer overflow. Check for size overflow.
11442 (encode_coding_object): Don't update size until xmalloc succeeds.
11443
11444 * composite.c (get_composition_id): Check for overflow in glyph
11445 length calculations.
11446
11447 Integer and memory overflow fixes for display code.
11448 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
11449 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
11450 (scrolling_window): Check for overflow in size calculations.
11451 (line_draw_cost, realloc_glyph_pool, add_row_entry):
11452 Don't assume glyph table len fits in int.
11453 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
11454 (row_table_size): Now ptrdiff_t, not int.
11455 (scrolling_window): Avoid overflow in size calculations.
11456 Don't update size until allocation succeeds.
11457 * fns.c (concat): Check for overflow in size calculations.
11458 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
11459 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
11460 (NEXT_ALMOST_PRIME_LIMIT): New constant.
11461
11462 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
11463 (get_doc_string): Check for size calculation overflow.
11464 Don't update size until allocation succeeds.
11465 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
11466 EMACS_INT, where ptrdiff_t will do.
11467 (Fsubstitute_command_keys): Check for string overflow.
11468
11469 * editfns.c (set_time_zone_rule): Don't assume environment length
11470 fits in int.
11471 (message_length): Now ptrdiff_t, not int.
11472 (Fmessage_box): Don't update size until allocation succeeds.
11473 Don't assume message length fits in int.
11474 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
11475
0065d054
PE
11476 * emacs.c (main): Do not reallocate argv, since there is a null at
11477 the end that can be overwritten, and this way there's no need to
11478 worry about size-calculation overflow.
11479 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
11480
11481 * eval.c (init_eval_once, grow_specpdl): Don't update size until
11482 alloc succeeds.
11483 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
11484
11485 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
11486 (x_set_scroll_bar_width, x_figure_window_size):
11487 Check for integer overflow.
11488 (x_set_alpha): Do not assume XINT fits in int.
11489
11490 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
11491 This is for the members text_lines, text_cols, total_lines, total_cols,
11492 where the system imposes an 'int' limit.
11493
11494 * fringe.c (Fdefine_fringe_bitmap):
11495 Don't update size until alloc works.
11496
11497 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
11498 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
11499
11500 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
11501 Check for size-calculation overflow.
11502 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
11503 do, as we prefer signed integers.
11504 (id_to_widget.max_size, id_to_widget.used)
11505 (xg_store_widget_in_map, xg_remove_widget_from_map)
11506 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
11507 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
11508 Use and return ptrdiff_t, not int.
11509 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
11510 * gtkutil.h: Change prototypes to match the above.
11511
11512 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
11513 are duplicate now that they've been promoted to lisp.h.
11514 (x_allocate_bitmap_record, x_alloc_image_color)
11515 (make_image_cache, cache_image, xpm_load):
11516 Don't update size until alloc is done.
11517 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
11518 (x_detect_edges):
3256efce 11519 Check for size calculation overflow.
726e0ab1
PE
11520 (ct_colors_allocated_max): New constant.
11521 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
11522 overflow.
3256efce 11523
726e0ab1
PE
11524 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
11525 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
11526 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
11527 Use ptrdiff_t, not int, to count maps.
11528 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
11529 calculations. Don't update size until allocation succeeds.
11530 Redo calculations to avoid overflow.
726e0ab1
PE
11531 * keyboard.h: Change prototypes to match the above.
11532
11533 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
11534 to count maps.
11535 (current_minor_maps): Check for size calculation overflow.
11536 * keymap.h: Change prototypes to match the above.
11537
11538 * lread.c (read1, init_obarray): Don't update size until alloc done.
11539
11540 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
11541 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
11542
726e0ab1
PE
11543 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
11544 Now ptrdiff_t, not int.
11545 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
11546 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
11547
11548 * process.c (Fnetwork_interface_list): Check for overflow
11549 in size calculation.
11550
11551 * region-cache.c (move_cache_gap): Check for size calculation overflow.
11552
11553 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
11554 overflow. Don't bother calling xmalloc when xrealloc will do.
11555
11556 * search.c (Freplace_match): Check for size calculation overflow.
11557 (Fset_match_data): Don't assume list lengths fit in 'int'.
11558
11559 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
11560 for command line length. Do not attempt to address one before the
11561 beginning of an array, as that's not portable.
11562
11563 * term.c (max_frame_lines): Remove; unused.
11564 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
11565 not int.
11566 (encode_terminal_code, calculate_costs): Check for size
11567 calculation overflow.
11568 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
11569 table lengths and related sizes. Don't update size until alloc
11570 done. Redo calculations to avoid overflow.
11571 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
11572
11573 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
11574 subtracting pointers.
11575 (gobble_line): Check for overflow more carefully. Don't update size
11576 until alloc done.
11577
11578 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
11579 Don't update size until alloc done.
11580 Redo size calculations to avoid overflow.
11581 Check for size calculation overflow.
0065d054 11582 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
11583
11584 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
11585 Use ptrdiff_t, not int, for sizes.
11586 (store_mode_line_noprop_char): Don't update size until alloc done.
11587
0065d054
PE
11588 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
11589 Use ptrdiff_t, not int, for sizes.
11590 (Finternal_make_lisp_face, cache_face):
11591 Check for size calculation overflow.
11592 (cache_face): Treat size calculation overflows as if they were
11593 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
11594
11595 * xfns.c (x_encode_text, x_set_name_internal)
11596 (Fx_change_window_property): Use ptrdiff_t, not int, to count
11597 sizes, since they can exceed INT_MAX in size. Check for size
11598 calculation overflow.
11599
0065d054
PE
11600 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
11601 (xg_select): Check for size calculation overflow.
726e0ab1
PE
11602 Don't update size until alloc done.
11603
0065d054 11604 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 11605 as sprintf is limited to int lengths.
1d526e2f 11606
252c5ee1
PE
11607 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
11608 (X_LONG_MIN): New macros.
864d7ce7
PE
11609 Use them to make the following changes clearer.
11610 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
11611 This change doesn't affect the value now, but it may help remind
11612 future maintainers not to raise the value too much later.
11613 (SELECTION_QUANTUM): Remove, replacing with ...
11614 (selection_quantum): ... new function, which avoids overflow.
11615 All uses changed.
11616 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
11617 assumption that selection length fits in 'int'.
11618 (x_reply_selection_request, x_handle_selection_request)
11619 (x_get_window_property, receive_incremental_selection)
11620 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
11621 (lisp_data_to_selection_data, clean_local_selection_data):
11622 Use ptrdiff_t, not int, to record length of selection.
11623 (x_reply_selection_request, x_get_window_property)
11624 (receive_incremental_selection, x_property_data_to_lisp):
11625 Redo calculations to avoid overflow.
11626 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 11627 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
11628 something.
11629 (x_get_window_property, receive_incremental_selection)
11630 (lisp_data_to_selection_data, x_property_data_to_lisp):
11631 Check for size-calculation overflow.
11632 (x_get_window_property, receive_incremental_selection)
11633 (lisp_data_to_selection_data, Fx_register_dnd_atom):
11634 Don't store size until memory allocation succeeds.
11635 (x_get_window_property): Plug memory leak on memory exhaustion.
11636 Don't double-block input; malloc is safe here. Don't assume 2**34
11637 - 4 fits in unsigned long. Add an xassert to check
11638 XGetWindowProperty overflow. Be more careful about overflow
11639 calculations, and distinguish size from memory overflow better.
11640 (receive_incremental_selection): When tracing, don't assume
11641 unsigned int is less than INT_MAX.
11642 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
11643 harmful) conversions of unsigned short to int.
11644 (lisp_data_to_selection_data): Don't assume that integers
11645 in the range -65535 through -1 fit in an X unsigned short.
11646 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
11647 result parameters unless successful. Rely on cons_to_unsigned
11648 to report problems with elements; the old code wasn't right anyway.
11649 (x_check_property_data): Check for int overflow; we cannot use
11650 a wider type due to X limits.
11651 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
11652
726e0ab1 11653 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 11654
0065d054
PE
11655 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
11656 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
11657 (x_color_cells): Don't store size until memory allocation succeeds.
11658 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 11659 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
11660 (x_term_init): Don't assume length fits in int (sprintf is limited
11661 to int size).
bc18e09d 11662
ebfa62c0
PE
11663 Use ptrdiff_t for composition IDs.
11664 * character.c (lisp_string_width):
11665 * composite.c (composition_table_size, n_compositions)
11666 (get_composition_id, composition_gstring_from_id):
11667 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
11668 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
11669 * window.c (Frecenter):
11670 Use ptrdiff_t, not int, for composition IDs.
11671 * composite.c (get_composition_id): Check for integer overflow.
11672 * composite.h: Adjust prototypes to match the above changes.
11673
d3411f89
PE
11674 Use ptrdiff_t for hash table indexes.
11675 * category.c (hash_get_category_set):
11676 * ccl.c (ccl_driver):
11677 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
11678 * coding.c (coding_system_charset_list, detect_coding_system):
11679 * coding.h (struct coding_system.id):
11680 * composite.c (get_composition_id, gstring_lookup_cache):
11681 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
11682 * image.c (xpm_get_color_table_h):
11683 * lisp.h (hash_lookup, hash_put):
11684 * minibuf.c (Ftest_completion):
11685 Use ptrdiff_t for hash table indexes, not int (which is too
11686 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
11687 32-bit --with-wide-int hosts).
11688
e097a6fa
PE
11689 * charset.c (Fdefine_charset_internal): Check for integer overflow.
11690 Add a FIXME comment about memory leaks.
11691 (syms_of_charset): Don't assume xmalloc returns.
11692
5637687f
PE
11693 Don't assume that stated character widths fit in int.
11694 * character.c (Fchar_width, c_string_width, lisp_string_width):
11695 * character.h (CHAR_WIDTH):
11696 * indent.c (MULTIBYTE_BYTES_WIDTH):
11697 Use sanitize_char_width to avoid undefined and/or bad behavior
11698 with outlandish widths.
a66cfb1c 11699 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
11700 now that we have two such functions. All uses changed.
11701 (sanitize_char_width): New inline function.
11702
a2271ba2
PE
11703 Don't assume that tab-width fits in int.
11704 * character.h (sanitize_width): New inline function.
11705 (SANE_TAB_WIDTH): New macro.
11706 (ASCII_CHAR_WIDTH): Use it.
11707 * indent.c (sane_tab_width): Remove. All uses replaced by
11708 SANE_TAB_WIDTH (current_buffer).
11709 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
11710
18c52557
PE
11711 * fileio.c: Integer overflow issues with file modes.
11712 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
11713
caeeedc1
PE
11714 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
11715 Remove unreachable code.
11716 (read_hex, load_charset_map_from_file): Check for integer overflow.
11717
6df6ae42 11718 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
11719 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
11720 (x_send_scroll_bar_event): Likewise. Check that the size does not
11721 exceed limits imposed by XClientMessageEvent, as well as the usual
11722 ptrdiff_t and size_t limits.
11723
b13995db
PE
11724 * keyboard.c: Overflow, signedness and related fixes.
11725 (make_lispy_movement): Use same integer type in forward decl
11726 that is used in the definition.
11727 (read_key_sequence, keyremap_step):
11728 Change bufsize argument back to int, undoing my 2011-03-30 change.
11729 We prefer signed types, and int is wide enough here.
11730 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
11731 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
11732 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
11733 length, not size_t. Use ptrdiff_t for index, not int.
11734 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
11735 possibility of integer overflow.
11736
13464394
PE
11737 Overflow, signedness and related fixes for images.
11738
11739 * dispextern.h (struct it.stack[0].u.image.image_id)
11740 (struct_it.image_id, struct image.id, struct image_cache.size)
11741 (struct image_cache.used, struct image_cache.ref_count):
11742 * gtkutil.c (update_frame_tool_bar):
11743 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
11744 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
11745 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
11746 * nsmenu.m (update_frame_tool_bar):
11747 * xdisp.c (calc_pixel_width_or_height):
11748 * xfns.c (image_cache_refcount):
11749 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
11750 on typical 64-bit hosts.
11751
11752 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
11753 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
11754 Omit unnecessary casts to int.
11755 (parse_image_spec): Check that integers fall into 'int' range
11756 when the callers expect that.
11757 (image_ascent): Redo ascent calculation to avoid int overflow.
11758 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
11759 (lookup_image): Remove unnecessary tests.
11760 (xbm_image_p): Locals are now of int, not EMACS_INT,
11761 since parse_image_check makes sure they fit into int.
11762 (png_load, gif_load, svg_load_image):
11763 Prefer int to unsigned where either will do.
11764 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
11765 old tiff_error_handler and tiff_warning_handler.
11766 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
11767 stack buffer overflows. It uses only the features of vsnprintf
11768 that are common to both POSIX and native Microsoft.
11769 (tiff_error_handler, tiff_warning_handler): Use it.
11770 (tiff_load, gif_load, imagemagick_load_image):
11771 Don't assume :index value fits in 'int'.
11772 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
11773 (imagemagick_load_image): Check that crop parameters fit into
11774 the integer types that MagickCropImage accepts. Don't assume
11775 Vimagemagick_render_type has a nonnegative value. Don't assume
11776 size_t fits in 'long'.
11777 (gs_load): Use printmax_t to print the widest integers possible.
11778 Check for integer overflow when computing image height and width.
11779
c11821d4
EZ
117802011-08-26 Eli Zaretskii <eliz@gnu.org>
11781
11782 * xdisp.c (redisplay_window): Don't force window start if point
11783 will be invisible in the resulting window. (Bug#9324)
11784
0c95fcf7
EZ
117852011-08-25 Eli Zaretskii <eliz@gnu.org>
11786
11787 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
11788 the display spec is of the form `(space ...)'.
11789 (handle_display_spec): Return the value returned by
11790 handle_single_display_spec, not just 1 or zero.
11791 (handle_single_display_spec): If the display spec is of the form
11792 `(space ...)', and specifies display in the text area, return 2
11793 rather than 1.
fee65a97 11794 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
11795 accurately, and prefer exact match for point under bidi.
11796 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
11797
11798 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
11799 into disp_prop; all users changed.
11800
11801 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
11802 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
11803 for the text covered by the display property.
11804
e4ed06f1
CY
118052011-08-25 Chong Yidong <cyd@stupidchicken.com>
11806
11807 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
11808 Change return value to nil.
11809 (Frecord_buffer): Delete unused function.
11810
f67cdd7f
EZ
118112011-08-24 Eli Zaretskii <eliz@gnu.org>
11812
5980d4c6
EZ
11813 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
11814 buffers, return left-to-right.
8610fe8b
EZ
11815 (set_cursor_from_row): Consider candidate row a win if its glyph
11816 represents a newline and point is on that newline. Fixes cursor
11817 positioning on the newline at EOL of R2L text within L2R
11818 paragraph, and vice versa.
11819 (try_cursor_movement): Check continued rows, in addition to
11820 continuation rows. Fixes unwarranted scroll when point enters a
11821 continued line of R2L text within an L2R paragraph, or vice versa.
11822 (cursor_row_p): Consider the case of point being equal to
11823 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
11824 from the end of a short line to the beginning of a continued line
11825 of R2L text within L2R paragraph.
11826 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
11827 composed characters.
5980d4c6 11828
f67cdd7f
EZ
11829 * bidi.c (bidi_check_type): Use xassert.
11830 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
11831 members.
11832
bca633fb
EZ
118332011-08-23 Eli Zaretskii <eliz@gnu.org>
11834
11835 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
11836 a character.
11837
4a5885a7
CY
118382011-08-23 Chong Yidong <cyd@stupidchicken.com>
11839
11840 * nsfont.m (ns_otf_to_script): Fix typo.
11841
0902a04e
KH
118422011-08-22 Kenichi Handa <handa@m17n.org>
11843
11844 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
11845 extra slot even if the purpose is char-code-property-table.
11846
1a2e6670
EZ
118472011-08-23 Eli Zaretskii <eliz@gnu.org>
11848
8ddde651
EZ
11849 * xdisp.c (redisplay_window): When computing centering_position,
11850 account for the height of the header line. (Bug#8874)
11851
425cc014
EZ
11852 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
11853 instead of CHAR_TO_BYTE. Fixes a crash when a completion
11854 candidate is selected by the mouse, and that candidate has a
11855 composed character under the mouse.
11856
1a2e6670
EZ
11857 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
11858 coordinates reported by pos-visible-in-window-p for a composed
11859 character in column zero.
11860
8b76d6f8
SM
118612011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
11862
11863 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
11864
dac347dd
EZ
118652011-08-22 Eli Zaretskii <eliz@gnu.org>
11866
11867 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
11868 consider it a hit if to_charpos is anywhere in the range of the
11869 composed buffer positions.
11870
e013fb34
CY
118712011-08-22 Chong Yidong <cyd@stupidchicken.com>
11872
11873 * image.c (gif_load): Don't assume that each subimage has the same
11874 dimensions as the base image. Handle disposal method that is
11875 "undefined" by the gif spec (Bug#9335).
11876
bd1ba3e8
CY
118772011-08-20 Chong Yidong <cyd@stupidchicken.com>
11878
11879 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 11880 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 11881
54a1215b
EZ
118822011-08-19 Eli Zaretskii <eliz@gnu.org>
11883
823564e5
EZ
11884 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
11885 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
11886 from an Org mode buffer to a Speedbar frame.
11887
54a1215b
EZ
11888 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
11889 a composition, take its buffer position from IT->cmp_it.charpos.
11890 Fixes cursor positioning at the beginning of a line that begins
11891 with a composed character.
11892
9778ebcc
EZ
118932011-08-18 Eli Zaretskii <eliz@gnu.org>
11894
0be6ee06
EZ
11895 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
11896 character bidirectional type, use STRONG_L instead. Fixes crashes
11897 in a buffer produced by `describe-categories'.
11898
9778ebcc
EZ
11899 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
11900 members before the level stack, so they would be saved and
11901 restored when copying iterator state. Fixes incorrect reordering
11902 around TABs covered by display properties.
11903
156bffbe
AS
119042011-08-18 Andreas Schwab <schwab@linux-m68k.org>
11905
6b02f655 11906 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 11907
72ad093b
CY
119082011-08-17 Chong Yidong <cyd@stupidchicken.com>
11909
11910 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
11911 (internal_condition_case_2, internal_condition_case_n):
11912 Remove unnecessary aborts (Bug#9081).
72ad093b 11913
35774242
EZ
119142011-08-17 Eli Zaretskii <eliz@gnu.org>
11915
11916 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
11917 has no `load' handler, try opening the file locally. (Bug#9311)
11918
db76dd85
KB
119192011-08-16 Ken Brown <kbrown@cornell.edu>
11920
11921 * gmalloc.c: Expand comment.
11922
b215eee5
EZ
119232011-08-16 Eli Zaretskii <eliz@gnu.org>
11924
11925 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
11926 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
11927
a4579d33
KB
119282011-08-16 Ken Brown <kbrown@cornell.edu>
11929
11930 Fix memory allocation problems in Cygwin build (Bug#9273).
11931
11932 * unexcw.c ( __malloc_initialized): Declare external variable.
11933 (fixup_executable): Force the dumped emacs to reinitialize malloc.
11934
8b76d6f8
SM
11935 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
11936 New variables.
a4579d33
KB
11937 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
11938 dumped emacs.
11939 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
11940 in the static heap.
11941 [CYGWIN] (special_realloc): New function.
11942 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
11943 requests to realloc storage in the static heap.
11944
3ebec551
PE
119452011-08-15 Paul Eggert <eggert@cs.ucla.edu>
11946
11947 * bidi.c (bidi_initialize): Remove unused local.
11948
9fd8be00
EZ
119492011-08-15 Eli Zaretskii <eliz@gnu.org>
11950
6b02f655
SM
11951 * bidimirror.h:
11952 * biditype.h: Remove file.
11953 * makefile.w32-in ($(BLD)/bidi.$(O)):
11954 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
11955
11956 * dispextern.h: Fix a typo in the comment to bidi_type_t.
11957
11958 * chartab.c: Improve commentary for the uniprop_table API.
11959
32413314
EZ
11960 * bidi.c (bidi_paragraph_init): Support zero value of
11961 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
11962 (bidi_initialize): Use uniprop_table instead of including
11963 biditype.h and bidimirror.h.
32413314 11964
9fd8be00
EZ
11965 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
11966 coordinates of the iterator when restoring from ppos_it.
11967 (Bug#9296)
11968
5cf2b69b
KH
119692011-08-14 Kenichi Handa <handa@m17n.org>
11970
11971 * process.c (create_process): Call setup_process_coding_systems
72ad093b 11972 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 11973
daf17d00
EZ
119742011-08-14 Eli Zaretskii <eliz@gnu.org>
11975
11976 * xdisp.c (move_it_in_display_line_to): Don't invoke
11977 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
11978 ppos_it. Fixes vertical cursor motion when line beginning is
11979 covered by an image. (Bug#9296)
11980
08e3161a
JD
119812011-08-14 Jan Djärv <jan.h.d@swipnet.se>
11982
11983 * nsterm.h (ns_run_ascript): Declare.
11984 (NSAPP_DATA2_RUNASSCRIPT): Define.
11985
11986 * nsfns.m (as_script, as_result, as_status): New static variables.
11987 (ns_run_ascript): New function.
5e617bc2 11988 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
11989 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
11990 the event loop. Get status from as_status (Bug#7276).
11991
11992 * nsterm.m (sendEvent): If event is NSApplicationDefined and
11993 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
11994 the event loop (Bug#7276).
11995
a3720aa2
AS
119962011-08-14 Andreas Schwab <schwab@linux-m68k.org>
11997
11998 * gnutls.c (QCgnutls_bootprop_priority)
11999 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
12000 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
12001 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
12002 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
12003 (QCgnutls_bootprop_verify_hostname_error)
12004 (QCgnutls_bootprop_callbacks_verify): Rename from
12005 Qgnutls_bootprop_..., all uses changed.
12006
12007 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
12008 uses changed.
12009
0a0d27fb
PE
120102011-08-14 Paul Eggert <eggert@cs.ucla.edu>
12011
19d5c50c
PE
12012 * xfaces.c (Qframe_set_background_mode): Now static.
12013 * dispextern.h (Qframe_set_background_mode): Remove decl.
12014
0a0d27fb
PE
12015 * process.c (Fnetwork_interface_info): Declare local only if needed.
12016
377538cb
JD
120172011-08-13 Jan Djärv <jan.h.d@swipnet.se>
12018
12019 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
12020 (Fnetwork_interface_list): Allocate in increments of bytes instead
12021 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
12022 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
12023 sockaddr.
12024 (struct ifflag_def): notrailers is smart on OSX.
12025 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
12026 Get hardware address with getifaddrs if available.
12027
08fff70c
EZ
120282011-08-12 Eli Zaretskii <eliz@gnu.org>
12029
12030 * xdisp.c (iterate_out_of_display_property): xassert that
12031 IT->position is set to within IT->object's boundaries. Break from
12032 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
12033 when IT->position is set up wrongly due to some bug.
12034 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
12035 (push_display_prop): Allow GET_FROM_STRING as IT->method on
12036 entry. Force push_it to save on the stack the current
12037 buffer/string position, to be restored by pop_it. Fix flags in
12038 the iterator structure wrt the object coming from a display
12039 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
12040 properties. (Bug#9284)
12041
7be1c708 120422011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 12043
7be1c708
CY
12044 * fontset.c (fontset_get_font_group): Add proper type checks.
12045 (Bug#9172)
aac0c6e3 12046
7be1c708 120472011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 12048
7be1c708
CY
12049 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
12050 and LC_VERSION_MIN_MACOSX.
12051 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
12052 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 12053
97bb72a6
EZ
120542011-08-08 Eli Zaretskii <eliz@gnu.org>
12055
12056 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
12057 no-display-properties-and-no-overlays under bidi display.
12058 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 12059 properties and overlays.
97bb72a6 12060
d5617611
CY
120612011-08-08 Chong Yidong <cyd@stupidchicken.com>
12062
37e11a63
CY
12063 * editfns.c (Fset_time_zone_rule): Document relationship with the
12064 setenv function.
12065
d5617611
CY
12066 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
12067 the font entity extracted from the cache (Bug#8109).
12068
58872834
CY
120692011-08-07 Chong Yidong <cyd@stupidchicken.com>
12070
12071 * composite.c (autocmp_chars): Don't reset point. That is done by
12072 restore_point_unwind (Bug#5984).
12073
75bfc667
JL
120742011-08-07 Juri Linkov <juri@jurta.org>
12075
12076 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
12077 to show the arg `TIME' instead of `TIMEVAL'.
12078
d1410150
EZ
120792011-08-06 Eli Zaretskii <eliz@gnu.org>
12080
12081 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
12082 display property strides EOL and includes a newline, as in
12083 longlines-mode. (Bug#9254)
75b771e4
EZ
12084 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
12085 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
12086
12087 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
12088 is non-zero, even if the data buffer is NULL. Fixes a crash in
12089 vertical-motion with longlines-mode. (Bug#9254)
12090
35928349
EZ
120912011-08-05 Eli Zaretskii <eliz@gnu.org>
12092
ec7cc85b
EZ
12093 * bidi.c <bidi_cache_total_alloc>: Now static.
12094 (bidi_initialize): Initialize bidi_cache_total_alloc.
12095
8b76d6f8 12096 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
12097 cache. (Bug#9221)
12098
12099 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
12100 amount allocated this far in `bidi_cache_total_alloc'.
12101 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
12102 non-zero, only free the data buffer without restoring the cache
12103 contents. All callers changed.
12104
12105 * dispextern.h (bidi_unshelve_cache): Update prototype.
12106
12107 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
12108 (move_it_in_display_line, move_it_to)
12109 (move_it_vertically_backward, move_it_by_lines): Replace the call
12110 to xfree to an equivalent call to bidi_unshelve_cache.
12111 (move_it_in_display_line_to): Fix logic of returning
412b6358 12112 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 12113
e2e2423b
EZ
121142011-08-05 Eli Zaretskii <eliz@gnu.org>
12115
12116 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
12117 came from a string character with a `cursor' property. (Bug#9229)
12118
ae9e757a
JD
121192011-08-04 Jan Djärv <jan.h.d@swipnet.se>
12120
12121 * Makefile.in (LIB_PTHREAD): New variable.
12122 (LIBES): Add LIB_PTHREAD (Bug#9216).
12123
12124 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
12125 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
12126
213bd7f2
AS
121272011-08-04 Andreas Schwab <schwab@linux-m68k.org>
12128
6b02f655 12129 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 12130
99aaf75f
JD
121312011-08-04 Jan Djärv <jan.h.d@swipnet.se>
12132
12133 * xterm.c (x_find_topmost_parent): New function.
12134 (x_set_frame_alpha): Find topmost parent window with
12135 x_find_topmost_parent and set the property there also (bug#9181).
12136 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
12137
c74e9d86
PE
121382011-08-04 Paul Eggert <eggert@cs.ucla.edu>
12139
12140 * callproc.c (Fcall_process): Avoid vfork clobbering
12141 the local vars buffer, coding_systems, current_dir.
12142
640c8776
SM
121432011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
12144
12145 * keymap.c (Fmake_composed_keymap): Move to subr.el.
12146
f26d0e4c
PE
121472011-08-03 Paul Eggert <eggert@cs.ucla.edu>
12148
8a10d76c
PE
12149 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
12150 so that it is not optimized away.
12151
f26d0e4c
PE
12152 * xdisp.c (compute_display_string_pos): Remove unused local.
12153
55439c61
EZ
121542011-08-02 Eli Zaretskii <eliz@gnu.org>
12155
12156 Fix slow cursor motion and scrolling in large buffers with
12157 selective display, like Org Mode buffers. (Bug#9218)
12158
12159 * dispextern.h (struct bidi_it): New member disp_prop_p.
12160
12161 * xdisp.c: Remove one-slot cache of display string positions.
12162 (compute_display_string_pos): Accept an additional argument
5e617bc2 12163 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
12164 for a display string or property. If found, set DISP_PROP_P
12165 non-zero.
12166
12167 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
12168 DISP_PROP_P, and pass it to compute_display_string_pos.
12169 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
12170 non-zero. All callers of bidi_fetch_char changed.
12171
fb33fa43
SM
121722011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
12173
12174 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
12175
b099e063
DM
121762010-12-03 Don March <don@ohspite.net>
12177
12178 * keymap.c (Fdefine_key): Fix non-prefix key error message when
12179 last character M-[char] is translated to ESC [char] (bug#7541).
12180
5cc7f7af
KH
121812011-08-02 Kenichi Handa <handa@m17n.org>
12182
d0fffa3f 12183 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
12184
12185 * chartab.c (uniprop_table): Make it non-static.
12186
525d5e6e
EZ
121872011-08-01 Eli Zaretskii <eliz@gnu.org>
12188
12189 * xdisp.c (forward_to_next_line_start): Accept additional argument
12190 BIDI_IT_PREV, and store into it the state of the bidi iterator had
12191 on the newline.
12192 (reseat_at_next_visible_line_start): Use the bidi iterator state
12193 returned by forward_to_next_line_start to restore the state of
12194 it->bidi_it after backing up to previous newline. (Bug#9212)
12195
31011111
AS
121962011-07-30 Andreas Schwab <schwab@linux-m68k.org>
12197
12198 * regex.c (re_comp): Protoize.
12199 (re_exec): Fix return type.
12200 (regexec): Fix type of `ret'. (Bug#9203)
12201
476371c4
PE
122022011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12203
e5d76069
PE
12204 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
12205 This is needed if max-image-size is a floating-point number.
12206
9a79b20c
AS
122072011-07-28 Andreas Schwab <schwab@linux-m68k.org>
12208
12209 * print.c (print_object): Print empty symbol as ##.
12210
12211 * lread.c (read1): Read ## as empty symbol.
12212
d8c2fa78
AA
122132011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
12214
12215 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
12216 setting frame foreground color (Bug#9175).
12217 (x_set_background_color): Likewise.
12218
ffe57a7a
AA
12219 * nsmenu.m (-setText): Size tooltip dimensions precisely to
12220 contents (Bug#9176).
12221 (EmacsTooltip -init): Remove bezels and add shadows to
12222 tooltip windows.
12223
bf3492a5
AA
12224 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
12225 or scroll bar (Bug#8470).
12226
d55e9c53
AA
12227 * nsfont.m (nsfont_open): Remove assignment to voffset and
12228 unnecessary vars hshink, expand, hd, full_height, min_height.
12229 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
12230
12231 * nsterm.h (nsfont_info): Remove voffset field.
12232
d8c2fa78 122332011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
12234
12235 Implement strike-through and overline on NextStep (Bug#8863).
12236
12237 * nsfont.m (nsfont_open): Use underline position provided by font,
12238 instead of hard-coded value of 2.
12239 (nsfont_draw): Call ns_draw_text_decoration instead.
12240
12241 * nsterm.h: Add declaration for ns_draw_text_decoration.
12242
12243 * nsterm.m (ns_draw_text_decoration): New function for drawing
12244 underline, overline, and strike-through.
12245 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
12246 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 12247 accommodate underlining, etc.
4843aac3 12248
4cc60b9b
EZ
122492011-07-28 Eli Zaretskii <eliz@gnu.org>
12250
bc7ece87
EZ
12251 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
12252 default.
4cc60b9b 12253
476371c4
PE
122542011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12255
66606eea
PE
12256 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
12257 Without this fix, if a signal arrives just after memory fills up,
12258 'malloc' might be invoked reentrantly.
12259
476371c4
PE
12260 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
12261 In other words, assume that every image size is allowed, on non-X
12262 hosts. This assumption is probably wrong, but it lets Emacs compile.
12263
f3fcc40d
AS
122642011-07-28 Andreas Schwab <schwab@linux-m68k.org>
12265
12266 * regex.c (re_iswctype): Convert return values to boolean.
12267
350c992f
EZ
122682011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
12269
12270 * xdisp.c (compute_display_string_pos): Don't use cached display
12271 string position if the buffer had its restriction changed.
12272 (Bug#9184)
12273
5266b4bb
PE
122742011-07-28 Paul Eggert <eggert@cs.ucla.edu>
12275
12276 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
12277
2573a837 122782011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 12279
41f55ccd 12280 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 12281
39e378da
PE
12282 * bidi.c: Integer size and overflow fixes.
12283 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
12284 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
12285 (bidi_cache_find_level_change, bidi_cache_ensure_space)
12286 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
12287 (bidi_find_other_level_edge):
12288 Use ptrdiff_t instead of EMACS_INT where either will do.
12289 This works better on 32-bit hosts configured --with-wide-int.
12290 (bidi_cache_ensure_space): Check for size-calculation overflow.
12291 Use % rather than repeated addition, for better worst-case speed.
12292 Don't set bidi_cache_size until after xrealloc returns, because it
12293 might not return.
12294 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
12295 (bidi_cache_ensure_space): Also check that the bidi cache size
12296 does not exceed that of the largest Lisp string or buffer. See Eli
12297 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 12298
5e927815
PE
12299 * alloc.c (__malloc_size_t): Remove.
12300 All uses replaced by size_t. See Andreas Schwab's note
12301 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
12302
ca4aa935
PE
12303 * image.c: Improve checking for integer overflow.
12304 (check_image_size): Assume that f is nonnull, since
12305 it is always nonnull in practice. This is one less thing to
12306 worry about when checking for integer overflow later.
12307 (x_check_image_size): New function, which checks for integer
12308 overflow issues inside X.
12309 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
12310 This removes the need for a memory_full check.
12311 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
12312 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
12313 (xbm_read_bitmap_data): Change locals back to 'int', since
12314 their values must fit in 'int'.
12315 (xpm_load_image, png_load, tiff_load):
12316 Invoke x_create_x_image_and_pixmap earlier,
12317 to avoid much needless work if the image is too large.
12318 (tiff_load): Treat overly large images as if
12319 x_create_x_image_and_pixmap failed, not as malloc failures.
12320 (gs_load): Use x_check_image_size.
12321
5f8f9cc2
PE
12322 * gtkutil.c: Omit integer casts.
12323 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
12324 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
12325
5adf60bc
PE
12326 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
12327
c8907a93
PE
12328 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
12329 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
12330 would wrongly return t on a 64-bit host.
12331
e3c25c68
PE
12332 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
12333 The plain *_OVERFLOW macros run afoul of GCC bug 49705
12334 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
12335 and therefore cause GCC to emit a bogus diagnostic in some cases.
12336
3f791afe
PE
12337 * image.c: Integer signedness and overflow and related fixes.
12338 This is not an exhaustive set of fixes, but it's time to
12339 record what I've got.
12340 (lookup_pixel_color, check_image_size): Remove redundant decls.
12341 (check_image_size): Don't assume that arbitrary EMACS_INT values
12342 fit in 'int', or that arbitrary 'double' values fit in 'int'.
12343 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
12344 (tiff_load, imagemagick_load_image):
12345 Check for overflow in size calculations.
12346 (x_create_x_image_and_pixmap): Remove unnecessary test for
12347 xmalloc returning NULL; that can't happen.
12348 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
12349 (xpm_color_bucket): Use better integer hashing function.
12350 (xpm_cache_color): Don't possibly over-allocate memory.
12351 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
12352 (gif_memory_source):
12353 Use ptrdiff_t, not int or size_t, to record sizes.
12354 (png_load): Don't assume values greater than 2**31 fit in 'int'.
12355 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
12356 either works, as we prefer signed integers.
12357 (tiff_read_from_memory, tiff_write_from_memory):
12358 Return tsize_t, not size_t, since that's what the TIFF API wants.
12359 (tiff_read_from_memory): Don't fail simply because the read would
12360 go past EOF; instead, return a short read.
12361 (tiff_load): Omit no-longer-needed casts.
12362 (Fimagemagick_types): Don't assume size fits into 'int'.
12363
3cc5a532
PE
12364 Improve hashing quality when configured --with-wide-int.
12365 * fns.c (hash_string): New function, taken from sxhash_string.
12366 Do not discard information about ASCII character case; this
12367 discarding is no longer needed.
12368 (sxhash-string): Use it. Change sig to match it. Caller changed.
12369 * lisp.h: Declare it.
12370 * lread.c (hash_string): Remove, since we now use fns.c's version.
12371 The fns.c version returns a wider integer if --with-wide-int is
12372 specified, so this should help the quality of the hashing a bit.
12373
b312a492
PE
12374 * emacs.c: Integer overflow minor fix.
12375 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
12376 Define only if GNU_LINUX.
12377 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
12378
dfd153ae
PE
12379 * dispnew.c: Integer signedness and overflow fixes.
12380 Remove unnecessary forward decls, that were a maintenance hassle.
12381 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
12382 All uses changed.
12383 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
12384 (scrolling_window): Use ptrdiff_t, not int, for byte count.
12385 (prepare_desired_row, line_draw_cost):
12386 Use int, not unsigned, where either works.
12387 (save_current_matrix, restore_current_matrix):
12388 Use ptrdiff_t, not size_t, where either works.
12389 (init_display): Check for overflow more accurately, and without
12390 relying on undefined behavior.
12391
a81d11a3
PE
12392 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
12393 Remove, replacing with the new symbols in lisp.h. All uses changed.
12394 * fileio.c (make_temp_name):
12395 * filelock.c (lock_file_1, lock_file):
12396 * xdisp.c (message_dolog):
12397 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
12398 Use pMd etc. instead.
12399 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
12400 replacing the pWIDE etc. symbols removed from editfns.c.
12401
3300e6fd
PE
12402 * keyboard.h (num_input_events): Now uintmax_t.
12403 This is (very slightly) less likely to mess up due to wraparound.
12404 All uses changed.
12405
fd05c7e9
PE
12406 * buffer.c: Integer signedness fixes.
12407 (alloc_buffer_text, enlarge_buffer_text):
12408 Use ptrdiff_t rather than size_t when either will do, as we prefer
12409 signed integers.
12410
903fe15d
PE
12411 * alloc.c: Integer signedness and overflow fixes.
12412 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
12413 (__malloc_size_t): Default to size_t, not to int.
12414 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
12415 (Fgarbage_collect, mark_object_loop_halt, mark_object):
12416 Prefer ptrdiff_t to size_t when either would do, as we prefer
12417 signed integers.
12418 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
12419 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
12420 Now const. Initialize with values that are in range even if char
12421 is signed.
12422 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
12423 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
12424 These functions do the right thing with sizes > 2**32.
12425 (check_depth): Now ptrdiff_t, not int.
12426 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
12427 Adjust to new way of storing sizes. Check for size overflow bugs
12428 in rest of code.
12429 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
12430 slightly wrong anyway, as it missed one instance of
12431 XMALLOC_OVERRUN_CHECK_OVERHEAD.
12432 (refill_memory_reserve): Omit needless cast to size_t.
12433 (mark_object_loop_halt): Mark as externally visible.
12434
ac82cc6a
PE
12435 * xselect.c: Integer signedness and overflow fixes.
12436 (Fx_register_dnd_atom, x_handle_dnd_message):
12437 Use ptrdiff_t, not size_t, since we prefer signed.
12438 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
12439 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
12440 x_dnd_atoms_size and x_dnd_atoms_length.
12441
c2d1e36d
PE
12442 * doprnt.c: Prefer signed to unsigned when either works.
12443 * eval.c (verror):
12444 * doprnt.c (doprnt):
12445 * lisp.h (doprnt):
12446 * xdisp.c (vmessage):
12447 Use ptrdiff_t, not size_t, when using or implementing doprnt,
12448 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
12449 prefer signed arithmetic to avoid comparison confusion.
12450 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
12451 but is a bit tricky.
12452
0e926e56
PE
12453 Assume freestanding C89 headers, string.h, stdlib.h.
12454 * data.c, doprnt.c, floatfns.c, print.c:
12455 Include float.h unconditionally.
12456 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
12457 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
12458 * regex.c: Likewise for stddef.h, string.h.
12459 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
12460 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
12461 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
12462 (STDC_HEADERS): Remove obsolete defines.
12463 * sysdep.c: Include limits.h unconditionally.
12464
9cfdb3ec
PE
12465 Assume support for memcmp, memcpy, memmove, memset.
12466 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
12467 * regex.c (memcmp, memcpy):
12468 Remove; we assume C89 now.
12469
12470 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
12471 (__malloc_safe_bcopy): Remove; no longer needed.
12472
cf950e6b 12473 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
12474 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
12475 well either way, and we prefer signed to unsigned.
12476
dbf38e02
LMI
124772011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
12478
12479 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
12480 closes the connection while we're reading (bug#9182).
12481
d6f0886c 124822011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 12483
d6f0886c
JD
12484 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
12485 are specified (Bug#9168).
24e0f6b1 12486
2eb1f9e6
PE
124872011-07-25 Paul Eggert <eggert@cs.ucla.edu>
12488
12489 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
12490 Found by GCC static checking and --with-wide-int on a 32-bit host.
12491
22381272 124922011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
12493
12494 * xdisp.c (compute_display_string_pos): Fix logic of caching
12495 previous display string position. Initialize cached_prev_pos to
12496 -1. Fixes slow-down at the beginning of a buffer.
12497
f25e39b4
EZ
124982011-07-24 Eli Zaretskii <eliz@gnu.org>
12499
12500 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
12501 for attrs[LFACE_FONTSET_INDEX].
12502
04c4b52e
PE
125032011-07-23 Paul Eggert <eggert@cs.ucla.edu>
12504
12505 * xml.c (parse_region): Remove unused local
12506 that was recently introduced.
12507
c1734fbd
EZ
125082011-07-23 Eli Zaretskii <eliz@gnu.org>
12509
be18c5a5
EZ
12510 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
12511 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
12512
c1734fbd
EZ
12513 * xdisp.c (move_it_in_display_line_to): Record the best matching
12514 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
12515 exit if none of the characters scanned was an exact match.
12516 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
12517 when exact match is impossible due to invisible text, and the
12518 lines are truncated.
12519
a258d627
JD
125202011-07-23 Jan Djärv <jan.h.d@swipnet.se>
12521
12522 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
12523 for OSX >= 10.7.
12524
b6d5a689
EZ
125252011-07-22 Eli Zaretskii <eliz@gnu.org>
12526
0f74f785
EZ
12527 Fix a significant slow-down of cursor motion with C-n, C-p,
12528 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
12529 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 12530 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
12531 (next_element_from_buffer): Call compute_stop_pos_backwards to
12532 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
12533 base_level_stop.
12534 (reseat): Don't look for prev_stop, as that could mean a very long
12535 run.
12536 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
12537 <cached_disp_overlay_modiff>: Cache for last found display string
12538 position.
551918c1 12539 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
12540 about the same buffer in the same area of character positions, and
12541 the buffer wasn't changed since the time the display string
12542 position was cached.
551918c1 12543
b2d0c91a
EZ
125442011-07-22 Eli Zaretskii <eliz@gnu.org>
12545
12546 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
12547 is an integer, which is important for empty lines. (Bug#9149)
12548
043604ee
CY
125492011-07-22 Chong Yidong <cyd@stupidchicken.com>
12550
12551 * frame.c (Fmodify_frame_parameters): In tty case, update the
12552 default face if necessary (Bug#4238).
12553
da4adb04
CY
125542011-07-21 Chong Yidong <cyd@stupidchicken.com>
12555
12556 * editfns.c (Fstring_to_char): No need to explain what a character
12557 is in the docstring (Bug#6576).
12558
9abd0532
LMI
125592011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
12560
12561 * xml.c (parse_region): Make sure we always return a tree.
12562
36881d16
HK
125632011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
12564
12565 * xml.c (parse_region): If a document contains only comments,
12566 return that, too.
12567
1e98674d
LMI
125682011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
12569
12570 * xml.c (make_dom): Return comments, too.
12571
590bd467
PE
125722011-07-19 Paul Eggert <eggert@cs.ucla.edu>
12573
12574 Port to OpenBSD.
12575 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
12576 and the surrounding thread.
12577 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
12578 rather than fgets, and retry after EINTR. Otherwise, 'emacs
12579 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
12580 timer goes off.
12581 * s/openbsd.h (BROKEN_SIGIO): Define.
12582 * unexelf.c (unexec) [__OpenBSD__]:
12583 Don't update the .mdebug section of the Alpha COFF symbol table.
12584
f41628b2
LMI
125852011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
12586
12587 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
12588 (bug#8460).
12589
b59b67c5
PE
125902011-07-18 Paul Eggert <eggert@cs.ucla.edu>
12591
15e3a074
PE
12592 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
12593 This fixes some race conditions on the permissions of any newly
12594 created file.
12595
41bed37d
PE
12596 * alloc.c (valid_pointer_p): Use pipe, not open.
12597 This fixes some permissions issues when debugging.
12598
b59b67c5
PE
12599 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
12600 If fchown fails to set both uid and gid, try to set just gid,
12601 as that is sometimes allowed. Adjust the file's mode to eliminate
12602 setuid or setgid bits that are inappropriate if fchown fails.
12603
925a6be7
SM
126042011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
12605
12606 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
12607 to compare Lisp_Objects.
12608 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
12609 global_gnutls_log_level, don't mistake it for a Lisp_Object.
12610 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
12611
52968808
AS
126122011-07-17 Andreas Schwab <schwab@linux-m68k.org>
12613
0a6a104b
AS
12614 * lread.c (read_integer): Unread even EOF character.
12615 (read1): Likewise. Properly record start position of symbol.
12616
52968808
AS
12617 * lread.c (read1): Read `#:' as empty uninterned symbol if no
12618 symbol character follows.
12619
9e381cdd
PE
126202011-07-17 Paul Eggert <eggert@cs.ucla.edu>
12621
12622 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
12623 This works around a problem with the previous change to Fcopy_file.
12624 Recent glibc declares fchown with __attribute__((warn_unused_result)),
12625 and without this change, GCC might complain about discarding
12626 fchown's return value.
12627
b5641435
JB
126282011-07-16 Juanma Barranquero <lekktu@gmail.com>
12629
12630 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
12631
a8031457
PE
126322011-07-16 Paul Eggert <eggert@cs.ucla.edu>
12633
12634 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
12635
dd889327
LMI
126362011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
12637
750c33f7
LMI
12638 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
12639 it's used from the C level.
12640
dd889327
LMI
12641 * process.c: Use the same condition for POLL_FOR_INPUT in both
12642 keyboard.c and process.c (bug#1858).
12643
87e86684
LM
126442011-07-09 Lawrence Mitchell <wence@gmx.li>
12645
12646 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
12647 (Fgnutls_boot): Use it.
12648
64348f40
AS
126492011-07-15 Andreas Schwab <schwab@linux-m68k.org>
12650
12651 * doc.c (Fsubstitute_command_keys): Revert last change.
12652
1d698799
LMI
126532011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
12654
f863868c
LMI
12655 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
12656 quotes the next character, and doesn't affect other longer
12657 sequences (bug#8935).
12658
1d698799
LMI
12659 * lread.c (syms_of_lread): Clarify that is isn't only
12660 `eval-buffer' and `eval-defun' that's affected by
12661 `lexical-binding' (bug#8460).
12662
aa4b6df6
EZ
126632011-07-15 Eli Zaretskii <eliz@gnu.org>
12664
12665 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 12666 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 12667
5d856da6
PE
126682011-07-14 Paul Eggert <eggert@cs.ucla.edu>
12669
ad6042bb
PE
12670 Fix minor problems found by static checking.
12671 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
12672 (elsz): Now a signed constant, not a size_t var. We prefer signed
12673 types to unsigned, to avoid integer comparison confusion. Without
12674 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
12675 "cannot optimize loop, the loop counter may overflow", a symptom
12676 of the confusion.
f00bbb22 12677 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
12678 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
12679
6468f31c
LMI
126802011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
12681
49080b10
LMI
12682 * search.c (Fre_search_backward): Mention `case-fold-search' in
12683 all the re_search_* functions (bug#8138).
12684
6468f31c
LMI
12685 * keyboard.c (Fopen_dribble_file): Document when the file is
12686 closed (bug#8056).
12687
c965adc5
EZ
126882011-07-14 Eli Zaretskii <eliz@gnu.org>
12689
df9733bf
EZ
12690 * bidi.c (bidi_dump_cached_states): Fix format of displaying
12691 bidi_cache_idx.
12692
0bb23927
EZ
12693 Support bidi reordering of display and overlay strings.
12694 * xdisp.c (compute_display_string_pos)
12695 (compute_display_string_end): Accept additional argument STRING.
12696 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
12697 (reseat_to_string): Initialize bidi_it->string.s and
12698 bidi_it->string.schars.
12699 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
12700 NULL (avoids a crash in bidi_paragraph_init).
12701 Initialize itb.string.lstring.
0bb23927
EZ
12702 (init_iterator): Call bidi_init_it only of a valid
12703 buffer position was specified. Initialize paragraph_embedding to
12704 L2R.
12705 (reseat_to_string): Initialize the bidi iterator.
12706 (display_string): If we need to ignore text properties of
12707 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
12708 original value of -1 will not work with bidi.)
12709 (compute_display_string_pos): First arg is now struct
12710 `text_pos *'; all callers changed. Support display properties on
12711 Lisp strings.
12712 (compute_display_string_end): Support display properties on Lisp
12713 strings.
12714 (init_iterator, reseat_1, reseat_to_string): Initialize the
12715 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
12716 when iterating on a string not from display properties).
640c8776
SM
12717 (compute_display_string_pos, compute_display_string_end):
12718 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
12719 arrow keys.
12720 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
12721 base_level_stop; instead, set base_level_stop to BEGV.
12722 Fixes crashes in vertical-motion.
0bb23927
EZ
12723 (next_element_from_buffer): Improve commentary for when
12724 the iterator is before prev_stop.
12725 (init_iterator): Initialize bidi_p from the default value of
12726 bidi-display-reordering, not from buffer-local value. Use the
12727 buffer-local value only if initializing for buffer iteration.
12728 (handle_invisible_prop): Support invisible properties on strings
12729 that are being bidi-reordered.
12730 (set_iterator_to_next): Support bidi reordering of C strings and
12731 Lisp strings.
12732 (next_element_from_string): Support bidi reordering of Lisp
12733 strings.
12734 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
12735 (display_string): Support display of R2L glyph rows.
12736 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
12737 (init_iterator): Don't initialize it->bidi_p for strings
12738 here.
12739 (reseat_to_string): Initialize it->bidi_p for strings here.
12740 (next_element_from_string, next_element_from_c_string)
12741 (next_element_from_buffer): Add xassert's for correspondence
12742 between IT's object being iterated and it->bidi_it.string
12743 structure.
12744 (face_before_or_after_it_pos): Support bidi iteration.
12745 (next_element_from_c_string): Handle the case of the first string
12746 character that is not the first one in the visual order.
12747 (get_visually_first_element): New function, refactored from common
12748 parts of next_element_from_buffer, next_element_from_string, and
12749 next_element_from_c_string.
12750 (tool_bar_lines_needed, redisplay_tool_bar)
12751 (display_menu_bar): Force left-to-right direction. Add a FIXME
12752 comment for making that be controlled by a user option.
12753 (push_it, pop_it): Save and restore the state of the
12754 bidi iterator. Save and restore the bidi_p flag.
12755 (pop_it): Iterate out of display property for string iteration as
12756 well.
12757 (iterate_out_of_display_property): Support iteration over strings.
12758 (handle_single_display_spec): Set up it->bidi_it for iteration
12759 over a display string, and call bidi_init_it.
12760 (handle_single_display_spec, next_overlay_string)
12761 (get_overlay_strings_1, push_display_prop): Set up the bidi
12762 iterator for displaying display or overlay strings.
12763 (forward_to_next_line_start): Don't use the shortcut if
12764 bidi-iterating.
12765 (back_to_previous_visible_line_start): If handle_display_prop
12766 pushed the iterator stack, restore the internal state of the bidi
12767 iterator by calling bidi_pop_it same number of times.
12768 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
12769 and we are bidi-iterating, don't decrement the iterator position;
12770 instead, set the first_elt flag in the bidi iterator, to produce
12771 the same effect.
12772 (reseat_1): Remove redundant setting of string_from_display_prop_p.
12773 (push_display_prop): xassert that we are iterating a buffer.
12774 (push_it, pop_it): Save and restore paragraph_embedding member.
12775 (handle_single_display_spec, next_overlay_string)
12776 (get_overlay_strings_1, reseat_1, reseat_to_string)
12777 (push_display_prop): Set up the `unibyte' member of bidi_it.string
12778 correctly. Don't assume unibyte strings are not bidi-reordered.
12779 (compute_display_string_pos)
12780 (compute_display_string_end): Fix handling the case of C string.
12781 (push_it, pop_it): Save and restore from_disp_prop_p.
12782 (handle_single_display_spec, push_display_prop): Set the
12783 from_disp_prop_p flag.
12784 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
12785 (pop_it): Call iterate_out_of_display_property only if we are
12786 popping after iteration over a string that came from a display
12787 property. Fix a typo in popping stretch info. Add an assertion
12788 for verifying that the iterator position is in sync with the bidi
12789 iterator.
12790 (handle_single_display_spec, get_overlay_strings_1)
12791 (push_display_prop): Fix initialization of paragraph direction for
12792 string when that of the parent object is not yet determined.
12793 (reseat_1): Call bidi_init_it to resync the bidi
12794 iterator with IT's position. (Bug#7616)
12795 (find_row_edges): If ROW->start.pos gives position
12796 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
12797 (handle_stop, back_to_previous_visible_line_start, reseat_1):
12798 Reset the from_disp_prop_p flag.
12799 (SAVE_IT, RESTORE_IT): New macros.
12800 (pos_visible_p, face_before_or_after_it_pos)
12801 (back_to_previous_visible_line_start)
12802 (move_it_in_display_line_to, move_it_in_display_line)
12803 (move_it_to, move_it_vertically_backward, move_it_by_lines)
12804 (try_scrolling, redisplay_window, display_line): Use them when
12805 saving a temporary copy of the iterator and restoring it back.
12806 (back_to_previous_visible_line_start, reseat_1)
12807 (init_iterator): Empty the bidi cache "stack".
12808 (move_it_in_display_line_to): If iterator ended up at
12809 EOL, but we never saw any buffer positions smaller than
12810 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
12811 motion in bidi-reordered lines.
12812 (move_it_in_display_line_to): Record prev_method and prev_pos
12813 immediately before the call to set_iterator_to_next. Fixes cursor
12814 motion in bidi-reordered lines with stretch glyphs and strings
12815 displayed in margins. (Bug#8133) (Bug#8867)
12816 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
12817 TO_CHARPOS.
640c8776
SM
12818 (pos_visible_p): Support positions in bidi-reordered lines.
12819 Save and restore bidi cache.
0bb23927
EZ
12820
12821 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
12822 (bidi_paragraph_info): Delete unused struct.
12823 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
12824 (bidi_cache_start): New variable.
12825 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
12826 to zero.
12827 (bidi_cache_fetch_state, bidi_cache_search)
12828 (bidi_cache_find_level_change, bidi_cache_iterator_state)
12829 (bidi_cache_find, bidi_peek_at_next_level)
12830 (bidi_level_of_next_char, bidi_find_other_level_edge)
12831 (bidi_move_to_visually_next): Compare cache index with
12832 bidi_cache_start rather than with zero.
12833 (bidi_fetch_char): Accept new argument STRING; all callers
12834 changed. Support iteration over a string. Support strings with
12835 display properties. Support unibyte strings. Fix the type of
12836 `len' according to what STRING_CHAR_AND_LENGTH expects.
12837 (bidi_paragraph_init, bidi_resolve_explicit_1)
12838 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
12839 (bidi_level_of_next_char, bidi_move_to_visually_next):
12840 Support iteration over a string.
0bb23927
EZ
12841 (bidi_set_sor_type, bidi_resolve_explicit_1)
12842 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
12843 can now be zero (for strings); special values 0 and -1 were
12844 changed to -1 and -2, respectively.
12845 (bidi_char_at_pos): New function.
12846 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
12847 Call it instead of FETCH_MULTIBYTE_CHAR.
12848 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
12849 initialized to valid values.
12850 (bidi_init_it): Don't initialize charpos and bytepos with invalid
12851 values.
12852 (bidi_level_of_next_char): Allow the sentinel "position" to pass
12853 the test for valid cached positions. Fix the logic for looking up
12854 the sentinel state in the cache. GCPRO the Lisp string we are
12855 iterating.
12856 (bidi_push_it, bidi_pop_it): New functions.
12857 (bidi_initialize): Initialize the bidi cache start stack pointer.
12858 (bidi_cache_ensure_space): New function, refactored from part of
12859 bidi_cache_iterator_state. Don't assume the required size is just
12860 one BIDI_CACHE_CHUNK away.
12861 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
12862 (bidi_count_bytes, bidi_char_at_pos): New functions.
12863 (bidi_cache_search): Don't assume bidi_cache_last_idx is
12864 always valid if bidi_cache_idx is valid.
12865 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
12866 is valid if it's going to be used.
12867 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
12868 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
12869 (bidi_cache_find_level_change, bidi_cache_ensure_space)
12870 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
12871 (bidi_find_other_level_edge, bidi_cache_start_stack):
12872 All variables related to cache indices are now EMACS_INT.
c965adc5 12873
0bb23927
EZ
12874 * dispextern.h (struct bidi_string_data): New structure.
12875 (struct bidi_it): New member `string'. Make flag members be 1-bit
12876 fields, and put them last in the struct.
640c8776
SM
12877 (compute_display_string_pos, compute_display_string_end):
12878 Update prototypes.
0bb23927
EZ
12879 (bidi_push_it, bidi_pop_it): Add prototypes.
12880 (struct iterator_stack_entry): New members bidi_p,
12881 paragraph_embedding, and from_disp_prop_p.
12882 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
12883 (bidi_shelve_cache, bidi_unshelve_cache):
12884 Declare prototypes.
0bb23927
EZ
12885
12886 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
12887 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
12888 and vector-like objects.
12889
12890 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
12891 cache around display iteration.
12892
12893 * window.c (Fwindow_end, window_scroll_pixel_based)
12894 (displayed_window_lines, Frecenter): Save and restore the bidi
12895 cache around display iteration.
12896
3bbd2265
LMI
128972011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
12898
12899 * editfns.c (Fdelete_region): Clarify the use of the named
12900 parameters (bug#6788).
12901
adc47434
MR
129022011-07-14 Martin Rudalics <rudalics@gmx.at>
12903
12904 * indent.c (Fvertical_motion): Set and restore w->pointm when
12905 saving and restoring the window's buffer (Bug#9006).
12906
837c31f8
LMI
129072011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
12908
12909 * editfns.c (Fstring_to_char): Clarify just what is returned
12910 (bug#6576). Text by Eli Zaretskii.
12911
ac389d0c
JB
129122011-07-13 Juanma Barranquero <lekktu@gmail.com>
12913
12914 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
12915
0be0ce47
EZ
129162011-07-13 Eli Zaretskii <eliz@gnu.org>
12917
12918 * buffer.c (mmap_find): Fix a typo.
12919
cd18e7e3
JB
129202011-07-13 Johan Bockgård <bojohan@gnu.org>
12921
12922 Fix execution of x selection hooks.
12923 * xselect.c (Qx_lost_selection_functions)
12924 (Qx_sent_selection_functions): New vars.
12925 (syms_of_xselect): DEFSYM them.
12926 (x_handle_selection_request): Pass Qx_sent_selection_functions
12927 rather than Vx_sent_selection_functions to Frun_hook_with_args.
12928 (x_handle_selection_clear,x_clear_frame_selections):
12929 Pass Qx_lost_selection_functions rather than
12930 Vx_lost_selection_functions to Frun_hook_with_args.
12931
47ea7f44
PE
129322011-07-13 Paul Eggert <eggert@cs.ucla.edu>
12933
ac389d0c 12934 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
12935 The old code sometimes used this field without initializing it.
12936
47ea7f44
PE
12937 * alloc.c (gc_sweep): Don't read past end of array.
12938 In theory, the old code could also have corrupted Emacs internals,
12939 though it'd be very unlikely.
12940
bc985c87
AS
129412011-07-12 Andreas Schwab <schwab@linux-m68k.org>
12942
12943 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 12944 argument. (Bug#4026)
bc985c87 12945
0cf34688
LMI
129462011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
12947
b3dadd76
LMI
12948 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
12949 key" (bug#4257).
12950
0cf34688
LMI
12951 * window.c (Fset_window_start): Doc fix (bug#4199).
12952 (Fset_window_hscroll): Ditto.
12953
270768cd
PE
129542011-07-12 Paul Eggert <eggert@cs.ucla.edu>
12955
077e3dda 12956 Fix minor new problems caught by GCC 4.6.1.
270768cd 12957 * term.c (init_tty): Remove unused local.
490011a6 12958 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 12959 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 12960 not used otherwise.
270768cd 12961
b1f58454
CY
129622011-07-12 Chong Yidong <cyd@stupidchicken.com>
12963
12964 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
12965
22b9578d
LMI
129662011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
12967
6e70ab07
LMI
12968 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
12969 are the mini-buffer and the echo area (bug#3320).
12970
22b9578d
LMI
12971 * term.c (init_tty): Remove support for supdup, c10 and perq
12972 terminals, which are no longer supported (bug#1482).
12973
8974cc9f
JB
129742011-07-10 Johan Bockgård <bojohan@gnu.org>
12975
12976 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
12977
a560d974
JD
129782011-07-10 Jan Djärv <jan.h.d@swipnet.se>
12979
12980 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
12981 for non-popups (Bug#3642).
12982
1dae0f0a
AS
129832011-07-10 Andreas Schwab <schwab@linux-m68k.org>
12984
268c2c36 12985 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 12986 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
12987 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
12988 * cm.c (losecursor): Likewise.
1dae0f0a
AS
12989 * data.c (fmod): Likewise.
12990 * dispnew.c (swap_glyphs_in_rows): Likewise.
12991 * emacs.c (memory_warning_signal): Likewise.
12992 * floatfns.c (float_error): Likewise.
12993 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
12994 (otf_open, font_otf_capability, generate_otf_features)
12995 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
12996 Likewise.
12997 * image.c (pbm_read_file): Likewise.
12998 * indent.c (string_display_width): Likewise.
12999 * intervals.c (check_for_interval, search_for_interval)
13000 (inc_interval_count, count_intervals, root_interval)
13001 (adjust_intervals_for_insertion, make_new_interval): Likewise.
13002 * lread.c (defalias): Likewise.
268c2c36 13003 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
13004 * regex.c (set_image_of_range_1, set_image_of_range)
13005 (regex_grow_registers): Likewise.
13006 * sysdep.c (strerror): Likewise.
13007 * termcap.c (valid_filename_p, tprint, main): Likewise.
13008 * tparam.c (main): Likewise.
13009 * unexhp9k800.c (run_time_remap, save_data_space)
13010 (update_file_ptrs, read_header, write_header, calculate_checksum)
13011 (copy_file, copy_rest, display_header): Likewise.
13012 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
13013 Likewise.
13014 * xdisp.c (check_it): Likewise.
13015 * xfaces.c (register_color, unregister_color, unregister_colors):
13016 Likewise.
13017 * xfns.c (print_fontset_result): Likewise.
13018 * xrdb.c (member, fatal, main): Likewise.
13019
99033785
PE
130202011-07-10 Paul Eggert <eggert@cs.ucla.edu>
13021
13022 Fix minor problems found by static checking (Bug#9031).
13023 * chartab.c (char_table_set_range, map_sub_char_table):
13024 Remove unused locals.
13025 (uniprop_table): Now static.
13026 * composite.c (_work_char): Remove unused static var.
13027
9cb2ac56
JB
130282011-07-09 Juanma Barranquero <lekktu@gmail.com>
13029
13030 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
13031
f25661f0
JD
130322011-07-09 Jan Djärv <jan.h.d@swipnet.se>
13033
13034 * gtkutil.c (qttip_cb): Remove code without function.
13035
8278c4fe
EZ
130362011-07-09 Eli Zaretskii <eliz@gnu.org>
13037
13038 * w32.c (pthread_sigmask): New stub.
13039
1692ae2d 130402011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 13041
8a6ebd58 13042 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
13043 sigprocmask is portable only for single-threaded applications, and
13044 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
13045 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
13046 (LIBES): Use it.
13047 * callproc.c (Fcall_process):
13048 * process.c (create_process):
13049 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
13050 Use pthread_sigmask, not sigprocmask.
123403e4 13051
1b854618
JD
130522011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13053
13054 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
13055 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
13056 wrong (Bug#8591).
13057
3fe4b549
JD
130582011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13059
0ce7e563
JD
13060 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
13061 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
13062 (xg_hide_tooltip): Fix comment.
13063
3fe4b549
JD
13064 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
13065 in registerServicesMenuSendTypes.
13066 (validRequestorForSendType): Don't check ns_return_types.
13067
13068 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
13069 ns_return_type.
13070
5df75e47
JR
130712011-07-08 Jason Rumney <jasonr@gnu.org>
13072
22610910
JR
13073 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
13074 SH_SHOW for hidden windows (Bug#5482).
13075
5df75e47
JR
13076 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
13077 frame struct members of non-existent frames (Bug#6284).
13078
699c10bd
JD
130792011-07-08 Jan Djärv <jan.h.d@swipnet.se>
13080
4393663b
JD
13081 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
13082 variable firstTime not needed on OSX >= 10.6.
13083 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
13084 >= 10.5. Use setKnobProportion, setDoubleValue.
13085
13086 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
13087 (MAC_OS_X_VERSION_10_5): Define if not defined.
13088 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
13089 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
13090 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
13091
13092 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 13093 cString and lossyCString on OSX >= 10.4.
4393663b 13094
58179cce 13095 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
13096 sizeToFit on OSX >= 10.2.
13097
13098 * nsimage.m (allocInitFromFile): Don't use deprecated method
13099 bestRepresentationForDevice on OSX >= 10.6.
13100
13101 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
13102 to avoid warning.
13103
13104 * emacs.c: Declare unexec_init_emacs_zone.
13105
a63e0781
JD
13106 * nsgui.h: Fix compiler warning about gnulib redefining verify.
13107
699c10bd
JD
13108 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
13109
13110 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
13111 on svcsMenu (Bug#8842).
13112
13113 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
13114 ns_return_types.
13115 (Fns_list_services): Just return Qnil on 10.6, code not working there.
13116
13117 * nsterm.m (QUTF8_STRING): Declare.
13118 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
13119 (validRequestorForSendType): Return type is (id).
13120 Change indexOfObjectIdenticalTo to indexOfObject.
13121 Check if we have local selection before returning self (Bug#8842).
13122 (writeSelectionToPasteboard): Put local selection into paste board
13123 if we have a local selection (Bug#8842).
13124 (syms_of_nsterm): DEFSYM QUTF8_STRING.
13125
13126 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
13127 (ns_get_local_selection): Declare.
13128
54e10184
LMI
131292011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
13130
9888ff71
LMI
13131 * keymap.c (describe_map_tree): Don't insert a double newline at
13132 the end of the buffer (bug#1169) and return whether we inserted
13133 something.
13134
54e10184
LMI
13135 * callint.c (Fcall_interactively): Change "reading args" to
13136 "providing args" to try to clarify what it does (bug#1010).
13137
15fa4783
KH
131382011-07-07 Kenichi Handa <handa@m17n.org>
13139
13140 * composite.c (composition_compute_stop_pos): Ignore a static
13141 composition starting before CHARPOS (Bug#8915).
13142
13143 * xdisp.c (handle_composition_prop): Likewise.
13144
a8815b00
EZ
131452011-07-07 Eli Zaretskii <eliz@gnu.org>
13146
13147 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
13148 (Bug#9015)
13149
ef7b981d 131502011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
13151
13152 * character.h (unicode_category_t): New enum type.
13153
13154 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
13155 (Qchar_code_property_table): New variable.
13156 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
13157 (UNIPROP_COMPRESSED_FORM_P): New macros.
13158 (char_table_ascii): Uncompress the compressed values.
13159 (sub_char_table_ref): New arg is_uniprop. Callers changed.
13160 Uncompress the compressed values.
ac389d0c 13161 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
13162 (char_table_ref_and_range): Uncompress the compressed values.
13163 (sub_char_table_set): New arg is_uniprop. Callers changed.
13164 Uncompress the compressed values.
13165 (sub_char_table_set_range): Args changed. Callers changed.
13166 (char_table_set_range): Adjuted for the above change.
13167 (map_sub_char_table): Delete args default_val and parent. Add arg
13168 top. Give decoded values to a Lisp function.
640c8776 13169 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
13170 values to a Lisp function. Gcpro more variables.
13171 (uniprop_table_uncompress)
13172 (uniprop_decode_value_run_length): New functions.
13173 (uniprop_decoder, uniprop_decoder_count): New variables.
13174 (uniprop_get_decoder, uniprop_encode_value_character)
13175 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
13176 New functions.
13177 (uniprop_encoder, uniprop_encoder_count): New variables.
13178 (uniprop_get_encoder, uniprop_table)
13179 (Funicode_property_table_internal, Fget_unicode_property_internal)
13180 (Fput_unicode_property_internal): New functions.
13181 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
13182 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 13183 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
13184 char-code-property-alist.
13185
640c8776 13186 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
13187 Vunicode_category_table.
13188
640c8776 13189 * font.c (font_range): Adjust for the change of
c805dec0
KH
13190 Vunicode_category_table.
13191
76b397fb
DN
131922011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
13193
13194 * m/iris4d.h: Remove file, move contents ...
13195 * s/irix6-5.h: ... here.
13196
22b4128e
PE
131972011-07-06 Paul Eggert <eggert@cs.ucla.edu>
13198
13199 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
13200 * alloc.c (mark_buffer):
13201 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
13202 (clone_per_buffer_values): Don't assume that
22b4128e
PE
13203 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
13204 This isn't true in general, and it's particularly not true
13205 if Emacs is configured with --with-wide-int.
13206 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
13207 New macros, used in the buffer.c change.
13208
869795d6
JD
132092011-07-05 Jan Djärv <jan.h.d@swipnet.se>
13210
13211 * xsettings.c: Use both GConf and GSettings if both are available.
13212 (store_config_changed_event): Add comment.
13213 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
13214 (store_tool_bar_style_changed): New functions.
5e617bc2 13215 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
13216 (struct xsettings): Move font inside HAVE_XFT.
13217 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 13218 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 13219 Move inside HAVE_XFT.
640c8776 13220 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
13221 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
13222 also.
13223 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 13224 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 13225 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
13226 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
13227 (parse_settings): Move check for font inside HAVE_XFT.
13228 (read_settings, apply_xft_settings): Add comment.
13229 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
13230 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
13231 call store_font_name_changed.
13232 (xft_settings_event): Add comment.
13233 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
13234 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
13235 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
13236 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
13237 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
13238 (xsettings_get_system_font, xsettings_get_system_normal_font):
13239 Add comment.
869795d6 13240
d8ed26bd
PE
132412011-07-05 Paul Eggert <eggert@cs.ucla.edu>
13242
13243 Random fixes. E.g., (random) never returned negative values.
13244 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
13245 subseconds part to the entropy, as that's a bit more random.
13246 Prefer signed to unsigned, since the signedness doesn't matter and
13247 in general we prefer signed. When given a limit, use a
13248 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
13249 latter isn't right if USE_2_TAGS_FOR_INTS.
13250 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
13251 not 0..VALMASK. Don't discard "excess" bits that random () returns.
13252
cabf1cac
SM
132532011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
13254
13255 * textprop.c (text_property_stickiness):
13256 Obey Vtext_property_default_nonsticky.
13257 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
13258 * w32fns.c (syms_of_w32fns):
13259 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
13260
6e9b2be9
PE
132612011-07-04 Paul Eggert <eggert@cs.ucla.edu>
13262
13263 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
13264 This is more efficient than Ffile_directory_p and avoids a minor race.
13265
90186c68
LMI
132662011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
13267
7c301272
LMI
13268 * buffer.c (Foverlay_put): Say what the return value is
13269 (bug#7835).
13270
c4f2d8d4
LMI
13271 * fileio.c (barf_or_query_if_file_exists): Check first if the file
13272 is a directory before asking whether to use the file name
13273 (bug#7564).
ad637907
LMI
13274 (barf_or_query_if_file_exists): Make the "File is a directory"
13275 error be more correct.
c4f2d8d4 13276
90186c68
LMI
13277 * fns.c (Frequire): Remove the mention of the .gz files, since
13278 that's installation-specific, but keep the mention of
13279 `get-load-suffixes'.
13280
da64016e
PE
132812011-07-04 Paul Eggert <eggert@cs.ucla.edu>
13282
13283 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
13284 Report string overflow if the output is too long.
13285
7d47b580
JB
132862011-07-04 Juanma Barranquero <lekktu@gmail.com>
13287
a555cb87
JB
13288 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
13289 (syms_of_gnutls): Remove duplicate DEFSYM for
13290 Qgnutls_bootprop_verify_hostname_error, an error for
13291 Qgnutls_bootprop_verify_error (which is no longer used).
13292
7d47b580
JB
13293 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
13294 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
13295 Also (re)move comments that are misplaced or no longer relevant.
13296
1e49bfab
LMI
132972011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13298
13299 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
13300
1485f4c0
CY
133012011-07-03 Chong Yidong <cyd@stupidchicken.com>
13302
13303 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
13304 and background color parameters if they have been changed.
13305
a9ab721e
LMI
133062011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13307
13308 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
13309
cf7cff57
PE
133102011-07-03 Paul Eggert <eggert@cs.ucla.edu>
13311
2e13213d
PE
13312 * xsettings.c (SYSTEM_FONT): Define only when used.
13313 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
13314
cf7cff57
PE
13315 * keymap.c (access_keymap_1): Now static.
13316
7a8e04f7
CY
133172011-07-02 Chong Yidong <cyd@stupidchicken.com>
13318
13319 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
13320 leave any prefix arg for the up event (Bug#1586).
13321
61352f62
LMI
133222011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
13323
69bb1ef7
LMI
13324 * lread.c (syms_of_lread): Mention single symbols defined by
13325 `defvar' or `defconst' (bug#7154).
13326
61352f62 13327 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 13328 (Frequire): Mention get-load-suffixes.
61352f62 13329
28545e04
MR
133302011-07-02 Martin Rudalics <rudalics@gmx.at>
13331
13332 * window.h (window): Remove clone_number slot.
13333 * window.c (Fwindow_clone_number, Fset_window_clone_number):
13334 Remove.
13335 (make_parent_window, make_window, saved_window)
13336 (Fset_window_configuration, save_window_save): Don't deal with
13337 clone numbers.
13338 * buffer.c (Qclone_number): Remove declaration.
13339 (sort_overlays, overlay_strings): Don't deal with clone numbers.
13340
3349e122
SM
133412011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
13342
13343 Add multiple inheritance to keymaps.
13344 * keymap.c (Fmake_composed_keymap): New function.
13345 (Fset_keymap_parent): Simplify.
13346 (fix_submap_inheritance): Remove.
13347 (access_keymap_1): New function extracted from access_keymap to handle
13348 embedded parents and handle lists of maps.
13349 (access_keymap): Use it.
13350 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
13351 (Fcopy_keymap): Handle embedded parents.
13352 (Fcommand_remapping, define_as_prefix): Simplify.
13353 (Fkey_binding): Simplify.
13354 (syms_of_keymap): Move minibuffer-local-completion-map,
13355 minibuffer-local-filename-completion-map,
13356 minibuffer-local-must-match-map, and
13357 minibuffer-local-filename-must-match-map to Elisp.
13358 (syms_of_keymap): Defsubr make-composed-keymap.
13359 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
13360 (parse_menu_item): Trivial simplification.
13361
3279eb87
GM
133622011-07-01 Glenn Morris <rgm@gnu.org>
13363
13364 * Makefile.in (SETTINGS_LIBS): Fix typo.
13365
39cb9e56 133662011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
13367
13368 * coding.c (Fencode_coding_string): Record the last coding system
13369 used, as the function doc string says (bug#8738).
13370
0949d2b6
JD
133712011-07-01 Jan Djärv <jan.h.d@swipnet.se>
13372
13373 * xsettings.c (store_monospaced_changed): Take new font as arg and
13374 check for change against current_mono_font.
13375 (EMACS_TYPE_SETTINGS): Remove this and related defines.
13376 (emacs_settings_constructor, emacs_settings_get_property)
13377 (emacs_settings_set_property, emacs_settings_class_init)
13378 (emacs_settings_init, gsettings_obj): Remove.
13379 (something_changedCB): New function for HAVE_GSETTINGS.
13380 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
13381 with value as argument.
13382 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
13383 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 13384 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
13385 "changed".
13386
13387 * xgselect.c: Add defined (HAVE_GSETTINGS).
13388 (xgselect_initialize): Ditto.
13389
13390 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
13391 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
13392 xg_select.
13393
bbc6b304
PE
133942011-07-01 Paul Eggert <eggert@cs.ucla.edu>
13395
13396 * eval.c (struct backtrace): Simplify and port the data structure.
13397 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
13398 signed bit field, as this assumption is not portable and it makes
13399 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
13400 "char debug_on_exit : 1" as this is not portable either; instead,
13401 use the portable "unsigned int debug_on_exit : 1". Remove unused
13402 member evalargs. Remove obsolete comments about cc bombing out.
13403
9851bfc5
JD
134042011-06-30 Jan Djärv <jan.h.d@swipnet.se>
13405
51bb811f 13406 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
13407 Let HAVE_GSETTINGS override HAVE_GCONF.
13408 (store_monospaced_changed): New function.
13409 (EMACS_SETTINGS): A new type derived from GObject to handle
13410 GSettings notifications.
13411 (emacs_settings_constructor, emacs_settings_get_property)
13412 (emacs_settings_set_property, emacs_settings_class_init):
13413 New functions.
13414 (gsettings_client, gsettings_obj): New variables.
13415 (GSETTINGS_SCHEMA): New define.
13416 (something_changedCB): Call store_monospaced_changed.
13417 (init_gsettings): New function.
13418 (xsettings_initialize): Call init_gsettings.
13419 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
13420 to NULL.
13421
640c8776 13422 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
13423 GCONF_CFLAGS/LIBS.
13424
5386012d
MR
134252011-06-29 Martin Rudalics <rudalics@gmx.at>
13426
13427 * window.c (resize_root_window, grow_mini_window)
13428 (shrink_mini_window): Rename Qresize_root_window to
13429 Qwindow_resize_root_window and Qresize_root_window_vertically to
13430 Qwindow_resize_root_window_vertically.
13431
f13e0b08
PE
134322011-06-28 Paul Eggert <eggert@cs.ucla.edu>
13433
13434 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
13435
94515237
JB
134362011-06-27 Juanma Barranquero <lekktu@gmail.com>
13437
13438 * makefile.w32-in: Redesign dependencies so they reflect more
13439 clearly which files are directly included by each source file,
13440 and not through other includes.
13441
e43b6e43
MR
134422011-06-27 Martin Rudalics <rudalics@gmx.at>
13443
13444 * buffer.c (Qclone_number): Declare static and DEFSYM it.
13445 (sort_overlays, overlay_strings): When an overlay's clone number
13446 matches the window's clone number process the overlay even if
13447 the overlay's window property doesn't match the current window.
13448
d68443dc
MR
13449 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
13450 (Fwindow_hchild): Rename to Fwindow_left_child.
13451 (Fwindow_next): Rename to Fwindow_next_sibling.
13452 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
13453 (resize_window_check): Rename to window_resize_check.
13454 (resize_window_apply): Rename to window_resize_apply.
13455 (Fresize_window_apply): Rename to Fwindow_resize_apply.
13456 (Fdelete_other_windows_internal, resize_frame_windows)
13457 (Fsplit_window_internal, Fdelete_window_internal)
13458 (grow_mini_window, shrink_mini_window)
13459 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 13460
c7e73be5
JD
134612011-06-26 Jan Djärv <jan.h.d@swipnet.se>
13462
13463 * emacsgtkfixed.h: State that this is only used with Gtk+3.
13464 (emacs_fixed_set_min_size): Remove.
13465 (emacs_fixed_new): Take frame as argument.
13466
13467 * emacsgtkfixed.c: State that this is only used with Gtk+3.
13468 (_EmacsFixedPrivate): Remove minwidth/height.
13469 Add struct frame *f.
13470 (emacs_fixed_init): Initialize priv->f.
13471 (get_parent_class, emacs_fixed_set_min_size): Remove.
13472 (emacs_fixed_new): Set priv->f to argument.
13473 (emacs_fixed_get_preferred_width)
13474 (emacs_fixed_get_preferred_height): Use min_width/height from
13475 frames size_hint to set minimum and natural (Bug#8919).
13476 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
13477 and use min_width/height from frames size_hint to set
13478 min_width/height (Bug#8919).
13479
13480 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
13481 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
13482 Fix indentation.
c7e73be5 13483
cf99dcf8
EZ
134842011-06-26 Eli Zaretskii <eliz@gnu.org>
13485
13486 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
13487 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
13488 called at ZV.
13489
029529ac
CY
134902011-06-26 Chong Yidong <cyd@stupidchicken.com>
13491
13492 * process.c (wait_reading_process_output): Bypass select if
13493 waiting for a cell while ignoring keyboard input, and input is
13494 pending. Suggested by Jan Djärv (Bug#8869).
13495
7a7ef429
PE
134962011-06-25 Paul Eggert <eggert@cs.ucla.edu>
13497
13498 Use gnulib's dup2 module instead of rolling our own.
13499 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
13500
11fdef7d 135012011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
13502
13503 * dispnew.c (scrolling_window): Before scrolling, turn off a
13504 mouse-highlight in the window being scrolled.
13505
cd3520a4
JB
135062011-06-24 Juanma Barranquero <lekktu@gmail.com>
13507
13508 Move DEFSYM to lisp.h and use everywhere.
13509
13510 * character.h (DEFSYM): Move declaration...
13511 * lisp.h (DEFSYM): ...here.
13512
13513 * gnutls.c:
13514 * minibuf.c:
13515 * w32menu.c:
13516 * w32proc.c:
13517 * w32select.c: Don't include character.h.
13518
13519 * alloc.c (syms_of_alloc):
13520 * buffer.c (syms_of_buffer):
13521 * bytecode.c (syms_of_bytecode):
13522 * callint.c (syms_of_callint):
13523 * casefiddle.c (syms_of_casefiddle):
13524 * casetab.c (init_casetab_once):
13525 * category.c (init_category_once, syms_of_category):
13526 * ccl.c (syms_of_ccl):
13527 * cmds.c (syms_of_cmds):
13528 * composite.c (syms_of_composite):
13529 * dbusbind.c (syms_of_dbusbind):
13530 * dired.c (syms_of_dired):
13531 * dispnew.c (syms_of_display):
13532 * doc.c (syms_of_doc):
13533 * editfns.c (syms_of_editfns):
13534 * emacs.c (syms_of_emacs):
13535 * eval.c (syms_of_eval):
13536 * fileio.c (syms_of_fileio):
13537 * fns.c (syms_of_fns):
13538 * frame.c (syms_of_frame):
13539 * fringe.c (syms_of_fringe):
13540 * insdel.c (syms_of_insdel):
13541 * keymap.c (syms_of_keymap):
13542 * lread.c (init_obarray, syms_of_lread):
13543 * macros.c (syms_of_macros):
13544 * msdos.c (syms_of_msdos):
13545 * print.c (syms_of_print):
13546 * process.c (syms_of_process):
13547 * search.c (syms_of_search):
13548 * sound.c (syms_of_sound):
13549 * syntax.c (init_syntax_once, syms_of_syntax):
13550 * terminal.c (syms_of_terminal):
13551 * textprop.c (syms_of_textprop):
13552 * undo.c (syms_of_undo):
13553 * w32.c (globals_of_w32):
13554 * window.c (syms_of_window):
13555 * xdisp.c (syms_of_xdisp):
13556 * xfaces.c (syms_of_xfaces):
13557 * xfns.c (syms_of_xfns):
13558 * xmenu.c (syms_of_xmenu):
13559 * xsettings.c (syms_of_xsettings):
13560 * xterm.c (syms_of_xterm): Use DEFSYM.
13561
4228cf16
TZ
135622011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
13563
cd3520a4 13564 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 13565
7fcccf1e
PE
135662011-06-23 Paul Eggert <eggert@cs.ucla.edu>
13567
7efb4e0e
PE
13568 Integer and buffer overflow fixes (Bug#8873).
13569
ff5844ad
PE
13570 * print.c (printchar, strout): Check for string overflow.
13571 (PRINTPREPARE, printchar, strout):
13572 Don't set size unless allocation succeeds.
13573
90532f02
PE
13574 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
13575 for sizes. Check for string overflow more accurately.
13576 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
13577
6d84508d
PE
13578 * macros.c: Integer and buffer overflow fixes.
13579 * keyboard.h (struct keyboard.kbd_macro_bufsize):
13580 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
13581 Use ptrdiff_t, not int, for sizes.
13582 Don't increment bufsize until after realloc succeeds.
13583 Check for size-calculation overflow.
13584 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
13585
437b2cb4
PE
13586 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
13587
8b9ac8b4
PE
13588 * lread.c: Integer overflow fixes.
13589 (read_integer): Radix is now EMACS_INT, not int,
13590 to improve quality of diagnostics for out-of-range radices.
13591 Calculate buffer size correctly for out-of-range radices.
13592 (read1): Check for integer overflow in radices, and in
13593 read-circle numbers.
82cb60d3
PE
13594 (read_escape): Avoid int overflow.
13595 (Fload, openp, read_buffer_size, read1)
13596 (substitute_object_recurse, read_vector, read_list, map_obarray):
13597 Use ptrdiff_t, not int, for sizes.
13598 (read1): Use EMACS_INT, not int, for sizes.
20270765 13599 Check for size overflow.
8b9ac8b4 13600
7fcccf1e
PE
13601 * image.c (cache_image): Check for size arithmetic overflow.
13602
bfbbd7e7
PE
13603 * lread.c: Integer overflow issues.
13604 (saved_doc_string_size, saved_doc_string_length)
13605 (prev_saved_doc_string_size, prev_saved_doc_string_length):
13606 Now ptrdiff_t, not int.
13607 (read1): Don't assume doc string length fits in int. Check for
13608 out-of-range doc string lengths.
13609 (read_list): Don't assume file position fits in int.
39019e54 13610 (read_escape): Check for hex character overflow.
bfbbd7e7 13611
4e323265
LL
136122011-06-22 Leo Liu <sdl.web@gmail.com>
13613
13614 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
13615 Move to minibuffer.el.
13616
85fece3e
PE
136172011-06-22 Paul Eggert <eggert@cs.ucla.edu>
13618
20b84ce9 13619 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
13620 The following patches are for when GLYPH_DEBUG && !XASSERT.
13621 * dispextern.h (trace_redisplay_p, dump_glyph_string):
13622 * dispnew.c (flush_stdout):
13623 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
13624 Mark as externally visible.
13625 * dispnew.c (check_window_matrix_pointers): Now static.
13626 * dispnew.c (window_to_frame_vpos):
13627 * xfns.c (unwind_create_frame):
13628 * xterm.c (x_check_font): Remove unused local.
13629 * scroll.c (CHECK_BOUNDS):
13630 * xfaces.c (cache_fache): Rename local to avoid shadowing.
13631 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
13632 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
13633 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
13634 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
13635 Now static.
13636 (debug_method_add): Use va_list and vsprintf rather than relying
13637 on undefined behavior with wrong number of arguments.
13638 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
13639 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
13640 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
13641 since we're not interested in debugging glyphs with old libraries.
13642 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
13643 GCC 4.6.0's static checking.
13644
0766b489
PE
136452011-06-22 Paul Eggert <eggert@cs.ucla.edu>
13646
31fd4b32
PE
13647 Integer overflow and signedness fixes (Bug#8873).
13648 A few related buffer overrun fixes, too.
13649
b79e8648
PE
13650 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
13651
0766b489
PE
13652 * dispextern.h (struct face.stipple):
13653 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
13654 (x_bitmap_mask, x_allocate_bitmap_record)
13655 (x_create_bitmap_from_data, x_create_bitmap_from_file)
13656 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
13657 (x_create_bitmap_from_xpm_data):
13658 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
13659 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
13660 (.bitmaps_last):
13661 * xfaces.c (load_pixmap):
13662 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
13663 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
13664 (.bitmaps_last, struct x_output.icon_bitmap):
13665 Use ptrdiff_t, not int, for bitmap indexes.
13666 (x_allocate_bitmap_record): Check for size overflow.
13667 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
13668
b081724f
PE
13669 Use ptrdiff_t, not int, for overlay counts.
13670 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
13671 * editfns.c (overlays_around, get_pos_property):
13672 * textprop.c (get_char_property_and_overlay):
13673 * xdisp.c (next_overlay_change, note_mouse_highlight):
13674 * xfaces.c (face_at_buffer_position):
21514da7
PE
13675 * buffer.c (OVERLAY_COUNT_MAX): New macro.
13676 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
13677 (Fnext_overlay_change, Fprevious_overlay_change)
13678 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 13679 Use ptrdiff_t, not int, for sizes.
21514da7 13680 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 13681
3de73e5e
PE
13682 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
13683
2606c57b
PE
13684 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
13685 (x_session_initialize): Do not assume string length fits in int.
13686
aaafe47a
PE
13687 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
13688 This is unlikely, but can occur if DPI is outlandish.
13689
2674ddc8 13690 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
13691 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
13692
28154962
PE
13693 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
13694 * xrdb.c (magic_file_p, search_magic_path):
13695 Omit last arg SUFFIX; it was always 0. All callers changed.
13696 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
13697
7de51af5
PE
13698 * xfont.c (xfont_match): Avoid need for strlen.
13699
25ed6cc3
PE
13700 * xfns.c: Don't assume strlen fits in int.
13701 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
13702
4eab31dd
PE
13703 * xdisp.c (message_log_check_duplicate): Return intmax_t,
13704 not unsigned long, as we prefer signed integers. All callers changed.
13705 Detect integer overflow in repeat count.
13706 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 13707 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 13708
171e2a58
PE
13709 * termcap.c: Don't assume sizes fit in int and never overflow.
13710 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
13711 (gobble_line): Check for size-calculation overflow.
13712
ad39faca 13713 * minibuf.c (Fread_buffer):
6e5bb2dc 13714 * lread.c (intern, intern_c_string):
74ca2eb3
PE
13715 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
13716 Don't assume string length fits in int.
13717
52c61c22 13718 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
13719 * gtkutil.c (style_changed_cb): Avoid need for strlen.
13720
b5b8c9e5
PE
13721 * font.c: Don't assume string length fits in int.
13722 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
13723 Use ptrdiff_t, not int.
ccd6111c
PE
13724 (font_intern_prop): Don't assume string length fits in int.
13725 Don't assume integer property fits in fixnum.
13726 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 13727
882f0d81 13728 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 13729 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
13730 Reformulate so as not to need the command string.
13731 Invoke gzip -cd rather than gunzip, as it's more portable.
13732 (lock_info_type, lock_file_1, lock_file):
13733 Don't assume pid_t and time_t fit in unsigned long.
13734 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
13735 (current_lock_owner): Prefer signed type for sizes.
13736 Use memcpy, not strncpy, where memcpy is what is really wanted.
13737 Don't assume (via atoi) that time_t and pid_t fit in int.
13738 Check for time_t and/or pid_t out of range, e.g., via a network share.
13739 Don't alloca where an auto var works fine.
13740
93f4cf88
PE
13741 * fileio.c: Fix some integer overflow issues.
13742 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
13743 Don't assume string length fits in int.
13744 (directory_file_name): Don't assume string length fits in long.
13745 (make_temp_name): Don't assume pid fits in int, or that its print
13746 length is less than 20.
13747
f3e92b69
PE
13748 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
13749
1bfdaf10
PE
13750 * coding.c (make_subsidiaries): Don't assume string length fits in int.
13751
35016e9a
PE
13752 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
13753
3d1e65a1
PE
13754 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
13755 We prefer signed integers, even for size calculations.
13756
0b963a93
PE
13757 * emacs.c: Don't assume string length fits in 'int'.
13758 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
13759 (main): Don't invoke strlen when not needed.
13760
573f4b54
PE
13761 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
13762 (XD_DEBUG_MESSAGE): Don't waste a byte.
13763
989f33ba
PE
13764 * callproc.c (getenv_internal_1, getenv_internal)
13765 (Fgetenv_internal):
965d34eb
PE
13766 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
13767
e4d29b33
PE
13768 * lread.c (invalid_syntax): Omit length argument.
13769 All uses changed. This doesn't fix a bug, but it simplifies the
13770 code away from its former Hollerith-constant appearance, and it's
13771 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 13772 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 13773
eb49b136
PE
13774 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
13775 This didn't break anything, but it didn't help either.
13776 It's confusing to put a bogus integer in a place where the actual
13777 value does not matter.
9f62aeb1 13778 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 13779 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 13780
15375a22
PE
13781 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
13782 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
13783 implementation.
b61cc01c
PE
13784 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
13785 We prefer signed types, and the value cannot exceed the EMACS_INT
13786 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
13787 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
13788 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
13789 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 13790
53b2623d
PE
13791 * indent.c (sane_tab_width): New function.
13792 (current_column, scan_for_column, Findent_to, position_indentation)
13793 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 13794 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 13795
51cab52b 13796 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 13797
f2ed8a70
PE
13798 * lisp.h (lint_assume): New macro.
13799 * composite.c (composition_gstring_put_cache):
13800 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
13801
abe80cc6
PE
13802 * editfns.c, insdel.c:
13803 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 13804
b02c740e
PE
13805 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
13806
ebc96716
PE
13807 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
13808
b4e50fa0 13809 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 13810 Use much-faster test for byte-length change.
311d5d7c 13811 Don't assume string byte-length fits in 'int'.
a4cf38e4 13812 Check that character arg fits in 'int'.
85461888 13813 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 13814
c0c1ee9f
PE
13815 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
13816
a498d7f4
PE
13817 * fns.c (concat): Catch string overflow earlier.
13818 Do not rely on integer wraparound.
13819
51cab52b
PE
13820 * dispextern.h (struct it.overlay_strings_charpos)
13821 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
13822 * xdisp.c (forward_to_next_line_start)
13823 (back_to_previous_visible_line_start)
13824 (reseat_at_next_visible_line_start, next_element_from_buffer):
13825 Don't arbitrarily truncate the value of 'selective' to int.
13826
76031fad
PE
13827 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
13828
5eb55db9
PE
13829 * composite.c: Don't truncate sizes to 'int'.
13830 (composition_gstring_p, composition_reseat_it)
13831 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
13832 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
13833 not EMACS_UINT, for indexes.
5eb55db9 13834
0703a717
PE
13835 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
13836
d6202519
PE
13837 * buffer.c: Include <verify.h>.
13838 (struct sortvec.priority, struct sortstr.priority):
8961a454 13839 Now EMACS_INT, not int.
c20998a7 13840 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
13841 (struct sortstr.size, record_overlay_string)
13842 (struct sortstrlist.size, struct sortlist.used):
13843 Don't truncate size to int.
13844 (record_overlay_string): Check for size-calculation overflow.
d6202519 13845 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 13846
d5a19415
JM
138472011-06-22 Jim Meyering <meyering@redhat.com>
13848
029529ac 13849 Don't leak an XBM-image-sized buffer
d5a19415
JM
13850 * image.c (xbm_load): Free the image buffer after using it.
13851
a9041e6c
PE
138522011-06-21 Paul Eggert <eggert@cs.ucla.edu>
13853
13854 Port to Sun C.
13855 * composite.c (find_automatic_composition): Omit needless 'return 0;'
13856 that Sun C diagnosed.
13857 * fns.c (secure_hash): Fix pointer signedness issue.
13858 * intervals.c (static_offset_intervals): New function.
13859 (offset_intervals): Use it.
13860
7f3f739f
LL
138612011-06-21 Leo Liu <sdl.web@gmail.com>
13862
13863 * deps.mk (fns.o):
13864 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
13865 sha512.h.
13866
13867 * fns.c (secure_hash): Rename from crypto_hash_function and change
13868 the first arg to accept symbols.
5b66d427 13869 (Fsecure_hash): New primitive.
7f3f739f
LL
13870 (syms_of_fns): New symbols.
13871
76147d94
DD
138722011-06-20 Deniz Dogan <deniz@dogan.se>
13873
13874 * process.c (Fset_process_buffer): Clarify return value in
13875 docstring.
13876
7d7d0045
CY
138772011-06-18 Chong Yidong <cyd@stupidchicken.com>
13878
13879 * dispnew.c (add_window_display_history): Use BVAR.
13880
13881 * xdisp.c (debug_method_add): Use BVAR.
13882 (check_window_end, dump_glyph_matrix, dump_glyph)
13883 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
13884
13885 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
13886 Likewise.
13887
13888 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
13889 check till after the cache is created in init_frame_faces.
13890
ff2bc410
SM
138912011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
13892
13893 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
13894
28177add
PE
138952011-06-16 Paul Eggert <eggert@cs.ucla.edu>
13896
dd3482fe
PE
13897 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
13898 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
13899 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
13900
393d71f3 13901 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
13902 * fileio.c (Finsert_file_contents):
13903 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
13904 Remove the old (too-loose) buffer overflow checks.
13905 They weren't needed, since make_gap checks for buffer overflow.
13906 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
13907 The old code merely checked for Emacs fixnum overflow, and relied
13908 on undefined (wraparound) behavior. The new code avoids undefined
13909 behavior, and also checks for ptrdiff_t and/or size_t overflow.
13910
2e6813b0 13911 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
13912 Tune. Don't use wider integers than needed. Don't use alloca.
13913 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 13914
599a9e4f
PE
13915 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
13916
99561444
PE
13917 * insdel.c, lisp.h (buffer_overflow): New function.
13918 (insert_from_buffer_1, replace_range, replace_range_2):
13919 * insdel.c (make_gap_larger):
13920 * editfns.c (Finsert_char):
13921 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
13922
28177add
PE
13923 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
13924
e69dafad
PE
139252011-06-15 Paul Eggert <eggert@cs.ucla.edu>
13926
4baa020d 13927 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 13928
b1c46f02
PE
13929 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
13930 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
13931
e69dafad
PE
13932 * fileio.c: Don't assume EMACS_INT fits in off_t.
13933 (emacs_lseek): New static function.
13934 (Finsert_file_contents, Fwrite_region): Use it.
13935 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
13936
566684ea
PE
13937 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
13938
e6966cd6
PE
13939 * fns.c: Don't overflow int when computing a list length.
13940 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
13941 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
13942 truncation on 64-bit hosts. Check for QUIT every
13943 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
13944 faster and is responsive enough.
13945 (Flength): Report an error instead of overflowing an integer.
13946 (Fsafe_length): Return a float if the value is not representable
13947 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 13948 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 13949 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 13950
dd0b0efb
PE
13951 * alloc.c: Check that resized vectors' lengths fit in fixnums.
13952 (header_size, word_size): New constants.
13953 (allocate_vectorlike): Don't check size overflow here.
13954 (allocate_vector): Check it here instead, since this is the only
13955 caller of allocate_vectorlike that could cause overflow.
13956 Check that the new vector's length is representable as a fixnum.
13957
86fe5cfe
PE
13958 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
13959 The previous code was bogus. For example, next_almost_prime (32)
13960 returned 39, which is undesirable as it is a multiple of 3; and
13961 next_almost_prime (24) returned 25, which is a multiple of 5 so
13962 why was the code bothering to check for multiples of 7?
13963
80e88859
PE
13964 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
13965
4a2f0ad6
PE
13966 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
13967
f66c7cf8
PE
13968 Variadic C functions now count arguments with ptrdiff_t.
13969 This partly undoes my 2011-03-30 change, which replaced int with size_t.
13970 Back then I didn't know that the Emacs coding style prefers signed int.
13971 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
13972 were being counted with int, which may truncate counts on 64-bit
13973 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
13974 * lisp.h (struct Lisp_Subr.function.aMANY)
13975 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
13976 Arg counts are now ptrdiff_t, not size_t.
13977 All variadic functions and their callers changed accordingly.
13978 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
13979 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
13980 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
13981 * callint.c (Fcall_interactively): Check arg count for overflow,
13982 to avoid potential buffer overrun. Use signed char, not 'int',
13983 for 'varies' array, so that we needn't bother to check its size
13984 calculation for overflow.
13985 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
13986 * eval.c (apply_lambda):
13987 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
13988 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
13989 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
13990
a1759b76
PE
13991 * callint.c (Fcall_interactively): Don't use index var as event count.
13992
d96be9fc
PE
13993 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
13994 * mem-limits.h (SIZE): Remove; no longer used.
13995
a690a978 13996 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 13997
578c21e6
PE
13998 Remove unnecessary casts.
13999 * xterm.c (x_term_init):
14000 * xfns.c (x_set_border_pixel):
14001 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
14002 These aren't needed now that we assume ANSI C.
14003
96f53c6c
PE
14004 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
14005 It's more likely to cause problems (due to unsigned overflow)
14006 than to cure them.
14007
83c77d31
PE
14008 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
14009
ee2079f1
PE
14010 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
14011
6da65536
PE
14012 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
14013
7147c4a4
PE
14014 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
14015
193e32d9
PE
14016 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
14017
e5533da6
PE
14018 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
14019
9910e595
PE
14020 GLYPH_CODE_FACE returns EMACS_INT, not int.
14021 * dispextern.h (merge_faces):
14022 * xfaces.c (merge_faces):
01103c44
PE
14023 * xdisp.c (get_next_display_element, next_element_from_display_vector):
14024 Don't assume EMACS_INT fits in int.
9910e595 14025
2638320e
PE
14026 * character.h (CHAR_VALID_P): Remove unused parameter.
14027 * fontset.c, lisp.h, xdisp.c: All uses changed.
14028
045eb8d9
PE
14029 * editfns.c (Ftranslate_region_internal): Omit redundant test.
14030
c1f134b5
PE
14031 * fns.c (concat): Minor tuning based on overflow analysis.
14032 This doesn't fix any bugs. Use int to hold character, instead
14033 of constantly refetching from Emacs object. Use XFASTINT, not
14034 XINT, for value known to be a character. Don't bother comparing
14035 a single byte to 0400, as it's always less.
14036
395fcb93 14037 * floatfns.c (Fexpt):
327eeec8
PE
14038 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
14039
abbd3d23
PE
14040 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
14041 for characters.
14042
684a03ef
PE
14043 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
14044
0fed43f3
PE
14045 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
14046 Without this fix, on a 64-bit host (aset S 0 4294967386) would
14047 incorrectly succeed when S was a string, because 4294967386 was
14048 truncated before it was used.
14049
8fd02eb7
PE
14050 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
14051 Otherwise, an out-of-range integer could cause undefined behavior
14052 on a 64-bit host.
14053
f8c86b69
PE
14054 * composite.c: Use int, not EMACS_INT, for characters.
14055 (fill_gstring_body, composition_compute_stop_pos): Use int, not
14056 EMACS_INT, for values that are known to be in character range.
14057 This doesn't fix any bugs but is the usual style inside Emacs and
14058 may generate better code on 32-bit machines.
14059
34206dd2
PE
14060 Make sure a 64-bit char is never passed to ENCODE_CHAR.
14061 This is for reasons similar to the recent CHAR_STRING fix.
14062 * charset.c (Fencode_char): Check that character arg is actually
14063 a character. Pass an int to ENCODE_CHAR.
14064 * charset.h (ENCODE_CHAR): Verify that the character argument is no
14065 wider than 'int', as a compile-time check to prevent future regressions
14066 in this area.
14067
c5958d4c 14068 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
14069
14070 Make sure a 64-bit char is never passed to CHAR_STRING.
14071 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
14072 by silently ignoring the top 32 bits, allowing some values
14073 that were far too large to be valid characters.
14074 * character.h: Include <verify.h>.
14075 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
14076 arguments are no wider than unsigned, as a compile-time check
14077 to prevent future regressions in this area.
14078 * data.c (Faset):
01103c44 14079 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
14080 (Fsubst_char_in_region):
14081 * fns.c (concat):
14082 * xdisp.c (decode_mode_spec_coding):
14083 Adjust to CHAR_STRING's new requirement.
14084 * editfns.c (Finsert_char, Fsubst_char_in_region):
14085 * fns.c (concat): Check that character args are actually
14086 characters. Without this test, these functions did the wrong
14087 thing with wildly out-of-range values on 64-bit hosts.
14088
d37ca623
PE
14089 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
14090 These casts should not be needed on 32-bit hosts, either.
14091 * keyboard.c (read_char):
14092 * lread.c (Fload): Remove casts to unsigned.
14093
ea204efb
PE
14094 * lisp.h (UNSIGNED_CMP): New macro.
14095 This fixes comparison bugs on 64-bit hosts.
14096 (ASCII_CHAR_P): Use it.
14097 * casefiddle.c (casify_object):
01103c44 14098 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
14099 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
14100 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
14101 * dispextern.h (FACE_FROM_ID):
14102 * keyboard.c (read_char): Use UNSIGNED_CMP.
14103
41cb286c
PE
14104 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
14105 not to EMACS_INT, to avoid GCC warning.
14106
4a1b9832
PE
14107 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
14108
55daad71
PE
14109 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
14110 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
14111 isn't needed on 32-bit machines.
8f95c75c 14112
01103c44
PE
14113 * buffer.c (Fgenerate_new_buffer_name):
14114 Use EMACS_INT for count, not int.
0ceccced 14115 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
14116
14117 * data.c (Qcompiled_function): Now static.
14118
c6f072e7
PE
14119 * window.c (window_body_lines): Now static.
14120
20ce5912
PE
14121 * image.c (gif_load): Rename local to avoid shadowing.
14122
9c4c5f81
PE
14123 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
14124 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
14125 * alloc.c (make_save_value): Integer argument is now of type
14126 ptrdiff_t, not int.
14127 (mark_object): Use ptrdiff_t, not int.
14128 * lisp.h (pD): New macro.
14129 * print.c (print_object): Use it.
14130
c0c5c8ae
PE
14131 * alloc.c: Use EMACS_INT, not int, to count objects.
14132 (total_conses, total_markers, total_symbols, total_vector_size)
14133 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
14134 (total_free_floats, total_floats, total_free_intervals)
14135 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
14136 Now EMACS_INT, not int. All uses changed.
14137 (Fgarbage_collect): Compute overall total using a double, so that
14138 integer overflow is less likely to be a problem. Check for overflow
14139 when converting back to an integer.
5a25e253
PE
14140 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
14141 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
14142 These were 'int' variables that could overflow on 64-bit hosts;
14143 they were never used, so remove them instead of repairing them.
211a0b2a 14144 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
14145 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
14146 Previously, this ceilinged at INT_MAX, but that doesn't work on
14147 64-bit machines.
e46bb31a 14148 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 14149
c78baabf 14150 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 14151 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
14152 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
14153 when a (possibly-narrower) signed value would do just as well.
14154 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 14155
c9d624c6
PE
14156 * alloc.c: Catch some string size overflows that we were missing.
14157 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
14158 for convenience in STRING_BYTES_MAX.
14159 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
14160 The definition here is exact; the one in lisp.h was approximate.
14161 (allocate_string_data): Check for string overflow. This catches
14162 some instances we weren't catching before. Also, it catches
14163 size_t overflow on (unusual) hosts where SIZE_MAX <= min
14164 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
14165 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 14166
c9d624c6
PE
14167 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
14168 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 14169 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 14170
353032ce
PE
14171 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
14172
2bccce07
PE
14173 * alloc.c (Fmake_string): Check for out-of-range init.
14174
0ac30604
SM
141752011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
14176
14177 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
14178
c195f2de
JD
141792011-06-14 Jan Djärv <jan.h.d@swipnet.se>
14180
14181 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
14182 xg_get_default_scrollbar_width.
14183
14184 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
14185 (int_gtk_range_get_value): Move to the scroll bar part of the file.
14186 (style_changed_cb): Call update_theme_scrollbar_width and call
14187 x_set_scroll_bar_default_width and xg_frame_set_char_size for
14188 all frames (Bug#8505).
14189 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
14190 Call gtk_window_set_resizable if HAVE_GTK3.
14191 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
14192 and height if HAVE_GTK3 (Bug#8505).
14193 (scroll_bar_width_for_theme): New variable.
14194 (update_theme_scrollbar_width): New function.
14195 (xg_get_default_scrollbar_width): Move code to
14196 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
14197 (xg_initialize): Call update_theme_scrollbar_width.
14198
14199 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
14200
14201 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
14202
e10ac9f1
MR
142032011-06-12 Martin Rudalics <rudalics@gmx.at>
14204
14205 * frame.c (make_frame): Call other_buffer_safely instead of
14206 other_buffer.
14207
14208 * window.c (temp_output_buffer_show): Call display_buffer with
14209 second argument Vtemp_buffer_show_specifiers and reset latter
14210 immediately after the call.
14211 (Vtemp_buffer_show_specifiers): New variable.
14212 (auto_window_vscroll_p, next_screen_context_lines)
14213 (Vscroll_preserve_screen_position): Remove leading asterisks from
14214 doc-strings.
14215
2d3c217e 142162011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 14217
7b7f97e8 14218 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
14219 * buffer.c (Qclone_number): Remove for now, as it's unused.
14220 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
14221 (record_buffer): Remove unused local.
14222 * frame.c (other_visible_frames, frame_buffer_list): Now static.
14223 (set_frame_buffer_list): Remove; unused.
14224 * frame.h (other_visible_frames): Remove decl.
14225 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
14226 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
14227 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
14228 if HAVE_GPM.
14229 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
14230 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
14231 Define only if HAVE_GPM.
14232 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
14233 (update_hints_inhibit): Remove; never set. All uses removed.
14234 * widgetprv.h (emacsFrameClassRec): Remove decl.
14235 * window.c (delete_deletable_window): Now returns void, since it
14236 wasn't returning anything.
14237 (compare_window_configurations): Remove unused locals.
14238 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
14239 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
14240 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
14241 the same widths as pointers. This follows up on the 2011-05-06 patch.
14242 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
14243 * xterm.h: Likewise.
14244 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
14245
1384b89e
JB
142462011-06-12 Juanma Barranquero <lekktu@gmail.com>
14247
14248 * makefile.w32-in: Update dependencies.
14249 (LISP_H): Add lib/intprops.h.
14250
1100a63c
CY
142512011-06-11 Chong Yidong <cyd@stupidchicken.com>
14252
14253 * image.c (gif_load): Add animation frame delay to the metadata.
14254 (syms_of_image): Use DEFSYM. New symbol `delay'.
14255
6198ccd0
MR
142562011-06-11 Martin Rudalics <rudalics@gmx.at>
14257
14258 * window.c (delete_deletable_window): Re-add.
14259 (Fset_window_configuration): Rewrite to handle dead buffers and
14260 consequently deletable windows.
14261 (window_tree, Fwindow_tree): Remove. Supply functionality in
14262 window.el.
14263 (compare_window_configurations): Simplify code.
14264
b6e3633c
AS
142652011-06-11 Andreas Schwab <schwab@linux-m68k.org>
14266
1ab0dee5
AS
14267 * image.c (imagemagick_load_image): Fix type mismatch.
14268 (Fimagemagick_types): Likewise.
14269
b6e3633c
AS
14270 * window.h (replace_buffer_in_windows): Declare.
14271
9397e56f
MR
142722011-06-11 Martin Rudalics <rudalics@gmx.at>
14273
14274 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
14275 Qclone_number. Remove external declaration of Qdelete_window.
14276 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
14277 code.
640c8776
SM
14278 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
14279 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
14280 (Fother_buffer): Rewrite doc-string. Major rewrite for new
14281 buffer list implementation.
14282 (other_buffer_safely): New function.
14283 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
14284 calls to replace_buffer_in_windows and
14285 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
14286 if allowed.
14287 (record_buffer): Inhibit quitting and rewrite using quittable
14288 functions. Run Qbuffer_list_update_hook if allowed.
14289 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
14290 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
14291 Move switch-to-buffer to window.el.
9397e56f
MR
14292 (bury-buffer): Move to window.el.
14293 (Vbuffer_list_update_hook): New variable.
14294
14295 * lisp.h (other_buffer_safely): Add prototype in buffer.c
14296 section.
14297
14298 * window.h (resize_frame_windows): Move up in code.
14299 (Fwindow_frame): Remove EXFUN.
14300 (replace_buffer_in_all_windows): Remove prototype.
14301 (replace_buffer_in_windows_safely): Add prototype.
14302
14303 * window.c: Declare Qdelete_window static again. Move down
14304 declaration of select_count.
14305 (Fnext_window, Fprevious_window): Rewrite doc-strings.
14306 (Fother_window): Move to window.el.
14307 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
14308 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
14309 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
14310 window.el.
14311 (replace_buffer_in_windows): Implement by calling
14312 Qreplace_buffer_in_windows.
14313 (replace_buffer_in_all_windows): Remove with some functionality
14314 moved into replace_buffer_in_windows_safely.
14315 (replace_buffer_in_windows_safely): New function.
14316 (select_window_norecord, select_frame_norecord): Move in front
14317 of run_window_configuration_change_hook. Remove now obsolete
14318 declarations.
640c8776
SM
14319 (Fset_window_buffer): Rewrite doc-string.
14320 Call Qrecord_window_buffer.
9397e56f
MR
14321 (keys_of_window): Move binding for other-window to window.el.
14322
b50691aa
CY
143232011-06-11 Chong Yidong <cyd@stupidchicken.com>
14324
14325 * dispextern.h (struct image): Replace data member, whose int_val
14326 and ptr_val fields were not used by anything, with a single
14327 lisp_val object.
14328
14329 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
14330 (gif_clear_image, gif_load, imagemagick_load_image)
14331 (gs_clear_image, gs_load): Callers changed.
14332
3f754b86
PE
143332011-06-10 Paul Eggert <eggert@cs.ucla.edu>
14334
cca69397
PE
14335 * buffer.h: Include <time.h>, for time_t.
14336 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
14337
109e28d0
PE
14338 Fix minor problems found by static checking.
14339
60737f02
PE
14340 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
14341
4b66faf3
PE
14342 Make identifiers static if they are not used in other modules.
14343 * data.c (Qcompiled_function, Qframe, Qvector):
14344 * image.c (QimageMagick, Qsvg):
14345 * minibuf.c (Qmetadata):
14346 * window.c (resize_window_check, resize_root_window): Now static.
14347 * window.h (resize_window_check, resize_root_window): Remove decls.
14348
109e28d0
PE
14349 * window.c (window_deletion_count, delete_deletable_window):
14350 Remove; unused.
46a4ce9e
PE
14351 (window_body_lines): Now static.
14352 (Fdelete_other_windows_internal): Mark vars as initialized.
14353 Make sure 'resize_failed' is initialized.
14354 (run_window_configuration_change_hook): Rename local to avoid shadowing.
14355 (resize_window_apply): Remove unused local.
14356 * window.h (delete_deletable_window): Remove decl.
14357
109e28d0 14358 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
14359 (imagemagick_load_image): Fix pointer signedness problem by changing
14360 last arg from unsigned char * to char *. All uses changed.
14361 Also, fix a local for similar reasons.
14362 Remove unused locals. Remove locals to avoid shadowing.
14363 (fn_rsvg_handle_free): Remove; unused.
14364 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 14365 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 14366
3f754b86
PE
14367 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
14368
2547adb1
CY
143692011-06-10 Chong Yidong <cyd@stupidchicken.com>
14370
14371 * image.c (gif_load): Fix omitted cast error introduced by
14372 2011-06-06 change.
14373
2c8e37d4
MR
143742011-06-10 Martin Rudalics <rudalics@gmx.at>
14375
14376 * window.h (resize_proportionally, orig_total_lines)
14377 (orig_top_line): Remove from window structure.
14378 (set_window_height, set_window_width, change_window_heights)
14379 (Fdelete_window): Remove prototypes.
14380 (resize_frame_windows): Remove duplicate declaration.
14381
440a42e3
EZ
143822011-06-10 Eli Zaretskii <eliz@gnu.org>
14383
14384 * window.h (resize_frame_windows, resize_window_check)
14385 (delete_deletable_window, resize_root_window)
14386 (resize_frame_windows): Declare prototypes.
14387
14388 * window.c (resize_window_apply): Make definition be "static" to
14389 match the prototype.
14390
562dd5e9
MR
143912011-06-10 Martin Rudalics <rudalics@gmx.at>
14392
14393 * window.c: Remove declarations of Qwindow_size_fixed,
14394 window_min_size_1, window_min_size_2, window_min_size,
14395 size_window, window_fixed_size_p, enlarge_window, delete_window.
14396 Remove static from declaration of Qdelete_window, it's
14397 temporarily needed by Fbury_buffer.
14398 (replace_window): Don't assign orig_top_line and
14399 orig_total_lines.
14400 (Fdelete_window, delete_window): Remove. Window deletion is
14401 handled by window.el.
640c8776
SM
14402 (window_loop): Remove DELETE_OTHER_WINDOWS case.
14403 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
14404 (Fdelete_other_windows): Remove. Deleting other windows is
14405 handled by window.el.
14406 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
14407 handled in window.el.
14408 (window_min_size_2, window_min_size_1, window_min_size): Remove.
14409 Window minimum sizes are handled in window.el.
14410 (shrink_windows, size_window, set_window_height)
14411 (set_window_width, change_window_heights, window_height)
14412 (window_width, CURBEG, CURSIZE, enlarge_window)
14413 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
14414 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
14415 handled in window.el.
14416 (make_dummy_parent): Rename to make_parent_window and give it a
14417 second argument horflag.
14418 (make_window): Don't set resize_proportionally any more.
14419 (Fsplit_window): Remove. Windows are split in window.el.
14420 (save_restore_action, save_restore_orig_size)
14421 (shrink_window_lowest_first, save_restore_orig_size): Remove.
14422 Resize mini windows in window.el.
14423 (grow_mini_window, shrink_mini_window): Implement by calling
14424 Qresize_root_window_vertically, resize_window_check and
14425 resize_window_apply.
640c8776
SM
14426 (saved_window, Fset_window_configuration, save_window_save):
14427 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
14428 resize_proportionally.
14429 (window_min_height, window_min_width): Move to window.el.
14430 (keys_of_window): Move bindings for delete-other-windows,
14431 split-window, delete-window and enlarge-window to window.el.
14432
14433 * buffer.c: Temporarily extern Qdelete_window.
14434 (Fbury_buffer): Temporarily call Qdelete_window instead of
14435 Fdelete_window (Fbury_buffer will move to window.el soon).
14436
14437 * frame.c (set_menu_bar_lines_1): Remove code handling
14438 orig_top_line and orig_total_lines.
14439
14440 * dispnew.c (adjust_frame_glyphs_initially): Don't use
14441 set_window_height but set heights directly.
14442 (change_frame_size_1): Use resize_frame_windows.
14443
14444 * xdisp.c (init_xdisp): Don't use set_window_height but set
14445 heights directly.
14446
640c8776
SM
14447 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
14448 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
14449 run_window_configuration_change_hook.
14450
14451 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
14452 instead of change_window_heights and run
14453 run_window_configuration_change_hook.
14454
1a13852e
MR
144552011-06-09 Martin Rudalics <rudalics@gmx.at>
14456
14457 * window.c (replace_window): Rename second argument REPLACEMENT to
14458 NEW. New third argument SETFLAG. Rewrite.
14459 (delete_window, make_dummy_parent): Call replace_window with
14460 third argument 1.
14461 (window_list_1): Move down in code.
14462 (run_window_configuration_change_hook): Move set_buffer part
14463 before select_frame_norecord part in order to unwind correctly.
14464 Rename count1 to count.
14465 (recombine_windows, delete_deletable_window, resize_root_window)
14466 (Fdelete_other_windows_internal)
14467 (Frun_window_configuration_change_hook, make_parent_window)
14468 (resize_window_check, resize_window_apply, Fresize_window_apply)
14469 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
14470 (Fdelete_window_internal, Fresize_mini_window_internal):
14471 New functions.
1a13852e
MR
14472 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
14473
f3d1777e
MR
144742011-06-08 Martin Rudalics <rudalics@gmx.at>
14475
496e208e
MR
14476 * window.h (window): Add some new members to window structure -
14477 normal_lines, normal_cols, new_total, new_normal, clone_number,
14478 splits, nest, prev_buffers, next_buffers.
14479 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 14480 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 14481
f3d1777e
MR
14482 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
14483 Remove.
496e208e
MR
14484 (make_dummy_parent): Set new members of windows structure.
14485 (make_window): Move down in code. Handle new members of window
14486 structure.
14487 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
14488 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
14489 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
14490 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
14491 (Fset_window_next_buffers, Fset_window_clone_number):
14492 New functions.
496e208e
MR
14493 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
14494 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
14495 Doc-string fixes.
14496 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
14497 Argument WINDOW can be now internal window too.
14498 (Fwindow_use_time): Move up in code.
14499 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
14500 Rewrite doc-string.
14501 (Fset_window_configuration, saved_window)
14502 (Fcurrent_window_configuration, save_window_save): Handle new
14503 members of window structure.
b9e809c2
MR
14504 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
14505 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
14506 (syms_of_window): New Lisp objects Qrecord_window_buffer,
14507 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
14508 Qget_mru_window, Qresize_root_window,
14509 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
14510 Qauto_buffer_name; staticpro them.
f3d1777e 14511
abde8f8c
MR
145122011-06-07 Martin Rudalics <rudalics@gmx.at>
14513
14514 * window.c (Fwindow_total_size, Fwindow_left_column)
14515 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
14516 (Fwindow_list_1): New functions.
14517 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
14518 (Fwindow_width, Fscroll_left, Fscroll_right):
14519 Use window_body_cols instead of window_box_text_cols.
14520 (delete_window, Fset_window_configuration):
14521 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
14522 (delete_all_subwindows): Take a window as argument and not a
14523 structure. Rewrite.
190b47e6
MR
14524 (window_loop): Remove handling of GET_LRU_WINDOW and
14525 GET_LARGEST_WINDOW.
14526 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
14527
14528 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
14529 window_box_text_cols. delete_all_subwindows now takes a
14530 Lisp_Object as argument.
abde8f8c 14531
640c8776
SM
14532 * indent.c (compute_motion, Fcompute_motion):
14533 Use window_body_cols instead of window_box_text_cols.
abde8f8c 14534
fa8a67e6
MR
14535 * frame.c (delete_frame): Call delete_all_subwindows with root
14536 window as argument.
14537
a54e3482
DC
145382011-06-07 Daniel Colascione <dan.colascione@gmail.com>
14539
14540 * fns.c (Fputhash): Document return value.
14541
60002bf5
CY
145422011-06-06 Chong Yidong <cyd@stupidchicken.com>
14543
14544 * image.c (gif_load): Implement gif89a spec "no disposal" method.
14545
0c671da6 145462011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 14547
b862a52a 14548 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 14549
be44ca6c
PE
14550 Check for overflow when converting integer to cons and back.
14551 * charset.c (Fdefine_charset_internal, Fdecode_char):
14552 Use cons_to_unsigned to catch overflow.
14553 (Fencode_char): Use INTEGER_TO_CONS.
14554 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
14555 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
14556 * data.c (long_to_cons, cons_to_long): Remove.
14557 (cons_to_unsigned, cons_to_signed): New functions.
14558 These signal an error for invalid or out-of-range values.
14559 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
14560 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
14561 * font.c (Ffont_variation_glyphs):
14562 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
14563 * lisp.h: Include <intprops.h>.
14564 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
14565 (cons_to_signed, cons_to_unsigned): New decls.
14566 (long_to_cons, cons_to_long): Remove decls.
14567 * undo.c (record_first_change): Use INTEGER_TO_CONS.
14568 (Fprimitive_undo): Use CONS_TO_INTEGER.
14569 * xfns.c (Fx_window_property): Likewise.
14570 * xselect.c: Include <limits.h>.
14571 (x_own_selection, selection_data_to_lisp_data):
14572 Use INTEGER_TO_CONS.
14573 (x_handle_selection_request, x_handle_selection_clear)
14574 (x_get_foreign_selection, Fx_disown_selection_internal)
14575 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
14576 (lisp_data_to_selection_data): Use cons_to_unsigned.
14577 (x_fill_property_data): Use cons_to_signed.
14578 Report values out of range.
14579
d1f3d2af
PE
14580 Check for buffer and string overflow more precisely.
14581 * buffer.h (BUF_BYTES_MAX): New macro.
14582 * lisp.h (STRING_BYTES_MAX): New macro.
14583 * alloc.c (Fmake_string):
14584 * character.c (string_escape_byte8):
14585 * coding.c (coding_alloc_by_realloc):
14586 * doprnt.c (doprnt):
14587 * editfns.c (Fformat):
14588 * eval.c (verror):
14589 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
14590 since they may not be the same number.
14591 * editfns.c (Finsert_char):
14592 * fileio.c (Finsert_file_contents):
14593 Likewise for BUF_BYTES_MAX.
14594
dd52fcea
PE
14595 * image.c: Use ptrdiff_t, not int, for sizes.
14596 (slurp_file): Switch from int to ptrdiff_t.
14597 All uses changed.
14598 (slurp_file): Check that file size fits in both size_t (for
14599 malloc) and ptrdiff_t (for sanity and safety).
14600
7f9bbdbb
PE
14601 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
14602 if b->modtime has its maximal value.
14603
dfe18f82
PE
14604 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
14605
84acfcf0
PE
14606 Don't assume time_t can fit into int.
14607 * buffer.h (struct buffer.modtime): Now time_t, not int.
14608 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
14609 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
14610
ccd9a01a
PE
14611 Minor fixes for signed vs unsigned integers.
14612 * character.h (MAYBE_UNIFY_CHAR):
14613 * charset.c (maybe_unify_char):
14614 * keyboard.c (read_char, reorder_modifiers):
14615 XINT -> XFASTINT, since the integer must be nonnegative.
14616 * ftfont.c (ftfont_spec_pattern):
14617 * keymap.c (access_keymap, silly_event_symbol_error):
14618 XUINT -> XFASTINT, since the integer must be nonnegative.
14619 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
14620 since it makes no difference and we prefer signed.
14621 * keyboard.c (record_char): Use XUINT when all the neighbors do.
14622 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
14623 nonnegative.
14624
d6d100dd
SM
146252011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
14626
14627 * window.h (Fwindow_frame): Declare.
14628
2b6148e4
PE
146292011-06-06 Paul Eggert <eggert@cs.ucla.edu>
14630
14631 * alloc.c: Simplify handling of large-request failures (Bug#8800).
14632 (SPARE_MEMORY): Always define.
14633 (LARGE_REQUEST): Remove.
14634 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
14635
f230ecc9
MR
146362011-06-06 Martin Rudalics <rudalics@gmx.at>
14637
727e958e
MR
14638 * lisp.h: Move EXFUNS for Fframe_root_window,
14639 Fframe_first_window and Fset_frame_selected_window to window.h.
14640
14641 * window.h: Move EXFUNS for Fframe_root_window,
14642 Fframe_first_window and Fset_frame_selected_window here from
14643 lisp.h.
14644
14645 * frame.c (Fwindow_frame, Fframe_first_window)
14646 (Fframe_root_window, Fframe_selected_window)
14647 (Fset_frame_selected_window): Move to window.c.
14648 (Factive_minibuffer_window): Move to minibuf.c.
14649 (Fother_visible_frames_p): New function.
14650
14651 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
14652
f230ecc9
MR
14653 * window.c (decode_window, decode_any_window): Move up in code.
14654 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
14655 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
14656 (Fwindow_buffer): Move up and rewrite doc-string.
14657 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
14658 (Fwindow_prev): New functions.
727e958e
MR
14659 (Fwindow_frame): Move here from frame.c. Accept any window as
14660 argument.
14661 (Fframe_root_window, Fframe_first_window)
14662 (Fframe_selected_window): Move here from frame.c. Accept frame
14663 or arbitrary window as argument. Update doc-strings.
14664 (Fminibuffer_window): Move up in code.
14665 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
14666 (Fset_frame_selected_window): Move here from frame.c.
14667 Marginal rewrite.
727e958e
MR
14668 (Fselected_window, select_window, Fselect_window): Move up in
14669 code. Minor doc-string fixes.
f230ecc9 14670
4d09bcf6
PE
146712011-06-06 Paul Eggert <eggert@cs.ucla.edu>
14672
14673 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
14674 Do not assume that spare memory exists; that assumption is valid
14675 only if SYSTEM_MALLOC.
14676 (LARGE_REQUEST): New macro, so that the issue of large requests
14677 is separated from the issue of spare memory.
14678
810928a2
AS
146792011-06-05 Andreas Schwab <schwab@linux-m68k.org>
14680
172418ad
AS
14681 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
14682 format. (Bug#8806)
14683
43f862f7
AS
14684 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
14685
810928a2
AS
14686 * xfns.c (x_set_scroll_bar_default_width): Move declarations
14687 before statements.
14688
a059fe24
JD
146892011-06-05 Jan Djärv <jan.h.d@swipnet.se>
14690
14691 * gtkutil.c (xg_get_default_scrollbar_width): New function.
14692
14693 * gtkutil.h: Declare xg_get_default_scrollbar_width.
14694
14695 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
14696 min width by calling x_set_scroll_bar_default_width (Bug#8505).
14697
989bf368
JB
146982011-06-05 Juanma Barranquero <lekktu@gmail.com>
14699
14700 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
14701
4b80f674
CY
147022011-06-04 Chong Yidong <cyd@stupidchicken.com>
14703
14704 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
14705 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
14706 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
14707 New error handlers.
4b80f674
CY
14708 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
14709 Obey Vx_select_enable_clipboard_manager. Catch errors in
14710 x_clipboard_manager_save (Bug#8779).
14711 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 14712 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 14713
99a33b77 147142011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
14715
14716 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
14717
99a33b77 147182011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
14719
14720 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
14721 in the current matrix if keep_current_p is non-zero.
14722
8264569d
EZ
147232011-06-04 Eli Zaretskii <eliz@gnu.org>
14724
14725 * bidi.c (bidi_level_of_next_char): Fix last change.
14726
57f97249
EZ
147272011-06-03 Eli Zaretskii <eliz@gnu.org>
14728
fec2107c 14729 Support bidi reordering of text covered by display properties.
57f97249 14730
fec2107c
EZ
14731 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
14732 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
14733 (bidi_cache_search, bidi_cache_iterator_state)
14734 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
14735 (bidi_level_of_next_char, bidi_move_to_visually_next):
14736 Support character positions inside a run of characters covered by a
fec2107c
EZ
14737 display string.
14738 (bidi_paragraph_init, bidi_resolve_explicit_1)
14739 (bidi_level_of_next_char): Call bidi_fetch_char and
14740 bidi_fetch_char_advance instead of FETCH_CHAR and
14741 FETCH_CHAR_ADVANCE.
14742 (bidi_init_it): Initialize new members.
14743 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
14744 definitions.
14745 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
14746 instead of using explicit *_CHAR codes.
d6d100dd
SM
14747 (bidi_resolve_explicit, bidi_resolve_weak):
14748 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
14749 bidirectional text is supported only in multibyte buffers.
14750 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
14751 it to initialize the frame_window_p member of struct bidi_it.
14752 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
14753 (bidi_resolve_explicit, bidi_resolve_weak)
14754 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
14755 bidi_it->nchars is non-positive.
14756 (bidi_level_of_next_char): Don't try to lookup the cache for the
14757 next/previous character if nothing is cached there yet, or if we
14758 were just reseat()'ed to a new position.
c40e2fb2 14759
0e14fe90
EZ
14760 * xdisp.c (set_cursor_from_row): Set start and stop points
14761 according to the row's direction when priming the loop that looks
14762 for the glyph on which to display cursor.
14763 (single_display_spec_intangible_p): Function deleted.
14764 (display_prop_intangible_p): Reimplement to call
14765 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
14766 Accept 3 additional arguments needed by handle_display_spec.
14767 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
14768 values: lists, `(when COND...)' forms, etc.
14769 (single_display_spec_string_p): Support property values that are
14770 lists with the argument STRING its top-level element.
14771 (display_prop_string_p): Fix the condition for processing a
14772 property that is a list to be consistent with handle_display_spec.
fec2107c 14773 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
14774 last portion of handle_display_prop.
14775 (compute_display_string_pos): Accept additional argument
14776 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
14777 value of a `display' property is a "replacing spec".
14778 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
14779 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
14780 the display property, but just return a value indicating whether
14781 the display property will replace the characters it covers.
14782 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
14783 frame_window_p members of struct bidi_it.
d6d100dd
SM
14784 (compute_display_string_pos, compute_display_string_end):
14785 New functions.
fec2107c
EZ
14786 (push_it): Accept second argument POSITION, where pop_it should
14787 jump to continue iteration.
14788 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 14789
fec2107c
EZ
14790 * keyboard.c (adjust_point_for_property): Adjust the call to
14791 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
14792
14793 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
14794 (bidi_init_it): Update prototypes.
14795 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
14796 (compute_display_string_pos, compute_display_string_end):
14797 Declare prototypes.
fec2107c
EZ
14798 (struct bidi_it): New members nchars and disp_pos. ch_len is now
14799 EMACS_INT.
fc6f18ce 14800
40087514 148012011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 14802
57f53182
PE
14803 Malloc failure behavior now depends on size of allocation.
14804 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
14805 * lisp.h: Change signatures accordingly.
14806 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
14807 All callers changed. (Bug#8762)
14808
14809 * gnutls.c: Use Emacs's memory allocators.
14810 Without this change, the gnutls library would invoke malloc etc.
14811 directly, which causes problems on non-SYNC_INPUT hosts, and which
14812 runs afoul of improving memory_full behavior. (Bug#8761)
14813 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
14814 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
14815 xfree instead of the default malloc, realloc, free.
14816 (Fgnutls_boot): No need to check for memory allocation failure,
14817 since xmalloc does that for us.
14818
ac32cd99 14819 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
14820 * category.c (hash_get_category_set):
14821 * ccl.c (ccl_driver):
14822 * charset.c (Fdefine_charset_internal):
14823 * charset.h (struct charset.hash_index):
14824 * composite.c (get_composition_id, gstring_lookup_cache)
14825 (composition_gstring_put_cache):
14826 * composite.h (struct composition.hash_index):
14827 * dispextern.h (struct image.hash):
14828 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
14829 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
14830 (hashfn_equal, hashfn_user_defined, make_hash_table)
14831 (maybe_resize_hash_table, hash_lookup, hash_put)
14832 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
14833 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
14834 (Fsxhash, Fgethash, Fputhash, Fmaphash):
14835 * image.c (make_image, search_image_cache, lookup_image)
14836 (xpm_put_color_table_h):
14837 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 14838 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 14839 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 14840 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
14841 * alloc.c (allocate_vectorlike):
14842 Check for overflow in vector size calculations.
14843 * ccl.c (ccl_driver):
14844 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
14845 * fns.c, image.c: Remove unnecessary static decls that would otherwise
14846 need to be updated by these changes.
40087514
PE
14847 * fns.c (make_hash_table, maybe_resize_hash_table):
14848 Check for integer overflow with large hash tables.
0de4bb68
PE
14849 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
14850 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
14851 (SXHASH_REDUCE): New macro.
14852 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
14853 Use it instead of discarding useful hash info with large hash values.
14854 (sxhash_float): New function.
14855 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
14856 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
14857 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
14858 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
14859 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
14860 Adjust signatures to match updated version of code.
14861 (consing_since_gc): Now EMACS_INT, since a single hash table can
14862 use more than INT_MAX bytes.
14863
698d32e2
DN
148642011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
14865
14866 Make it possible to build with GCC-4.6+ -O2 -flto.
14867
14868 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
14869
fd6fa53f
SM
148702011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
14871
14872 * minibuf.c (get_minibuffer, read_minibuf_unwind):
14873 Call minibuffer-inactive-mode.
14874
864db017
JB
148752011-05-31 Juanma Barranquero <lekktu@gmail.com>
14876
14877 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
14878 Update dependencies.
14879
2ad0baf4
DN
148802011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
14881
14882 * data.c (init_data): Remove code for UTS, this system is not
14883 supported anymore.
14884
4fcc2638
DN
148852011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
14886
14887 Don't force ./temacs to start in terminal mode.
14888
14889 * frame.c (make_initial_frame): Initialize faces in all cases, not
14890 only when CANNOT_DUMP is defined.
14891 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
14892
c56e0fd5
DN
148932011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
14894
14895 * dispnew.c (add_window_display_history): Use const for the string
14896 pointer. Remove declaration, not needed.
14897
333d54da 148982011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 14899
55d4c1b2 14900 Use 'inline', not 'INLINE'.
333d54da 14901 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
14902 * alloc.c, fontset.c (INLINE): Remove.
14903 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
14904 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
14905 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
14906 * gmalloc.c (register_heapinfo): Use inline unconditionally.
14907 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
14908
738db178
DN
149092011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
14910
14911 Make it possible to run ./temacs.
14912
14913 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
14914 syms_of_callproc does the same thing. Remove test for
14915 "initialized", do it in the caller.
14916 * emacs.c (main): Avoid calling set_initial_environment when dumping.
14917
620c53a6
SM
149182011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
14919
14920 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
14921 (read_minibuf): Use get_minibuffer.
14922 (syms_of_minibuf): Use DEFSYM.
14923 (Qmetadata): New var.
14924 * data.c (Qbuffer): Don't make it static.
14925 (syms_of_data): Use DEFSYM.
14926
e003a292
PE
149272011-05-31 Paul Eggert <eggert@cs.ucla.edu>
14928
14929 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
14930 (CCL_CODE_MIN): New macro.
14931
ed008a6d
PE
149322011-05-30 Paul Eggert <eggert@cs.ucla.edu>
14933
3687c2ef
PE
14934 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
14935
ed008a6d
PE
14936 * eval.c (Qdebug): Now static.
14937 * lisp.h (Qdebug): Remove decl. This reverts a part of the
14938 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
14939 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
14940
d66c4c7c
CY
149412011-05-29 Chong Yidong <cyd@stupidchicken.com>
14942
14943 * image.c: Various fixes to ImageMagick code comments.
14944 (Fimagemagick_types): Doc fix.
14945
5fbc2025
PE
149462011-05-29 Paul Eggert <eggert@cs.ucla.edu>
14947
0196f88a
PE
14948 Minor fixes prompted by GCC 4.6.0 warnings.
14949
14950 * xselect.c (converted_selections, conversion_fail_tag): Now static.
14951
5fbc2025
PE
14952 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
14953 (x_clipboard_manager_save_all): Move extern decl to ...
14954 * xterm.h: ... here, so that it can be checked for consistency.
14955
1dd3c2d9
CY
149562011-05-29 Chong Yidong <cyd@stupidchicken.com>
14957
14958 * xselect.c (x_clipboard_manager_save_frame)
14959 (x_clipboard_manager_save_all): New functions.
14960 (Fx_clipboard_manager_save): Lisp function deleted.
14961
14962 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
14963 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
14964
14965 * xterm.h: Update prototype.
14966
5ba6571d
WX
149672011-05-28 William Xu <william.xwl@gmail.com>
14968
14969 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
14970 exiting (Bug#8239).
14971
3eaff834
JM
149722011-05-28 Jim Meyering <meyering@redhat.com>
14973
e1900994 14974 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
14975 * fns.c (to_uchar): Define.
14976 (crypto_hash_function): Use it to convert some newly-signed
14977 variables to unsigned, to avoid sign-extension bugs. For example,
14978 without this change, (md5 "truc") would evaluate to
14979 45723a2aff78ff4fff7fff1114760e62 rather than the expected
14980 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 14981 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 14982
0f6990a7
PE
149832011-05-27 Paul Eggert <eggert@cs.ucla.edu>
14984
14985 Integer overflow fixes.
c8a9ca5a 14986
08686060
PE
14987 * dbusbind.c: Serial number integer overflow fixes.
14988 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
14989 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
14990 to hold a serial number that is too large for a fixnum.
14991 (Fdbus_method_return_internal, Fdbus_method_error_internal):
14992 Check for serial numbers out of range. Decode any serial number
59568bf0 14993 that was so large that it became a float. (Bug#8722)
08686060 14994
2d1fc3c7
PE
14995 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
14996 (Fdbus_call_method, Fdbus_call_method_asynchronously):
14997 Use XFASTINT rather than XUINT when numbers are nonnegative.
14998 (xd_append_arg, Fdbus_method_return_internal):
14999 (Fdbus_method_error_internal): Likewise. Also, for unsigned
15000 arguments, check that Lisp number is nonnegative, rather than
59568bf0 15001 silently wrapping negative numbers around. (Bug#8722)
30217ff0 15002 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 15003 (Bug#8722)
2d1fc3c7 15004
c8a9ca5a
PE
15005 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
15006
519e1d69
PE
15007 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
15008
6df6ae42 15009 ccl: Add integer overflow checks.
30569699
PE
15010 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
15011 (IN_INT_RANGE): New macros.
15012 (ccl_driver): Use them to check for integer overflow when
15013 decoding a CCL program. Many of the new checks are whether XINT (x)
15014 fits in int; it doesn't always, on 64-bit hosts. The new version
15015 doesn't catch all possible integer overflows, but it's an
847044ea 15016 improvement. (Bug#8719)
30569699 15017
c11285dc
PE
15018 * alloc.c (make_event_array): Use XINT, not XUINT.
15019 There's no need for unsigned here.
15020
fdccd48e
PE
15021 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
15022 This follows up to the 2011-05-06 change that substituted uintptr_t
15023 for EMACS_INT. This case wasn't caught back then.
15024
37910ab2
PE
15025 Rework Fformat to avoid integer overflow issues.
15026 * editfns.c: Include <float.h> unconditionally, as it's everywhere
15027 now (part of C89). Include <verify.h>.
15028 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
15029 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
15030 (Fformat): Avoid the prepass trying to compute sizes; it was only
15031 approximate and thus did not catch overflow reliably. Instead, walk
15032 through the format just once, formatting and computing sizes as we go,
15033 checking for integer overflow at every step, and allocating a larger
15034 buffer as needed. Keep track separately whether the format is
15035 multibyte. Keep only the most-recently calculated precision, rather
15036 than them all. Record whether each argument has been converted to
15037 string. Use EMACS_INT, not int, for byte and char and arg counts.
15038 Support field widths and precisions larger than INT_MAX. Avoid
15039 sprintf's undefined behavior with conversion specifications such as %#d
15040 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
15041 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
15042 formatting out-of-range floating point numbers with int
9173deec 15043 formats. (Bug#8668)
37910ab2 15044
2e6578fb
PE
15045 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
15046
0ae6bdee
PE
15047 * data.c: Avoid integer truncation in expressions involving floats.
15048 * data.c: Include <intprops.h>.
15049 (arith_driver): When there's an integer overflow in an expression
15050 involving floating point, convert the integers to floating point
15051 so that the resulting value does not suffer from catastrophic
15052 integer truncation. For example, on a 64-bit host (* 4
15053 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
15054 Do not rely on undefined behavior after integer overflow.
15055
de883a70
PE
15056 merge count_size_as_multibyte, parse_str_to_multibyte
15057 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 15058 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
15059 Check for integer overflow.
15060 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
15061 since it's now a duplicate of the other. This is more of
15062 a character than a buffer op, so better that it's in character.c.
15063 * fns.c, print.c: Adjust to above changes.
15064
2ff916cb
PE
150652011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
15066
15067 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
15068
f1b54466
PE
150692011-05-27 Paul Eggert <eggert@cs.ucla.edu>
15070
fb1ac845
PE
15071 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
15072 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
15073 (x_clipboard_manager_save): Now static.
15074 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
15075
f1b54466
PE
15076 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
15077 (crypto_hash_function): Now static.
15078 Fix pointer signedness problems. Avoid unnecessary initializations.
15079
a9f737ee
CY
150802011-05-27 Chong Yidong <cyd@stupidchicken.com>
15081
15082 * termhooks.h (Vselection_alist): Make it terminal-local.
15083
15084 * terminal.c (create_terminal): Initialize it.
15085
15086 * xselect.c: Support for clipboard managers.
15087 (Vselection_alist): Move to termhooks.h as terminal-local var.
15088 (LOCAL_SELECTION): New macro.
15089 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
15090 (symbol_to_x_atom): Remove gratuitous arg.
15091 (x_handle_selection_request, lisp_data_to_selection_data)
15092 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
15093 (x_own_selection, x_get_local_selection, x_convert_selection):
15094 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
15095 (some_frame_on_display): Delete unused function.
15096 (Fx_own_selection_internal, Fx_get_selection_internal)
15097 (Fx_disown_selection_internal, Fx_selection_owner_p)
15098 (Fx_selection_exists_p): New optional frame arg.
15099 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
15100 (x_handle_selection_clear): Don't treat other terminals with the
15101 same keyboard specially. Use the terminal-local Vselection_alist.
15102 (x_clear_frame_selections): Use Frun_hook_with_args.
15103
15104 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
15105
15106 * xterm.h: Add support for those atoms.
15107
e067f0c1
CY
151082011-05-26 Chong Yidong <cyd@stupidchicken.com>
15109
15110 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
15111 (converted_selections, conversion_fail_tag): New global variables.
15112 (x_selection_request_lisp_error): Free the above.
15113 (x_get_local_selection): Remove unnecessary code.
15114 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
15115 of converted selections stored in converted_selections.
15116 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
15117 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
15118 (x_convert_selection): New function.
15119 (x_handle_selection_event): Simplify.
15120 (x_get_foreign_selection): Don't ignore incoming requests while
15121 waiting for an answer; this will fail when we implement
15122 SAVE_TARGETS, and seems unnecessary anyway.
15123 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
15124 (Vx_sent_selection_functions): Doc fix.
15125
0f4aebc0
LL
151262011-05-26 Leo Liu <sdl.web@gmail.com>
15127
15128 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
15129
e61124cd
YM
151302011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15131
15132 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
15133
15134 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
15135 for fringe update if it has periodic bitmap.
ac389d0c 15136 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
15137 and fringe_bitmap_periodic_p.
15138
15139 * fringe.c (get_fringe_bitmap_data): New function.
15140 (draw_fringe_bitmap_1, update_window_fringes): Use it.
15141 (update_window_fringes): Record periodicity of fringe bitmap in glyph
15142 row. Mark glyph row for fringe update if periodicity changed.
15143
15144 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
15145 for fringe update unless it has periodic bitmap.
15146
f16d9837
KH
151472011-05-25 Kenichi Handa <handa@m17n.org>
15148
15149 * xdisp.c (get_next_display_element): Set correct it->face_id for
15150 a static composition.
15151
e1b90ef6
LL
151522011-05-24 Leo Liu <sdl.web@gmail.com>
15153
15154 * deps.mk (fns.o):
15155 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
15156
15157 * fns.c (crypto_hash_function, Fsha1): New function.
15158 (Fmd5): Use crypto_hash_function.
15159 (syms_of_fns): Add Ssha1.
15160
7400048f
PE
151612011-05-22 Paul Eggert <eggert@cs.ucla.edu>
15162
15163 * gnutls.c: Remove unused macros.
15164 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
15165 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
15166 Remove macros that are defined and never used.
15167 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
15168
abb71cf4
CY
151692011-05-22 Chong Yidong <cyd@stupidchicken.com>
15170
15171 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
15172 (Fx_get_selection_internal): Minor cleanup.
15173 (Fx_own_selection_internal): Rename arguments for consistency with
15174 select.el.
15175
6307db39
PE
151762011-05-22 Paul Eggert <eggert@cs.ucla.edu>
15177
15178 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
15179
f3d4e0a4
CY
151802011-05-22 Chong Yidong <cyd@stupidchicken.com>
15181
15182 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
15183
4d8ade89
YM
151842011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15185
15186 * dispnew.c (scrolling_window): Don't exclude the case that the
15187 last enabled row in the desired matrix touches the bottom boundary.
15188
32078c8d
GM
151892011-05-21 Glenn Morris <rgm@gnu.org>
15190
15191 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
15192 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
15193 and add some more files.
32078c8d 15194
7285dc67
EZ
151952011-05-20 Eli Zaretskii <eliz@gnu.org>
15196
15197 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
15198 report_file_error introduced by the change from 2011-05-07.
15199
89d1bd22
PE
152002011-05-20 Paul Eggert <eggert@cs.ucla.edu>
15201
15202 * systime.h (Time): Define only if emacs is defined.
15203 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
15204 where the include path doesn't have X11/X.h by default. See
15205 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
15206
cd394be1 152072011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
15208
15209 * composite.c (find_automatic_composition): Fix previous change.
15210
b9704ad9
GM
152112011-05-20 Glenn Morris <rgm@gnu.org>
15212
15213 * lisp.mk: New file, split from Makefile.in.
15214 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
15215 (shortlisp): Remove.
15216 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
15217
4a720484
GM
152182011-05-19 Glenn Morris <rgm@gnu.org>
15219
15220 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
15221 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
15222 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
15223 (lisp): Set the order to that of loadup.el.
15224 (shortlisp): Make it a copy of $lisp.
15225 (SOME_MACHINE_LISP): Remove.
15226 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
15227 Use just $shortlisp, not $SOME_MACHINE_LISP too.
15228
a28d4396
KH
152292011-05-18 Kenichi Handa <handa@m17n.org>
15230
15231 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
15232 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
15233 (find_automatic_composition): Mostly rewrite for efficiency.
15234
a2b1fa8e
JB
152352011-05-18 Juanma Barranquero <lekktu@gmail.com>
15236
15237 * makefile.w32-in: Update dependencies.
15238
8e1f5610
CS
152392011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
15240
15241 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 15242 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 15243
7025ee00 152442011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 15245
cdfa6eab
PE
15246 Fix some integer overflow issues, such as string length overflow.
15247
06d6db33
PE
15248 * insdel.c (count_size_as_multibyte): Check for string overflow.
15249
2b4560a8
PE
15250 * character.c (lisp_string_width): Check for string overflow.
15251 Use EMACS_INT, not int, for string indexes and lengths; in
15252 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
15253 the resulting string length overflows an EMACS_INT; instead,
15254 report a string overflow if no precision given. When checking for
15255 precision exhaustion, use a check that cannot possibly have
15256 integer overflow. (Bug#8675)
15257 * character.h (lisp_string_width): Adjust to new signature.
15258
cb93f9be
PE
15259 * alloc.c (string_overflow): New function.
15260 (Fmake_string): Use it. This doesn't change behavior, but saves
15261 a few bytes and will simplify future changes.
15262 * character.c (string_escape_byte8): Likewise.
15263 * lisp.h (string_overflow): New decl.
15264
1a1f3366
PE
15265 Fixups, following up to the user-interface timestamp change.
15266 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
15267 for UI timestamps, instead of unsigned long.
9fbd6841
PE
15268 * msdos.c (mouse_get_pos): Likewise.
15269 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
15270 * w32gui.h (Time): Define by including "systime.h" rather than by
15271 declaring it ourselves. (Bug#8664)
15272
d4e3e4d3
PE
15273 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
15274 * image.c (clear_image_cache): Likewise.
15275
f6a24d19
PE
15276 * term.c (term_mouse_position): Don't assume time_t wraparound.
15277
08dc5ae6
PE
15278 Be more systematic about user-interface timestamps.
15279 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
15280 and sometimes 'EMACS_UINT', to represent these timestamps.
15281 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
15282 This makes the code easier to follow, and makes it easier to catch
15283 integer overflow bugs such as Bug#8664.
15284 * frame.c (Fmouse_position, Fmouse_pixel_position):
15285 Use Time, not unsigned long, for user-interface timestamps.
15286 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
15287 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
15288 * keyboard.h (last_event_timestamp): Likewise.
15289 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
15290 * menu.h (xmenu_show): Likewise.
15291 * term.c (term_mouse_position): Likewise.
15292 * termhooks.h (struct input_event.timestamp): Likewise.
15293 (struct terminal.mouse_position_hook): Likewise.
15294 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
15295 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
15296 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
15297 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
15298 what it was before.
15299 * menu.h, termhooks.h: Include "systime.h", for Time.
15300
8e55734a
PE
15301 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
15302 Don't assume that the difference between two unsigned long values
15303 can fit into an integer. At this point, we know button_down_time
15304 <= event->timestamp, so the difference must be nonnegative, so
15305 there's no need to cast the result if double-click-time is
15306 nonnegative, as it should be; check that it's nonnegative, just in
15307 case. This bug is triggered when events are more than 2**31 ms
86db42d2 15308 apart (about 25 days). (Bug#8664)
8e55734a 15309
841f1b75 15310 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 15311 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 15312
3e26f69c
PE
15313 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
15314 that always fit in int. Use a sentinel instead of a counter, to
15315 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
15316 * frame.h (struct frame): Use int for menu_bar_items_used
15317 instead of EMACS_INT, since it always fits in int.
3e26f69c 15318
5cc152c0
PE
15319 * menu.c (grow_menu_items): Check for int overflow.
15320
d89eb65e
PE
15321 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
15322
5235bd3e
PE
15323 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
15324 Before, the code was not consistent. These values cannot exceed
15325 2**31 - 1 so there's no need to make them unsigned.
15326 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
15327 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
15328 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
15329 as modifiers.
15330 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
15331
bc827e23
PE
15332 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
15333 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
15334 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
15335 presumably because the widths might not match.
15336
78eb494e
PE
15337 * window.c (size_window): Avoid needless test at loop start.
15338
04f2d78b
CB
153392011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
15340
15341 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
15342
d2fc7e3d 153432011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
15344
15345 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
15346
d2fc7e3d 153472011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
15348
15349 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
15350 `width' to `bar_area_x' and `bar_area_width', respectively.
15351 (x_scroll_run): Take account of fringe background extension.
15352
04f2d78b
CB
15353 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
15354 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
15355 `bar_area_width', respectively.
15356 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
15357 background extension.
15358
79b70037
GM
153592011-05-10 Jim Meyering <meyering@redhat.com>
15360
15361 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
15362
2f142cc5
JB
153632011-05-10 Juanma Barranquero <lekktu@gmail.com>
15364
15365 * image.c (Finit_image_library): Return t for built-in image types,
15366 like pbm and xbm. (Bug#8640)
15367
57679c86
AS
153682011-05-09 Andreas Schwab <schwab@linux-m68k.org>
15369
15370 * w32menu.c (set_frame_menubar): Fix submenu allocation.
15371
888c9e86
EZ
153722011-05-07 Eli Zaretskii <eliz@gnu.org>
15373
b0512a1d
EZ
15374 * w32console.c (Fset_screen_color): Doc fix.
15375 (Fget_screen_color): New function.
15376 (syms_of_ntterm): Defsubr it.
15377
7285dc67
EZ
15378 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
15379 unlink the temporary file if Fcall_process didn't create it in the
15380 first place.
15381 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
15382 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
15383 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
15384 cue to call_process_cleanup not to close that handle.
15385
4d3fcc8e
BK
153862011-05-07 Ben Key <bkey76@gmail.com>
15387
15388 * makefile.w32-in: The bootstrap-temacs rule now makes use of
15389 one of two shell specific rules, either bootstrap-temacs-CMD or
15390 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
15391 to the previous implementation of the bootstrap-temacs rule.
15392 The bootstrap-temacs-CMD rule is similar to the previous
15393 implementation of the bootstrap-temacs rule except that it
15394 makes use of the ESC_CFLAGS variable instead of the CFLAGS
15395 variable.
15396
15397 These changes, along with some changes to nt/configure.bat,
15398 nt/gmake.defs, and nt/nmake.defs, are required to extend my
15399 earlier fix to add support for --cflags and --ldflags options
15400 that include quotes so that it works whether make uses cmd or
15401 sh as the shell.
15402
b4289b64
MA
154032011-05-06 Michael Albinus <michael.albinus@gmx.de>
15404
15405 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
15406 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
15407 is a constant.
15408 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
15409 a string. Handle both cases.
15410 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
15411 (Fdbus_register_method): Use Qinvalid_function.
15412
af4c0e28
JB
154132011-05-06 Juanma Barranquero <lekktu@gmail.com>
15414
15415 * makefile.w32-in: Update dependencies.
15416 (LISP_H): Add inttypes.h and stdin.h.
15417 (PROCESS_H): Add unistd.h.
15418
c51453d9
EZ
154192011-05-06 Eli Zaretskii <eliz@gnu.org>
15420
15421 * lread.c: Include limits.h (fixes the MS-Windows build broken by
15422 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
15423
8ff0ac3c 154242011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 15425
4c4b566b
PE
15426 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
15427
aab2b9b5
PE
15428 * term.c (vfatal): Remove stray call to va_end.
15429 It's not needed and the C Standard doesn't allow it here anyway.
15430
c378da0b
PE
15431 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
15432 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
15433
288b08c7
PE
15434 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
15435 bytes.
15436
e3601888
PE
15437 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
15438
db6c0e74
PE
15439 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
15440
dd5963ea
PE
15441 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
15442
88c9450f
PE
15443 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
15444
2f9442b8
PE
15445 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
15446
c032b5f8
PE
15447 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
15448 * charset.c (Fdefine_charset_internal): Don't initialize
15449 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 15450 32-bit int (Bug#8600).
a108c10b
PE
15451
15452 * lread.c (read_integer): Be more consistent with string-to-number.
15453 Use string_to_number to do the actual conversion; this avoids
15454 rounding errors and fixes some other screwups. Without this fix,
15455 for example, #x1fffffffffffffff was misread as -2305843009213693952.
15456 (digit_to_number): Move earlier, for benefit of read_integer.
15457 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 15458 not a digit in any supported base. (Bug#8602)
a108c10b 15459
ad5f9eea
PE
15460 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
15461
aec1708a
PE
15462 * dispnew.c (scrolling_window): Return 1 if we scrolled,
15463 to match comment at start of function. This also removes a
15464 GCC warning about overflow in a 32+64-bit port.
15465
47be4ab5
PE
15466 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
15467
371cac43
PE
15468 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
15469 Reported by Stefan Monnier in
15470 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
15471 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
15472 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 15473
d01a7826
PE
15474 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
15475 (EMACS_UINTPTR): Likewise, with uintptr_t.
15476
7fd47d5c
PE
15477 * lisp.h: Prefer 64-bit EMACS_INT if available.
15478 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
15479 on 32-bit hosts that have 64-bit int, so that they can access
15480 large files.
122b0c86
PE
15481 However, temporarily disable this change unless the temporary
15482 symbol WIDE_EMACS_INT is defined.
7fd47d5c 15483
8727937b
PE
15484 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
15485
8ac068ac
PE
15486 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
15487 This removes an assumption that EMACS_INT and long are the same
15488 width as pointers. The assumption is true for Emacs porting targets
15489 now, but we want to make other targets possible.
15490 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
15491 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
15492 In the rest of the code, change types of integers that hold casted
15493 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
15494 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
15495 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
15496 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
15497 No need to cast type when ORing.
15498 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
15499 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
15500 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
15501 assume EMACS_INT is the same width as char *.
15502 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
15503 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
15504 Remove no-longer-needed casts.
15505 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
15506 (xg_tool_bar_help_callback, xg_make_tool_item):
15507 Use EMACS_INTPTR to hold an integer
15508 that will be cast to void *; this can avoid a GCC warning
15509 if EMACS_INT is not the same width as void *.
15510 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
15511 * xdisp.c (display_echo_area_1, resize_mini_window_1):
15512 (current_message_1, set_message_1):
15513 Use a local to convert to proper width without a cast.
15514 * xmenu.c (dialog_selection_callback): Likewise.
15515
ede49d71
PE
15516 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
15517 Also, don't assume VALBITS / RAND_BITS is less than 5,
15518 and don't rely on undefined behavior when shifting a 1 left into
15519 the sign bit.
15520 * lisp.h (get_random): Change signature to match.
15521
2f30ecd0
PE
15522 * lread.c (hash_string): Use size_t, not int, for hash computation.
15523 Normally we prefer signed values; but hashing is special, because
15524 it's better to use unsigned division on hash table sizes so that
15525 the remainder is nonnegative. Also, size_t is the natural width
15526 for hashing into memory. The previous code used 'int', which doesn't
15527 retain enough info to hash well into very large tables.
15528 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
15529
2a866e7b
PE
15530 * dbusbind.c: Don't possibly lose pointer info when converting.
15531 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
15532 Use XPNTR rather than XHASH, so that the high-order bits of
15533 the pointer aren't lost when converting through void *.
15534
51639eac
PE
15535 * eval.c (Fautoload): Don't double-shift a pointer.
15536
92394119
PE
15537 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
15538
dbdb9a7c
JB
155392011-05-06 Juanma Barranquero <lekktu@gmail.com>
15540
15541 * gnutls.c (DEF_GNUTLS_FN):
15542 * image.c (DEF_IMGLIB_FN): Make function pointers static.
15543
db7a0b4f
AS
155442011-05-05 Andreas Schwab <schwab@linux-m68k.org>
15545
15546 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
15547 marker. (Bug#8610)
15548
cd394be1 155492011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
15550
15551 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
15552 New version that can reserve upto 2GB of heap space.
15553
f7ff1b0f 155542011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
15555
15556 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
15557
639c109b
TZ
155582011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
15559
15560 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
15561 `gnutls_certificate_set_x509_key_file'.
15562
d2127135
JB
155632011-05-05 Juanma Barranquero <lekktu@gmail.com>
15564
15565 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
15566 Update dependencies.
15567
e968f4f3
JB
155682011-05-04 Juanma Barranquero <lekktu@gmail.com>
15569
15570 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
15571 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
15572 Remove unused parameter `fildes'.
15573 * process.c (read_process_output, send_process): Don't pass it.
15574
84d358f0
JB
155752011-05-04 Juanma Barranquero <lekktu@gmail.com>
15576
15577 Fix previous change: the library cache is defined in w32.c.
15578 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
15579 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
15580
0898ca10
JB
155812011-05-04 Juanma Barranquero <lekktu@gmail.com>
15582
15583 Implement dynamic loading of GnuTLS on Windows.
15584
15585 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
15586 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
15587 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
15588 Declare.
15589
15590 * gnutls.c (Qgnutls_dll): Define.
15591 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
15592 (gnutls_*): Declare function pointers.
15593 (init_gnutls_functions): New function to initialize function pointers.
15594 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
15595 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
15596 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
15597 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
15598 (emacs_gnutls_write, emacs_gnutls_read)
15599 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
15600 (Fgnutls_available_p): New function.
15601 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
15602 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
15603 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
15604
15605 * image.c: Include w32.h.
15606 (Vimage_type_cache): Delete.
15607 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
15608 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
15609 (w32_delayed_load): Move to w32.c.
15610
15611 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
15612
15613 * w32.c (QCloaded_from, Vlibrary_cache): Define.
15614 (w32_delayed_load): Move from image.c. When loading a library, record
15615 its filename in the :loaded-from property of the library id.
15616 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
15617 Initialize and staticpro them.
15618 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
15619
15620 * process.c: Include lisp.h before w32.h, not after.
15621 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
15622 instead of gnutls_record_check_pending.
15623
15624 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
15625
ff4de4aa
TZ
156262011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
15627
15628 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
15629 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
15630 as passed in.
15631
abe95abb
JD
156322011-05-03 Jan Djärv <jan.h.d@swipnet.se>
15633
15634 * xterm.c (x_set_frame_alpha): Do not set property on anything
15635 else than FRAME_X_OUTER_WINDOW (Bug#8608).
15636
e16e55d4
JB
156372011-05-02 Juanma Barranquero <lekktu@gmail.com>
15638
15639 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
15640
bafcf6a5
JB
156412011-05-02 Juanma Barranquero <lekktu@gmail.com>
15642
15643 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
15644 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
15645 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
15646 (gnutls_global_initialized, Qgnutls_bootprop_priority)
15647 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
15648 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
15649 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
15650 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
15651 (Qgnutls_bootprop_callbacks_verify): Make static.
15652
e7a6747f
AS
156532011-05-01 Andreas Schwab <schwab@linux-m68k.org>
15654
19ed11ba
AS
15655 * callproc.c: Indentation fixup.
15656
e7a6747f 15657 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
15658 (wait_for_termination, interruptible_wait_for_termination):
15659 Move after wait_for_termination_1.
e7a6747f 15660
1ef14cb4
LMI
156612011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
15662
15663 * sysdep.c (interruptible_wait_for_termination): New function
15664 which is like wait_for_termination, but allows keyboard
15665 interruptions.
15666
15667 * callproc.c (Fcall_process): Add (:file "file") as an option for
15668 the STDOUT buffer.
15669 (Fcall_process_region): Ditto.
15670
330d880c
EZ
156712011-04-30 Eli Zaretskii <eliz@gnu.org>
15672
8db90b73
EZ
15673 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
15674 rather than `XVECTOR (FOO)->size'.
15675
330d880c
EZ
15676 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
15677 inttypes.h, as a gnulib replacement is used if it not available in
15678 system headers.
15679
15cbd324
EZ
156802011-04-21 Eli Zaretskii <eliz@gnu.org>
15681
15682 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
15683 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
15684 of MOST_POSITIVE_FIXNUM. (Bug#8528)
15685
15686 * coding.c (coding_alloc_by_realloc): Error out if destination
15687 will grow beyond MOST_POSITIVE_FIXNUM.
15688 (decode_coding_emacs_mule): Abort if there isn't enough place in
15689 charbuf for the composition carryover bytes. Reserve an extra
15690 space for up to 2 characters produced in a loop.
15691 (decode_coding_iso_2022): Abort if there isn't enough place in
15692 charbuf for the composition carryover bytes.
15693
156942011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 15695
ae940cca
EZ
15696 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
15697 aborting when %lld or %lll format is passed.
15698 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
15699 %llo or %llx format is passed. (Bug#8545)
15700
03ab8921
EZ
15701 * window.c (window_scroll_line_based): Use a marker instead of
15702 simple variables to record original value of point. (Bug#7952)
15703
afda1437
EZ
15704 * doprnt.c (doprnt): Fix the case where a multibyte sequence
15705 produced by %s or %c overflows available buffer space. (Bug#8545)
15706
f76dee0c
PE
157072011-04-28 Paul Eggert <eggert@cs.ucla.edu>
15708
15709 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 15710 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 15711
fdc5744d
JB
157122011-04-28 Juanma Barranquero <lekktu@gmail.com>
15713
15714 * w32.c (init_environment): Warn about defaulting HOME to C:\.
15715
638f053a
JB
157162011-04-28 Juanma Barranquero <lekktu@gmail.com>
15717
15718 * keyboard.c (Qdelayed_warnings_hook): Define.
15719 (command_loop_1): Run `delayed-warnings-hook'
15720 if Vdelayed_warnings_list is non-nil.
15721 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
15722 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
15723
d178f871
EZ
157242011-04-28 Eli Zaretskii <eliz@gnu.org>
15725
15726 * doprnt.c (doprnt): Don't return value smaller than the buffer
15727 size if the message was truncated. (Bug#8545).
15728
b124fd93
JB
157292011-04-28 Juanma Barranquero <lekktu@gmail.com>
15730
15731 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
15732 (Fx_window_property): #if-0 the whole functions, not just the bodies.
15733
e810457d
PE
157342011-04-27 Paul Eggert <eggert@cs.ucla.edu>
15735
15736 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
15737
ea51cceb
JB
157382011-04-27 Juanma Barranquero <lekktu@gmail.com>
15739
15740 * makefile.w32-in: Update dependencies.
15741
94dcfacf
EZ
157422011-04-27 Eli Zaretskii <eliz@gnu.org>
15743
15744 Improve `doprnt' and its usage. (Bug#8545)
15745 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
15746 `format_end'. Remove support for %l as a conversion specifier.
15747 Don't use xrealloc. Improve diagnostics when the %l size modifier
15748 is used. Update the commentary.
15749
15750 * eval.c (verror): Simplify calculation of size_t.
15751
15752 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
15753 messages.
15754
f61f41d7
PE
157552011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
15756
15757 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
15758 change.
15759
96fb4434
PE
157602011-04-27 Paul Eggert <eggert@cs.ucla.edu>
15761
15762 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
15763 This makes this file independent of the recent pseudovector change.
15764
671875da 157652011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 15766
69e9b5a3
PE
15767 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
15768
b5f869a7 15769 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 15770 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 15771 Remove unused local.
c8926152 15772 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 15773
841a1577 15774 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
15775 GCC 4.6.0 optimizes based on type-based alias analysis.
15776 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
15777 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
15778 != &v->size, and therefore "v->size = 1; b->size = 2; return
15779 v->size;" must therefore return 1. This assumption is incorrect
15780 for Emacs, since it type-puns struct Lisp_Vector * with many other
15781 types. To fix this problem, this patch adds a new type struct
f904488f 15782 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
15783 and pseudovectors, and helps optimizing compilers not get fooled
15784 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
15785 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
15786 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
15787 the size member.
eab3844f
PE
15788 (XSETPVECTYPE): Rewrite in terms of new macro.
15789 (XSETPVECTYPESIZE): New macro, specifying both type and size.
15790 This is a bit clearer, and further avoids the possibility of
15791 undesirable aliasing.
15792 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 15793 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
15794 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
15795 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
15796 (ASIZE): Now uses header.size rather than size.
15797 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
15798 to avoid the hassle of writing XVECTOR (foo)->header.size.
15799 (struct vectorlike_header): New type.
eab3844f
PE
15800 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
15801 object, to help avoid aliasing.
15802 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
15803 (SUBRP): Likewise, since Lisp_Subr is a special case.
15804 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
15805 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
15806 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 15807 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
15808 changed to be "header.size" and "header.next".
15809 * buffer.h (struct buffer): Likewise.
15810 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
15811 * frame.h (struct frame): Likewise.
15812 * process.h (struct Lisp_Process): Likewise.
15813 * termhooks.h (struct terminal): Likewise.
15814 * window.c (struct save_window_data, struct saved_window): Likewise.
15815 * window.h (struct window): Likewise.
15816 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
15817 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
15818 * buffer.c (init_buffer_once): Likewise.
15819 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
15820 special case.
15821 * process.c (Fformat_network_address): Use local var for size,
15822 for brevity.
15823
0df1eac5
PE
15824 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
15825
847ab9d1 15826 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
15827 * data.c (atof): Remove decl; no longer used or needed.
15828 (digit_to_number): Move to lread.c.
15829 (Fstring_to_number): Use new string_to_number function, to be
15830 consistent with how the Lisp reader treats infinities and NaNs.
15831 Do not assume that floating-point numbers represent EMACS_INT
15832 without losing information; this is not true on most 64-bit hosts.
15833 Avoid double-rounding errors, by insisting on integers when
15834 parsing non-base-10 numbers, as the documentation specifies.
15835 * lisp.h (string_to_number): New decl, replacing ...
15836 (isfloat_string): Remove.
bc0a5c13 15837 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 15838 (read1): Do not accept +. and -. as integers; this
452f4150
PE
15839 appears to have been a coding error. Similarly, do not accept
15840 strings like +-1e0 as floating point numbers. Do not report
15841 overflow for integer overflows unless the base is not 10 which
15842 means we have no simple and reliable way to continue.
15843 Break out the floating-point parsing into a new
15844 function string_to_number, so that Fstring_to_number parses
15845 floating point numbers consistently with the Lisp reader.
04f2d78b 15846 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
15847 (E_CHAR, EXP_INT): Remove, replacing with ...
15848 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
15849 (string_to_number): New function, replacing isfloat_string.
15850 This function checks for valid syntax and produces the resulting
15851 Lisp float number too. Rework it so that string-to-number
bc0a5c13 15852 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
15853 so that overflow for non-base-10 numbers is reported only when
15854 there's no portable and simple way to convert to floating point.
452f4150 15855
67769ffc
PE
15856 * textprop.c (set_text_properties_1): Rewrite for clarity,
15857 and to avoid GCC warning about integer overflow.
15858
c20db43f
PE
15859 * intervals.h (struct interval): Use EMACS_INT for members
15860 where EMACS_UINT might cause problems. See
15861 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
15862 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
15863 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
15864 All uses changed.
37aa2f85
PE
15865 (offset_intervals): Tell GCC not to worry about length overflow
15866 when negating a negative length.
c20db43f 15867
2538aa2f
PE
15868 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
15869 (overrun_check_free): Likewise.
15870
f2d3008d
PE
15871 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
15872 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
15873 word size.
15874
ec8df744
PE
15875 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
15876 (gnutls_make_error): Rename local to avoid shadowing.
15877 (gnutls_emacs_global_deinit): ifdef out; not used.
15878 (Fgnutls_boot): Use const for pointer to readonly storage.
15879 Comment out unused local. Fix pointer signedness problems.
15880
640ee02d
PE
15881 * lread.c (openp): Don't stuff size_t into an 'int'.
15882 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
15883 about possible signed overflow.
15884
6048fb2a
PE
15885 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
15886 (GDK_KEY_g): Don't define if already defined.
15887 (xg_prepare_tooltip): Avoid pointer signedness problem.
15888 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
15889
fa3c87e1
PE
15890 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
15891 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
15892
2172544b
PE
15893 * xfns.c (Fx_window_property): Simplify a bit,
15894 to make a bit faster and to avoid GCC 4.6.0 warning.
15895 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
15896
9b821a21
PE
15897 * fns.c (internal_equal): Don't assume size_t fits in int.
15898
3c616cfa
PE
15899 * alloc.c (compact_small_strings): Tighten assertion a little.
15900
c2982e87
PE
15901 Replace pEd with more-general pI, and fix some printf arg casts.
15902 * lisp.h (pI): New macro, generalizing old pEd macro to other
15903 conversion specifiers. For example, use "...%"pI"d..." rather
15904 than "...%"pEd"...".
15905 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 15906 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
15907 * alloc.c (check_pure_size): Don't overflow by converting size to int.
15908 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
15909 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
15910 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
15911 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
15912 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
15913 64-bit hosts.
15914 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
15915 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
15916 * print.c (safe_debug_print, print_object): Likewise.
15917 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
15918 to int.
6f04d126
PE
15919 Use pI instead of if-then-else-abort. Use %p to avoid casts,
15920 avoiding the 0 flag, which is not portable.
c2982e87
PE
15921 * process.c (Fmake_network_process): Use pI to avoid cast.
15922 * region-cache.c (pp_cache): Likewise.
15923 * xdisp.c (decode_mode_spec): Likewise.
15924 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
15925 behavior on 64-bit hosts with printf arg.
6f04d126 15926 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
15927 (x_stop_queuing_selection_requests): Likewise.
15928 (x_get_window_property): Don't truncate byte count to an 'int'
15929 when tracing.
0b432f21 15930
5e073ec7
PE
15931 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
15932 here, since it parses constructs like leading '-' and spaces,
15933 which are not wanted; and it overflows with large numbers.
15934 Instead, simply match F[0-9]+, which is what is wanted anyway.
15935
36372bf9
PE
15936 * alloc.c: Remove unportable assumptions about struct layout.
15937 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
15938 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
15939 (allocate_vectorlike, make_pure_vector): Use the new macros,
15940 plus offsetof, to remove unportable assumptions about struct layout.
15941 These assumptions hold on all porting targets that I know of, but
15942 they are not guaranteed, they're easy to remove, and removing them
15943 makes further changes easier.
15944
0b432f21
PE
15945 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
15946 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
15947 (string_overrun_cookie): Now const. Use initializers that
15948 don't formally overflow signed char, to avoid warnings.
000098c1
PE
15949 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
15950 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
15951 (allocate_buffer): Don't assume sizeof (struct buffer) is a
15952 multiple of sizeof (EMACS_INT); it need not be, if
15953 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 15954 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 15955
895009e1
JB
159562011-04-26 Juanma Barranquero <lekktu@gmail.com>
15957
15958 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
15959
6a7a1b0b
TZ
159602011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
15961
15962 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 15963 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
15964 Reported by Paul Eggert <eggert@cs.ucla.edu>.
15965
841a1577 159662011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
15967
15968 * lisp.h (Qdebug): List symbol.
895009e1 15969 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
15970 * keyboard.c (debug-on-event): New variable.
15971 (handle_user_signal): Break into debugger when debug-on-event
15972 matches the current signal symbol.
15973
f2d3ba6f
DN
159742011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
15975
15976 * alloc.c (check_sblock, check_string_bytes)
15977 (check_string_free_list): Convert to standard C.
15978
42ce4c63
TZ
159792011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
15980
15981 * w32.c (emacs_gnutls_push): Fix typo.
15982
825cd63c
EZ
159832011-04-25 Eli Zaretskii <eliz@gnu.org>
15984
fb11d64d
EZ
15985 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
15986 "cast to pointer from integer of different size".
15987
825cd63c
EZ
15988 Improve doprnt and its use in verror. (Bug#8545)
15989 * doprnt.c (doprnt): Document the set of format control sequences
15990 supported by the function. Use SAFE_ALLOCA instead of always
15991 using `alloca'.
15992
15993 * eval.c (verror): Don't limit the buffer size at size_max-1, that
15994 is one byte too soon. Don't use xrealloc; instead xfree and
15995 xmalloc anew.
15996
e061a11b
TZ
159972011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
15998
15999 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
16000 callbacks stage.
16001
16002 * gnutls.c: Renamed global_initialized to
16003 gnutls_global_initialized. Added internals for the
16004 :verify-hostname-error, :verify-error, and :verify-flags
16005 parameters of `gnutls-boot' and documented those parameters in the
16006 docstring. Start callback support.
9173deec
JB
16007 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
16008 unless a fatal error occurred. Call gnutls_alert_send_appropriate
16009 on error. Return error code.
e061a11b
TZ
16010 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
16011 (emacs_gnutls_read): Likewise.
16012 (Fgnutls_boot): Return handshake error code.
16013 (emacs_gnutls_handle_error): New function.
16014 (wsaerror_to_errno): Likewise.
16015
16016 * w32.h (emacs_gnutls_pull): Add prototype.
16017 (emacs_gnutls_push): Likewise.
16018
16019 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
16020 (emacs_gnutls_push): Likewise.
16021
160222011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
16023
16024 * process.c (wait_reading_process_output): Check if GnuTLS
16025 buffered some data internally if no FDs are set for TLS
16026 connections.
16027
16028 * makefile.w32-in (OBJ2): Add gnutls.$(O).
16029 (LIBS): Link to USER_LIBS.
16030 ($(BLD)/gnutls.$(0)): New target.
16031
fa6996bc
EZ
160322011-04-24 Eli Zaretskii <eliz@gnu.org>
16033
eb35682e
EZ
16034 * xdisp.c (handle_single_display_spec): Rename the
16035 display_replaced_before_p argument into display_replaced_p, to
16036 make it consistent with the commentary. Fix typos in the
16037 commentary.
16038
e2ad650c
EZ
16039 * textprop.c (syms_of_textprop): Remove dead code.
16040 (copy_text_properties): Delete obsolete commentary about an
16041 interface that was deleted long ago. Fix typos in the description
16042 of arguments.
16043
1b2de274
EZ
16044 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
16045 to changes in oldXMenu/XMenu.h from 2011-04-16.
16046 <menu_help_message, prev_menu_help_message>: Constify.
16047 (IT_menu_make_room): menu->help_text is now `const char **';
16048 adjust.
16049
16050 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
16051 to changes in oldXMenu/XMenu.h from 2011-04-16.
16052 (struct XMenu): Declare `help_text' `const char **'.
16053
16054 * xfaces.c <Qunspecified>: Make extern again.
16055
16056 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 16057 required by POSIX.
1b2de274 16058
762b15be
EZ
16059 * doc.c (get_doc_string): Improve the format passed to `error'.
16060
16061 * doprnt.c (doprnt): Improve commentary.
16062
16063 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
16064
16065 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
16066 them with etags.
16067
f1052e5d
EZ
16068 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
16069 changes in globals.h immediately force recompilation.
762b15be
EZ
16070 (TAGS): Depend on $(CURDIR)/m/intel386.h and
16071 $(CURDIR)/s/ms-w32.h.
16072 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 16073
fa6996bc
EZ
16074 * character.c (Fchar_direction): Function deleted.
16075 (syms_of_character): Don't defsubr it.
16076 <char-direction-table>: Deleted.
16077
e6c3da20
EZ
160782011-04-23 Eli Zaretskii <eliz@gnu.org>
16079
16080 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
16081 * doprnt.c: Include limits.h.
16082 (SIZE_MAX): New macro.
04f2d78b
CB
16083 (doprnt): Return a size_t value. 2nd arg is now size_t.
16084 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
16085 Improve overflow protection. Support `l' modifier for integer
16086 conversions. Support %l conversion. Don't assume an EMACS_INT
16087 argument for integer conversions and for %c.
16088
16089 * lisp.h (doprnt): Restore prototype.
16090
16091 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
16092 $(SRC)/character.h.
16093
16094 * Makefile.in (base_obj): Add back doprnt.o.
16095
16096 * deps.mk (doprnt.o): Add back prerequisites.
16097 (callint.o): Depend on character.h.
16098
16099 * eval.c (internal_lisp_condition_case): Include the handler
16100 representation in the error message.
16101 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
16102 when breaking from the loop.
16103
16104 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
16105
16106 * callint.c (Fcall_interactively): When displaying error message
16107 about invalid control letter, pass the character's codepoint, not
16108 a pointer to its multibyte form. Improve display of the character
16109 in octal and display also its hex code.
16110
16111 * character.c (char_string): Use %x to display the (unsigned)
16112 codepoint of an invalid character, to avoid displaying a bogus
16113 negative value.
16114
16115 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
16116 `error', not SYMBOL_NAME itself.
16117
16118 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
16119 character arguments to `error'.
16120
16121 * charset.c (check_iso_charset_parameter): Fix incorrect argument
16122 to `error' in error message about FINAL_CHAR argument. Make sure
16123 FINAL_CHAR is a character, and use %c when it is passed as
16124 argument to `error'.
16125
4ffd0d6b 161262011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
16127
16128 * s/ms-w32.h (localtime): Redirect to sys_localtime.
16129
16130 * w32.c: Include <time.h>.
16131 (sys_localtime): New function.
16132
4ffd0d6b 161332011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
16134
16135 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
16136
4ffd0d6b 16137 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 16138
4ffd0d6b 161392011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 16140
4ffd0d6b
GM
16141 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
16142 zombies (Bug#8467).
aac0c6e3 16143
04c56954
EZ
161442011-04-19 Eli Zaretskii <eliz@gnu.org>
16145
16146 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
16147 gl_state.e_property when gl_state.object is Qt.
16148
16149 * insdel.c (make_gap_larger): Remove limitation of buffer size
16150 to <= INT_MAX.
16151
16a43933
CY
161522011-04-18 Chong Yidong <cyd@stupidchicken.com>
16153
16154 * xdisp.c (lookup_glyphless_char_display)
16155 (produce_glyphless_glyph): Handle cons cell entry in
16156 glyphless-char-display.
16157 (Vglyphless_char_display): Document it.
16158
16159 * term.c (produce_glyphless_glyph): Handle cons cell entry in
16160 glyphless-char-display.
16161
4581706e
CY
161622011-04-17 Chong Yidong <cyd@stupidchicken.com>
16163
16164 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
16165
16166 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
16167
16168 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
16169 definition for no-X builds.
16170
4887c6e2 161712011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 16172
fd35b6f9
PE
16173 Static checks with GCC 4.6.0 and non-default toolkits.
16174
5c1ccb01
PE
16175 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
16176
006c5daa
PE
16177 * process.c (keyboard_bit_set): Define only if SIGIO.
16178 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
16179 (send_process): Repair possible setjmp clobbering.
16180
efc736d3
PE
16181 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
16182
4e2fe2e6
PE
16183 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
16184
f97334a2
PE
16185 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
16186
4e75f29d
PE
16187 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
16188 Define only if needed.
16189
90efadd1
PE
16190 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
16191 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 16192 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 16193
3c647824
PE
16194 * dispextern.h (struct redisplay_interface): Rename param
16195 to avoid shadowing.
e264f262 16196 * termhooks.h (struct terminal): Likewise.
761383f4 16197 * xterm.c (xembed_send_message): Likewise.
3c647824 16198
b58c5c4a
PE
16199 * insdel.c (make_gap_smaller): Define only if
16200 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
16201
cad59032
PE
16202 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
16203 it.
16204
c339dc2e
PE
16205 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
16206 so that we aren't warned about unused symbols.
16207
91a3e27b
PE
16208 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
16209
399c71d3 16210 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 16211
8ffc96f5
PE
16212 * xfns.c (x_real_positions): Mark locals as initialized.
16213
eef9bc79
PE
16214 * xmenu.c (xmenu_show): Don't use uninitialized vars.
16215
098db9dd
PE
16216 * xterm.c: Fix problems found by static analysis with other toolkits.
16217 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
16218 (x_dispatch_event): Declare static if USE_GTK, and
16219 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 16220 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 16221 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
16222 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
16223 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 16224
eb18f6cc
PE
16225 * xmenu.c (menu_help_callback): Pointer type fixes.
16226 Use const pointers when pointing at readonly data. Avoid pointer
16227 signedness clashes.
16228 (FALSE): Remove unused macro.
16229 (update_frame_menubar): Remove unused decl.
16230
1fe72bf8
PE
16231 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
16232
60d9e1db
PE
16233 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
16234 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
16235 (single_menu_item): Rename local to avoid shadowing.
16236
39261c26
PE
16237 * keyboard.c (make_lispy_event): Remove unused local var.
16238
018c5e19
PE
16239 * frame.c, frame.h (x_get_resource_string): Bring this back, but
16240 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
16241
63d2b86e
PE
16242 * bitmaps: Change bitmaps from unsigned char back to the X11
16243 compatible char. Avoid the old compiler warnings about
16244 out-of-range initializers by using, for example, '\xab' rather
16245 than 0xab.
16246
aefd87e1
PE
16247 * xgselect.c (xgselect_initialize): Check vs interface
16248 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
16249
bf501fb9
PE
16250 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
16251
e9829fdf
PE
16252 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
16253 to read-only memory.
16254
1086c095
PE
16255 * fns.c (vector): Remove; this old hack is no longer needed.
16256
2baccd04 16257 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 16258 Remove unused var.
dde42981 16259 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 16260
72391843 16261 * xrdb.c (x_load_resources): Omit unused local.
3565b346 16262
436c16df 16263 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 16264 (x_window): Rename locals to avoid shadowing.
dc5ddd85 16265 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 16266
92bb796d 16267 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 16268 (x_term_init): Remove local to avoid shadowing.
92bb796d 16269
764430a3 16270 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
16271
16272 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
16273 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
16274
d1dfb56c
EZ
162752011-04-16 Eli Zaretskii <eliz@gnu.org>
16276
c4354cb4
EZ
16277 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
16278
d1dfb56c
EZ
16279 Fix regex.c, syntax.c and friends for buffers > 2GB.
16280 * syntax.h (struct gl_state_s): Declare character position members
16281 EMACS_INT.
16282
16283 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
16284
04f2d78b
CB
16285 * textprop.c (verify_interval_modification, interval_of):
16286 Declare arguments EMACS_INT.
d1dfb56c
EZ
16287
16288 * intervals.c (adjust_intervals_for_insertion): Declare arguments
16289 EMACS_INT.
16290
16291 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
16292
16293 * indent.c (Fvertical_motion): Local variable it_start is now
16294 EMACS_INT.
16295
16296 * regex.c (re_match, re_match_2, re_match_2_internal)
16297 (bcmp_translate, regcomp, regexec, print_double_string)
16298 (group_in_compile_stack, re_search, re_search_2, regex_compile)
16299 (re_compile_pattern, re_exec): Declare arguments and local
16300 variables `size_t' and `ssize_t' and return values `regoff_t', as
16301 appropriate.
16302 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
16303 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
16304 <compile_stack_type>: `size' and `avail' are now `size_t'.
16305
16306 * regex.h <regoff_t>: Use ssize_t, not int.
16307 (re_search, re_search_2, re_match, re_match_2): Arguments that
16308 specify buffer/string position and length are now ssize_t and
16309 size_t. Return type is regoff_t.
16310
613052cd
BK
163112011-04-16 Ben Key <bkey76@gmail.com>
16312
16313 * nsfont.m: Fixed bugs in ns_get_family and
16314 ns_descriptor_to_entity that were caused by using free to
16315 deallocate memory blocks that were allocated by xmalloc (via
16316 xstrdup). This caused Emacs to crash when compiled with
16317 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
16318 --enable-checking=xmallocoverrun). xfree is now used to
16319 deallocate these memory blocks.
16320
4170f62f 163212011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 16322
71b41406
PE
16323 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
16324
9587a89d
PE
16325 emacs_write: Accept and return EMACS_INT for sizes.
16326 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
16327 et seq.
16328 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
16329 Accept and return EMACS_INT.
16330 (emacs_gnutls_write): Return the number of bytes written on
16331 partial writes.
16332 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
16333 (emacs_read, emacs_write): Remove check for negative size, as the
16334 Emacs source code has been audited now.
9587a89d
PE
16335 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
16336 (emacs_read, emacs_write): Use it.
273a5f82
PE
16337 * process.c (send_process): Adjust to the new signatures of
16338 emacs_write and emacs_gnutls_write. Do not attempt to store
16339 a byte offset into an 'int'; it might overflow.
9587a89d 16340 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 16341
3e047f51
PE
16342 * sound.c: Don't assume sizes fit in 'int'.
16343 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 16344 Return EMACS_INT, not int.
3e047f51 16345 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
16346 Accept EMACS_INT, not int.
16347 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
16348 record read return values.
16349
cc39a9db
BK
163502011-04-15 Ben Key <bkey76@gmail.com>
16351
c9d0ec6d
JB
16352 * keyboard.c (Qundefined): Don't declare static since it is used
16353 in nsfns.m.
16354 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
16355 static since they are used in nsfont.m.
cc39a9db 16356
6c60eb9f
SM
163572011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
16358
16359 * process.c (Qprocessp): Don't declare static.
16360 * lisp.h (Qprocessp): Declare again.
16361
7990b61a
JB
163622011-04-15 Juanma Barranquero <lekktu@gmail.com>
16363
16364 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
16365
5d4cb038
PE
163662011-04-14 Paul Eggert <eggert@cs.ucla.edu>
16367
8bd7b830 16368 Improve C-level modularity by making more things 'static'.
cd64ea1d 16369
e3b27b31
PE
16370 Don't publish debugger-only interfaces to other modules.
16371 * lisp.h (safe_debug_print, debug_output_compilation_hack):
16372 (verify_bytepos, count_markers): Move decls to the only modules
16373 that need them.
16374 * region-cache.h (pp_cache): Likewise.
16375 * window.h (check_all_windows): Likewise.
16376 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
16377
5d4cb038
PE
16378 * sysdep.c (croak): Now static, if
16379 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
16380 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
16381
16382 * alloc.c (refill_memory_reserve): Now static if
16383 !defined REL_ALLOC || defined SYSTEM_MALLOC.
16384 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 16385
e87b6180
PE
16386 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
16387 Define only if USE_LUCID.
16388
ac64929e
PE
16389 * xrdb.c (x_customization_string, x_rm_string): Now static.
16390
6f37259d
PE
16391 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
16392 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
16393
1683e3ab
PE
16394 * xdisp.c (draw_row_with_mouse_face): Now static.
16395 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
16396
de9c2632
PE
16397 * window.h (check_all_windows): Mark externally visible.
16398
2b96acb7
PE
16399 * window.c (window_deletion_count): Now static.
16400
16401 * undo.c: Make symbols static if they're not exported.
16402 (last_undo_buffer, last_boundary_position, pending_boundary):
16403 Now static.
16404
50436f33
PE
16405 * textprop.c (interval_insert_behind_hooks): Now static.
16406 (interval_insert_in_front_hooks): Likewise.
16407
64520e5c
PE
16408 * term.c: Make symbols static if they're not exported.
16409 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
16410 (max_frame_lines, tty_set_terminal_modes):
16411 (tty_reset_terminal_modes, tty_turn_off_highlight):
16412 (get_tty_terminal): Now static.
16413 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
16414 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 16415 HAVE_WINDOW_SYSTEM.
64520e5c
PE
16416 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
16417 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
16418
1fa53021
PE
16419 * sysdep.c: Make symbols static if they're not exported.
16420 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
16421 Now static.
16422 (sigprocmask_set, full_mask): Remove; unused.
16423 (wait_debugging): Mark as visible.
16424 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
16425 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
16426
d4b43b22
PE
16427 * syntax.c (syntax_temp): Define only if !__GNUC__.
16428
b7c513d0
PE
16429 * sound.c (current_sound_device, current_sound): Now static.
16430
989b29ad
PE
16431 * search.c (searchbufs, searchbuf_head): Now static.
16432
13a55a78
PE
16433 * scroll.c (scroll_cost): Remove; unused.
16434 * dispextern.h (scroll_cost): Remove decl.
16435
de68a1fc
PE
16436 * region-cache.h (pp_cache): Mark as externally visible.
16437
40ccffa6
PE
16438 * process.c: Make symbols static if they're not exported.
16439 (process_tick, update_tick, create_process, chan_process):
16440 (Vprocess_alist, proc_buffered_char, datagram_access):
16441 (fd_callback_data, send_process_frame, process_sent_to): Now static.
16442 (deactivate_process): Mark defn as static, as well as decl.
16443 * lisp.h (create_process): Remove decl.
16444 * process.h (chan_process, Vprocess_alist): Remove decls.
16445
ad64fc97
PE
16446 * print.c: Make symbols static if they're not exported.
16447 (print_depth, new_backquote_output, being_printed, print_buffer):
16448 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
16449 (print_interval, print_number_index, initial_stderr_stream):
16450 Now static.
16451 * lisp.h (Fprinc): Remove decl.
16452 (debug_output_compilation_hack): Mark as externally visible.
16453
adddb265
PE
16454 * sysdep.c (croak): Move decl from here to syssignal.h.
16455 * syssignal.h (croak): Put it here, so the API can be checked when
16456 'croak' is called from dissociate_if_controlling_tty.
16457
1717ede2
PE
16458 * minibuf.c: Make symbols static if they're not exported.
16459 (minibuf_save_list, choose_minibuf_frame): Now static.
16460 * lisp.h (choose_minibuf_frame): Remove decl.
16461
fa5fb2bc
PE
16462 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
16463
1e3890d1
PE
16464 * lread.c: Make symbols static if they're not exported.
16465 (read_objects, initial_obarray, oblookup_last_bucket_number):
16466 Now static.
16467 (make_symbol): Remove; unused.
16468 * lisp.h (initial_obarray, make_symbol): Remove decls.
16469
8a1414fa
PE
16470 * keyboard.c: Make symbols static if they're not exported.
16471 (single_kboard, recent_keys_index, total_keys, recent_keys):
16472 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
16473 (this_single_command_key_start, echoing, last_auto_save):
16474 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
16475 (command_loop, echo_now, keyboard_init_hook, help_char_p):
16476 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
16477 (Vlispy_mouse_stem, double_click_count):
16478 Now static.
16479 (force_auto_save_soon): Define only if SIGDANGER.
16480 (ignore_mouse_drag_p): Now static if
16481 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
16482 (print_help): Remove; unused.
16483 (stop_character, last_timer_event): Mark as externally visible.
16484 * keyboard.h (ignore_mouse_drag_p): Declare only if
16485 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
16486 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
16487 * lisp.h (echoing): Remove decl.
16488 (force_auto_save_soon): Declare only if SIGDANGER.
16489 * xdisp.c (redisplay_window): Simplify code, to make it more
16490 obvious that ignore_mouse_drag_p is not accessed if !defined
16491 USE_GTK && !defined HAVE_NS.
16492
93ea6e8f
PE
16493 * intervals.c: Make symbols static if they're not exported.
16494 (merge_properties_sticky, merge_interval_right, delete_interval):
16495 Now static.
16496 * intervals.h (merge_interval_right, delete_interval): Remove decls.
16497
77382fcc
PE
16498 * insdel.c: Make symbols static if they're not exported.
16499 However, leave prepare_to_modify_buffer alone. It's never
16500 called from outside this function, but that appears to be a bug.
16501 (combine_after_change_list, combine_after_change_buffer):
4889fc82 16502 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
16503 (adjust_after_replace_noundo): Remove; unused.
16504 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 16505 (signal_before_change): Remove decls.
77382fcc 16506
9306c32e
PE
16507 * indent.c (val_compute_motion, val_vmotion): Now static.
16508
cd44d2eb
PE
16509 * image.c: Make symbols static if they're not exported.
16510 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
16511 if USE_GTK.
16512 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
16513 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
16514
ad9a7a06
PE
16515 * fringe.c (standard_bitmaps): Now static.
16516 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
16517
81626931
PE
16518 * frame.c: Make symbols static if they're not exported.
16519 (x_report_frame_params, make_terminal_frame): Now static.
16520 (get_frame_param): Now static, unless HAVE_NS.
16521 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
16522 (x_get_resource_string): Remove; not used.
16523 * frame.h (make_terminal_frame, x_report_frame_params):
16524 (x_get_resource_string); Remove decls.
16525 (x_fullscreen_adjust): Declare only if WINDOWSNT.
16526 * lisp.h (get_frame_param): Declare only if HAVE_NS.
16527
239f9db9
PE
16528 * font.c, fontset.c: Make symbols static if they're not exported.
16529 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
16530 (FACE_SUITABLE_FOR_CHAR_P): Use it.
16531 * font.c (font_close_object): Now static.
16532 * font.h (font_close_object): Remove.
16533 * fontset.c (FONTSET_OBJLIST): Remove.
16534 (free_realized_fontset) #if-0 the body, which does nothing.
16535 (face_suitable_for_char_p): #if-0, as it's never called.
16536 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
16537 * xfaces.c (face_at_string_position):
16538 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
16539 since 0 is always ASCII.
16540
dfcf3579
PE
16541 * fns.c (weak_hash_tables): Now static.
16542
5045092b
PE
16543 * fileio.c: Make symbols static if they're not exported.
16544 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
16545 (Vwrite_region_annotation_buffers): Now static.
16546
57a96f5c
PE
16547 * eval.c: Make symbols static if they're not exported.
16548 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
16549 * lisp.h (backtrace_list): Remove decl.
16550
35f08c38
PE
16551 * emacs.c: Make symbols static if they're not exported.
16552 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
16553 (fatal_error_code, fatal_error_signal_hook, standard_args):
16554 Now static.
16555 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
16556 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
16557 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
16558 * lisp.h (fatal_error_signal_hook): Remove decl.
16559 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
16560
f44bd759
PE
16561 * editfns.c: Move a (normally-unused) function to its only use.
16562 * editfns.c, lisp.h (get_operating_system_release): Remove.
16563 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
16564 worth the hassle of breaking this out.
16565
b532497d
PE
16566 * xterm.c: Make symbols static if they're not exported.
16567 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
16568 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
16569 (x_destroy_window, x_delete_display):
16570 Now static.
16571 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
16572 (x_mouse_leave): Remove; unused.
16573 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
16574 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
16575 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
16576 Remove decls.
16577 (x_mouse_leave): Declare only if WINDOWSNT.
16578 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
16579 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
16580 USE_X_TOOLKIT.
16581
1675728f
PE
16582 * ftxfont.c: Make symbols static if they're not exported.
16583 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
16584 HAVE_FREETYPE.
16585 * font.h (ftxfont_driver): Likewise.
16586
e4cebfca
PE
16587 * xfns.c: Make symbols static if they're not exported.
16588 (x_last_font_name, x_display_info_for_name):
16589 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
16590 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
16591 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
16592 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
16593 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
16594 (last_show_tip_args): Now static.
16595 (xic_defaut_fontset, xic_create_fontsetname): Define only if
16596 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
16597 (x_screen_planes): Remove; unused.
16598 * dispextern.h (x_screen_planes): Remove decl.
16599
5bf46f05
PE
16600 * dispnew.c: Make symbols static if they're not exported.
16601 * dispextern.h (redraw_garbaged_frames, scrolling):
16602 (increment_row_positions): Remove.
16603 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
16604 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
16605 Now static.
16606 (redraw_garbaged_frames): Remove; unused.
16607
435f4c28
PE
16608 * xfaces.c: Make symbols static if they're not exported.
16609 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
16610 Remove decls.
16611 * xterm.h (defined_color): Remove decls.
16612 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
16613 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
16614 (menu_face_changed_default, defined_color, free_realized_face):
16615 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
16616 (ascii_face_of_lisp_face): Remove; unused.
16617
8524aef3
PE
16618 * xdisp.c: Make symbols static if they're not exported.
16619 * dispextern.h (scratch_glyph_row, window_box_edges):
16620 (glyph_to_pixel_coords, set_cursor_from_row):
16621 (get_next_display_element, set_iterator_to_next):
16622 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
16623 (show_mouse_face): Remove decls
16624 * frame.h (message_buf_print): Likewise.
16625 * lisp.h (pop_message, set_message, check_point_in_composition):
16626 Likewise.
16627 * xterm.h (set_vertical_scroll_bar): Likewise.
16628 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
16629 (message_buf_print, scratch_glyph_row, displayed_buffer):
16630 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
16631 (get_next_display_element, show_mouse_face, window_box_edges):
16632 (frame_to_window_pixel_xy, check_point_in_composition):
16633 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
16634 (glyph_to_pixel_coords): Remove; unused.
16635
16390cd2
PE
16636 * dired.c (file_name_completion): Now static.
16637
16638 * dbusbind.c (xd_in_read_queued_messages): Now static.
16639
a25f4dfa
PE
16640 * lisp.h (circular_list_error, FOREACH): Remove; unused.
16641 * data.c (circular_list_error): Remove.
16642
14a9c8df
PE
16643 * commands.h (last_point_position, last_point_position_buffer):
16644 (last_point_position_window): Remove decls.
16645 * keyboard.c: Make these variables static.
16646
04f2d78b
CB
16647 * coding.h (coding, code_convert_region, encode_coding_gap):
16648 Remove decls.
74ab6df5
PE
16649 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
16650 (iso_code_class, detect_coding, code_convert_region): Now static.
16651 (encode_coding_gap): Remove; unused.
16652
38dfbee1
PE
16653 * chartab.c (chartab_chars, chartab_bits): Now static.
16654
a2cb4e63
PE
16655 * charset.h (charset_iso_8859_1): Remove decl.
16656 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
16657 Now static.
16658
127198fd
PE
16659 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
16660 * ccl.c (Vccl_program_table): Now static.
16661 (check_ccl_update): Remove; unused.
16662
d85b608f
PE
16663 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
16664 * category.h: ... from here.
16665 * category.c (check_category_table, set_category_set): Now static.
16666
31cd66f3
PE
16667 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
16668 * lisp.h: Remove these decls.
16669
c358e587
PE
16670 * buffer.c (buffer_count): Remove unused var.
16671
e78aecca
PE
16672 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
16673 so that it's not optimized away.
16674 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
16675 * dispextern.h (bidi_dump_cached_states): Remove, since it's
16676 exported only to the debugger.
16677
e192d7d3 16678 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 16679 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 16680
92470028
PE
16681 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
16682 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
16683 was inaccessible from Lisp.
16684 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
16685 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
16686
244ed907
PE
16687 alloc.c: Import and export fewer symbols, and remove unused items.
16688 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
16689 is defined.
16690 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
16691 it's not optimized away by whole-program optimization.
16692 (message_enable_multibyte, free_misc): Remove.
16693 (catchlist, handlerlist, mark_backtrace):
16694 Declare only if BYTE_MARK_STACK.
16695 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
16696 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
16697 (message_enable_multibyte): Remove decl.
16698 (free_misc, interval_free_list, float_block, float_block_index):
16699 (n_float_blocks, float_free_list, cons_block, cons_block_index):
16700 (cons_free_list, last_marked_index):
16701 Now static.
16702 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
16703 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
16704 (mark_backtrace): Define only if BYTE_MARK_STACK.
16705 * xdisp.c (message_enable_multibyte): Now static.
16706
61c2b50e 16707 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
16708 This makes it easier for human readers (and static analyzers)
16709 to see whether these variables are used from other modules.
16710 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
16711 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
16712 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
16713 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
16714 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
16715 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
16716 * xmenu.c, xselect.c:
16717 Declare Q* vars static if they are not used in other modules.
16718 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
16719 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
16720 Remove decls of unexported vars.
16721 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
16722
95c82688
PE
16723 * lisp.h (DEFINE_FUNC): Make sname 'static'.
16724
16a97296
PE
16725 Make Emacs functions such as Fatom 'static' by default.
16726 This makes it easier for human readers (and static analyzers)
16727 to see whether these functions can be called from other modules.
16728 DEFUN now defines a static function. To make the function external
16729 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
16730 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
16731 (Finit_image_library):
16a97296
PE
16732 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
16733 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
16734 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
16735 Remove decls, since these functions are now static.
16736 (Funintern, Fget_internal_run_time): New decls, since these functions
16737 were already external.
95c82688 16738
16a97296
PE
16739 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
16740 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
16741 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
16742 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
16743 * keyboard.c, keymap.c, lread.c:
16744 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
16745 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
16746 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
16747 Mark functions with DEFUE instead of DEFUN,
16748 if they are used in other modules.
16749 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
16750 decls for now-static functions.
16751 * buffer.h (Fdelete_overlay): Remove decl.
16752 * callproc.c (Fgetenv_internal): Mark as internal.
16753 * composite.c (Fremove_list_of_text_properties): Remove decl.
16754 (Fcomposition_get_gstring): New forward static decl.
16755 * composite.h (Fcomposite_get_gstring): Remove decl.
16756 * dired.c (Ffile_attributes): New forward static decl.
16757 * doc.c (Fdocumntation_property): New forward static decl.
16758 * eval.c (Ffetch_bytecode): New forward static decl.
16759 (Funintern): Remove extern decl; now in .h file where it belongs.
16760 * fileio.c (Fmake_symbolic_link): New forward static decl.
16761 * image.c (Finit_image_library): New forward static decl.
16762 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
16763 * intervals.h (Fprevious_property_change):
16764 (Fremove_list_of_text_properties): Remove decls.
16765 * keyboard.c (Fthis_command_keys): Remove decl.
16766 (Fcommand_execute): New forward static decl.
16767 * keymap.c (Flookup_key): New forward static decl.
16768 (Fcopy_keymap): Now static.
16769 * keymap.h (Flookup_key): Remove decl.
16770 * process.c (Fget_process): New forward static decl.
16771 (Fprocess_datagram_address): Mark as internal.
16772 * syntax.c (Fsyntax_table_p): New forward static decl.
16773 (skip_chars): Remove duplicate decl.
16774 * textprop.c (Fprevious_property_change): New forward static decl.
16775 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
16776 Now internal.
16777 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
16778 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
16779
785bbd42
PE
16780 * editfns.c (Fformat): Remove unreachable code.
16781
8b913b57
AS
167822011-04-14 Andreas Schwab <schwab@linux-m68k.org>
16783
16784 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
16785 change. (Bug#8496)
16786
a6744a35
EZ
167872011-04-13 Eli Zaretskii <eliz@gnu.org>
16788
16789 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
16790 when at ZV. (Bug#8487)
16791
e7974947
AS
167922011-04-12 Andreas Schwab <schwab@linux-m68k.org>
16793
baad03f0
AS
16794 * charset.c (Fclear_charset_maps): Use xfree instead of free.
16795 (Bug#8437)
16796 * keyboard.c (parse_tool_bar_item): Likewise.
16797 * sound.c (sound_cleanup, alsa_close): Likewise.
16798 * termcap.c (tgetent): Likewise.
16799 * xfns.c (x_default_font_parameter): Likewise.
16800 * xsettings.c (read_and_apply_settings): Likewise.
16801
e7974947
AS
16802 * alloc.c (overrun_check_malloc, overrun_check_realloc)
16803 (overrun_check_free): Protoize.
16804
28272684
PE
168052011-04-12 Paul Eggert <eggert@cs.ucla.edu>
16806
16807 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
16808 since callers should never pass a negative size.
16809 Change the signature to match that of plain 'read' and 'write'; see
16810 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
16811 * lisp.h: Update prototypes of emacs_write and emacs_read.
16812
11997c76
EZ
168132011-04-11 Eli Zaretskii <eliz@gnu.org>
16814
16815 * xdisp.c (redisplay_window): Don't try to determine the character
16816 position of the scroll margin if the window start point w->startp
e896f03c 16817 is outside the buffer's accessible region. (Bug#8468)
11997c76 16818
8a2cbd72
EZ
168192011-04-10 Eli Zaretskii <eliz@gnu.org>
16820
16821 Fix write-region and its subroutines for buffers > 2GB.
16822 * fileio.c (a_write, e_write): Modify declaration of arguments and
16823 local variables to support buffers larger than 2GB.
16824 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
16825
16826 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
16827 argument, local variables, and return value.
16828
16829 * lisp.h: Update prototypes of emacs_write and emacs_read.
16830
16831 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
16832
4073e537 168332011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 16834
1ebfdcb6
PE
16835 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
16836
b2ded58d
PE
16837 Fix more problems found by GCC 4.6.0's static checks.
16838
7d66342c
PE
16839 * xdisp.c (vmessage): Use a better test for character truncation.
16840
bbf47d44
PE
16841 * charset.c (load_charset_map): <, not <=, for optimization,
16842 and to avoid potential problems with integer overflow.
9248994d 16843 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 16844 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 16845 * editfns.c (Fformat): Likewise.
1e69125e 16846 * syntax.c (skip_chars): Likewise.
3befa583 16847
e3019616
PE
16848 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
16849 This also lets GCC 4.6.0 generate slightly better loop code.
16850
becfa255
PE
16851 * callint.c (Fcall_interactively): <, not <=, for optimization.
16852 (Fcall_interactively): Count the number of arguments produced,
16853 not the number of arguments given. This is simpler and lets GCC
16854 4.6.0 generate slightly better code.
16855
dae0cd48
PE
16856 * ftfont.c: Distingish more carefully between FcChar8 and char.
16857 The previous code passed unsigned char * to a functions like
16858 strlen and xstrcasecmp that expect char *, which does not
16859 conform to the C standard.
16860 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
16861 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
16862 char * when the C standard requires it.
16863
76032d70
PE
16864 * keyboard.c (read_char): Remove unused var.
16865
eb3f1cc8
PE
16866 * eval.c: Port to Windows vsnprintf (Bug#8435).
16867 Include <limits.h>.
16868 (SIZE_MAX): Define if the headers do not.
16869 (verror): Do not give up if vsnprintf returns a negative count.
16870 Instead, grow the buffer. This ports to Windows vsnprintf, which
16871 does not conform to C99. Problem reported by Eli Zaretskii.
16872 Also, simplify the allocation scheme, by avoiding the need for
16873 calling realloc, and removing the ALLOCATED variable.
16874
70476b54
PE
16875 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
16876
12020a9e
PE
16877 Remove invocations of doprnt, as Emacs now uses vsnprintf.
16878 But keep the doprint source code for now, as we might revamp it
16879 and use it again (Bug#8435).
ea6c7ae6
PE
16880 * lisp.h (doprnt): Remove.
16881 * Makefile.in (base_obj): Remove doprnt.o.
16882 * deps.mk (doprnt.o): Remove.
16883
5fdb398c
PE
16884 error: Print 32- and 64-bit integers portably (Bug#8435).
16885 Without this change, on typical 64-bit hosts error ("...%d...", N)
16886 was used to print both 32- and 64-bit integers N, which relied on
16887 undefined behavior.
61bdb816 16888 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
16889 * lisp.h (error, verror): Mark as printf-like functions.
16890 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
16891 Report overflow in size calculations when allocating printf buffer.
16892 Do not truncate output string at its first null byte.
16893 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
16894 Truncate the output at a character boundary, since vsnprintf does not
16895 do that.
16896 * charset.c (check_iso_charset_parameter): Convert internal
16897 character to string before calling 'error', since %c now has the
16898 printf meaning.
16899 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
16900 overflow when computing char to be passed to 'error'. Do not
16901 pass Lisp_Object to 'error'; pass the integer instead.
16902 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
16903 formatted with plain %d.
16904
b189fa66
PE
16905 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
16906
bff87ef0
PE
16907 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
16908
7e2cac20
PE
16909 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
16910
ce4d90b5
PE
16911 * xterm.c (x_catch_errors): Remove duplicate declaration.
16912
266c9547
PE
16913 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
16914
79c49ad2
PE
16915 * xdisp.c, lisp.h (message_nolog): Remove; unused.
16916
368f4090
JM
169172011-04-10 Jim Meyering <meyering@redhat.com>
16918
16919 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
16920 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
16921 return ssize_t not "int", and use size_t as the buffer length.
16922 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
16923 * gnutls.h: Update declarations.
16924 * process.c (read_process_output): Use ssize_t, to match.
16925 (send_process): Likewise.
16926
a32d4040
CY
169272011-04-09 Chong Yidong <cyd@stupidchicken.com>
16928
16929 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
16930
8546720e 169312011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 16932
04f2d78b
CB
16933 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
16934 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 16935
8546720e
GM
16936 * xterm.c (handle_one_xevent):
16937 * xmenu.c (create_and_show_popup_menu):
16938 * xselect.c (x_decline_selection_request)
16939 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 16940
0a2f5c1a 169412011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
16942
16943 Fix some uses of `int' instead of EMACS_INT.
16944 * search.c (string_match_1, fast_string_match)
16945 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
16946 (scan_buffer, find_next_newline_no_quit)
16947 (find_before_next_newline, search_command, Freplace_match)
16948 (Fmatch_data): Make some `int' variables be EMACS_INT.
16949
16950 * xdisp.c (display_count_lines): 3rd argument and return value now
16951 EMACS_INT. All callers changed.
16952 (pint2hrstr): Last argument is now EMACS_INT.
16953
16954 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
16955 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
16956 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
16957 (decode_coding_utf_16, decode_coding_emacs_mule)
16958 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
16959 (decode_coding_ccl, decode_coding_charset)
16960 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
16961 (decode_coding_iso_2022, decode_coding_emacs_mule)
16962 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
16963 <char_offset, last_offset>: Declare EMACS_INT.
16964 (encode_coding_utf_8, encode_coding_utf_16)
16965 (encode_coding_emacs_mule, encode_invocation_designation)
16966 (encode_designation_at_bol, encode_coding_iso_2022)
16967 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
16968 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
16969 Declare EMACS_INT.
16970 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
16971 (encode_invocation_designation): Last argument P_NCHARS is now
16972 EMACS_INT.
16973 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
16974 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
16975
16976 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
16977 All users changed.
16978
16979 * ccl.c (Fccl_execute_on_string): Declare some variables
16980 EMACS_INT.
16981
8546720e 169822011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
16983
16984 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
16985
4e19a977
CS
169862011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
16987
16988 * process.c (Fformat_network_address): Doc fix.
16989
87302331
R
169902011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
16991
ee7683eb 16992 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 16993
cbb59342
CY
169942011-04-08 Chong Yidong <cyd@stupidchicken.com>
16995
16996 * keyboard.c (read_char): Call Lisp function help-form-show,
16997 instead of using internal_with_output_to_temp_buffer.
16998 (Qhelp_form_show): New var.
e0d38eeb 16999 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
17000
17001 * print.c (internal_with_output_to_temp_buffer): Function deleted.
17002
17003 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
17004
e67a13ab
CY
170052011-04-06 Chong Yidong <cyd@stupidchicken.com>
17006
04f2d78b
CB
17007 * process.c (Flist_processes): Remove to Lisp.
17008 (list_processes_1): Delete.
e67a13ab 17009
973f782d
EZ
170102011-04-06 Eli Zaretskii <eliz@gnu.org>
17011
7c106b1e
EZ
17012 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
17013
973f782d
EZ
17014 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
17015
41cf7d1a 170162011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 17017
ca23cc88
PE
17018 Fix more problems found by GCC 4.6.0's static checks.
17019
f390e2d5
PE
17020 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
17021
42eea0d0
PE
17022 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
17023
b69769da 17024 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 17025
f9541e84
PE
17026 * xdisp.c (vmessage): Mark as a printf-like function.
17027
13841b55
PE
17028 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
17029
c136c10f
PE
17030 * sound.c (sound_warning): Don't crash if arg contains a printf format.
17031
5e2d4a30
PE
17032 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
17033 printf-like functions.
17034 (tiff_load): Add casts to remove these marks before passing them
17035 to system-supplied API.
17036
583f48b9
PE
17037 * eval.c (Fsignal): Remove excess argument to 'fatal'.
17038
b25d760e
PE
17039 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
17040 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
17041 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
17042 directly, rather than having caller test rule sign. This avoids
17043 some unnecessary tests.
17044 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
17045 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
17046 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 17047
bc7b6697 17048 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 17049 (xfont_open): Avoid unnecessary tests.
bc7b6697 17050
27ccc379
PE
17051 * composite.c (composition_gstring_put_cache): Use unsigned integer.
17052
dcd5c89a
PE
17053 * composite.h, composite.c (composition_gstring_put_cache):
17054 Use EMACS_INT, not int, for length.
17055
b13a45c6
PE
17056 * composite.h (COMPOSITION_DECODE_REFS): New macro,
17057 breaking out part of COMPOSITION_DECODE_RULE.
17058 (COMPOSITION_DECODE_RULE): Use it.
17059 * composite.c (get_composition_id): Remove unused local vars,
17060 by using the new macro.
17061
1e792e4d
PE
17062 * textprop.c (set_text_properties_1): Change while to do-while,
17063 since the condition is always true at first.
17064
dc6c6455 17065 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
17066 (interval_deletion_adjustment): Return unsigned value.
17067 All uses changed.
dc6c6455 17068
aba7731a
PE
17069 * process.c (list_processes_1, create_pty, read_process_output):
17070 (exec_sentinel): Remove vars that were set but not used.
afd4052b 17071 (create_pty): Remove unnecessary "volatile"s.
bc57d757 17072 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 17073 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 17074 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 17075
fdfc4bf3
PE
17076 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
17077
fca8fe46 17078 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 17079 (update_syntax_table): Use unsigned instead of int.
fca8fe46 17080
06a0259a 17081 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 17082 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 17083 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 17084
e7b9e80f
PE
17085 * print.c (print_error_message): Avoid int overflow.
17086
56201685
PE
17087 * font.c (font_list_entities): Redo for clarity,
17088 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
17089
78834453 17090 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 17091 (font_score): Avoid potential overflow in diff calculation.
78834453 17092
0bc0b309 17093 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 17094 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 17095
e610eaca
PE
17096 * eval.c (funcall_lambda): Rename local to avoid shadowing.
17097
b895abce
PE
17098 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
17099 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
17100 can always succeed if overflow has undefined behavior.
17101
1f1d9321 17102 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 17103 (wordify): Omit three unnecessary tests.
1f1d9321 17104
c59478bc
PE
17105 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
17106 All callers changed. This avoids the need for an unused var.
17107
79b73827
PE
17108 * casefiddle.c (casify_region): Remove var that is set but not used.
17109
a4db5dfe
PE
17110 * dired.c (file_name_completion): Remove var that is set but not used.
17111
43aae36e
PE
17112 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
17113
2a47c44d 17114 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 17115 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 17116
a37c69bf
PE
17117 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
17118 Check for integer overflow on size calculations.
17119
328ab8e7
PE
17120 * buffer.c (Fprevious_overlay_change): Remove var that is set
17121 but not used.
17122
e5a2a5cb
PE
17123 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
17124 Remove vars that are set but not used.
8d84a6eb 17125 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 17126 (timer_check_2): Mark vars as initialized.
e5a2a5cb 17127
a60e5f68
PE
17128 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
17129
f661cb61 17130 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 17131 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 17132
f0397f5a
PE
17133 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
17134 that are set but not used.
17135
8664db06 17136 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 17137 if XCreateBitmapFromData fails (Bug#8410).
8664db06 17138
6abdaa4a
PE
17139 * xselect.c (x_get_local_selection, x_handle_property_notify):
17140 Remove vars that are set but not used.
17141
0ce7538d 17142 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 17143 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 17144
9ae848fc
PE
17145 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
17146 Remove var that is set but not used.
0b918413
PE
17147 (scroll_bar_windows_size): Now size_t, not int.
17148 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
17149 Check for overflow.
9ae848fc 17150
a5a62657
PE
17151 * xfaces.c (realize_named_face): Remove vars that are set but not used.
17152 (map_tty_color) [!defined MSDOS]: Likewise.
17153
5c5cdd39
PE
17154 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
17155
66ebf983
PE
17156 * coding.c: Remove vars that are set but not used.
17157 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
17158 All callers changed.
17159 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
17160 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
17161 (decode_coding_charset): Remove vars that are set but not used.
17162
1be4d761
PE
17163 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
17164 that is set but not used.
17165
47553fa8
PE
17166 * print.c (print_object): Remove var that is set but not used.
17167
1f7196bf 17168 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
17169 The gnulib version avoids calling malloc in the usual case,
17170 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
17171 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
17172 * filelock.c (current_lock_owner): Likewise.
17173 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
17174 * sysdep.c: Include allocator.h, careadlinkat.h.
17175 (emacs_no_realloc_allocator): New static constant.
17176 (emacs_readlink): New function.
fdb61804
PE
17177 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
17178 ../lib/careadlinkat.h.
d1fdcab7 17179
f84c17c7
SM
171802011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
17181
17182 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
17183 first non-nil return value).
17184
ef3862ad
JD
171852011-04-03 Jan Djärv <jan.h.d@swipnet.se>
17186
17187 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
17188 if not defined (Bug#8403).
17189
376a7006
JB
171902011-04-02 Juanma Barranquero <lekktu@gmail.com>
17191
17192 * xdisp.c (display_count_lines): Remove parameter `start',
17193 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
17194 (get_char_face_and_encoding): Remove parameter `multibyte_p',
17195 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
17196 (fill_stretch_glyph_string): Remove parameters `row' and `area',
17197 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
17198 and thereabouts. All callers changed.
17199 (get_per_char_metric): Remove parameter `f', unused since
17200 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
17201
6ca3801d
JM
172022011-04-02 Jim Meyering <meyering@redhat.com>
17203
17204 do not dereference NULL upon failed strdup
17205 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
17206 (ns_get_family): Likewise.
17207
d8e2b5ba
JB
172082011-04-02 Juanma Barranquero <lekktu@gmail.com>
17209
17210 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
17211
8c74fcbd
JD
172122011-04-02 Jan Djärv <jan.h.d@swipnet.se>
17213
17214 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
17215 later (Bug#8403).
17216
7200d79c
SM
172172011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
17218
03408648 17219 Add lexical binding.
7200d79c 17220
03408648
SM
17221 * window.c (Ftemp_output_buffer_show): New fun.
17222 (Fsave_window_excursion):
17223 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
17224
17225 * lread.c (lisp_file_lexically_bound_p): New function.
17226 (Fload): Bind Qlexical_binding.
17227 (readevalloop): Remove `evalfun' arg.
17228 Bind Qinternal_interpreter_environment.
17229 (Feval_buffer): Bind Qlexical_binding.
17230 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
17231 Mark as dynamic.
17232 (syms_of_lread): Declare `lexical-binding'.
17233
17234 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
17235
17236 * keyboard.c (eval_dyn): New fun.
17237 (menu_item_eval_property): Use it.
ca105506
SM
17238
17239 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 17240
03408648
SM
17241 * fns.c (concat, mapcar1): Accept byte-code-functions.
17242
17243 * eval.c (Fsetq): Handle lexical vars.
17244 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
17245 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
17246 (FletX, Flet): Obey lexical binding.
17247 (Fcommandp): Handle closures.
17248 (Feval): New `lexical' arg.
17249 (eval_sub): New function extracted from Feval. Use it almost
17250 everywhere where Feval was used. Look up vars in lexical env.
17251 Handle closures.
17252 (Ffunctionp): Move from subr.el.
17253 (Ffuncall): Handle closures.
17254 (apply_lambda): Remove `eval_flags'.
17255 (funcall_lambda): Handle closures and new byte-code-functions.
17256 (Fspecial_variable_p): New function.
17257 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
17258 but without exporting it to Lisp.
23aba0ea 17259
23aba0ea 17260 * doc.c (Fdocumentation, store_function_docstring):
03408648 17261 * data.c (Finteractive_form): Handle closures.
23aba0ea 17262
03408648
SM
17263 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
17264 interactive spec.
ba83908c 17265
04f2d78b
CB
17266 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
17267 New byte-codes.
03408648
SM
17268 (exec_byte_code): New function extracted from Fbyte_code to handle new
17269 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 17270
03408648 17271 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 17272
03408648 17273 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 17274
e2abce01
JB
172752011-03-31 Juanma Barranquero <lekktu@gmail.com>
17276
17277 * xdisp.c (redisplay_internal): Fix prototype.
17278
63696a73 172792011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 17280
63696a73 17281 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
17282 (try_scrolling): Use it when setting scroll_limit.
17283 Limit scrolling to 100 screen lines.
63696a73
EZ
17284 (redisplay_window): Even when falling back on "recentering",
17285 position point in the window according to scroll-conservatively,
17286 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
17287
17288 (try_scrolling): When point is above the window, allow searching
17289 as far as scroll_max, or one screenful, to compute vertical
17290 distance from PT to the scroll margin position. This prevents
17291 try_scrolling from unnecessarily failing when
17292 scroll-conservatively is set to a value slightly larger than the
17293 window height. Clean up the case of PT below the margin at bottom
17294 of window: scroll_max can no longer be INT_MAX. When aggressive
17295 scrolling is in use, don't let point enter the opposite scroll
17296 margin as result of the scroll.
17297 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
17298 threshold of 100 lines for never-recentering scrolling.
17299
e4cc2dfc
JB
173002011-03-31 Juanma Barranquero <lekktu@gmail.com>
17301
17302 * dispextern.h (move_it_by_lines):
17303 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
17304 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
17305 (message_log_check_duplicate): Remove parameters `prev_bol' and
17306 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
17307 (redisplay_internal): Remove parameter `preserve_echo_area',
17308 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
17309
17310 * indent.c (Fvertical_motion):
17311 * window.c (window_scroll_pixel_based, Frecenter):
17312 Don't pass `need_y_p' to `move_it_by_lines'.
17313
1c470562
SM
173142011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
17315
44f230aa
SM
17316 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
17317 steal a few bits to be more compact.
17318 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
17319 Remove unneeded casts.
17320
1c470562
SM
17321 * bytecode.c (Fbyte_code): CAR and CDR can GC.
17322
888adce9
ZK
173232011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
17324
17325 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
17326 binding" message (bug#7967).
17327
f838ed7b
PE
173282011-03-30 Paul Eggert <eggert@cs.ucla.edu>
17329
77861b95
PE
17330 Fix more problems found by GCC 4.6.0's static checks.
17331
de6dbc14
PE
17332 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
17333 Remove unused local var.
17334
f838ed7b
PE
17335 * editfns.c (Fmessage_box): Remove unused local var.
17336
792c7b2b
PE
17337 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
17338 (note_mode_line_or_margin_highlight, note_mouse_highlight):
17339 Omit unused local vars.
c499e557 17340 * window.c (shrink_windows): Omit unused local var.
b01a1c29 17341 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
17342 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
17343 Omit unused local var.
17344
ba0165e1
PE
17345 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
17346 Don't assume string length fits in int.
32ad8845 17347 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 17348 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 17349
3c59b4c9
PE
17350 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
17351 instead of alloca (Bug#8344).
17352
a3eed478 17353 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 17354 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 17355
eb4d412d
PE
17356 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
17357
1658b401
PE
17358 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
17359 concerns.
17360
17361 * term.c (produce_glyphless_glyph): Remove unnecessary test.
17362
17363 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 17364
9a2c6e05
PE
17365 * keyboard.c (syms_of_keyboard): Use the same style as later
17366 in this function when indexing through an array. This also
17367 works around GCC bug 48267.
17368
03d0a109
PE
17369 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
17370
44f730c8
PE
17371 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
17372
fe75f926
PE
17373 * chartab.c (sub_char_table_ref_and_range): Redo for slight
17374 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
17375
ffa8c828
PE
17376 * keyboard.c, keyboard.h (num_input_events): Now size_t.
17377 This avoids undefined behavior on integer overflow, and is a bit
17378 more convenient anyway since it is compared to a size_t variable.
17379
c5101a77
PE
17380 Variadic C functions now count arguments with size_t, not int.
17381 This avoids an unnecessary limitation on 64-bit machines, which
17382 caused (substring ...) to crash on large vectors (Bug#8344).
17383 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
17384 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 17385 All variadic functions and their callers changed accordingly.
c5101a77
PE
17386 (struct gcpro.nvars): Now size_t, not int. All uses changed.
17387 * data.c (arith_driver, float_arith_driver): Likewise.
17388 * editfns.c (general_insert_function): Likewise.
17389 * eval.c (struct backtrace.nargs, interactive_p)
17390 (internal_condition_case_n, run_hook_with_args, apply_lambda)
17391 (funcall_lambda, mark_backtrace): Likewise.
17392 * fns.c (concat): Likewise.
17393 * frame.c (x_set_frame_parameters): Likewise.
17394 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
17395 0 if not found, not -1. All callers changed.
17396
dd3f25f7
PE
17397 * alloc.c (garbage_collect): Don't assume stack size fits in int.
17398 (stack_copy_size): Now size_t, not int.
17399 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
17400
461c2ab9
JB
174012011-03-28 Juanma Barranquero <lekktu@gmail.com>
17402
17403 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
17404 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
17405 All callers changed.
17406
17407 * lisp.h (multibyte_char_to_unibyte):
17408 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
17409 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
17410 * character.h (CHAR_TO_BYTE8):
17411 * cmds.c (internal_self_insert):
17412 * editfns.c (general_insert_function):
17413 * keymap.c (push_key_description):
17414 * search.c (Freplace_match):
17415 * xdisp.c (message_dolog, set_message_1): All callers changed.
17416
f6d62986
SM
174172011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
17418
17419 * keyboard.c (safe_run_hook_funcall): New function.
17420 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
17421 don't set the hook to nil, but remove the offending function instead.
17422 (Qcommand_hook_internal): Remove, unused.
17423 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
17424 Vcommand_hook_internal.
17425
17426 * eval.c (enum run_hooks_condition): Remove.
17427 (funcall_nil, funcall_not): New functions.
17428 (run_hook_with_args): Call each function through a `funcall' argument.
17429 Remove `cond' argument, now redundant.
17430 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
17431 (Frun_hook_with_args_until_failure): Adjust accordingly.
17432 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
17433
1db5b1ad
JB
174342011-03-28 Juanma Barranquero <lekktu@gmail.com>
17435
17436 * dispextern.h (string_buffer_position): Remove declaration.
17437
17438 * print.c (strout): Remove parameter `multibyte', unused since
17439 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
17440
17441 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
17442 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
17443 All callers changed.
17444
17445 * w32.c (_wsa_errlist): Use braces for struct initializers.
17446
17447 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
17448 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
17449 All callers changed.
17450 (string_buffer_position): Likewise. Also, make static (it's never
17451 used outside xdisp.c).
17452 (cursor_row_p): Remove parameter `w', unused since
17453 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
17454 (decode_mode_spec): Remove parameter `precision', introduced during
17455 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
17456 All callers changed.
17457
5ffb62aa
JD
174582011-03-27 Jan Djärv <jan.h.d@swipnet.se>
17459
17460 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
17461
461c2ab9 174622011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
17463
17464 * nsterm.m (ns_menu_bar_is_hidden): New variable.
17465 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
17466 (ns_update_auto_hide_menu_bar): New functions.
17467 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
17468 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
17469 ns_constrain_all_frames.
17470 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
17471 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
17472
5c380ffb
JD
174732011-03-27 Jan Djärv <jan.h.d@swipnet.se>
17474
17475 * nsmenu.m (runDialogAt): Remove argument to timer_check.
17476
9af30bdf
GM
174772011-03-27 Glenn Morris <rgm@gnu.org>
17478
17479 * syssignal.h: Replace RETSIGTYPE with void.
17480 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
17481 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
17482 Replace SIGTYPE with void everywhere.
17483 * s/usg5-4-common.h (SIGTYPE): Remove definition.
17484 * s/template.h (SIGTYPE): Remove commented out definition.
17485
e2abce01
JB
174862011-03-26 Eli Zaretskii <eliz@gnu.org>
17487
17488 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
17489 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
17490
f868cd8a
JB
174912011-03-26 Juanma Barranquero <lekktu@gmail.com>
17492
59eb0929
JB
17493 * w32.c (read_unc_volume): Use parameter `henum', instead of
17494 global variable `wget_enum_handle'.
17495
17496 * keymap.c (describe_vector): Remove parameters `indices' and
17497 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
17498 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
17499
f868cd8a
JB
17500 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
17501
17502 * keyboard.c (timer_check): Remove parameter `do_it_now',
17503 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
17504 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
17505 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
17506
17507 * keyboard.c (read_char):
17508 * w32menu.c (w32_menu_display_help):
17509 * xmenu.c (show_help_event, menu_help_callback):
17510 Adjust calls to `show_help_echo'.
17511
17512 * gtkutil.c (xg_maybe_add_timer):
17513 * keyboard.c (readable_events):
17514 * process.c (wait_reading_process_output):
17515 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
17516
17517 * insdel.c (adjust_markers_gap_motion):
17518 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
17519 (gap_left, gap_right): Don't call it.
17520
2ecf6fdb
CY
175212011-03-25 Chong Yidong <cyd@stupidchicken.com>
17522
17523 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
17524 incurred during fontification.
17525
6b1f9ba4
JB
175262011-03-25 Juanma Barranquero <lekktu@gmail.com>
17527
17528 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
17529 (DEFVAR_PER_BUFFER): Don't pass it.
17530
17531 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
17532 (scrolling_window): Don't pass it.
17533
0f4a96b5
JB
175342011-03-25 Juanma Barranquero <lekktu@gmail.com>
17535
17536 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
17537
17538 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
17539 and `suffix'.
17540 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
17541 of variables specific to SELinux and computation of `encoded_absname'.
17542
17543 * image.c (XPutPixel): Remove unused variable `height'.
17544
17545 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
17546
17547 * unexw32.c (get_section_info): Remove unused variable `section'.
17548
17549 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
17550 (system_process_attributes): Remove unused variable `sess'.
17551 (sys_read): Remove unused variable `err'.
17552
17553 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
17554 (w32_wnd_proc): Remove unused variable `isdead'.
17555 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
17556 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
17557 (x_create_tip_frame): Remove unused variable `tem'.
17558
17559 * w32inevt.c (w32_console_read_socket):
17560 Remove unused variable `no_events'.
17561
17562 * w32term.c (x_draw_composite_glyph_string_foreground):
17563 Remove unused variable `width'.
17564
1149507c
JB
175652011-03-24 Juanma Barranquero <lekktu@gmail.com>
17566
17567 * w32term.c (x_set_glyph_string_clipping):
17568 Don't pass uninitialized region to CombineRgn.
17569
9c88f339
JB
175702011-03-23 Juanma Barranquero <lekktu@gmail.com>
17571
17572 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
17573 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
17574 (Fx_close_connection): Remove unused variable `i'.
17575
17576 * w32font.c (w32font_draw): Return number of glyphs.
17577 (w32font_open_internal): Remove unused variable `i'.
17578 (w32font_driver): Add missing initializer.
17579
17580 * w32menu.c (utf8to16): Remove unused variable `utf16'.
17581 (fill_in_menu): Remove unused variable `items_added'.
17582
17583 * w32term.c (last_mouse_press_frame): Remove static global variable.
17584 (w32_clip_to_row): Remove unused variable `f'.
17585 (x_delete_terminal): Remove unused variable `i'.
17586
17587 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
17588 (NOTHING): Remove unused static global variable.
17589 (uniscribe_check_otf): Remove unused variable `table'.
17590 (uniscribe_font_driver): Add missing initializers.
17591
dee091a3
JD
175922011-03-23 Julien Danjou <julien@danjou.info>
17593
17594 * term.c (Fsuspend_tty, Fresume_tty):
17595 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
17596 * window.c (temp_output_buffer_show):
17597 * insdel.c (signal_before_change):
17598 * frame.c (Fhandle_switch_frame):
17599 * fileio.c (Fdo_auto_save):
17600 * emacs.c (Fkill_emacs):
17601 * editfns.c (save_excursion_restore):
17602 * cmds.c (internal_self_insert):
17603 * callint.c (Fcall_interactively):
17604 * buffer.c (Fkill_all_local_variables):
17605 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
17606 Use Frun_hooks.
0f4a96b5 17607 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 17608 unconditionally since it does the check itself.
dee091a3 17609
2c520ab5 176102011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 17611
c9c49752
PE
17612 Fix more problems found by GCC 4.5.2's static checks.
17613
8abc3f12
PE
17614 * coding.c (encode_coding_raw_text): Avoid unnecessary test
17615 the first time through the loop, since we know p0 < p1 then.
17616 This also avoids a gcc -Wstrict-overflow warning.
17617
a2d26660
PE
17618 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
17619 leading to a memory leak, possible in functions like
17620 load_charset_map_from_file that can allocate an unbounded number
b12ef411 17621 of objects (Bug#8318).
a2d26660 17622
916c72e9
PE
17623 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
17624 that could (at least in theory) be that large.
17625
19ab8a18
PE
17626 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
17627 This is less likely to overflow, and avoids undefined behavior if
17628 overflow does occur. All callers changed. Use strtoul to scan
17629 for the unsigned long integer.
b7cbbd6f
PE
17630 (pint2hrstr): Simplify and tune code slightly.
17631 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 17632
f0641eff
PE
17633 * scroll.c (do_scrolling): Work around GCC bug 48228.
17634 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
17635
7f650bb9
PE
17636 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
17637 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
17638 (validate_x_resource_name): Simplify count usage.
17639 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 17640
37dd57d1
PE
17641 * fileio.c (Fcopy_file): Report error if fchown or fchmod
17642 fail (Bug#8306).
81e56e61 17643
699979fc 17644 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 17645
401bf9b4
PE
17646 * process.c (Fmake_network_process): Use socklen_t, not int,
17647 where POSIX says socklen_t is required in portable programs.
17648 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 17649 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
17650 (Fmake_network_process, server_accept_connection):
17651 (wait_reading_process_output, read_process_output):
17652 Likewise.
17653
b93aacde
PE
17654 * process.c: Rename or move locals to avoid shadowing.
17655 (list_processes_1, Fmake_network_process):
17656 (read_process_output_error_handler, exec_sentinel_error_handler):
17657 Rename or move locals.
4dc343ee 17658 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 17659 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 17660 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 17661 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 17662 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 17663
af8a867c 17664 Make tparam.h and terminfo.c consistent.
44f230aa
SM
17665 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
17666 Include tparam.h instead, since it declares them.
af8a867c
PE
17667 * cm.h (PC): Remove extern decl; tparam.h now does this.
17668 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
17669 * terminfo.c: Include tparam.h, to check interfaces.
17670 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
17671 (tparam): Adjust signature to match interface in tparam.h;
17672 this removes some undefined behavior. Check that outstring and len
17673 are zero, which they always are with Emacs.
17674 * tparam.h (PC, BC, UP): New extern decls.
17675
0248044d 17676 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 17677 (xftfont_open): Rename locals to avoid shadowing.
0248044d 17678
8ff096c1 17679 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
17680 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
17681 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 17682 (ftfont_list): Remove unused local.
49eaafba
PE
17683 (get_adstyle_property, ftfont_pattern_entity):
17684 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
17685 Rename locals to avoid shadowing.
8ff096c1 17686
e2be39f6
PE
17687 * xfont.c (xfont_list_family): Mark var as initialized.
17688
c9735e30
PE
17689 * xml.c (make_dom): Now static.
17690
8f5201ae
PE
17691 * composite.c (composition_compute_stop_pos): Rename local to
17692 avoid shadowing.
b246f932
PE
17693 (composition_reseat_it): Remove unused locals.
17694 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 17695 (composition_update_it): Mark var as initialized.
11b61122
PE
17696 (find_automatic_composition): Mark vars as initialized,
17697 with a FIXME (Bug#8290).
8f5201ae 17698
760fbc2c
PE
17699 character.h: Rename locals to avoid shadowing.
17700 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
17701 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
17702 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
17703 (BUF_DEC_POS): Be more systematic about renaming local temporaries
17704 to avoid shadowing.
17705
ff08eb85
PE
17706 * textprop.c (property_change_between_p): Remove; unused.
17707
fc7bf025
PE
17708 * intervals.c (interval_start_pos): Now static.
17709
235d7abc
PE
17710 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
17711
44f230aa
SM
17712 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
17713 Rename locals to avoid shadowing.
3e7d6594 17714
50060332
PE
17715 * sound.c (wav_play, au_play, Fplay_sound_internal):
17716 Fix pointer signedness.
d01f234b 17717 (alsa_choose_format): Remove unused local var.
c83b8872
PE
17718 (wav_play): Initialize a variable to 0, to prevent undefined
17719 behavior (Bug#8278).
50060332 17720
c4fc4e30
PE
17721 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
17722
918436ed
PE
17723 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
17724
c939f91b
PE
17725 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
17726 clobbering (Bug#8298).
b9c7f648
PE
17727 * sysdep.c (sys_subshell): Likewise.
17728 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 17729
6bd8c144
PE
17730 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
17731 This should get cleaned up, so that child_setup has the
17732 same signature on all platforms.
17733
7710357c 17734 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 17735 (relocate_fd): Rename locals to avoid shadowing.
7710357c 17736
c59da222
CY
177372011-03-22 Chong Yidong <cyd@stupidchicken.com>
17738
17739 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
17740 not to be necessary, and produces flickering.
17741
66b87493
GM
177422011-03-20 Glenn Morris <rgm@gnu.org>
17743
17744 * config.in: Remove file.
17745
45b6f6d5
JB
177462011-03-20 Juanma Barranquero <lekktu@gmail.com>
17747
17748 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
17749 are now in src/globals.h.
17750 (syms_of_minibuf): Remove spurious & from previous change.
17751
cd394be1 177522011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
17753
17754 * minibuf.c (completing-read-function): New variable.
17755 (completing-read-default): Rename from completing-read.
17756 (completing-read): Call completing-read-function.
17757
b14e3e21
CY
177582011-03-19 Juanma Barranquero <lekktu@gmail.com>
17759
17760 * xfaces.c (Fx_load_color_file):
17761 Read color file from absolute filename (bug#8250).
17762
f2b726e6
JB
177632011-03-19 Juanma Barranquero <lekktu@gmail.com>
17764
17765 * makefile.w32-in: Update dependencies.
17766
09f6ff02
EZ
177672011-03-17 Eli Zaretskii <eliz@gnu.org>
17768
17769 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
17770
29a6015a
PE
177712011-03-17 Paul Eggert <eggert@cs.ucla.edu>
17772
a3a6c54e
PE
17773 Fix more problems found by GCC 4.5.2's static checks.
17774
b766f867
PE
17775 * process.c (make_serial_process_unwind, send_process_trap):
17776 (sigchld_handler): Now static.
17777
be02381c
PE
17778 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
17779 That way, the code declares only the vars that it needs.
17780 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
17781 * s/cygwin.h (PTY_ITERATION): Likewise.
17782 * s/darwin.h (PTY_ITERATION): Likewise.
17783 * s/gnu-linux.h (PTY_ITERATION): Likewise.
17784
57048744
PE
17785 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
17786 * process.c (allocate_pty): Don't declare stb unless it's needed.
17787
7914961c 17788 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
17789 (CONSTANTLIM): Remove; unused.
17790 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
17791 Define only if needed.
7914961c 17792
b3967b18
PE
17793 * unexelf.c (unexec): Name an expression,
17794 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
17795 Use a different way to cause a compilation error if anyone uses
17796 n rather than nn, a way that does not involve shadowing.
73366a00 17797 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 17798
29a6015a
PE
17799 * deps.mk (unexalpha.o): Remove; unused.
17800
43cfc33e 17801 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 17802 * unexec.h: New file.
ce701a33
PE
17803 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
17804 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
17805 Depend on unexec.h.
17806 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
17807 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
17808 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 17809 Change as necessary to match prototype in unexec.h.
ce701a33 17810
01f44d5a
PE
17811 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
17812 shadowing.
4f63c6bb 17813 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 17814
a6670b0b
PE
17815 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
17816 Rename locals to avoid shadowing.
17817
cef2010d 17818 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 17819 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 17820
d4d7173a
PE
17821 * print.c (Fredirect_debugging_output): Fix pointer signedess.
17822
f08b802a
PE
17823 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
17824 warning when compiling print.c.
17825
3ddb0639
PE
17826 * font.c (font_unparse_fcname): Abort in an "impossible" situation
17827 instead of using an uninitialized var.
5ad03b97 17828 (font_sort_entities): Mark var as initialized.
3ddb0639 17829
170a2692
PE
17830 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
17831
e663c700
PE
17832 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
17833 pointers to constants.
89bc529a 17834 (font_parse_fcname): Remove unused vars.
7b81e2d0 17835 (font_delete_unmatched): Now static.
ea838e10 17836 (font_get_spec): Remove; unused.
13a547c6
PE
17837 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
17838 (font_update_drivers, Ffont_get_glyphs, font_add_log):
17839 Rename or move locals to avoid shadowing.
e663c700 17840
2a80c887 17841 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 17842 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 17843
1384fa33 17844 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 17845 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 17846
8b2c52e9
PE
17847 * alloc.c (mark_backtrace): Move decl from here ...
17848 * lisp.h: ... to here, so that it can be checked.
17849
475545b5 17850 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 17851 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
17852 (lisp_indirect_variable): Name an expression,
17853 to avoid gcc -Wbad-function-cast warning.
1faed8ae 17854 (Fdefvar): Rename locals to avoid shadowing.
475545b5 17855
b1349114 17856 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 17857 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 17858 Use const pointer when appropriate.
b1349114 17859
a2928364
PE
17860 * lisp.h (get_system_name, get_operating_system_release):
17861 Move decls here, to check interfaces.
17862 * process.c (get_operating_system_release): Move decl to lisp.h.
17863 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
17864 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
17865 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
17866 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
17867 (Fformat_time_string, Fencode_time, Finsert_char):
17868 (Ftranslate_region_internal, Fformat):
17869 Rename or remove local vars to avoid shadowing.
9710023e 17870 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 17871
a415e694
PE
17872 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
17873 avoid shadowing.
17874
8ef4622d
PE
17875 * lisp.h (eassert): Check that the argument compiles, even if
17876 ENABLE_CHECKING is not defined.
17877
946f9a5b
PE
17878 * data.c (Findirect_variable): Name an expression, to avoid
17879 gcc -Wbad-function-cast warning.
112396d6 17880 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 17881 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
17882 (Fmake_variable_buffer_local, Fmake_local_variable):
17883 Mark variables as initialized.
52746918 17884 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 17885
e5aab7e7 17886 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
17887 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
17888 Rename locals to avoid shadowing.
dff45157
PE
17889 (mark_stack): Move local variables into the #ifdef region where
17890 they're used.
7bc26fdb
PE
17891 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
17892 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
17893 needed otherwise.
17894 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
17895 (GC_STRING_CHARS): Remove; not used.
d40d4be1 17896 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 17897
e5aab7e7
PE
17898 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
17899 avoids undefined behavior in theory.
17900
4da60324
PE
17901 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
17902
88043301
PE
17903 Use functions, not macros, for up- and down-casing (Bug#8254).
17904 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
17905 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
17906 to use the following functions instead of these macros.
17907 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
17908 EMACS_INT, since callers assume the returned value fits in int.
17909 (upcase1): Likewise, for UPCASE_TABLE.
17910 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 17911 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 17912 the race-condition problem in the old DOWNCASE.
88043301 17913
19ed5445
PE
17914 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
17915 Rename locals to avoid shadowing.
17916 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
17917 (regex_compile, re_search_2, re_match_2_internal):
17918 Remove unused local vars.
952db0d7
PE
17919 (FREE_VAR): Rewrite so as not to use empty "else",
17920 which gcc can warn about.
da053e48 17921 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
17922 (RETALLOC_IF): Define only if needed.
17923 (WORDCHAR_P): Likewise. This one is never needed, but is used
17924 only in a comment talking about a compiler bug, so put inside
17925 the #if 0 of that comment.
17926 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
17927 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
17928 Remove; unused.
19ed5445 17929
1f3561e4 17930 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
17931 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
17932 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 17933
ded6f8f7
PE
17934 * search.c (simple_search): Remove unused var.
17935
dbd37a95
PE
17936 * dired.c (compile_pattern): Move decl from here ...
17937 * lisp.h: ... to here, so that it can be checked.
17938 (struct re_registers): New forward decl.
17939
7e47afad
PE
17940 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
17941
85f24f61
PE
17942 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
17943 All uses changed.
17944 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
17945 Rename locals to avoid shadowing.
5671df8f 17946 (Fvertical_motion): Mark locals as initialized.
85f24f61 17947
181aa2be 17948 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 17949 (casify_region): Mark local as initialized.
181aa2be 17950
930d429c
PE
17951 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
17952
7082eac6
PE
17953 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
17954 New macros, so that the caller can use some names other than
17955 gcpro1, gcpro2, etc.
17956 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
17957 of the new macros.
17958 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
17959 argument, for consistency with GCPRO2_VAR, etc: it is now the
17960 prefix of the variable, not the variable itself. All uses
17961 changed.
38b2c076
PE
17962 * dired.c (directory_files_internal, file_name_completion):
17963 Rename locals to avoid shadowing.
17964
15206ed9
PE
17965 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
17966 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
17967 dired.c's scmp function, had undefined behavior.
17968 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
17969 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
17970 * buffer.h: ... to here, because these macros use current_buffer,
17971 and the new implementation with inline functions needs to have
17972 current_buffer in scope now, rather than later when the macros
17973 are used.
17974 (downcase, upcase1): New static inline functions.
17975 (DOWNCASE, UPCASE1): Reimplement using these functions.
17976 This avoids undefined behavior in expressions like
17977 DOWNCASE (x) == DOWNCASE (y), which previously suffered
17978 from race conditions in accessing the global variables
17979 case_temp1 and case_temp2.
17980 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
17981 * lisp.h (case_temp1, case_temp2): Remove their decls.
17982 * character.h (ASCII_CHAR_P): Move from here ...
17983 * lisp.h: ... to here, so that the inline functions mentioned
17984 above can use them.
17985
4a6bea26
PE
17986 * dired.c (directory_files_internal_unwind): Now static.
17987
f14b7e14
PE
17988 * fileio.c (file_name_as_directory, directory_file_name):
17989 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
17990 Now static.
2893f146
PE
17991 (file_name_as_directory): Use const pointers when appropriate.
17992 (Fexpand_file_name): Likewise. In particular, newdir might
17993 point at constant storage, so make it a const pointer.
fd4ead52 17994 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
17995 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
17996 signedness issues.
f839df0c
PE
17997 (Fset_file_times, Finsert_file_contents, auto_save_error):
17998 Rename locals to avoid shadowing.
f14b7e14 17999
5716756e 18000 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
18001 (Ftry_completion, Fall_completions): Rename or remove locals
18002 to avoid shadowing.
5716756e 18003
b4c3046a
PE
18004 * marker.c (bytepos_to_charpos): Remove; unused.
18005
b45db522
PE
18006 * lisp.h (verify_bytepos, count_markers): New decls,
18007 so that gcc does not warn that these functions aren't declared.
18008
85876d07
PE
18009 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
18010 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 18011 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 18012 (copy_text): Remove unused local var.
85876d07 18013
03d78a21 18014 * filelock.c (within_one_second): Now static.
b3dd38ab 18015 (lock_file_1): Rename local to avoid shadowing.
03d78a21 18016
5df8f01b
PE
18017 * buffer.c (fix_overlays_before): Mark locals as initialized.
18018 (fix_start_end_in_overlays): Likewise. This function should be
18019 simplified by using pointers-to-pointers, but that's a different
18020 matter.
b1d876f1 18021 (switch_to_buffer_1): Now static.
8f54f30a
PE
18022 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
18023 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 18024
a70072c9 18025 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 18026 Fix pointer signedness issue.
edced198
PE
18027 (sys_subshell): Mark local as volatile if checking for lint,
18028 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 18029 (MAXPATHLEN): Define only if needed.
a70072c9 18030
a0977c44
PE
18031 * process.c (serial_open, serial_configure): Move decls from here ...
18032 * systty.h: ... to here, so that they can be checked.
18033
a884fdcc
PE
18034 * fns.c (get_random, seed_random): Move extern decls from here ...
18035 * lisp.h: ... to here, so that they can be checked.
18036
604efe86 18037 * sysdep.c (reset_io): Now static.
b8950c94 18038 (wait_for_termination_signal): Remove; unused.
604efe86 18039
38fc62d9
PE
18040 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
18041 (copy_keymap_item, append_key, push_text_char_description):
18042 Now static.
1004a21a 18043 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 18044 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
18045 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
18046 (describe_map_tree):
18047 Rename locals to avoid shadowing.
38fc62d9 18048
2f2650da
PE
18049 * keyboard.c: Declare functions static if they are not used elsewhere.
18050 (echo_char, echo_dash, cmd_error, top_level_2):
18051 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
18052 (read_char, kbd_buffer_get_event, make_lispy_position):
18053 (make_lispy_event, make_lispy_movement, apply_modifiers):
18054 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
18055 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
18056 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 18057 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 18058 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 18059
a053e86c 18060 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
18061 (mark_kboards): Move decl here ...
18062 * alloc.c (mark_kboards): ... from here.
a053e86c 18063
4752793e
PE
18064 * lisp.h (force_auto_save_soon): New decl.
18065
74f10ca7 18066 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
18067 (DEFINE_DUMMY_FUNCTION): New macro.
18068 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
18069 Use it.
c03cd23f
PE
18070 (main): Add casts to avoid warnings
18071 if GCC considers string literals to be constants.
74f10ca7 18072
022e70d4
PE
18073 * lisp.h (fatal_error_signal): Add decl, since it's exported.
18074
59d6fe83
PE
18075 * dbusbind.c: Pointer signedness fixes.
18076 (xd_signature, xd_append_arg, xd_initialize):
18077 (Fdbus_call_method, Fdbus_call_method_asynchronously):
18078 (Fdbus_method_return_internal, Fdbus_method_error_internal):
18079 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
18080 (Fdbus_register_signal): Use SSDATA when the context wants char *.
18081
78320123
PE
18082 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
18083 if GCC considers string literals to be constants.
49cebcca 18084 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 18085
35ac2a97
SM
180862011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
18087
fb103ca9
SM
18088 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
18089 (print_preprocess, print_object): New macro to fix last change.
18090
35ac2a97
SM
18091 * print.c (print_preprocess): Don't forget font objects.
18092
62973b41
JB
180932011-03-16 Juanma Barranquero <lekktu@gmail.com>
18094
18095 * emacs.c (USAGE3): Doc fixes.
18096
0e48bb22
AS
180972011-03-15 Andreas Schwab <schwab@linux-m68k.org>
18098
18099 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
18100 structure.
18101
7684e57b
JB
181022011-03-14 Juanma Barranquero <lekktu@gmail.com>
18103
18104 * lisp.h (VWindow_system, Qfile_name_history):
18105 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
18106 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
18107 (w32_system_caret_x, w32_system_caret_y): Declare extern.
18108
18109 * w32select.c: Don't #include "keyboard.h".
c96bbc66 18110 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
18111
18112 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
18113 * w32console.c (detect_input_pending, read_input_pending)
18114 (encode_terminal_code):
18115 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
18116 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
18117 (w32_system_caret_y, Qfile_name_history):
18118 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
18119 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
18120 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
18121 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
18122 * w32proc.c (Qlocal, report_file_error):
18123 * w32term.c (Vwindow_system, updating_frame):
18124 * w32uniscribe.c (initialized, uniscribe_font_driver):
18125 Remove unneeded extern declarations.
18126
2aa46d6c
CY
181272011-03-14 Chong Yidong <cyd@stupidchicken.com>
18128
c96bbc66 18129 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 18130
cffc6f3b
CY
181312011-03-13 Chong Yidong <cyd@stupidchicken.com>
18132
18133 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
18134 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
18135 These macros can no longer be used for assignment.
18136
44f230aa
SM
18137 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
18138 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
18139 (record_buffer_markers, fetch_buffer_markers): New functions for
18140 recording and fetching special buffer markers.
18141 (set_buffer_internal_1, set_buffer_temp): Use them.
18142
18143 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
18144
18145 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
18146
18147 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
18148 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
18149
18150 * xdisp.c (hscroll_window_tree):
18151 (reconsider_clip_changes): Use PT instead of BUF_PT.
18152
d251f04b
EZ
181532011-03-13 Eli Zaretskii <eliz@gnu.org>
18154
18155 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
18156 $(EMACS_ROOT)/lib/intprops.h.
18157
f0c77cd1
PE
181582011-03-13 Paul Eggert <eggert@cs.ucla.edu>
18159
3eca4629
PE
18160 Fix more problems found by GCC 4.5.2's static checks.
18161
7c86ee98
PE
18162 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
18163 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
18164 (xg_free_frame_widgets): Make it clear that a local variable is
18165 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
18166 (gdk_window_get_screen): Make it clear that this macro is needed
18167 only if USE_GTK_TOOLTIP.
1e5524e7
PE
18168 (int_gtk_range_get_value): New function, which avoids a diagnostic
18169 from gcc -Wbad-function-cast.
18170 (xg_set_toolkit_scroll_bar_thumb): Use it.
18171 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
18172 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
18173 (get_utf8_string, xg_get_file_with_chooser):
18174 Rename locals to avoid shadowing.
18175 (create_dialog): Move locals to avoid shadowing.
7c86ee98 18176
41729b81
PE
18177 * xgselect.c (xg_select): Remove unused var.
18178
f0c77cd1
PE
18179 * image.c (four_corners_best): Mark locals as initialized.
18180 (gif_load): Initialize transparent_p to zero (Bug#8238).
18181 Mark another local as initialized.
ec6cf4c6 18182 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 18183
ce0ad53d 18184 * image.c (clear_image_cache): Now static.
d5d5a617 18185 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 18186 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
18187 (x_edge_detection): Remove unnecessary cast that
18188 gcc -Wbad-function-cast diagnoses.
2037898d 18189 (gif_load): Fix pointer signedness.
6ae141d6
PE
18190 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
18191 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 18192
33383987 181932011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 18194
d32df629
PE
18195 Improve quality of tests for time stamp overflow.
18196 For example, without this patch (encode-time 0 0 0 1 1
18197 1152921504606846976) returns the obviously-bogus value (-948597
18198 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
18199 reports time overflow. See
18200 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
18201 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
18202 * editfns.c: Include limits.h and intprops.h.
18203 (TIME_T_MIN, TIME_T_MAX): New macros.
18204 (time_overflow): Move earlier, to before first use.
18205 (hi_time, lo_time): New functions, for an accurate test for
18206 out-of-range times.
18207 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
18208 (Fget_internal_run_time): Don't assume time_t fits in int.
18209 (make_time): Use list2 instead of Fcons twice.
18210 (Fdecode_time): More accurate test for out-of-range times.
18211 (check_tm_member): New function.
18212 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
18213 (lisp_time_argument): Don't rely on undefined left-shift and
18214 right-shift behavior when checking for time stamp overflow.
8be6f318 18215
fe31d94c
PE
18216 * editfns.c (time_overflow): New function, refactoring common code.
18217 (Fformat_time_string, Fdecode_time, Fencode_time):
18218 (Fcurrent_time_string): Use it.
18219
8be6f318
PE
18220 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
18221 * dired.c (make_time): Move to ...
18222 * editfns.c (make_time): ... here.
18223 * systime.h: Note the move.
18224
09d9db2c 182252011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 18226
126bc0dc
YM
18227 * fringe.c (update_window_fringes): Remove unused variables.
18228
c47cbdfd
YM
18229 * unexmacosx.c (copy_data_segment): Also copy __got section.
18230 (Bug#8223)
18231
7ac80be9
EZ
182322011-03-12 Eli Zaretskii <eliz@gnu.org>
18233
c96bbc66 18234 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
18235 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
18236 Constify `char *' arguments and their references according to
18237 prototypes in tparam.h.
18238
ecb0f94d 18239 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 18240
7ac80be9
EZ
18241 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
18242 Adapt all references accordingly.
18243
18244 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
18245
ef1fd07e
TT
182462011-03-11 Tom Tromey <tromey@redhat.com>
18247
18248 * buffer.c (syms_of_buffer): Remove obsolete comment.
18249
7ef4b50c
EZ
182502011-03-11 Eli Zaretskii <eliz@gnu.org>
18251
18252 * termhooks.h (encode_terminal_code): Declare prototype.
18253
18254 * msdos.c (encode_terminal_code): Don't declare prototype.
18255
18256 * term.c (encode_terminal_code): Now external again, used by
18257 w32console.c and msdos.c.
18258
44f230aa
SM
18259 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
18260 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 18261
4b1ec863 182622011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 18263
1714f52b 18264 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 18265
4b1ec863
PE
18266 * fringe.c (update_window_fringes): Mark locals as initialized
18267 (Bug#8227).
18268 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 18269
524c7aa6
PE
18270 * alloc.c (mark_fringe_data): Move decl from here ...
18271 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
18272 to check its interface.
18273 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
18274
a5c0af81 18275 * fontset.c (free_realized_fontset): Now static.
7519b8cd 18276 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 18277 (fontset_font): Mark local as initialized.
a9a06e0b 18278 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 18279
b4716021
PE
18280 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
18281
811e9bac 18282 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 18283 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
18284 (x_own_selection, Fx_disown_selection_internal): Rename locals
18285 to avoid shadowing.
18286 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 18287
7e3ab302
PE
18288 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
18289 so that the caller can use some name other than gcpro1.
18290 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
18291 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
18292 (Fx_backspace_delete_keys_p):
18293 Use them to avoid shadowing, and rename vars to avoid shadowing.
18294 (x_decode_color, x_set_name, x_window): Now static.
6b437900 18295 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 18296 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
18297 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
18298 Remove unused locals.
7e3ab302
PE
18299 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
18300 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
18301 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
18302 macros.
f78faa98 18303
e2b13473
PE
18304 * xterm.h (x_mouse_leave): New decl.
18305
77f23912
PE
18306 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
18307 Remove unused functions.
cdf4ba58
PE
18308 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
18309 (x_calc_absolute_position): Now static.
7411c686 18310 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 18311 Don't declare local "event" unless it's used.
ed7bf3a5
PE
18312 (x_iconify_frame, x_free_frame_resources): Don't declare locals
18313 unless they are used.
38d0b34a
PE
18314 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
18315 (x_fatal_error_signal): Remove; not used.
a6067996
PE
18316 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
18317 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
18318 (x_error_catcher, x_connection_closed, x_error_handler):
18319 (x_error_quitter, xembed_send_message, x_iconify_frame):
18320 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 18321 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 18322 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 18323
44f230aa
SM
18324 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
18325 Rename or move locals to avoid shadowing.
6b463e58 18326 (tty_defined_color, merge_face_heights): Now static.
5967d051 18327 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
18328 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
18329 does not deduce is never used uninitialized.
73719eba
PE
18330 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
18331 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 18332
426994c3 18333 * terminal.c (store_terminal_param): Now static.
5489860b 18334
032f1620 18335 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 18336 (set_frame_menubar): Remove unused local.
d4323972 18337 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
18338 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
18339 since they might point to immutable storage.
281585b0
PE
18340 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
18341 since it's unused otherwise.
032f1620 18342
367c19e5 18343 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 18344 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
18345 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
18346 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 18347 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
18348 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
18349 does not deduce are never used uninitialized.
70739cbe 18350
07b48fa9
PE
18351 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
18352
8868a238 18353 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
18354 * window.c (window_loop, size_window):
18355 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 18356
7e5cf297 18357 * window.c (display_buffer): Now static.
d6550a9f
PE
18358 (size_window): Mark variables that gcc -Wuninitialized
18359 does not deduce are never used uninitialized.
a586633d
PE
18360 * window.h (check_all_windows): New decl, to forestall
18361 gcc -Wmissing-prototypes diagnostic.
5b555da1 18362 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 18363
f6095868
PE
18364 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
18365 shadowing.
18366 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
18367 Include <limits.h>.
18368 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
18369 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
18370 (load_charset_map): Mark variables that gcc -Wuninitialized
18371 does not deduce are never used uninitialized.
53df7c11 18372 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 18373
f38b440c
PE
18374 * coding.c (coding_set_source, coding_set_destination):
18375 Use "else { /* comment */ }" rather than "else /* comment */;"
18376 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
18377 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
18378 a block, when the outer 'i' will do.
18379 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
18380 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
18381 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
18382 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
18383 (Fdecode_sjis_char, Fdefine_coding_system_internal):
18384 Rename locals to avoid shadowing.
18385 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
18386 * coding.c (emacs_mule_char, encode_invocation_designation):
18387 Now static, since they're not used elsewhere.
413bb2db 18388 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 18389 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
18390 (decode_coding_emacs_mule): Mark variables that gcc
18391 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
18392 (detect_coding_iso_2022): Initialize a local variable that might
18393 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 18394 this initialization is needed. (Bug#8211)
5f58e762
PE
18395 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
18396 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
18397 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
18398 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
18399 Remove unused macros.
f38b440c 18400
232b38b9 18401 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 18402 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 18403 * character.c (string_count_byte8): Likewise.
232b38b9 18404
fb90da1b
PE
18405 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
18406 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
18407
fb93dbc2
PE
18408 * chartab.c (copy_sub_char_table): Now static, since it's not used
18409 elsewhere.
5c156ace
PE
18410 (sub_char_table_ref_and_range, char_table_ref_and_range):
18411 Rename locals to avoid shadowing.
bbcd0949 18412 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 18413
7d3b3862 18414 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 18415 (BIDI_BOB): Remove unused macro.
7d3b3862 18416
6be7d3da
PE
18417 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
18418 deduce are never used uninitialized.
c2ed9c8b 18419 * term.c (encode_terminal_code): Likewise.
6be7d3da 18420
75f8807f 18421 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 18422
50938595
PE
18423 * tparam.h: New file.
18424 * term.c, tparam.h: Include it.
18425 * deps.mk (term.o, tparam.o): Depend on tparam.h.
18426 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
18427 Move these decls to tparam.h, and make them agree with what
18428 is actually in tparam.c. The previous trick of using incompatible
18429 decls in different modules does not conform to the C standard.
18430 All callers of tparam changed to use tparam's actual API.
18431 * tparam.c (tparam1, tparam, tgoto):
18432 Use const pointers where appropriate.
18433
fbceeba2
PE
18434 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
18435 * cm.h (struct cm): Likewise.
18436 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
18437 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
18438 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
18439 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
18440 (turn_on_face, init_tty): Likewise.
18441 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 18442
7f3f1250
PE
18443 * term.c (term_mouse_position): Rename local to avoid shadowing.
18444
e6ca6543
PE
18445 * alloc.c (mark_ttys): Move decl from here ...
18446 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
18447
c40f8d15
AS
184482011-03-11 Andreas Schwab <schwab@linux-m68k.org>
18449
18450 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
18451
cfe0661d
JB
184522011-03-09 Juanma Barranquero <lekktu@gmail.com>
18453
18454 * search.c (compile_pattern_1): Remove argument regp, unused since
18455 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
18456 (compile_pattern): Don't pass it.
18457
0afb4571
J
184582011-03-08 Jan Djärv <jan.h.d@swipnet.se>
18459
18460 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
18461 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
18462 for ! HAVE_GTK3.
18463 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
18464
18465 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
18466
18467 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
18468 gdk_window_get_screen, gdk_window_get_geometry,
18469 gdk_x11_window_lookup_for_display and GDK_KEY_g.
18470 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
18471 (xg_get_pixbuf_from_pixmap): New function.
18472 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
18473 to Pixmap, take frame as parameter, remove GdkColormap parameter.
18474 Call xg_get_pixbuf_from_pixmap instead of
18475 gdk_pixbuf_get_from_drawable.
18476 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
18477 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
18478 (xg_check_special_colors): Use GtkStyleContext and its functions
18479 for HAVE_GTK3.
18480 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
18481 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
18482 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
18483 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
18484 Call gtk_widget_get_preferred_size.
0afb4571
J
18485 (xg_frame_resized): gdk_window_get_geometry only takes 5
18486 parameters.
44f230aa
SM
18487 (xg_win_to_widget, xg_event_is_for_menubar):
18488 Call gdk_x11_window_lookup_for_display.
0afb4571
J
18489 (xg_set_widget_bg): New function.
18490 (delete_cb): New function.
895009e1 18491 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 18492 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
18493 (xg_set_background_color): Call xg_set_widget_bg.
18494 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
18495 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
18496 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
18497 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
18498 if ! HAVE_GTK3.
18499 (update_frame_tool_bar): Call gtk_widget_hide.
18500 (xg_initialize): Use GDK_KEY_g.
18501
18502 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
18503 if ! HAVE_GTK3
18504 (x_session_initialize): Call gdk_x11_set_sm_client_id.
18505
18506 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
18507 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
18508 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
18509
1c2cc4ef
JB
185102011-03-08 Juanma Barranquero <lekktu@gmail.com>
18511
18512 * w32xfns.c (select_palette): Check success of RealizePalette against
18513 GDI_ERROR, not zero.
18514
33383987 18515See ChangeLog.11 for earlier changes.
aac0c6e3
MR
18516
18517;; Local Variables:
18518;; coding: utf-8
aac0c6e3
MR
18519;; End:
18520
2f097256 18521 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
18522
18523 This file is part of GNU Emacs.
18524
18525 GNU Emacs is free software: you can redistribute it and/or modify
18526 it under the terms of the GNU General Public License as published by
18527 the Free Software Foundation, either version 3 of the License, or
18528 (at your option) any later version.
18529
18530 GNU Emacs is distributed in the hope that it will be useful,
18531 but WITHOUT ANY WARRANTY; without even the implied warranty of
18532 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18533 GNU General Public License for more details.
18534
18535 You should have received a copy of the GNU General Public License
18536 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.