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