* alloc.c: Remove unportable assumptions about struct layout.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
0b432f21
PE
12011-04-18 Paul Eggert <eggert@cs.ucla.edu>
2
36372bf9
PE
3 * alloc.c: Remove unportable assumptions about struct layout.
4 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
5 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
6 (allocate_vectorlike, make_pure_vector): Use the new macros,
7 plus offsetof, to remove unportable assumptions about struct layout.
8 These assumptions hold on all porting targets that I know of, but
9 they are not guaranteed, they're easy to remove, and removing them
10 makes further changes easier.
11
0b432f21
PE
12 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
13 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
14 (string_overrun_cookie): Now const. Use initializers that
15 don't formally overflow signed char, to avoid warnings.
000098c1
PE
16 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
17 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
18 (allocate_buffer): Don't assume sizeof (struct buffer) is a
19 multiple of sizeof (EMACS_INT); it need not be, if
20 alignof(EMACS_INT) < sizeof (EMACS_INT).
0b432f21 21
4581706e
CY
222011-04-17 Chong Yidong <cyd@stupidchicken.com>
23
24 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
25
26 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
27
28 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
29 definition for no-X builds.
30
4887c6e2 312011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 32
fd35b6f9
PE
33 Static checks with GCC 4.6.0 and non-default toolkits.
34
5c1ccb01
PE
35 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
36
006c5daa
PE
37 * process.c (keyboard_bit_set): Define only if SIGIO.
38 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
39 (send_process): Repair possible setjmp clobbering.
40
efc736d3
PE
41 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
42
4e2fe2e6
PE
43 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
44
f97334a2
PE
45 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
46
4e75f29d
PE
47 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
48 Define only if needed.
49
90efadd1
PE
50 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
51 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 52 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 53
3c647824
PE
54 * dispextern.h (struct redisplay_interface): Rename param
55 to avoid shadowing.
e264f262 56 * termhooks.h (struct terminal): Likewise.
761383f4 57 * xterm.c (xembed_send_message): Likewise.
3c647824 58
b58c5c4a
PE
59 * insdel.c (make_gap_smaller): Define only if
60 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
61
cad59032
PE
62 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
63 it.
64
c339dc2e
PE
65 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
66 so that we aren't warned about unused symbols.
67
91a3e27b
PE
68 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
69
399c71d3 70 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 71
8ffc96f5
PE
72 * xfns.c (x_real_positions): Mark locals as initialized.
73
eef9bc79
PE
74 * xmenu.c (xmenu_show): Don't use uninitialized vars.
75
098db9dd
PE
76 * xterm.c: Fix problems found by static analysis with other toolkits.
77 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
78 (x_dispatch_event): Declare static if USE_GTK, and
79 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 80 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 81 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
098db9dd
PE
82 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only if
83 defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
84
eb18f6cc
PE
85 * xmenu.c (menu_help_callback): Pointer type fixes.
86 Use const pointers when pointing at readonly data. Avoid pointer
87 signedness clashes.
88 (FALSE): Remove unused macro.
89 (update_frame_menubar): Remove unused decl.
90
1fe72bf8
PE
91 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
92
60d9e1db
PE
93 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
94 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
95 (single_menu_item): Rename local to avoid shadowing.
96
39261c26
PE
97 * keyboard.c (make_lispy_event): Remove unused local var.
98
018c5e19
PE
99 * frame.c, frame.h (x_get_resource_string): Bring this back, but
100 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
101
63d2b86e
PE
102 * bitmaps: Change bitmaps from unsigned char back to the X11
103 compatible char. Avoid the old compiler warnings about
104 out-of-range initializers by using, for example, '\xab' rather
105 than 0xab.
106
aefd87e1
PE
107 * xgselect.c (xgselect_initialize): Check vs interface
108 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
109
bf501fb9
PE
110 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
111
e9829fdf
PE
112 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
113 to read-only memory.
114
1086c095
PE
115 * fns.c (vector): Remove; this old hack is no longer needed.
116
2baccd04 117 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 118 Remove unused var.
dde42981 119 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 120
72391843 121 * xrdb.c (x_load_resources): Omit unused local.
3565b346 122
436c16df 123 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 124 (x_window): Rename locals to avoid shadowing.
dc5ddd85 125 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 126
92bb796d 127 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 128 (x_term_init): Remove local to avoid shadowing.
92bb796d 129
764430a3 130 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
131
132 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
133 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
134
d1dfb56c
EZ
1352011-04-16 Eli Zaretskii <eliz@gnu.org>
136
c4354cb4
EZ
137 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
138
d1dfb56c
EZ
139 Fix regex.c, syntax.c and friends for buffers > 2GB.
140 * syntax.h (struct gl_state_s): Declare character position members
141 EMACS_INT.
142
143 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
144
145 * textprop.c (verify_interval_modification, interval_of): Declare
146 arguments EMACS_INT.
147
148 * intervals.c (adjust_intervals_for_insertion): Declare arguments
149 EMACS_INT.
150
151 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
152
153 * indent.c (Fvertical_motion): Local variable it_start is now
154 EMACS_INT.
155
156 * regex.c (re_match, re_match_2, re_match_2_internal)
157 (bcmp_translate, regcomp, regexec, print_double_string)
158 (group_in_compile_stack, re_search, re_search_2, regex_compile)
159 (re_compile_pattern, re_exec): Declare arguments and local
160 variables `size_t' and `ssize_t' and return values `regoff_t', as
161 appropriate.
162 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
163 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
164 <compile_stack_type>: `size' and `avail' are now `size_t'.
165
166 * regex.h <regoff_t>: Use ssize_t, not int.
167 (re_search, re_search_2, re_match, re_match_2): Arguments that
168 specify buffer/string position and length are now ssize_t and
169 size_t. Return type is regoff_t.
170
613052cd
BK
1712011-04-16 Ben Key <bkey76@gmail.com>
172
173 * nsfont.m: Fixed bugs in ns_get_family and
174 ns_descriptor_to_entity that were caused by using free to
175 deallocate memory blocks that were allocated by xmalloc (via
176 xstrdup). This caused Emacs to crash when compiled with
177 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
178 --enable-checking=xmallocoverrun). xfree is now used to
179 deallocate these memory blocks.
180
4170f62f 1812011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 182
71b41406
PE
183 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
184
9587a89d
PE
185 emacs_write: Accept and return EMACS_INT for sizes.
186 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
187 et seq.
188 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
189 Accept and return EMACS_INT.
190 (emacs_gnutls_write): Return the number of bytes written on
191 partial writes.
192 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
193 (emacs_read, emacs_write): Remove check for negative size, as the
194 Emacs source code has been audited now.
9587a89d
PE
195 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
196 (emacs_read, emacs_write): Use it.
273a5f82
PE
197 * process.c (send_process): Adjust to the new signatures of
198 emacs_write and emacs_gnutls_write. Do not attempt to store
199 a byte offset into an 'int'; it might overflow.
9587a89d 200 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 201
3e047f51
PE
202 * sound.c: Don't assume sizes fit in 'int'.
203 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 204 Return EMACS_INT, not int.
3e047f51 205 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
206 Accept EMACS_INT, not int.
207 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
208 record read return values.
209
cc39a9db
BK
2102011-04-15 Ben Key <bkey76@gmail.com>
211
c9d0ec6d
JB
212 * keyboard.c (Qundefined): Don't declare static since it is used
213 in nsfns.m.
214 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
215 static since they are used in nsfont.m.
cc39a9db 216
6c60eb9f
SM
2172011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
218
219 * process.c (Qprocessp): Don't declare static.
220 * lisp.h (Qprocessp): Declare again.
221
7990b61a
JB
2222011-04-15 Juanma Barranquero <lekktu@gmail.com>
223
224 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
225
5d4cb038
PE
2262011-04-14 Paul Eggert <eggert@cs.ucla.edu>
227
8bd7b830 228 Improve C-level modularity by making more things 'static'.
cd64ea1d 229
e3b27b31
PE
230 Don't publish debugger-only interfaces to other modules.
231 * lisp.h (safe_debug_print, debug_output_compilation_hack):
232 (verify_bytepos, count_markers): Move decls to the only modules
233 that need them.
234 * region-cache.h (pp_cache): Likewise.
235 * window.h (check_all_windows): Likewise.
236 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
237
5d4cb038
PE
238 * sysdep.c (croak): Now static, if
239 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
240 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
241
242 * alloc.c (refill_memory_reserve): Now static if
243 !defined REL_ALLOC || defined SYSTEM_MALLOC.
244 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 245
e87b6180
PE
246 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
247 Define only if USE_LUCID.
248
ac64929e
PE
249 * xrdb.c (x_customization_string, x_rm_string): Now static.
250
6f37259d
PE
251 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
252 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
253
1683e3ab
PE
254 * xdisp.c (draw_row_with_mouse_face): Now static.
255 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
256
de9c2632
PE
257 * window.h (check_all_windows): Mark externally visible.
258
2b96acb7
PE
259 * window.c (window_deletion_count): Now static.
260
261 * undo.c: Make symbols static if they're not exported.
262 (last_undo_buffer, last_boundary_position, pending_boundary):
263 Now static.
264
50436f33
PE
265 * textprop.c (interval_insert_behind_hooks): Now static.
266 (interval_insert_in_front_hooks): Likewise.
267
64520e5c
PE
268 * term.c: Make symbols static if they're not exported.
269 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
270 (max_frame_lines, tty_set_terminal_modes):
271 (tty_reset_terminal_modes, tty_turn_off_highlight):
272 (get_tty_terminal): Now static.
273 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
274 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 275 HAVE_WINDOW_SYSTEM.
64520e5c
PE
276 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
277 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
278
1fa53021
PE
279 * sysdep.c: Make symbols static if they're not exported.
280 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
281 Now static.
282 (sigprocmask_set, full_mask): Remove; unused.
283 (wait_debugging): Mark as visible.
284 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
285 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
286
d4b43b22
PE
287 * syntax.c (syntax_temp): Define only if !__GNUC__.
288
b7c513d0
PE
289 * sound.c (current_sound_device, current_sound): Now static.
290
989b29ad
PE
291 * search.c (searchbufs, searchbuf_head): Now static.
292
13a55a78
PE
293 * scroll.c (scroll_cost): Remove; unused.
294 * dispextern.h (scroll_cost): Remove decl.
295
de68a1fc
PE
296 * region-cache.h (pp_cache): Mark as externally visible.
297
40ccffa6
PE
298 * process.c: Make symbols static if they're not exported.
299 (process_tick, update_tick, create_process, chan_process):
300 (Vprocess_alist, proc_buffered_char, datagram_access):
301 (fd_callback_data, send_process_frame, process_sent_to): Now static.
302 (deactivate_process): Mark defn as static, as well as decl.
303 * lisp.h (create_process): Remove decl.
304 * process.h (chan_process, Vprocess_alist): Remove decls.
305
ad64fc97
PE
306 * print.c: Make symbols static if they're not exported.
307 (print_depth, new_backquote_output, being_printed, print_buffer):
308 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
309 (print_interval, print_number_index, initial_stderr_stream):
310 Now static.
311 * lisp.h (Fprinc): Remove decl.
312 (debug_output_compilation_hack): Mark as externally visible.
313
adddb265
PE
314 * sysdep.c (croak): Move decl from here to syssignal.h.
315 * syssignal.h (croak): Put it here, so the API can be checked when
316 'croak' is called from dissociate_if_controlling_tty.
317
1717ede2
PE
318 * minibuf.c: Make symbols static if they're not exported.
319 (minibuf_save_list, choose_minibuf_frame): Now static.
320 * lisp.h (choose_minibuf_frame): Remove decl.
321
fa5fb2bc
PE
322 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
323
1e3890d1
PE
324 * lread.c: Make symbols static if they're not exported.
325 (read_objects, initial_obarray, oblookup_last_bucket_number):
326 Now static.
327 (make_symbol): Remove; unused.
328 * lisp.h (initial_obarray, make_symbol): Remove decls.
329
8a1414fa
PE
330 * keyboard.c: Make symbols static if they're not exported.
331 (single_kboard, recent_keys_index, total_keys, recent_keys):
332 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
333 (this_single_command_key_start, echoing, last_auto_save):
334 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
335 (command_loop, echo_now, keyboard_init_hook, help_char_p):
336 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
337 (Vlispy_mouse_stem, double_click_count):
338 Now static.
339 (force_auto_save_soon): Define only if SIGDANGER.
340 (ignore_mouse_drag_p): Now static if
341 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
342 (print_help): Remove; unused.
343 (stop_character, last_timer_event): Mark as externally visible.
344 * keyboard.h (ignore_mouse_drag_p): Declare only if
345 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
346 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
347 * lisp.h (echoing): Remove decl.
348 (force_auto_save_soon): Declare only if SIGDANGER.
349 * xdisp.c (redisplay_window): Simplify code, to make it more
350 obvious that ignore_mouse_drag_p is not accessed if !defined
351 USE_GTK && !defined HAVE_NS.
352
93ea6e8f
PE
353 * intervals.c: Make symbols static if they're not exported.
354 (merge_properties_sticky, merge_interval_right, delete_interval):
355 Now static.
356 * intervals.h (merge_interval_right, delete_interval): Remove decls.
357
77382fcc
PE
358 * insdel.c: Make symbols static if they're not exported.
359 However, leave prepare_to_modify_buffer alone. It's never
360 called from outside this function, but that appears to be a bug.
361 (combine_after_change_list, combine_after_change_buffer):
4889fc82 362 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
363 (adjust_after_replace_noundo): Remove; unused.
364 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 365 (signal_before_change): Remove decls.
77382fcc 366
9306c32e
PE
367 * indent.c (val_compute_motion, val_vmotion): Now static.
368
cd44d2eb
PE
369 * image.c: Make symbols static if they're not exported.
370 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
371 if USE_GTK.
372 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
373 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
374
ad9a7a06
PE
375 * fringe.c (standard_bitmaps): Now static.
376 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
377
81626931
PE
378 * frame.c: Make symbols static if they're not exported.
379 (x_report_frame_params, make_terminal_frame): Now static.
380 (get_frame_param): Now static, unless HAVE_NS.
381 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
382 (x_get_resource_string): Remove; not used.
383 * frame.h (make_terminal_frame, x_report_frame_params):
384 (x_get_resource_string); Remove decls.
385 (x_fullscreen_adjust): Declare only if WINDOWSNT.
386 * lisp.h (get_frame_param): Declare only if HAVE_NS.
387
239f9db9
PE
388 * font.c, fontset.c: Make symbols static if they're not exported.
389 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
390 (FACE_SUITABLE_FOR_CHAR_P): Use it.
391 * font.c (font_close_object): Now static.
392 * font.h (font_close_object): Remove.
393 * fontset.c (FONTSET_OBJLIST): Remove.
394 (free_realized_fontset) #if-0 the body, which does nothing.
395 (face_suitable_for_char_p): #if-0, as it's never called.
396 * fontset.h (face_suitable_for_char_p): Remove decl.
397 * xfaces.c (face_at_string_position): Use
398 FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
399 since 0 is always ASCII.
400
dfcf3579
PE
401 * fns.c (weak_hash_tables): Now static.
402
5045092b
PE
403 * fileio.c: Make symbols static if they're not exported.
404 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
405 (Vwrite_region_annotation_buffers): Now static.
406
57a96f5c
PE
407 * eval.c: Make symbols static if they're not exported.
408 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
409 * lisp.h (backtrace_list): Remove decl.
410
35f08c38
PE
411 * emacs.c: Make symbols static if they're not exported.
412 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
413 (fatal_error_code, fatal_error_signal_hook, standard_args):
414 Now static.
415 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
416 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
417 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
418 * lisp.h (fatal_error_signal_hook): Remove decl.
419 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
420
f44bd759
PE
421 * editfns.c: Move a (normally-unused) function to its only use.
422 * editfns.c, lisp.h (get_operating_system_release): Remove.
423 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
424 worth the hassle of breaking this out.
425
b532497d
PE
426 * xterm.c: Make symbols static if they're not exported.
427 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
428 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
429 (x_destroy_window, x_delete_display):
430 Now static.
431 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
432 (x_mouse_leave): Remove; unused.
433 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
434 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
435 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
436 Remove decls.
437 (x_mouse_leave): Declare only if WINDOWSNT.
438 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
439 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
440 USE_X_TOOLKIT.
441
1675728f
PE
442 * ftxfont.c: Make symbols static if they're not exported.
443 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
444 HAVE_FREETYPE.
445 * font.h (ftxfont_driver): Likewise.
446
e4cebfca
PE
447 * xfns.c: Make symbols static if they're not exported.
448 (x_last_font_name, x_display_info_for_name):
449 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
450 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
451 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
452 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
453 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
454 (last_show_tip_args): Now static.
455 (xic_defaut_fontset, xic_create_fontsetname): Define only if
456 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
457 (x_screen_planes): Remove; unused.
458 * dispextern.h (x_screen_planes): Remove decl.
459
5bf46f05
PE
460 * dispnew.c: Make symbols static if they're not exported.
461 * dispextern.h (redraw_garbaged_frames, scrolling):
462 (increment_row_positions): Remove.
463 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
464 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
465 Now static.
466 (redraw_garbaged_frames): Remove; unused.
467
435f4c28
PE
468 * xfaces.c: Make symbols static if they're not exported.
469 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
470 Remove decls.
471 * xterm.h (defined_color): Remove decls.
472 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
473 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
474 (menu_face_changed_default, defined_color, free_realized_face):
475 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
476 (ascii_face_of_lisp_face): Remove; unused.
477
8524aef3
PE
478 * xdisp.c: Make symbols static if they're not exported.
479 * dispextern.h (scratch_glyph_row, window_box_edges):
480 (glyph_to_pixel_coords, set_cursor_from_row):
481 (get_next_display_element, set_iterator_to_next):
482 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
483 (show_mouse_face): Remove decls
484 * frame.h (message_buf_print): Likewise.
485 * lisp.h (pop_message, set_message, check_point_in_composition):
486 Likewise.
487 * xterm.h (set_vertical_scroll_bar): Likewise.
488 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
489 (message_buf_print, scratch_glyph_row, displayed_buffer):
490 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
491 (get_next_display_element, show_mouse_face, window_box_edges):
492 (frame_to_window_pixel_xy, check_point_in_composition):
493 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
494 (glyph_to_pixel_coords): Remove; unused.
495
16390cd2
PE
496 * dired.c (file_name_completion): Now static.
497
498 * dbusbind.c (xd_in_read_queued_messages): Now static.
499
a25f4dfa
PE
500 * lisp.h (circular_list_error, FOREACH): Remove; unused.
501 * data.c (circular_list_error): Remove.
502
14a9c8df
PE
503 * commands.h (last_point_position, last_point_position_buffer):
504 (last_point_position_window): Remove decls.
505 * keyboard.c: Make these variables static.
506
74ab6df5
PE
507 * coding.h (coding, code_convert_region, encode_coding_gap): Remove
508 decls.
509 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
510 (iso_code_class, detect_coding, code_convert_region): Now static.
511 (encode_coding_gap): Remove; unused.
512
38dfbee1
PE
513 * chartab.c (chartab_chars, chartab_bits): Now static.
514
a2cb4e63
PE
515 * charset.h (charset_iso_8859_1): Remove decl.
516 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
517 Now static.
518
127198fd
PE
519 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
520 * ccl.c (Vccl_program_table): Now static.
521 (check_ccl_update): Remove; unused.
522
d85b608f
PE
523 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
524 * category.h: ... from here.
525 * category.c (check_category_table, set_category_set): Now static.
526
31cd66f3
PE
527 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
528 * lisp.h: Remove these decls.
529
c358e587
PE
530 * buffer.c (buffer_count): Remove unused var.
531
e78aecca
PE
532 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
533 so that it's not optimized away.
534 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
535 * dispextern.h (bidi_dump_cached_states): Remove, since it's
536 exported only to the debugger.
537
e192d7d3
PE
538 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
539 * atimer.h (run_all_atimers): Removed; not exported.
540
92470028
PE
541 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
542 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
543 was inaccessible from Lisp.
544 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
545 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
546
244ed907
PE
547 alloc.c: Import and export fewer symbols, and remove unused items.
548 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
549 is defined.
550 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
551 it's not optimized away by whole-program optimization.
552 (message_enable_multibyte, free_misc): Remove.
553 (catchlist, handlerlist, mark_backtrace):
554 Declare only if BYTE_MARK_STACK.
555 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
556 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
557 (message_enable_multibyte): Remove decl.
558 (free_misc, interval_free_list, float_block, float_block_index):
559 (n_float_blocks, float_free_list, cons_block, cons_block_index):
560 (cons_free_list, last_marked_index):
561 Now static.
562 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
563 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
564 (mark_backtrace): Define only if BYTE_MARK_STACK.
565 * xdisp.c (message_enable_multibyte): Now static.
566
61c2b50e 567 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
568 This makes it easier for human readers (and static analyzers)
569 to see whether these variables are used from other modules.
570 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
571 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
572 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
573 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
574 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
575 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
576 * xmenu.c, xselect.c:
577 Declare Q* vars static if they are not used in other modules.
578 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
579 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
580 Remove decls of unexported vars.
581 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
582
95c82688
PE
583 * lisp.h (DEFINE_FUNC): Make sname 'static'.
584
16a97296
PE
585 Make Emacs functions such as Fatom 'static' by default.
586 This makes it easier for human readers (and static analyzers)
587 to see whether these functions can be called from other modules.
588 DEFUN now defines a static function. To make the function external
589 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
590 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
591 (Finit_image_library):
16a97296
PE
592 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
593 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
594 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
595 Remove decls, since these functions are now static.
596 (Funintern, Fget_internal_run_time): New decls, since these functions
597 were already external.
95c82688 598
16a97296
PE
599 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
600 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
601 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
602 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
603 * keyboard.c, keymap.c, lread.c:
604 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
605 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
606 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
607 Mark functions with DEFUE instead of DEFUN,
608 if they are used in other modules.
609 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
610 decls for now-static functions.
611 * buffer.h (Fdelete_overlay): Remove decl.
612 * callproc.c (Fgetenv_internal): Mark as internal.
613 * composite.c (Fremove_list_of_text_properties): Remove decl.
614 (Fcomposition_get_gstring): New forward static decl.
615 * composite.h (Fcomposite_get_gstring): Remove decl.
616 * dired.c (Ffile_attributes): New forward static decl.
617 * doc.c (Fdocumntation_property): New forward static decl.
618 * eval.c (Ffetch_bytecode): New forward static decl.
619 (Funintern): Remove extern decl; now in .h file where it belongs.
620 * fileio.c (Fmake_symbolic_link): New forward static decl.
621 * image.c (Finit_image_library): New forward static decl.
622 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
623 * intervals.h (Fprevious_property_change):
624 (Fremove_list_of_text_properties): Remove decls.
625 * keyboard.c (Fthis_command_keys): Remove decl.
626 (Fcommand_execute): New forward static decl.
627 * keymap.c (Flookup_key): New forward static decl.
628 (Fcopy_keymap): Now static.
629 * keymap.h (Flookup_key): Remove decl.
630 * process.c (Fget_process): New forward static decl.
631 (Fprocess_datagram_address): Mark as internal.
632 * syntax.c (Fsyntax_table_p): New forward static decl.
633 (skip_chars): Remove duplicate decl.
634 * textprop.c (Fprevious_property_change): New forward static decl.
635 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
636 Now internal.
637 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
638 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
639
785bbd42
PE
640 * editfns.c (Fformat): Remove unreachable code.
641
8b913b57
AS
6422011-04-14 Andreas Schwab <schwab@linux-m68k.org>
643
644 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
645 change. (Bug#8496)
646
a6744a35
EZ
6472011-04-13 Eli Zaretskii <eliz@gnu.org>
648
649 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
650 when at ZV. (Bug#8487)
651
e7974947
AS
6522011-04-12 Andreas Schwab <schwab@linux-m68k.org>
653
baad03f0
AS
654 * charset.c (Fclear_charset_maps): Use xfree instead of free.
655 (Bug#8437)
656 * keyboard.c (parse_tool_bar_item): Likewise.
657 * sound.c (sound_cleanup, alsa_close): Likewise.
658 * termcap.c (tgetent): Likewise.
659 * xfns.c (x_default_font_parameter): Likewise.
660 * xsettings.c (read_and_apply_settings): Likewise.
661
e7974947
AS
662 * alloc.c (overrun_check_malloc, overrun_check_realloc)
663 (overrun_check_free): Protoize.
664
28272684
PE
6652011-04-12 Paul Eggert <eggert@cs.ucla.edu>
666
667 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
668 since callers should never pass a negative size.
669 Change the signature to match that of plain 'read' and 'write'; see
670 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
671 * lisp.h: Update prototypes of emacs_write and emacs_read.
672
11997c76
EZ
6732011-04-11 Eli Zaretskii <eliz@gnu.org>
674
675 * xdisp.c (redisplay_window): Don't try to determine the character
676 position of the scroll margin if the window start point w->startp
e896f03c 677 is outside the buffer's accessible region. (Bug#8468)
11997c76 678
8a2cbd72
EZ
6792011-04-10 Eli Zaretskii <eliz@gnu.org>
680
681 Fix write-region and its subroutines for buffers > 2GB.
682 * fileio.c (a_write, e_write): Modify declaration of arguments and
683 local variables to support buffers larger than 2GB.
684 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
685
686 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
687 argument, local variables, and return value.
688
689 * lisp.h: Update prototypes of emacs_write and emacs_read.
690
691 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
692
4073e537 6932011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 694
1ebfdcb6
PE
695 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
696
b2ded58d
PE
697 Fix more problems found by GCC 4.6.0's static checks.
698
7d66342c
PE
699 * xdisp.c (vmessage): Use a better test for character truncation.
700
bbf47d44
PE
701 * charset.c (load_charset_map): <, not <=, for optimization,
702 and to avoid potential problems with integer overflow.
9248994d 703 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 704 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 705 * editfns.c (Fformat): Likewise.
1e69125e 706 * syntax.c (skip_chars): Likewise.
3befa583 707
e3019616
PE
708 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
709 This also lets GCC 4.6.0 generate slightly better loop code.
710
becfa255
PE
711 * callint.c (Fcall_interactively): <, not <=, for optimization.
712 (Fcall_interactively): Count the number of arguments produced,
713 not the number of arguments given. This is simpler and lets GCC
714 4.6.0 generate slightly better code.
715
dae0cd48
PE
716 * ftfont.c: Distingish more carefully between FcChar8 and char.
717 The previous code passed unsigned char * to a functions like
718 strlen and xstrcasecmp that expect char *, which does not
719 conform to the C standard.
720 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
721 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
722 char * when the C standard requires it.
723
76032d70
PE
724 * keyboard.c (read_char): Remove unused var.
725
eb3f1cc8
PE
726 * eval.c: Port to Windows vsnprintf (Bug#8435).
727 Include <limits.h>.
728 (SIZE_MAX): Define if the headers do not.
729 (verror): Do not give up if vsnprintf returns a negative count.
730 Instead, grow the buffer. This ports to Windows vsnprintf, which
731 does not conform to C99. Problem reported by Eli Zaretskii.
732 Also, simplify the allocation scheme, by avoiding the need for
733 calling realloc, and removing the ALLOCATED variable.
734
70476b54
PE
735 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
736
12020a9e
PE
737 Remove invocations of doprnt, as Emacs now uses vsnprintf.
738 But keep the doprint source code for now, as we might revamp it
739 and use it again (Bug#8435).
ea6c7ae6
PE
740 * lisp.h (doprnt): Remove.
741 * Makefile.in (base_obj): Remove doprnt.o.
742 * deps.mk (doprnt.o): Remove.
743
5fdb398c
PE
744 error: Print 32- and 64-bit integers portably (Bug#8435).
745 Without this change, on typical 64-bit hosts error ("...%d...", N)
746 was used to print both 32- and 64-bit integers N, which relied on
747 undefined behavior.
748 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
749 New macro.
750 * lisp.h (error, verror): Mark as printf-like functions.
751 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
752 Report overflow in size calculations when allocating printf buffer.
753 Do not truncate output string at its first null byte.
754 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
755 Truncate the output at a character boundary, since vsnprintf does not
756 do that.
757 * charset.c (check_iso_charset_parameter): Convert internal
758 character to string before calling 'error', since %c now has the
759 printf meaning.
760 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
761 overflow when computing char to be passed to 'error'. Do not
762 pass Lisp_Object to 'error'; pass the integer instead.
763 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
764 formatted with plain %d.
765
b189fa66
PE
766 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
767
bff87ef0
PE
768 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
769
7e2cac20
PE
770 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
771
ce4d90b5
PE
772 * xterm.c (x_catch_errors): Remove duplicate declaration.
773
266c9547
PE
774 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
775
79c49ad2
PE
776 * xdisp.c, lisp.h (message_nolog): Remove; unused.
777
368f4090
JM
7782011-04-10 Jim Meyering <meyering@redhat.com>
779
780 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
781 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
782 return ssize_t not "int", and use size_t as the buffer length.
783 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
784 * gnutls.h: Update declarations.
785 * process.c (read_process_output): Use ssize_t, to match.
786 (send_process): Likewise.
787
a32d4040
CY
7882011-04-09 Chong Yidong <cyd@stupidchicken.com>
789
790 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
791
8546720e 7922011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 793
8546720e
GM
794 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
795 unsigned char, to match FcChar8 type definition.
aac0c6e3 796
8546720e
GM
797 * xterm.c (handle_one_xevent):
798 * xmenu.c (create_and_show_popup_menu):
799 * xselect.c (x_decline_selection_request)
800 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 801
0a2f5c1a 8022011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
803
804 Fix some uses of `int' instead of EMACS_INT.
805 * search.c (string_match_1, fast_string_match)
806 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
807 (scan_buffer, find_next_newline_no_quit)
808 (find_before_next_newline, search_command, Freplace_match)
809 (Fmatch_data): Make some `int' variables be EMACS_INT.
810
811 * xdisp.c (display_count_lines): 3rd argument and return value now
812 EMACS_INT. All callers changed.
813 (pint2hrstr): Last argument is now EMACS_INT.
814
815 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
816 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
817 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
818 (decode_coding_utf_16, decode_coding_emacs_mule)
819 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
820 (decode_coding_ccl, decode_coding_charset)
821 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
822 (decode_coding_iso_2022, decode_coding_emacs_mule)
823 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
824 <char_offset, last_offset>: Declare EMACS_INT.
825 (encode_coding_utf_8, encode_coding_utf_16)
826 (encode_coding_emacs_mule, encode_invocation_designation)
827 (encode_designation_at_bol, encode_coding_iso_2022)
828 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
829 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
830 Declare EMACS_INT.
831 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
832 (encode_invocation_designation): Last argument P_NCHARS is now
833 EMACS_INT.
834 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
835 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
836
837 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
838 All users changed.
839
840 * ccl.c (Fccl_execute_on_string): Declare some variables
841 EMACS_INT.
842
8546720e 8432011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
844
845 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
846
4e19a977
CS
8472011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
848
849 * process.c (Fformat_network_address): Doc fix.
850
87302331
R
8512011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
852
853 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
854
cbb59342
CY
8552011-04-08 Chong Yidong <cyd@stupidchicken.com>
856
857 * keyboard.c (read_char): Call Lisp function help-form-show,
858 instead of using internal_with_output_to_temp_buffer.
859 (Qhelp_form_show): New var.
e0d38eeb 860 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
861
862 * print.c (internal_with_output_to_temp_buffer): Function deleted.
863
864 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
865
e67a13ab
CY
8662011-04-06 Chong Yidong <cyd@stupidchicken.com>
867
868 * process.c (Flist_processes): Removed to Lisp.
869 (list_processes_1): Deleted.
870
973f782d
EZ
8712011-04-06 Eli Zaretskii <eliz@gnu.org>
872
7c106b1e
EZ
873 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
874
973f782d
EZ
875 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
876
41cf7d1a 8772011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 878
ca23cc88
PE
879 Fix more problems found by GCC 4.6.0's static checks.
880
f390e2d5
PE
881 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
882
42eea0d0
PE
883 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
884
b69769da 885 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 886
f9541e84
PE
887 * xdisp.c (vmessage): Mark as a printf-like function.
888
13841b55
PE
889 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
890
c136c10f
PE
891 * sound.c (sound_warning): Don't crash if arg contains a printf format.
892
5e2d4a30
PE
893 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
894 printf-like functions.
895 (tiff_load): Add casts to remove these marks before passing them
896 to system-supplied API.
897
583f48b9
PE
898 * eval.c (Fsignal): Remove excess argument to 'fatal'.
899
b25d760e
PE
900 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
901 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
902 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
903 directly, rather than having caller test rule sign. This avoids
904 some unnecessary tests.
905 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
906 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
907 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 908
bc7b6697 909 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 910 (xfont_open): Avoid unnecessary tests.
bc7b6697 911
27ccc379
PE
912 * composite.c (composition_gstring_put_cache): Use unsigned integer.
913
dcd5c89a
PE
914 * composite.h, composite.c (composition_gstring_put_cache):
915 Use EMACS_INT, not int, for length.
916
b13a45c6
PE
917 * composite.h (COMPOSITION_DECODE_REFS): New macro,
918 breaking out part of COMPOSITION_DECODE_RULE.
919 (COMPOSITION_DECODE_RULE): Use it.
920 * composite.c (get_composition_id): Remove unused local vars,
921 by using the new macro.
922
1e792e4d
PE
923 * textprop.c (set_text_properties_1): Change while to do-while,
924 since the condition is always true at first.
925
dc6c6455 926 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
927 (interval_deletion_adjustment): Return unsigned value.
928 All uses changed.
dc6c6455 929
aba7731a
PE
930 * process.c (list_processes_1, create_pty, read_process_output):
931 (exec_sentinel): Remove vars that were set but not used.
afd4052b 932 (create_pty): Remove unnecessary "volatile"s.
bc57d757 933 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 934 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 935 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 936
fdfc4bf3
PE
937 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
938
fca8fe46 939 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 940 (update_syntax_table): Use unsigned instead of int.
fca8fe46 941
06a0259a 942 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 943 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 944 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 945
e7b9e80f
PE
946 * print.c (print_error_message): Avoid int overflow.
947
56201685
PE
948 * font.c (font_list_entities): Redo for clarity,
949 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
950
78834453 951 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 952 (font_score): Avoid potential overflow in diff calculation.
78834453 953
0bc0b309 954 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 955 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 956
e610eaca
PE
957 * eval.c (funcall_lambda): Rename local to avoid shadowing.
958
b895abce
PE
959 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
960 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
961 can always succeed if overflow has undefined behavior.
962
1f1d9321 963 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 964 (wordify): Omit three unnecessary tests.
1f1d9321 965
c59478bc
PE
966 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
967 All callers changed. This avoids the need for an unused var.
968
79b73827
PE
969 * casefiddle.c (casify_region): Remove var that is set but not used.
970
a4db5dfe
PE
971 * dired.c (file_name_completion): Remove var that is set but not used.
972
43aae36e
PE
973 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
974
2a47c44d 975 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 976 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 977
a37c69bf
PE
978 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
979 Check for integer overflow on size calculations.
980
328ab8e7
PE
981 * buffer.c (Fprevious_overlay_change): Remove var that is set
982 but not used.
983
e5a2a5cb
PE
984 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
985 Remove vars that are set but not used.
8d84a6eb 986 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 987 (timer_check_2): Mark vars as initialized.
e5a2a5cb 988
a60e5f68
PE
989 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
990
f661cb61 991 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 992 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 993
f0397f5a
PE
994 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
995 that are set but not used.
996
8664db06 997 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 998 if XCreateBitmapFromData fails (Bug#8410).
8664db06 999
6abdaa4a
PE
1000 * xselect.c (x_get_local_selection, x_handle_property_notify):
1001 Remove vars that are set but not used.
1002
0ce7538d 1003 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 1004 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 1005
9ae848fc
PE
1006 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
1007 Remove var that is set but not used.
0b918413
PE
1008 (scroll_bar_windows_size): Now size_t, not int.
1009 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
1010 Check for overflow.
9ae848fc 1011
a5a62657
PE
1012 * xfaces.c (realize_named_face): Remove vars that are set but not used.
1013 (map_tty_color) [!defined MSDOS]: Likewise.
1014
5c5cdd39
PE
1015 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
1016
66ebf983
PE
1017 * coding.c: Remove vars that are set but not used.
1018 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
1019 All callers changed.
1020 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
1021 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
1022 (decode_coding_charset): Remove vars that are set but not used.
1023
1be4d761
PE
1024 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
1025 that is set but not used.
1026
47553fa8
PE
1027 * print.c (print_object): Remove var that is set but not used.
1028
1f7196bf 1029 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
1030 The gnulib version avoids calling malloc in the usual case,
1031 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
1032 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
1033 * filelock.c (current_lock_owner): Likewise.
1034 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
1035 * sysdep.c: Include allocator.h, careadlinkat.h.
1036 (emacs_no_realloc_allocator): New static constant.
1037 (emacs_readlink): New function.
fdb61804
PE
1038 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
1039 ../lib/careadlinkat.h.
d1fdcab7 1040
f84c17c7
SM
10412011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
1042
1043 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
1044 first non-nil return value).
1045
ef3862ad
JD
10462011-04-03 Jan Djärv <jan.h.d@swipnet.se>
1047
1048 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
1049 if not defined (Bug#8403).
1050
376a7006
JB
10512011-04-02 Juanma Barranquero <lekktu@gmail.com>
1052
1053 * xdisp.c (display_count_lines): Remove parameter `start',
1054 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
1055 (get_char_face_and_encoding): Remove parameter `multibyte_p',
1056 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
1057 (fill_stretch_glyph_string): Remove parameters `row' and `area',
1058 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
1059 and thereabouts. All callers changed.
1060 (get_per_char_metric): Remove parameter `f', unused since
1061 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
1062
6ca3801d
JM
10632011-04-02 Jim Meyering <meyering@redhat.com>
1064
1065 do not dereference NULL upon failed strdup
1066 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
1067 (ns_get_family): Likewise.
1068
d8e2b5ba
JB
10692011-04-02 Juanma Barranquero <lekktu@gmail.com>
1070
1071 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
1072
8c74fcbd
JD
10732011-04-02 Jan Djärv <jan.h.d@swipnet.se>
1074
1075 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
1076 later (Bug#8403).
1077
7200d79c
SM
10782011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
1079
03408648 1080 Add lexical binding.
7200d79c 1081
03408648
SM
1082 * window.c (Ftemp_output_buffer_show): New fun.
1083 (Fsave_window_excursion):
1084 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
1085
1086 * lread.c (lisp_file_lexically_bound_p): New function.
1087 (Fload): Bind Qlexical_binding.
1088 (readevalloop): Remove `evalfun' arg.
1089 Bind Qinternal_interpreter_environment.
1090 (Feval_buffer): Bind Qlexical_binding.
1091 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
1092 Mark as dynamic.
1093 (syms_of_lread): Declare `lexical-binding'.
1094
1095 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
1096
1097 * keyboard.c (eval_dyn): New fun.
1098 (menu_item_eval_property): Use it.
ca105506
SM
1099
1100 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 1101
03408648
SM
1102 * fns.c (concat, mapcar1): Accept byte-code-functions.
1103
1104 * eval.c (Fsetq): Handle lexical vars.
1105 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
1106 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
1107 (FletX, Flet): Obey lexical binding.
1108 (Fcommandp): Handle closures.
1109 (Feval): New `lexical' arg.
1110 (eval_sub): New function extracted from Feval. Use it almost
1111 everywhere where Feval was used. Look up vars in lexical env.
1112 Handle closures.
1113 (Ffunctionp): Move from subr.el.
1114 (Ffuncall): Handle closures.
1115 (apply_lambda): Remove `eval_flags'.
1116 (funcall_lambda): Handle closures and new byte-code-functions.
1117 (Fspecial_variable_p): New function.
1118 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
1119 but without exporting it to Lisp.
23aba0ea 1120
23aba0ea 1121 * doc.c (Fdocumentation, store_function_docstring):
03408648 1122 * data.c (Finteractive_form): Handle closures.
23aba0ea 1123
03408648
SM
1124 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
1125 interactive spec.
ba83908c 1126
03408648
SM
1127 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
1128 byte-codes.
1129 (exec_byte_code): New function extracted from Fbyte_code to handle new
1130 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 1131
03408648 1132 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 1133
03408648 1134 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 1135
e2abce01
JB
11362011-03-31 Juanma Barranquero <lekktu@gmail.com>
1137
1138 * xdisp.c (redisplay_internal): Fix prototype.
1139
63696a73 11402011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 1141
63696a73
EZ
1142 * xdisp.c (SCROLL_LIMIT): New macro.
1143 (try_scrolling): Use it when setting scroll_limit. Limit
1144 scrolling to 100 screen lines.
1145 (redisplay_window): Even when falling back on "recentering",
1146 position point in the window according to scroll-conservatively,
1147 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
1148
1149 (try_scrolling): When point is above the window, allow searching
1150 as far as scroll_max, or one screenful, to compute vertical
1151 distance from PT to the scroll margin position. This prevents
1152 try_scrolling from unnecessarily failing when
1153 scroll-conservatively is set to a value slightly larger than the
1154 window height. Clean up the case of PT below the margin at bottom
1155 of window: scroll_max can no longer be INT_MAX. When aggressive
1156 scrolling is in use, don't let point enter the opposite scroll
1157 margin as result of the scroll.
1158 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
1159 threshold of 100 lines for never-recentering scrolling.
1160
e4cc2dfc
JB
11612011-03-31 Juanma Barranquero <lekktu@gmail.com>
1162
1163 * dispextern.h (move_it_by_lines):
1164 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
1165 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
1166 (message_log_check_duplicate): Remove parameters `prev_bol' and
1167 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
1168 (redisplay_internal): Remove parameter `preserve_echo_area',
1169 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
1170
1171 * indent.c (Fvertical_motion):
1172 * window.c (window_scroll_pixel_based, Frecenter):
1173 Don't pass `need_y_p' to `move_it_by_lines'.
1174
1c470562
SM
11752011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
1176
44f230aa
SM
1177 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
1178 steal a few bits to be more compact.
1179 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
1180 Remove unneeded casts.
1181
1c470562
SM
1182 * bytecode.c (Fbyte_code): CAR and CDR can GC.
1183
888adce9
ZK
11842011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
1185
1186 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
1187 binding" message (bug#7967).
1188
f838ed7b
PE
11892011-03-30 Paul Eggert <eggert@cs.ucla.edu>
1190
77861b95
PE
1191 Fix more problems found by GCC 4.6.0's static checks.
1192
de6dbc14
PE
1193 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
1194 Remove unused local var.
1195
f838ed7b
PE
1196 * editfns.c (Fmessage_box): Remove unused local var.
1197
792c7b2b
PE
1198 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
1199 (note_mode_line_or_margin_highlight, note_mouse_highlight):
1200 Omit unused local vars.
c499e557 1201 * window.c (shrink_windows): Omit unused local var.
b01a1c29 1202 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
1203 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
1204 Omit unused local var.
1205
ba0165e1
PE
1206 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
1207 Don't assume string length fits in int.
32ad8845 1208 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 1209 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 1210
3c59b4c9
PE
1211 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
1212 instead of alloca (Bug#8344).
1213
a3eed478 1214 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 1215 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 1216
eb4d412d
PE
1217 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
1218
1658b401
PE
1219 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
1220 concerns.
1221
1222 * term.c (produce_glyphless_glyph): Remove unnecessary test.
1223
1224 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 1225
9a2c6e05
PE
1226 * keyboard.c (syms_of_keyboard): Use the same style as later
1227 in this function when indexing through an array. This also
1228 works around GCC bug 48267.
1229
03d0a109
PE
1230 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
1231
44f730c8
PE
1232 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
1233
fe75f926
PE
1234 * chartab.c (sub_char_table_ref_and_range): Redo for slight
1235 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
1236
ffa8c828
PE
1237 * keyboard.c, keyboard.h (num_input_events): Now size_t.
1238 This avoids undefined behavior on integer overflow, and is a bit
1239 more convenient anyway since it is compared to a size_t variable.
1240
c5101a77
PE
1241 Variadic C functions now count arguments with size_t, not int.
1242 This avoids an unnecessary limitation on 64-bit machines, which
1243 caused (substring ...) to crash on large vectors (Bug#8344).
1244 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
1245 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 1246 All variadic functions and their callers changed accordingly.
c5101a77
PE
1247 (struct gcpro.nvars): Now size_t, not int. All uses changed.
1248 * data.c (arith_driver, float_arith_driver): Likewise.
1249 * editfns.c (general_insert_function): Likewise.
1250 * eval.c (struct backtrace.nargs, interactive_p)
1251 (internal_condition_case_n, run_hook_with_args, apply_lambda)
1252 (funcall_lambda, mark_backtrace): Likewise.
1253 * fns.c (concat): Likewise.
1254 * frame.c (x_set_frame_parameters): Likewise.
1255 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
1256 0 if not found, not -1. All callers changed.
1257
dd3f25f7
PE
1258 * alloc.c (garbage_collect): Don't assume stack size fits in int.
1259 (stack_copy_size): Now size_t, not int.
1260 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
1261
461c2ab9
JB
12622011-03-28 Juanma Barranquero <lekktu@gmail.com>
1263
1264 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
1265 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
1266 All callers changed.
1267
1268 * lisp.h (multibyte_char_to_unibyte):
1269 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
1270 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
1271 * character.h (CHAR_TO_BYTE8):
1272 * cmds.c (internal_self_insert):
1273 * editfns.c (general_insert_function):
1274 * keymap.c (push_key_description):
1275 * search.c (Freplace_match):
1276 * xdisp.c (message_dolog, set_message_1): All callers changed.
1277
f6d62986
SM
12782011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
1279
1280 * keyboard.c (safe_run_hook_funcall): New function.
1281 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
1282 don't set the hook to nil, but remove the offending function instead.
1283 (Qcommand_hook_internal): Remove, unused.
1284 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
1285 Vcommand_hook_internal.
1286
1287 * eval.c (enum run_hooks_condition): Remove.
1288 (funcall_nil, funcall_not): New functions.
1289 (run_hook_with_args): Call each function through a `funcall' argument.
1290 Remove `cond' argument, now redundant.
1291 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
1292 (Frun_hook_with_args_until_failure): Adjust accordingly.
1293 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
1294
1db5b1ad
JB
12952011-03-28 Juanma Barranquero <lekktu@gmail.com>
1296
1297 * dispextern.h (string_buffer_position): Remove declaration.
1298
1299 * print.c (strout): Remove parameter `multibyte', unused since
1300 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
1301
1302 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
1303 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
1304 All callers changed.
1305
1306 * w32.c (_wsa_errlist): Use braces for struct initializers.
1307
1308 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
1309 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
1310 All callers changed.
1311 (string_buffer_position): Likewise. Also, make static (it's never
1312 used outside xdisp.c).
1313 (cursor_row_p): Remove parameter `w', unused since
1314 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
1315 (decode_mode_spec): Remove parameter `precision', introduced during
1316 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
1317 All callers changed.
1318
5ffb62aa
JD
13192011-03-27 Jan Djärv <jan.h.d@swipnet.se>
1320
1321 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
1322
461c2ab9 13232011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
1324
1325 * nsterm.m (ns_menu_bar_is_hidden): New variable.
1326 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
1327 (ns_update_auto_hide_menu_bar): New functions.
1328 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
1329 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
1330 ns_constrain_all_frames.
1331 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
1332 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
1333
5c380ffb
JD
13342011-03-27 Jan Djärv <jan.h.d@swipnet.se>
1335
1336 * nsmenu.m (runDialogAt): Remove argument to timer_check.
1337
9af30bdf
GM
13382011-03-27 Glenn Morris <rgm@gnu.org>
1339
1340 * syssignal.h: Replace RETSIGTYPE with void.
1341 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
1342 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
1343 Replace SIGTYPE with void everywhere.
1344 * s/usg5-4-common.h (SIGTYPE): Remove definition.
1345 * s/template.h (SIGTYPE): Remove commented out definition.
1346
e2abce01
JB
13472011-03-26 Eli Zaretskii <eliz@gnu.org>
1348
1349 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
1350 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
1351
f868cd8a
JB
13522011-03-26 Juanma Barranquero <lekktu@gmail.com>
1353
59eb0929
JB
1354 * w32.c (read_unc_volume): Use parameter `henum', instead of
1355 global variable `wget_enum_handle'.
1356
1357 * keymap.c (describe_vector): Remove parameters `indices' and
1358 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
1359 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
1360
f868cd8a
JB
1361 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
1362
1363 * keyboard.c (timer_check): Remove parameter `do_it_now',
1364 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
1365 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
1366 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
1367
1368 * keyboard.c (read_char):
1369 * w32menu.c (w32_menu_display_help):
1370 * xmenu.c (show_help_event, menu_help_callback):
1371 Adjust calls to `show_help_echo'.
1372
1373 * gtkutil.c (xg_maybe_add_timer):
1374 * keyboard.c (readable_events):
1375 * process.c (wait_reading_process_output):
1376 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
1377
1378 * insdel.c (adjust_markers_gap_motion):
1379 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
1380 (gap_left, gap_right): Don't call it.
1381
2ecf6fdb
CY
13822011-03-25 Chong Yidong <cyd@stupidchicken.com>
1383
1384 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
1385 incurred during fontification.
1386
6b1f9ba4
JB
13872011-03-25 Juanma Barranquero <lekktu@gmail.com>
1388
1389 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
1390 (DEFVAR_PER_BUFFER): Don't pass it.
1391
1392 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
1393 (scrolling_window): Don't pass it.
1394
0f4a96b5
JB
13952011-03-25 Juanma Barranquero <lekktu@gmail.com>
1396
1397 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
1398
1399 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
1400 and `suffix'.
1401 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
1402 of variables specific to SELinux and computation of `encoded_absname'.
1403
1404 * image.c (XPutPixel): Remove unused variable `height'.
1405
1406 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
1407
1408 * unexw32.c (get_section_info): Remove unused variable `section'.
1409
1410 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
1411 (system_process_attributes): Remove unused variable `sess'.
1412 (sys_read): Remove unused variable `err'.
1413
1414 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
1415 (w32_wnd_proc): Remove unused variable `isdead'.
1416 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
1417 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
1418 (x_create_tip_frame): Remove unused variable `tem'.
1419
1420 * w32inevt.c (w32_console_read_socket):
1421 Remove unused variable `no_events'.
1422
1423 * w32term.c (x_draw_composite_glyph_string_foreground):
1424 Remove unused variable `width'.
1425
1149507c
JB
14262011-03-24 Juanma Barranquero <lekktu@gmail.com>
1427
1428 * w32term.c (x_set_glyph_string_clipping):
1429 Don't pass uninitialized region to CombineRgn.
1430
9c88f339
JB
14312011-03-23 Juanma Barranquero <lekktu@gmail.com>
1432
1433 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
1434 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
1435 (Fx_close_connection): Remove unused variable `i'.
1436
1437 * w32font.c (w32font_draw): Return number of glyphs.
1438 (w32font_open_internal): Remove unused variable `i'.
1439 (w32font_driver): Add missing initializer.
1440
1441 * w32menu.c (utf8to16): Remove unused variable `utf16'.
1442 (fill_in_menu): Remove unused variable `items_added'.
1443
1444 * w32term.c (last_mouse_press_frame): Remove static global variable.
1445 (w32_clip_to_row): Remove unused variable `f'.
1446 (x_delete_terminal): Remove unused variable `i'.
1447
1448 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
1449 (NOTHING): Remove unused static global variable.
1450 (uniscribe_check_otf): Remove unused variable `table'.
1451 (uniscribe_font_driver): Add missing initializers.
1452
dee091a3
JD
14532011-03-23 Julien Danjou <julien@danjou.info>
1454
1455 * term.c (Fsuspend_tty, Fresume_tty):
1456 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
1457 * window.c (temp_output_buffer_show):
1458 * insdel.c (signal_before_change):
1459 * frame.c (Fhandle_switch_frame):
1460 * fileio.c (Fdo_auto_save):
1461 * emacs.c (Fkill_emacs):
1462 * editfns.c (save_excursion_restore):
1463 * cmds.c (internal_self_insert):
1464 * callint.c (Fcall_interactively):
1465 * buffer.c (Fkill_all_local_variables):
1466 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
1467 Use Frun_hooks.
0f4a96b5 1468 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
dee091a3
JD
1469 unconditionnaly since it does the check itself.
1470
2c520ab5 14712011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 1472
c9c49752
PE
1473 Fix more problems found by GCC 4.5.2's static checks.
1474
8abc3f12
PE
1475 * coding.c (encode_coding_raw_text): Avoid unnecessary test
1476 the first time through the loop, since we know p0 < p1 then.
1477 This also avoids a gcc -Wstrict-overflow warning.
1478
a2d26660
PE
1479 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
1480 leading to a memory leak, possible in functions like
1481 load_charset_map_from_file that can allocate an unbounded number
b12ef411 1482 of objects (Bug#8318).
a2d26660 1483
916c72e9
PE
1484 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
1485 that could (at least in theory) be that large.
1486
19ab8a18
PE
1487 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
1488 This is less likely to overflow, and avoids undefined behavior if
1489 overflow does occur. All callers changed. Use strtoul to scan
1490 for the unsigned long integer.
b7cbbd6f
PE
1491 (pint2hrstr): Simplify and tune code slightly.
1492 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 1493
f0641eff
PE
1494 * scroll.c (do_scrolling): Work around GCC bug 48228.
1495 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
1496
7f650bb9
PE
1497 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
1498 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
1499 (validate_x_resource_name): Simplify count usage.
1500 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 1501
37dd57d1
PE
1502 * fileio.c (Fcopy_file): Report error if fchown or fchmod
1503 fail (Bug#8306).
81e56e61 1504
699979fc 1505 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 1506
401bf9b4
PE
1507 * process.c (Fmake_network_process): Use socklen_t, not int,
1508 where POSIX says socklen_t is required in portable programs.
1509 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 1510 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
1511 (Fmake_network_process, server_accept_connection):
1512 (wait_reading_process_output, read_process_output):
1513 Likewise.
1514
b93aacde
PE
1515 * process.c: Rename or move locals to avoid shadowing.
1516 (list_processes_1, Fmake_network_process):
1517 (read_process_output_error_handler, exec_sentinel_error_handler):
1518 Rename or move locals.
4dc343ee 1519 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 1520 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 1521 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 1522 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 1523 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 1524
af8a867c 1525 Make tparam.h and terminfo.c consistent.
44f230aa
SM
1526 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
1527 Include tparam.h instead, since it declares them.
af8a867c
PE
1528 * cm.h (PC): Remove extern decl; tparam.h now does this.
1529 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
1530 * terminfo.c: Include tparam.h, to check interfaces.
1531 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
1532 (tparam): Adjust signature to match interface in tparam.h;
1533 this removes some undefined behavior. Check that outstring and len
1534 are zero, which they always are with Emacs.
1535 * tparam.h (PC, BC, UP): New extern decls.
1536
0248044d 1537 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 1538 (xftfont_open): Rename locals to avoid shadowing.
0248044d 1539
8ff096c1 1540 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
1541 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
1542 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 1543 (ftfont_list): Remove unused local.
49eaafba
PE
1544 (get_adstyle_property, ftfont_pattern_entity):
1545 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
1546 Rename locals to avoid shadowing.
8ff096c1 1547
e2be39f6
PE
1548 * xfont.c (xfont_list_family): Mark var as initialized.
1549
c9735e30
PE
1550 * xml.c (make_dom): Now static.
1551
8f5201ae
PE
1552 * composite.c (composition_compute_stop_pos): Rename local to
1553 avoid shadowing.
b246f932
PE
1554 (composition_reseat_it): Remove unused locals.
1555 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 1556 (composition_update_it): Mark var as initialized.
11b61122
PE
1557 (find_automatic_composition): Mark vars as initialized,
1558 with a FIXME (Bug#8290).
8f5201ae 1559
760fbc2c
PE
1560 character.h: Rename locals to avoid shadowing.
1561 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
1562 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
1563 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
1564 (BUF_DEC_POS): Be more systematic about renaming local temporaries
1565 to avoid shadowing.
1566
ff08eb85
PE
1567 * textprop.c (property_change_between_p): Remove; unused.
1568
fc7bf025
PE
1569 * intervals.c (interval_start_pos): Now static.
1570
235d7abc
PE
1571 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
1572
44f230aa
SM
1573 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
1574 Rename locals to avoid shadowing.
3e7d6594 1575
50060332
PE
1576 * sound.c (wav_play, au_play, Fplay_sound_internal):
1577 Fix pointer signedness.
d01f234b 1578 (alsa_choose_format): Remove unused local var.
c83b8872
PE
1579 (wav_play): Initialize a variable to 0, to prevent undefined
1580 behavior (Bug#8278).
50060332 1581
c4fc4e30
PE
1582 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
1583
918436ed
PE
1584 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
1585
c939f91b
PE
1586 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
1587 clobbering (Bug#8298).
b9c7f648
PE
1588 * sysdep.c (sys_subshell): Likewise.
1589 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 1590
6bd8c144
PE
1591 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
1592 This should get cleaned up, so that child_setup has the
1593 same signature on all platforms.
1594
7710357c 1595 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 1596 (relocate_fd): Rename locals to avoid shadowing.
7710357c 1597
c59da222
CY
15982011-03-22 Chong Yidong <cyd@stupidchicken.com>
1599
1600 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
1601 not to be necessary, and produces flickering.
1602
66b87493
GM
16032011-03-20 Glenn Morris <rgm@gnu.org>
1604
1605 * config.in: Remove file.
1606
45b6f6d5
JB
16072011-03-20 Juanma Barranquero <lekktu@gmail.com>
1608
1609 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
1610 are now in src/globals.h.
1611 (syms_of_minibuf): Remove spurious & from previous change.
1612
3ec03f7e
LL
16132011-03-20 Leo <sdl.web@gmail.com>
1614
1615 * minibuf.c (completing-read-function): New variable.
1616 (completing-read-default): Rename from completing-read.
1617 (completing-read): Call completing-read-function.
1618
b14e3e21
CY
16192011-03-19 Juanma Barranquero <lekktu@gmail.com>
1620
1621 * xfaces.c (Fx_load_color_file):
1622 Read color file from absolute filename (bug#8250).
1623
f2b726e6
JB
16242011-03-19 Juanma Barranquero <lekktu@gmail.com>
1625
1626 * makefile.w32-in: Update dependencies.
1627
09f6ff02
EZ
16282011-03-17 Eli Zaretskii <eliz@gnu.org>
1629
1630 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
1631
29a6015a
PE
16322011-03-17 Paul Eggert <eggert@cs.ucla.edu>
1633
a3a6c54e
PE
1634 Fix more problems found by GCC 4.5.2's static checks.
1635
b766f867
PE
1636 * process.c (make_serial_process_unwind, send_process_trap):
1637 (sigchld_handler): Now static.
1638
be02381c
PE
1639 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
1640 That way, the code declares only the vars that it needs.
1641 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
1642 * s/cygwin.h (PTY_ITERATION): Likewise.
1643 * s/darwin.h (PTY_ITERATION): Likewise.
1644 * s/gnu-linux.h (PTY_ITERATION): Likewise.
1645
57048744
PE
1646 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
1647 * process.c (allocate_pty): Don't declare stb unless it's needed.
1648
7914961c 1649 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
1650 (CONSTANTLIM): Remove; unused.
1651 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
1652 Define only if needed.
7914961c 1653
b3967b18
PE
1654 * unexelf.c (unexec): Name an expression,
1655 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
1656 Use a different way to cause a compilation error if anyone uses
1657 n rather than nn, a way that does not involve shadowing.
73366a00 1658 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 1659
29a6015a
PE
1660 * deps.mk (unexalpha.o): Remove; unused.
1661
43cfc33e 1662 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 1663 * unexec.h: New file.
ce701a33
PE
1664 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
1665 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
1666 Depend on unexec.h.
1667 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
1668 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
1669 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 1670 Change as necessary to match prototype in unexec.h.
ce701a33 1671
01f44d5a
PE
1672 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
1673 shadowing.
4f63c6bb 1674 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 1675
a6670b0b
PE
1676 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
1677 Rename locals to avoid shadowing.
1678
cef2010d 1679 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 1680 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 1681
d4d7173a
PE
1682 * print.c (Fredirect_debugging_output): Fix pointer signedess.
1683
f08b802a
PE
1684 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
1685 warning when compiling print.c.
1686
3ddb0639
PE
1687 * font.c (font_unparse_fcname): Abort in an "impossible" situation
1688 instead of using an uninitialized var.
5ad03b97 1689 (font_sort_entities): Mark var as initialized.
3ddb0639 1690
170a2692
PE
1691 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
1692
e663c700
PE
1693 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
1694 pointers to constants.
89bc529a 1695 (font_parse_fcname): Remove unused vars.
7b81e2d0 1696 (font_delete_unmatched): Now static.
ea838e10 1697 (font_get_spec): Remove; unused.
13a547c6
PE
1698 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
1699 (font_update_drivers, Ffont_get_glyphs, font_add_log):
1700 Rename or move locals to avoid shadowing.
e663c700 1701
2a80c887 1702 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 1703 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 1704
1384fa33 1705 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 1706 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 1707
8b2c52e9
PE
1708 * alloc.c (mark_backtrace): Move decl from here ...
1709 * lisp.h: ... to here, so that it can be checked.
1710
475545b5 1711 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 1712 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
1713 (lisp_indirect_variable): Name an expression,
1714 to avoid gcc -Wbad-function-cast warning.
1faed8ae 1715 (Fdefvar): Rename locals to avoid shadowing.
475545b5 1716
b1349114 1717 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 1718 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 1719 Use const pointer when appropriate.
b1349114 1720
a2928364
PE
1721 * lisp.h (get_system_name, get_operating_system_release):
1722 Move decls here, to check interfaces.
1723 * process.c (get_operating_system_release): Move decl to lisp.h.
1724 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
1725 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
1726 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
1727 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
1728 (Fformat_time_string, Fencode_time, Finsert_char):
1729 (Ftranslate_region_internal, Fformat):
1730 Rename or remove local vars to avoid shadowing.
9710023e 1731 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 1732
a415e694
PE
1733 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
1734 avoid shadowing.
1735
8ef4622d
PE
1736 * lisp.h (eassert): Check that the argument compiles, even if
1737 ENABLE_CHECKING is not defined.
1738
946f9a5b
PE
1739 * data.c (Findirect_variable): Name an expression, to avoid
1740 gcc -Wbad-function-cast warning.
112396d6 1741 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 1742 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
1743 (Fmake_variable_buffer_local, Fmake_local_variable):
1744 Mark variables as initialized.
52746918 1745 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 1746
e5aab7e7 1747 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
1748 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
1749 Rename locals to avoid shadowing.
dff45157
PE
1750 (mark_stack): Move local variables into the #ifdef region where
1751 they're used.
7bc26fdb
PE
1752 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
1753 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
1754 needed otherwise.
1755 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
1756 (GC_STRING_CHARS): Remove; not used.
d40d4be1 1757 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 1758
e5aab7e7
PE
1759 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
1760 avoids undefined behavior in theory.
1761
4da60324
PE
1762 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
1763
88043301
PE
1764 Use functions, not macros, for up- and down-casing (Bug#8254).
1765 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1766 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
1767 to use the following functions instead of these macros.
1768 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
1769 EMACS_INT, since callers assume the returned value fits in int.
1770 (upcase1): Likewise, for UPCASE_TABLE.
1771 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 1772 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 1773 the race-condition problem in the old DOWNCASE.
88043301 1774
19ed5445
PE
1775 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
1776 Rename locals to avoid shadowing.
1777 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
1778 (regex_compile, re_search_2, re_match_2_internal):
1779 Remove unused local vars.
952db0d7
PE
1780 (FREE_VAR): Rewrite so as not to use empty "else",
1781 which gcc can warn about.
da053e48 1782 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
1783 (RETALLOC_IF): Define only if needed.
1784 (WORDCHAR_P): Likewise. This one is never needed, but is used
1785 only in a comment talking about a compiler bug, so put inside
1786 the #if 0 of that comment.
1787 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
1788 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
1789 Remove; unused.
19ed5445 1790
1f3561e4 1791 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
1792 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
1793 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 1794
ded6f8f7
PE
1795 * search.c (simple_search): Remove unused var.
1796
dbd37a95
PE
1797 * dired.c (compile_pattern): Move decl from here ...
1798 * lisp.h: ... to here, so that it can be checked.
1799 (struct re_registers): New forward decl.
1800
7e47afad
PE
1801 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
1802
85f24f61
PE
1803 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
1804 All uses changed.
1805 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
1806 Rename locals to avoid shadowing.
5671df8f 1807 (Fvertical_motion): Mark locals as initialized.
85f24f61 1808
181aa2be 1809 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 1810 (casify_region): Mark local as initialized.
181aa2be 1811
930d429c
PE
1812 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
1813
7082eac6
PE
1814 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
1815 New macros, so that the caller can use some names other than
1816 gcpro1, gcpro2, etc.
1817 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
1818 of the new macros.
1819 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
1820 argument, for consistency with GCPRO2_VAR, etc: it is now the
1821 prefix of the variable, not the variable itself. All uses
1822 changed.
38b2c076
PE
1823 * dired.c (directory_files_internal, file_name_completion):
1824 Rename locals to avoid shadowing.
1825
15206ed9
PE
1826 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
1827 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
1828 dired.c's scmp function, had undefined behavior.
1829 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1830 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
1831 * buffer.h: ... to here, because these macros use current_buffer,
1832 and the new implementation with inline functions needs to have
1833 current_buffer in scope now, rather than later when the macros
1834 are used.
1835 (downcase, upcase1): New static inline functions.
1836 (DOWNCASE, UPCASE1): Reimplement using these functions.
1837 This avoids undefined behavior in expressions like
1838 DOWNCASE (x) == DOWNCASE (y), which previously suffered
1839 from race conditions in accessing the global variables
1840 case_temp1 and case_temp2.
1841 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
1842 * lisp.h (case_temp1, case_temp2): Remove their decls.
1843 * character.h (ASCII_CHAR_P): Move from here ...
1844 * lisp.h: ... to here, so that the inline functions mentioned
1845 above can use them.
1846
4a6bea26
PE
1847 * dired.c (directory_files_internal_unwind): Now static.
1848
f14b7e14
PE
1849 * fileio.c (file_name_as_directory, directory_file_name):
1850 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
1851 Now static.
2893f146
PE
1852 (file_name_as_directory): Use const pointers when appropriate.
1853 (Fexpand_file_name): Likewise. In particular, newdir might
1854 point at constant storage, so make it a const pointer.
fd4ead52 1855 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
1856 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
1857 signedness issues.
f839df0c
PE
1858 (Fset_file_times, Finsert_file_contents, auto_save_error):
1859 Rename locals to avoid shadowing.
f14b7e14 1860
5716756e 1861 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
1862 (Ftry_completion, Fall_completions): Rename or remove locals
1863 to avoid shadowing.
5716756e 1864
b4c3046a
PE
1865 * marker.c (bytepos_to_charpos): Remove; unused.
1866
b45db522
PE
1867 * lisp.h (verify_bytepos, count_markers): New decls,
1868 so that gcc does not warn that these functions aren't declared.
1869
85876d07
PE
1870 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
1871 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 1872 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 1873 (copy_text): Remove unused local var.
85876d07 1874
03d78a21 1875 * filelock.c (within_one_second): Now static.
b3dd38ab 1876 (lock_file_1): Rename local to avoid shadowing.
03d78a21 1877
5df8f01b
PE
1878 * buffer.c (fix_overlays_before): Mark locals as initialized.
1879 (fix_start_end_in_overlays): Likewise. This function should be
1880 simplified by using pointers-to-pointers, but that's a different
1881 matter.
b1d876f1 1882 (switch_to_buffer_1): Now static.
8f54f30a
PE
1883 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
1884 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 1885
a70072c9 1886 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 1887 Fix pointer signedness issue.
edced198
PE
1888 (sys_subshell): Mark local as volatile if checking for lint,
1889 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 1890 (MAXPATHLEN): Define only if needed.
a70072c9 1891
a0977c44
PE
1892 * process.c (serial_open, serial_configure): Move decls from here ...
1893 * systty.h: ... to here, so that they can be checked.
1894
a884fdcc
PE
1895 * fns.c (get_random, seed_random): Move extern decls from here ...
1896 * lisp.h: ... to here, so that they can be checked.
1897
604efe86 1898 * sysdep.c (reset_io): Now static.
b8950c94 1899 (wait_for_termination_signal): Remove; unused.
604efe86 1900
38fc62d9
PE
1901 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
1902 (copy_keymap_item, append_key, push_text_char_description):
1903 Now static.
1004a21a 1904 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 1905 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
1906 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
1907 (describe_map_tree):
1908 Rename locals to avoid shadowing.
38fc62d9 1909
2f2650da
PE
1910 * keyboard.c: Declare functions static if they are not used elsewhere.
1911 (echo_char, echo_dash, cmd_error, top_level_2):
1912 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
1913 (read_char, kbd_buffer_get_event, make_lispy_position):
1914 (make_lispy_event, make_lispy_movement, apply_modifiers):
1915 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
1916 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
1917 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 1918 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 1919 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 1920
a053e86c 1921 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
1922 (mark_kboards): Move decl here ...
1923 * alloc.c (mark_kboards): ... from here.
a053e86c 1924
4752793e
PE
1925 * lisp.h (force_auto_save_soon): New decl.
1926
74f10ca7 1927 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
1928 (DEFINE_DUMMY_FUNCTION): New macro.
1929 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
1930 Use it.
c03cd23f
PE
1931 (main): Add casts to avoid warnings
1932 if GCC considers string literals to be constants.
74f10ca7 1933
022e70d4
PE
1934 * lisp.h (fatal_error_signal): Add decl, since it's exported.
1935
59d6fe83
PE
1936 * dbusbind.c: Pointer signedness fixes.
1937 (xd_signature, xd_append_arg, xd_initialize):
1938 (Fdbus_call_method, Fdbus_call_method_asynchronously):
1939 (Fdbus_method_return_internal, Fdbus_method_error_internal):
1940 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
1941 (Fdbus_register_signal): Use SSDATA when the context wants char *.
1942
78320123
PE
1943 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
1944 if GCC considers string literals to be constants.
49cebcca 1945 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 1946
35ac2a97
SM
19472011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
1948
fb103ca9
SM
1949 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
1950 (print_preprocess, print_object): New macro to fix last change.
1951
35ac2a97
SM
1952 * print.c (print_preprocess): Don't forget font objects.
1953
62973b41
JB
19542011-03-16 Juanma Barranquero <lekktu@gmail.com>
1955
1956 * emacs.c (USAGE3): Doc fixes.
1957
0e48bb22
AS
19582011-03-15 Andreas Schwab <schwab@linux-m68k.org>
1959
1960 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
1961 structure.
1962
7684e57b
JB
19632011-03-14 Juanma Barranquero <lekktu@gmail.com>
1964
1965 * lisp.h (VWindow_system, Qfile_name_history):
1966 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
1967 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
1968 (w32_system_caret_x, w32_system_caret_y): Declare extern.
1969
1970 * w32select.c: Don't #include "keyboard.h".
c96bbc66 1971 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
1972
1973 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
1974 * w32console.c (detect_input_pending, read_input_pending)
1975 (encode_terminal_code):
1976 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
1977 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
1978 (w32_system_caret_y, Qfile_name_history):
1979 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
1980 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
1981 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
1982 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
1983 * w32proc.c (Qlocal, report_file_error):
1984 * w32term.c (Vwindow_system, updating_frame):
1985 * w32uniscribe.c (initialized, uniscribe_font_driver):
1986 Remove unneeded extern declarations.
1987
2aa46d6c
CY
19882011-03-14 Chong Yidong <cyd@stupidchicken.com>
1989
c96bbc66 1990 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 1991
cffc6f3b
CY
19922011-03-13 Chong Yidong <cyd@stupidchicken.com>
1993
1994 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
1995 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
1996 These macros can no longer be used for assignment.
1997
44f230aa
SM
1998 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
1999 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
2000 (record_buffer_markers, fetch_buffer_markers): New functions for
2001 recording and fetching special buffer markers.
2002 (set_buffer_internal_1, set_buffer_temp): Use them.
2003
2004 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
2005
2006 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
2007
2008 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
2009 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
2010
2011 * xdisp.c (hscroll_window_tree):
2012 (reconsider_clip_changes): Use PT instead of BUF_PT.
2013
d251f04b
EZ
20142011-03-13 Eli Zaretskii <eliz@gnu.org>
2015
2016 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
2017 $(EMACS_ROOT)/lib/intprops.h.
2018
f0c77cd1
PE
20192011-03-13 Paul Eggert <eggert@cs.ucla.edu>
2020
3eca4629
PE
2021 Fix more problems found by GCC 4.5.2's static checks.
2022
7c86ee98
PE
2023 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
2024 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
2025 (xg_free_frame_widgets): Make it clear that a local variable is
2026 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
2027 (gdk_window_get_screen): Make it clear that this macro is needed
2028 only if USE_GTK_TOOLTIP.
1e5524e7
PE
2029 (int_gtk_range_get_value): New function, which avoids a diagnostic
2030 from gcc -Wbad-function-cast.
2031 (xg_set_toolkit_scroll_bar_thumb): Use it.
2032 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
2033 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
2034 (get_utf8_string, xg_get_file_with_chooser):
2035 Rename locals to avoid shadowing.
2036 (create_dialog): Move locals to avoid shadowing.
7c86ee98 2037
41729b81
PE
2038 * xgselect.c (xg_select): Remove unused var.
2039
f0c77cd1
PE
2040 * image.c (four_corners_best): Mark locals as initialized.
2041 (gif_load): Initialize transparent_p to zero (Bug#8238).
2042 Mark another local as initialized.
ec6cf4c6 2043 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 2044
ce0ad53d 2045 * image.c (clear_image_cache): Now static.
d5d5a617 2046 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 2047 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
2048 (x_edge_detection): Remove unnecessary cast that
2049 gcc -Wbad-function-cast diagnoses.
2037898d 2050 (gif_load): Fix pointer signedness.
6ae141d6
PE
2051 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
2052 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 2053
33383987 20542011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 2055
d32df629
PE
2056 Improve quality of tests for time stamp overflow.
2057 For example, without this patch (encode-time 0 0 0 1 1
2058 1152921504606846976) returns the obviously-bogus value (-948597
2059 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
2060 reports time overflow. See
2061 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
2062 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
2063 * editfns.c: Include limits.h and intprops.h.
2064 (TIME_T_MIN, TIME_T_MAX): New macros.
2065 (time_overflow): Move earlier, to before first use.
2066 (hi_time, lo_time): New functions, for an accurate test for
2067 out-of-range times.
2068 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
2069 (Fget_internal_run_time): Don't assume time_t fits in int.
2070 (make_time): Use list2 instead of Fcons twice.
2071 (Fdecode_time): More accurate test for out-of-range times.
2072 (check_tm_member): New function.
2073 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
2074 (lisp_time_argument): Don't rely on undefined left-shift and
2075 right-shift behavior when checking for time stamp overflow.
8be6f318 2076
fe31d94c
PE
2077 * editfns.c (time_overflow): New function, refactoring common code.
2078 (Fformat_time_string, Fdecode_time, Fencode_time):
2079 (Fcurrent_time_string): Use it.
2080
8be6f318
PE
2081 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
2082 * dired.c (make_time): Move to ...
2083 * editfns.c (make_time): ... here.
2084 * systime.h: Note the move.
2085
09d9db2c 20862011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 2087
126bc0dc
YM
2088 * fringe.c (update_window_fringes): Remove unused variables.
2089
c47cbdfd
YM
2090 * unexmacosx.c (copy_data_segment): Also copy __got section.
2091 (Bug#8223)
2092
7ac80be9
EZ
20932011-03-12 Eli Zaretskii <eliz@gnu.org>
2094
c96bbc66 2095 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
2096 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
2097 Constify `char *' arguments and their references according to
2098 prototypes in tparam.h.
2099
ecb0f94d 2100 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 2101
7ac80be9
EZ
2102 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
2103 Adapt all references accordingly.
2104
2105 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
2106
ef1fd07e
TT
21072011-03-11 Tom Tromey <tromey@redhat.com>
2108
2109 * buffer.c (syms_of_buffer): Remove obsolete comment.
2110
7ef4b50c
EZ
21112011-03-11 Eli Zaretskii <eliz@gnu.org>
2112
2113 * termhooks.h (encode_terminal_code): Declare prototype.
2114
2115 * msdos.c (encode_terminal_code): Don't declare prototype.
2116
2117 * term.c (encode_terminal_code): Now external again, used by
2118 w32console.c and msdos.c.
2119
44f230aa
SM
2120 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
2121 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 2122
4b1ec863 21232011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 2124
1714f52b 2125 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 2126
4b1ec863
PE
2127 * fringe.c (update_window_fringes): Mark locals as initialized
2128 (Bug#8227).
2129 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 2130
524c7aa6
PE
2131 * alloc.c (mark_fringe_data): Move decl from here ...
2132 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
2133 to check its interface.
2134 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
2135
a5c0af81 2136 * fontset.c (free_realized_fontset): Now static.
7519b8cd 2137 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 2138 (fontset_font): Mark local as initialized.
a9a06e0b 2139 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 2140
b4716021
PE
2141 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
2142
811e9bac 2143 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 2144 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
2145 (x_own_selection, Fx_disown_selection_internal): Rename locals
2146 to avoid shadowing.
2147 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 2148
7e3ab302
PE
2149 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
2150 so that the caller can use some name other than gcpro1.
2151 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
2152 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
2153 (Fx_backspace_delete_keys_p):
2154 Use them to avoid shadowing, and rename vars to avoid shadowing.
2155 (x_decode_color, x_set_name, x_window): Now static.
6b437900 2156 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 2157 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
2158 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
2159 Remove unused locals.
7e3ab302
PE
2160 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
2161 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
2162 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
2163 macros.
f78faa98 2164
e2b13473
PE
2165 * xterm.h (x_mouse_leave): New decl.
2166
77f23912
PE
2167 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
2168 Remove unused functions.
cdf4ba58
PE
2169 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
2170 (x_calc_absolute_position): Now static.
7411c686 2171 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 2172 Don't declare local "event" unless it's used.
ed7bf3a5
PE
2173 (x_iconify_frame, x_free_frame_resources): Don't declare locals
2174 unless they are used.
38d0b34a
PE
2175 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
2176 (x_fatal_error_signal): Remove; not used.
a6067996
PE
2177 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
2178 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
2179 (x_error_catcher, x_connection_closed, x_error_handler):
2180 (x_error_quitter, xembed_send_message, x_iconify_frame):
2181 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 2182 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 2183 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 2184
44f230aa
SM
2185 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
2186 Rename or move locals to avoid shadowing.
6b463e58 2187 (tty_defined_color, merge_face_heights): Now static.
5967d051 2188 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
2189 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
2190 does not deduce is never used uninitialized.
73719eba
PE
2191 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
2192 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 2193
426994c3 2194 * terminal.c (store_terminal_param): Now static.
5489860b 2195
032f1620 2196 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 2197 (set_frame_menubar): Remove unused local.
d4323972 2198 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
2199 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
2200 since they might point to immutable storage.
281585b0
PE
2201 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
2202 since it's unused otherwise.
032f1620 2203
367c19e5 2204 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 2205 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
2206 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
2207 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 2208 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
2209 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
2210 does not deduce are never used uninitialized.
70739cbe 2211
07b48fa9
PE
2212 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
2213
8868a238 2214 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
2215 * window.c (window_loop, size_window):
2216 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 2217
7e5cf297 2218 * window.c (display_buffer): Now static.
d6550a9f
PE
2219 (size_window): Mark variables that gcc -Wuninitialized
2220 does not deduce are never used uninitialized.
a586633d
PE
2221 * window.h (check_all_windows): New decl, to forestall
2222 gcc -Wmissing-prototypes diagnostic.
5b555da1 2223 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 2224
f6095868
PE
2225 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
2226 shadowing.
2227 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
2228 Include <limits.h>.
2229 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
2230 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
2231 (load_charset_map): Mark variables that gcc -Wuninitialized
2232 does not deduce are never used uninitialized.
53df7c11 2233 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 2234
f38b440c
PE
2235 * coding.c (coding_set_source, coding_set_destination):
2236 Use "else { /* comment */ }" rather than "else /* comment */;"
2237 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
2238 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
2239 a block, when the outer 'i' will do.
2240 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
2241 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
2242 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
2243 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
2244 (Fdecode_sjis_char, Fdefine_coding_system_internal):
2245 Rename locals to avoid shadowing.
2246 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
2247 * coding.c (emacs_mule_char, encode_invocation_designation):
2248 Now static, since they're not used elsewhere.
413bb2db 2249 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 2250 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
2251 (decode_coding_emacs_mule): Mark variables that gcc
2252 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
2253 (detect_coding_iso_2022): Initialize a local variable that might
2254 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 2255 this initialization is needed. (Bug#8211)
5f58e762
PE
2256 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
2257 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
2258 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
2259 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
2260 Remove unused macros.
f38b440c 2261
232b38b9 2262 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 2263 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 2264 * character.c (string_count_byte8): Likewise.
232b38b9 2265
fb90da1b
PE
2266 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
2267 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
2268
fb93dbc2
PE
2269 * chartab.c (copy_sub_char_table): Now static, since it's not used
2270 elsewhere.
5c156ace
PE
2271 (sub_char_table_ref_and_range, char_table_ref_and_range):
2272 Rename locals to avoid shadowing.
bbcd0949 2273 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 2274
7d3b3862 2275 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 2276 (BIDI_BOB): Remove unused macro.
7d3b3862 2277
6be7d3da
PE
2278 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
2279 deduce are never used uninitialized.
c2ed9c8b 2280 * term.c (encode_terminal_code): Likewise.
6be7d3da 2281
75f8807f 2282 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 2283
50938595
PE
2284 * tparam.h: New file.
2285 * term.c, tparam.h: Include it.
2286 * deps.mk (term.o, tparam.o): Depend on tparam.h.
2287 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
2288 Move these decls to tparam.h, and make them agree with what
2289 is actually in tparam.c. The previous trick of using incompatible
2290 decls in different modules does not conform to the C standard.
2291 All callers of tparam changed to use tparam's actual API.
2292 * tparam.c (tparam1, tparam, tgoto):
2293 Use const pointers where appropriate.
2294
fbceeba2
PE
2295 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
2296 * cm.h (struct cm): Likewise.
2297 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
2298 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
2299 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
2300 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
2301 (turn_on_face, init_tty): Likewise.
2302 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 2303
7f3f1250
PE
2304 * term.c (term_mouse_position): Rename local to avoid shadowing.
2305
e6ca6543
PE
2306 * alloc.c (mark_ttys): Move decl from here ...
2307 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
2308
c40f8d15
AS
23092011-03-11 Andreas Schwab <schwab@linux-m68k.org>
2310
2311 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
2312
cfe0661d
JB
23132011-03-09 Juanma Barranquero <lekktu@gmail.com>
2314
2315 * search.c (compile_pattern_1): Remove argument regp, unused since
2316 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
2317 (compile_pattern): Don't pass it.
2318
0afb4571
J
23192011-03-08 Jan Djärv <jan.h.d@swipnet.se>
2320
2321 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
2322 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
2323 for ! HAVE_GTK3.
2324 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
2325
2326 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
2327
2328 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
2329 gdk_window_get_screen, gdk_window_get_geometry,
2330 gdk_x11_window_lookup_for_display and GDK_KEY_g.
2331 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
2332 (xg_get_pixbuf_from_pixmap): New function.
2333 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
2334 to Pixmap, take frame as parameter, remove GdkColormap parameter.
2335 Call xg_get_pixbuf_from_pixmap instead of
2336 gdk_pixbuf_get_from_drawable.
2337 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
2338 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
2339 (xg_check_special_colors): Use GtkStyleContext and its functions
2340 for HAVE_GTK3.
2341 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
2342 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
2343 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
2344 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
2345 Call gtk_widget_get_preferred_size.
0afb4571
J
2346 (xg_frame_resized): gdk_window_get_geometry only takes 5
2347 parameters.
44f230aa
SM
2348 (xg_win_to_widget, xg_event_is_for_menubar):
2349 Call gdk_x11_window_lookup_for_display.
0afb4571
J
2350 (xg_set_widget_bg): New function.
2351 (delete_cb): New function.
2352 (xg_create_frame_widgets): connect delete-event to delete_cb.
2353 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
2354 (xg_set_background_color): Call xg_set_widget_bg.
2355 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
2356 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
2357 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
2358 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
2359 if ! HAVE_GTK3.
2360 (update_frame_tool_bar): Call gtk_widget_hide.
2361 (xg_initialize): Use GDK_KEY_g.
2362
2363 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
2364 if ! HAVE_GTK3
2365 (x_session_initialize): Call gdk_x11_set_sm_client_id.
2366
2367 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
2368 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
2369 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
2370
1c2cc4ef
JB
23712011-03-08 Juanma Barranquero <lekktu@gmail.com>
2372
2373 * w32xfns.c (select_palette): Check success of RealizePalette against
2374 GDI_ERROR, not zero.
2375
33383987 2376See ChangeLog.11 for earlier changes.
aac0c6e3
MR
2377
2378;; Local Variables:
2379;; coding: utf-8
aac0c6e3
MR
2380;; End:
2381
33383987 2382 Copyright (C) 2011 Free Software Foundation, Inc.
aac0c6e3
MR
2383
2384 This file is part of GNU Emacs.
2385
2386 GNU Emacs is free software: you can redistribute it and/or modify
2387 it under the terms of the GNU General Public License as published by
2388 the Free Software Foundation, either version 3 of the License, or
2389 (at your option) any later version.
2390
2391 GNU Emacs is distributed in the hope that it will be useful,
2392 but WITHOUT ANY WARRANTY; without even the implied warranty of
2393 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2394 GNU General Public License for more details.
2395
2396 You should have received a copy of the GNU General Public License
2397 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.