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