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