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