* character.c (lisp_string_width): Check for string overflow.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
cb93f9be
PE
12011-05-16 Paul Eggert <eggert@cs.ucla.edu>
2
2b4560a8
PE
3 * character.c (lisp_string_width): Check for string overflow.
4 Use EMACS_INT, not int, for string indexes and lengths; in
5 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
6 the resulting string length overflows an EMACS_INT; instead,
7 report a string overflow if no precision given. When checking for
8 precision exhaustion, use a check that cannot possibly have
9 integer overflow. (Bug#8675)
10 * character.h (lisp_string_width): Adjust to new signature.
11
cb93f9be
PE
12 * alloc.c (string_overflow): New function.
13 (Fmake_string): Use it. This doesn't change behavior, but saves
14 a few bytes and will simplify future changes.
15 * character.c (string_escape_byte8): Likewise.
16 * lisp.h (string_overflow): New decl.
17
067a69a2 182011-05-15 Paul Eggert <eggert@cs.ucla.edu>
1a1f3366
PE
19
20 Fixups, following up to the user-interface timestamp change.
21 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
22 for UI timestamps, instead of unsigned long.
9fbd6841
PE
23 * msdos.c (mouse_get_pos): Likewise.
24 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
25 * w32gui.h (Time): Define by including "systime.h" rather than by
26 declaring it ourselves. (Bug#8664)
27
d4e3e4d3
PE
28 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
29 * image.c (clear_image_cache): Likewise.
30
f6a24d19
PE
31 * term.c (term_mouse_position): Don't assume time_t wraparound.
32
08dc5ae6
PE
33 Be more systematic about user-interface timestamps.
34 Before, the code sometimes used 'Time', sometimes 'unsigned long',
35 and sometimes 'EMACS_UINT', to represent these timestamps. This
36 change causes it to use 'Time' uniformly, as that's what X uses.
37 This makes the code easier to follow, and makes it easier to catch
38 integer overflow bugs such as Bug#8664.
39 * frame.c (Fmouse_position, Fmouse_pixel_position):
40 Use Time, not unsigned long, for user-interface timestamps.
41 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
42 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
43 * keyboard.h (last_event_timestamp): Likewise.
44 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
45 * menu.h (xmenu_show): Likewise.
46 * term.c (term_mouse_position): Likewise.
47 * termhooks.h (struct input_event.timestamp): Likewise.
48 (struct terminal.mouse_position_hook): Likewise.
49 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
50 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
51 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
52 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
53 what it was before.
54 * menu.h, termhooks.h: Include "systime.h", for Time.
55
8e55734a
PE
56 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
57 Don't assume that the difference between two unsigned long values
58 can fit into an integer. At this point, we know button_down_time
59 <= event->timestamp, so the difference must be nonnegative, so
60 there's no need to cast the result if double-click-time is
61 nonnegative, as it should be; check that it's nonnegative, just in
62 case. This bug is triggered when events are more than 2**31 ms
86db42d2 63 apart (about 25 days). (Bug#8664)
8e55734a 64
841f1b75 65 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 66 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 67
3e26f69c
PE
68 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
69 that always fit in int. Use a sentinel instead of a counter, to
70 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
71 * frame.h (struct frame): Use int for menu_bar_items_used
72 instead of EMACS_INT, since it always fits in int.
3e26f69c 73
5cc152c0
PE
74 * menu.c (grow_menu_items): Check for int overflow.
75
d89eb65e
PE
76 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
77
5235bd3e
PE
78 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
79 Before, the code was not consistent. These values cannot exceed
80 2**31 - 1 so there's no need to make them unsigned.
81 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
82 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
83 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
84 as modifiers.
85 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
86
bc827e23
PE
87 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
88 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
89 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
90 presumably because the widths might not match.
91
78eb494e
PE
92 * window.c (size_window): Avoid needless test at loop start.
93
d2fc7e3d 942011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
95
96 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
97
d2fc7e3d 982011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
99
100 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
101 `width' to `bar_area_x' and `bar_area_width', respectively.
102 (x_scroll_run): Take account of fringe background extension.
103
104 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: Rename
105 local vars `left' and `width' to `bar_area_x' and
106 `bar_area_width', respectively.
107 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
108 background extension.
109
79b70037
GM
1102011-05-10 Jim Meyering <meyering@redhat.com>
111
112 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
113
2f142cc5
JB
1142011-05-10 Juanma Barranquero <lekktu@gmail.com>
115
116 * image.c (Finit_image_library): Return t for built-in image types,
117 like pbm and xbm. (Bug#8640)
118
57679c86
AS
1192011-05-09 Andreas Schwab <schwab@linux-m68k.org>
120
121 * w32menu.c (set_frame_menubar): Fix submenu allocation.
122
888c9e86
EZ
1232011-05-07 Eli Zaretskii <eliz@gnu.org>
124
b0512a1d
EZ
125 * w32console.c (Fset_screen_color): Doc fix.
126 (Fget_screen_color): New function.
127 (syms_of_ntterm): Defsubr it.
128
888c9e86
EZ
129 * callproc.c (call_process_cleanup): Don't close and unlink the
130 temporary file if Fcall_process didn't create it in the first
131 place.
132 (Fcall_process): Don't create tempfile if stdout of the child
133 process will be redirected to a file specified with `:file'.
134 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
135 cue to call_process_cleanup not to close that handle.
136
4d3fcc8e
BK
1372011-05-07 Ben Key <bkey76@gmail.com>
138
139 * makefile.w32-in: The bootstrap-temacs rule now makes use of
140 one of two shell specific rules, either bootstrap-temacs-CMD or
141 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
142 to the previous implementation of the bootstrap-temacs rule.
143 The bootstrap-temacs-CMD rule is similar to the previous
144 implementation of the bootstrap-temacs rule except that it
145 makes use of the ESC_CFLAGS variable instead of the CFLAGS
146 variable.
147
148 These changes, along with some changes to nt/configure.bat,
149 nt/gmake.defs, and nt/nmake.defs, are required to extend my
150 earlier fix to add support for --cflags and --ldflags options
151 that include quotes so that it works whether make uses cmd or
152 sh as the shell.
153
b4289b64
MA
1542011-05-06 Michael Albinus <michael.albinus@gmx.de>
155
156 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
157 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
158 is a constant.
159 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
160 a string. Handle both cases.
161 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
162 (Fdbus_register_method): Use Qinvalid_function.
163
af4c0e28
JB
1642011-05-06 Juanma Barranquero <lekktu@gmail.com>
165
166 * makefile.w32-in: Update dependencies.
167 (LISP_H): Add inttypes.h and stdin.h.
168 (PROCESS_H): Add unistd.h.
169
c51453d9
EZ
1702011-05-06 Eli Zaretskii <eliz@gnu.org>
171
172 * lread.c: Include limits.h (fixes the MS-Windows build broken by
173 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
174
8ff0ac3c 1752011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 176
4c4b566b
PE
177 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
178
aab2b9b5
PE
179 * term.c (vfatal): Remove stray call to va_end.
180 It's not needed and the C Standard doesn't allow it here anyway.
181
c378da0b
PE
182 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
183 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
184
288b08c7
PE
185 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
186 bytes.
187
e3601888
PE
188 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
189
db6c0e74
PE
190 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
191
dd5963ea
PE
192 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
193
88c9450f
PE
194 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
195
2f9442b8
PE
196 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
197
c032b5f8
PE
198 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
199 * charset.c (Fdefine_charset_internal): Don't initialize
200 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 201 32-bit int (Bug#8600).
a108c10b
PE
202
203 * lread.c (read_integer): Be more consistent with string-to-number.
204 Use string_to_number to do the actual conversion; this avoids
205 rounding errors and fixes some other screwups. Without this fix,
206 for example, #x1fffffffffffffff was misread as -2305843009213693952.
207 (digit_to_number): Move earlier, for benefit of read_integer.
208 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 209 not a digit in any supported base. (Bug#8602)
a108c10b 210
ad5f9eea
PE
211 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
212
aec1708a
PE
213 * dispnew.c (scrolling_window): Return 1 if we scrolled,
214 to match comment at start of function. This also removes a
215 GCC warning about overflow in a 32+64-bit port.
216
47be4ab5
PE
217 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
218
371cac43
PE
219 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
220 Reported by Stefan Monnier in
221 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
222 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): Use
223 SYMBOLP-guarded XSYMBOL, not XPNTR.
224
d01a7826
PE
225 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
226 (EMACS_UINTPTR): Likewise, with uintptr_t.
227
7fd47d5c
PE
228 * lisp.h: Prefer 64-bit EMACS_INT if available.
229 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
230 on 32-bit hosts that have 64-bit int, so that they can access
231 large files.
122b0c86
PE
232 However, temporarily disable this change unless the temporary
233 symbol WIDE_EMACS_INT is defined.
7fd47d5c 234
8727937b
PE
235 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
236
8ac068ac
PE
237 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
238 This removes an assumption that EMACS_INT and long are the same
239 width as pointers. The assumption is true for Emacs porting targets
240 now, but we want to make other targets possible.
241 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
242 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
243 In the rest of the code, change types of integers that hold casted
244 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
245 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
246 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
247 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
248 No need to cast type when ORing.
249 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
250 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
251 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
252 assume EMACS_INT is the same width as char *.
253 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
254 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
255 Remove no-longer-needed casts.
256 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
257 (xg_tool_bar_help_callback, xg_make_tool_item):
258 Use EMACS_INTPTR to hold an integer
259 that will be cast to void *; this can avoid a GCC warning
260 if EMACS_INT is not the same width as void *.
261 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
262 * xdisp.c (display_echo_area_1, resize_mini_window_1):
263 (current_message_1, set_message_1):
264 Use a local to convert to proper width without a cast.
265 * xmenu.c (dialog_selection_callback): Likewise.
266
ede49d71
PE
267 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
268 Also, don't assume VALBITS / RAND_BITS is less than 5,
269 and don't rely on undefined behavior when shifting a 1 left into
270 the sign bit.
271 * lisp.h (get_random): Change signature to match.
272
2f30ecd0
PE
273 * lread.c (hash_string): Use size_t, not int, for hash computation.
274 Normally we prefer signed values; but hashing is special, because
275 it's better to use unsigned division on hash table sizes so that
276 the remainder is nonnegative. Also, size_t is the natural width
277 for hashing into memory. The previous code used 'int', which doesn't
278 retain enough info to hash well into very large tables.
279 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
280
2a866e7b
PE
281 * dbusbind.c: Don't possibly lose pointer info when converting.
282 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
283 Use XPNTR rather than XHASH, so that the high-order bits of
284 the pointer aren't lost when converting through void *.
285
51639eac
PE
286 * eval.c (Fautoload): Don't double-shift a pointer.
287
92394119
PE
288 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
289
dbdb9a7c
JB
2902011-05-06 Juanma Barranquero <lekktu@gmail.com>
291
292 * gnutls.c (DEF_GNUTLS_FN):
293 * image.c (DEF_IMGLIB_FN): Make function pointers static.
294
db7a0b4f
AS
2952011-05-05 Andreas Schwab <schwab@linux-m68k.org>
296
297 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
298 marker. (Bug#8610)
299
f7ff1b0f 3002011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
301
302 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
303 New version that can reserve upto 2GB of heap space.
304
f7ff1b0f 3052011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
306
307 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
308
639c109b
TZ
3092011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
310
311 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
312 `gnutls_certificate_set_x509_key_file'.
313
d2127135
JB
3142011-05-05 Juanma Barranquero <lekktu@gmail.com>
315
316 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
317 Update dependencies.
318
e968f4f3
JB
3192011-05-04 Juanma Barranquero <lekktu@gmail.com>
320
321 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
322 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
323 Remove unused parameter `fildes'.
324 * process.c (read_process_output, send_process): Don't pass it.
325
84d358f0
JB
3262011-05-04 Juanma Barranquero <lekktu@gmail.com>
327
328 Fix previous change: the library cache is defined in w32.c.
329 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
330 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
331
0898ca10
JB
3322011-05-04 Juanma Barranquero <lekktu@gmail.com>
333
334 Implement dynamic loading of GnuTLS on Windows.
335
336 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
337 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
338 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
339 Declare.
340
341 * gnutls.c (Qgnutls_dll): Define.
342 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
343 (gnutls_*): Declare function pointers.
344 (init_gnutls_functions): New function to initialize function pointers.
345 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
346 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
347 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
348 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
349 (emacs_gnutls_write, emacs_gnutls_read)
350 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
351 (Fgnutls_available_p): New function.
352 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
353 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
354 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
355
356 * image.c: Include w32.h.
357 (Vimage_type_cache): Delete.
358 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
359 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
360 (w32_delayed_load): Move to w32.c.
361
362 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
363
364 * w32.c (QCloaded_from, Vlibrary_cache): Define.
365 (w32_delayed_load): Move from image.c. When loading a library, record
366 its filename in the :loaded-from property of the library id.
367 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
368 Initialize and staticpro them.
369 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
370
371 * process.c: Include lisp.h before w32.h, not after.
372 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
373 instead of gnutls_record_check_pending.
374
375 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
376
ff4de4aa
TZ
3772011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
378
379 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
380 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
381 as passed in.
382
abe95abb
JD
3832011-05-03 Jan Djärv <jan.h.d@swipnet.se>
384
385 * xterm.c (x_set_frame_alpha): Do not set property on anything
386 else than FRAME_X_OUTER_WINDOW (Bug#8608).
387
e16e55d4
JB
3882011-05-02 Juanma Barranquero <lekktu@gmail.com>
389
390 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
391
bafcf6a5
JB
3922011-05-02 Juanma Barranquero <lekktu@gmail.com>
393
394 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
395 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
396 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
397 (gnutls_global_initialized, Qgnutls_bootprop_priority)
398 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
399 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
400 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
401 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
402 (Qgnutls_bootprop_callbacks_verify): Make static.
403
e7a6747f
AS
4042011-05-01 Andreas Schwab <schwab@linux-m68k.org>
405
19ed11ba
AS
406 * callproc.c: Indentation fixup.
407
e7a6747f
AS
408 * sysdep.c (wait_for_termination_1): Make static.
409 (wait_for_termination, interruptible_wait_for_termination): Move
410 after wait_for_termination_1.
411
1ef14cb4
LMI
4122011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
413
414 * sysdep.c (interruptible_wait_for_termination): New function
415 which is like wait_for_termination, but allows keyboard
416 interruptions.
417
418 * callproc.c (Fcall_process): Add (:file "file") as an option for
419 the STDOUT buffer.
420 (Fcall_process_region): Ditto.
421
330d880c
EZ
4222011-04-30 Eli Zaretskii <eliz@gnu.org>
423
8db90b73
EZ
424 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
425 rather than `XVECTOR (FOO)->size'.
426
330d880c
EZ
427 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
428 inttypes.h, as a gnulib replacement is used if it not available in
429 system headers.
430
15cbd324
EZ
4312011-04-21 Eli Zaretskii <eliz@gnu.org>
432
433 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
434 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
435 of MOST_POSITIVE_FIXNUM. (Bug#8528)
436
437 * coding.c (coding_alloc_by_realloc): Error out if destination
438 will grow beyond MOST_POSITIVE_FIXNUM.
439 (decode_coding_emacs_mule): Abort if there isn't enough place in
440 charbuf for the composition carryover bytes. Reserve an extra
441 space for up to 2 characters produced in a loop.
442 (decode_coding_iso_2022): Abort if there isn't enough place in
443 charbuf for the composition carryover bytes.
444
4452011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 446
ae940cca
EZ
447 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
448 aborting when %lld or %lll format is passed.
449 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
450 %llo or %llx format is passed. (Bug#8545)
451
03ab8921
EZ
452 * window.c (window_scroll_line_based): Use a marker instead of
453 simple variables to record original value of point. (Bug#7952)
454
afda1437
EZ
455 * doprnt.c (doprnt): Fix the case where a multibyte sequence
456 produced by %s or %c overflows available buffer space. (Bug#8545)
457
f76dee0c
PE
4582011-04-28 Paul Eggert <eggert@cs.ucla.edu>
459
460 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 461 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 462
fdc5744d
JB
4632011-04-28 Juanma Barranquero <lekktu@gmail.com>
464
465 * w32.c (init_environment): Warn about defaulting HOME to C:\.
466
638f053a
JB
4672011-04-28 Juanma Barranquero <lekktu@gmail.com>
468
469 * keyboard.c (Qdelayed_warnings_hook): Define.
470 (command_loop_1): Run `delayed-warnings-hook'
471 if Vdelayed_warnings_list is non-nil.
472 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
473 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
474
d178f871
EZ
4752011-04-28 Eli Zaretskii <eliz@gnu.org>
476
477 * doprnt.c (doprnt): Don't return value smaller than the buffer
478 size if the message was truncated. (Bug#8545).
479
b124fd93
JB
4802011-04-28 Juanma Barranquero <lekktu@gmail.com>
481
482 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
483 (Fx_window_property): #if-0 the whole functions, not just the bodies.
484
e810457d
PE
4852011-04-27 Paul Eggert <eggert@cs.ucla.edu>
486
487 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
488
ea51cceb
JB
4892011-04-27 Juanma Barranquero <lekktu@gmail.com>
490
491 * makefile.w32-in: Update dependencies.
492
94dcfacf
EZ
4932011-04-27 Eli Zaretskii <eliz@gnu.org>
494
495 Improve `doprnt' and its usage. (Bug#8545)
496 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
497 `format_end'. Remove support for %l as a conversion specifier.
498 Don't use xrealloc. Improve diagnostics when the %l size modifier
499 is used. Update the commentary.
500
501 * eval.c (verror): Simplify calculation of size_t.
502
503 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
504 messages.
505
f61f41d7
PE
5062011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
507
508 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
509 change.
510
96fb4434
PE
5112011-04-27 Paul Eggert <eggert@cs.ucla.edu>
512
513 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
514 This makes this file independent of the recent pseudovector change.
515
671875da 5162011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 517
69e9b5a3
PE
518 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
519
b5f869a7 520 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 521 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 522 Remove unused local.
c8926152 523 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 524
841a1577 525 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
eab3844f
PE
526 GCC 4.6.0 optimizes based on type-based alias analysis. For
527 example, if b is of type struct buffer * and v of type struct
528 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
529 != &v->size, and therefore "v->size = 1; b->size = 2; return
530 v->size;" must therefore return 1. This assumption is incorrect
531 for Emacs, since it type-puns struct Lisp_Vector * with many other
532 types. To fix this problem, this patch adds a new type struct
f904488f 533 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
534 and pseudovectors, and helps optimizing compilers not get fooled
535 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
536 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
537 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
538 the size member.
eab3844f
PE
539 (XSETPVECTYPE): Rewrite in terms of new macro.
540 (XSETPVECTYPESIZE): New macro, specifying both type and size.
541 This is a bit clearer, and further avoids the possibility of
542 undesirable aliasing.
543 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 544 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
545 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
546 since Lisp_Subr is a special case (no "next" field).
f904488f
PE
547 (ASIZE): Now uses header.size rather than size. All
548 previous uses of XVECTOR (foo)->size replaced to use this macro,
549 to avoid the hassle of writing XVECTOR (foo)->header.size.
550 (struct vectorlike_header): New type.
eab3844f
PE
551 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
552 object, to help avoid aliasing.
553 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
554 (SUBRP): Likewise, since Lisp_Subr is a special case.
555 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
556 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
557 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 558 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
559 changed to be "header.size" and "header.next".
560 * buffer.h (struct buffer): Likewise.
561 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
562 * frame.h (struct frame): Likewise.
563 * process.h (struct Lisp_Process): Likewise.
564 * termhooks.h (struct terminal): Likewise.
565 * window.c (struct save_window_data, struct saved_window): Likewise.
566 * window.h (struct window): Likewise.
567 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
568 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
569 * buffer.c (init_buffer_once): Likewise.
570 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
571 special case.
572 * process.c (Fformat_network_address): Use local var for size,
573 for brevity.
574
0df1eac5
PE
575 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
576
847ab9d1 577 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
578 * data.c (atof): Remove decl; no longer used or needed.
579 (digit_to_number): Move to lread.c.
580 (Fstring_to_number): Use new string_to_number function, to be
581 consistent with how the Lisp reader treats infinities and NaNs.
582 Do not assume that floating-point numbers represent EMACS_INT
583 without losing information; this is not true on most 64-bit hosts.
584 Avoid double-rounding errors, by insisting on integers when
585 parsing non-base-10 numbers, as the documentation specifies.
586 * lisp.h (string_to_number): New decl, replacing ...
587 (isfloat_string): Remove.
bc0a5c13 588 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 589 (read1): Do not accept +. and -. as integers; this
452f4150
PE
590 appears to have been a coding error. Similarly, do not accept
591 strings like +-1e0 as floating point numbers. Do not report
592 overflow for integer overflows unless the base is not 10 which
593 means we have no simple and reliable way to continue.
594 Break out the floating-point parsing into a new
595 function string_to_number, so that Fstring_to_number parses
596 floating point numbers consistently with the Lisp reader.
597 (digit_to_number): Moved here from data.c. Make it static inline.
598 (E_CHAR, EXP_INT): Remove, replacing with ...
599 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
600 (string_to_number): New function, replacing isfloat_string.
601 This function checks for valid syntax and produces the resulting
602 Lisp float number too. Rework it so that string-to-number
bc0a5c13 603 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
604 so that overflow for non-base-10 numbers is reported only when
605 there's no portable and simple way to convert to floating point.
452f4150 606
67769ffc
PE
607 * textprop.c (set_text_properties_1): Rewrite for clarity,
608 and to avoid GCC warning about integer overflow.
609
c20db43f
PE
610 * intervals.h (struct interval): Use EMACS_INT for members
611 where EMACS_UINT might cause problems. See
612 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
613 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
614 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
615 All uses changed.
37aa2f85
PE
616 (offset_intervals): Tell GCC not to worry about length overflow
617 when negating a negative length.
c20db43f 618
2538aa2f
PE
619 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
620 (overrun_check_free): Likewise.
621
f2d3008d
PE
622 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
623 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
624 word size.
625
ec8df744
PE
626 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
627 (gnutls_make_error): Rename local to avoid shadowing.
628 (gnutls_emacs_global_deinit): ifdef out; not used.
629 (Fgnutls_boot): Use const for pointer to readonly storage.
630 Comment out unused local. Fix pointer signedness problems.
631
640ee02d
PE
632 * lread.c (openp): Don't stuff size_t into an 'int'.
633 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
634 about possible signed overflow.
635
6048fb2a
PE
636 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
637 (GDK_KEY_g): Don't define if already defined.
638 (xg_prepare_tooltip): Avoid pointer signedness problem.
639 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
640
fa3c87e1
PE
641 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
642 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
643
2172544b
PE
644 * xfns.c (Fx_window_property): Simplify a bit,
645 to make a bit faster and to avoid GCC 4.6.0 warning.
646 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
647
9b821a21
PE
648 * fns.c (internal_equal): Don't assume size_t fits in int.
649
3c616cfa
PE
650 * alloc.c (compact_small_strings): Tighten assertion a little.
651
c2982e87
PE
652 Replace pEd with more-general pI, and fix some printf arg casts.
653 * lisp.h (pI): New macro, generalizing old pEd macro to other
654 conversion specifiers. For example, use "...%"pI"d..." rather
655 than "...%"pEd"...".
656 (pEd): Remove. All uses replaced with similar uses of pI.
657 * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise.
658 * alloc.c (check_pure_size): Don't overflow by converting size to int.
659 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
660 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
661 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
662 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
663 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
664 64-bit hosts.
665 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
666 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
667 * print.c (safe_debug_print, print_object): Likewise.
668 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
669 to int.
6f04d126
PE
670 Use pI instead of if-then-else-abort. Use %p to avoid casts,
671 avoiding the 0 flag, which is not portable.
c2982e87
PE
672 * process.c (Fmake_network_process): Use pI to avoid cast.
673 * region-cache.c (pp_cache): Likewise.
674 * xdisp.c (decode_mode_spec): Likewise.
675 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
676 behavior on 64-bit hosts with printf arg.
6f04d126 677 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
678 (x_stop_queuing_selection_requests): Likewise.
679 (x_get_window_property): Don't truncate byte count to an 'int'
680 when tracing.
0b432f21 681
5e073ec7
PE
682 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
683 here, since it parses constructs like leading '-' and spaces,
684 which are not wanted; and it overflows with large numbers.
685 Instead, simply match F[0-9]+, which is what is wanted anyway.
686
36372bf9
PE
687 * alloc.c: Remove unportable assumptions about struct layout.
688 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
689 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
690 (allocate_vectorlike, make_pure_vector): Use the new macros,
691 plus offsetof, to remove unportable assumptions about struct layout.
692 These assumptions hold on all porting targets that I know of, but
693 they are not guaranteed, they're easy to remove, and removing them
694 makes further changes easier.
695
0b432f21
PE
696 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
697 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
698 (string_overrun_cookie): Now const. Use initializers that
699 don't formally overflow signed char, to avoid warnings.
000098c1
PE
700 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
701 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
702 (allocate_buffer): Don't assume sizeof (struct buffer) is a
703 multiple of sizeof (EMACS_INT); it need not be, if
704 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 705 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 706
895009e1
JB
7072011-04-26 Juanma Barranquero <lekktu@gmail.com>
708
709 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
710
6a7a1b0b
TZ
7112011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
712
713 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 714 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
715 Reported by Paul Eggert <eggert@cs.ucla.edu>.
716
841a1577 7172011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
718
719 * lisp.h (Qdebug): List symbol.
895009e1 720 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
721 * keyboard.c (debug-on-event): New variable.
722 (handle_user_signal): Break into debugger when debug-on-event
723 matches the current signal symbol.
724
f2d3ba6f
DN
7252011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
726
727 * alloc.c (check_sblock, check_string_bytes)
728 (check_string_free_list): Convert to standard C.
729
42ce4c63
TZ
7302011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
731
732 * w32.c (emacs_gnutls_push): Fix typo.
733
825cd63c
EZ
7342011-04-25 Eli Zaretskii <eliz@gnu.org>
735
fb11d64d
EZ
736 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
737 "cast to pointer from integer of different size".
738
825cd63c
EZ
739 Improve doprnt and its use in verror. (Bug#8545)
740 * doprnt.c (doprnt): Document the set of format control sequences
741 supported by the function. Use SAFE_ALLOCA instead of always
742 using `alloca'.
743
744 * eval.c (verror): Don't limit the buffer size at size_max-1, that
745 is one byte too soon. Don't use xrealloc; instead xfree and
746 xmalloc anew.
747
e061a11b
TZ
7482011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
749
750 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
751 callbacks stage.
752
753 * gnutls.c: Renamed global_initialized to
754 gnutls_global_initialized. Added internals for the
755 :verify-hostname-error, :verify-error, and :verify-flags
756 parameters of `gnutls-boot' and documented those parameters in the
757 docstring. Start callback support.
758 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
759 unless a fatal error occured. Call gnutls_alert_send_appropriate
760 on error. Return error code.
761 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
762 (emacs_gnutls_read): Likewise.
763 (Fgnutls_boot): Return handshake error code.
764 (emacs_gnutls_handle_error): New function.
765 (wsaerror_to_errno): Likewise.
766
767 * w32.h (emacs_gnutls_pull): Add prototype.
768 (emacs_gnutls_push): Likewise.
769
770 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
771 (emacs_gnutls_push): Likewise.
772
7732011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
774
775 * process.c (wait_reading_process_output): Check if GnuTLS
776 buffered some data internally if no FDs are set for TLS
777 connections.
778
779 * makefile.w32-in (OBJ2): Add gnutls.$(O).
780 (LIBS): Link to USER_LIBS.
781 ($(BLD)/gnutls.$(0)): New target.
782
fa6996bc
EZ
7832011-04-24 Eli Zaretskii <eliz@gnu.org>
784
eb35682e
EZ
785 * xdisp.c (handle_single_display_spec): Rename the
786 display_replaced_before_p argument into display_replaced_p, to
787 make it consistent with the commentary. Fix typos in the
788 commentary.
789
e2ad650c
EZ
790 * textprop.c (syms_of_textprop): Remove dead code.
791 (copy_text_properties): Delete obsolete commentary about an
792 interface that was deleted long ago. Fix typos in the description
793 of arguments.
794
1b2de274
EZ
795 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
796 to changes in oldXMenu/XMenu.h from 2011-04-16.
797 <menu_help_message, prev_menu_help_message>: Constify.
798 (IT_menu_make_room): menu->help_text is now `const char **';
799 adjust.
800
801 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
802 to changes in oldXMenu/XMenu.h from 2011-04-16.
803 (struct XMenu): Declare `help_text' `const char **'.
804
805 * xfaces.c <Qunspecified>: Make extern again.
806
807 * syntax.c: Include sys/types.h before including regex.h, as
808 required by Posix.
809
762b15be
EZ
810 * doc.c (get_doc_string): Improve the format passed to `error'.
811
812 * doprnt.c (doprnt): Improve commentary.
813
814 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
815
816 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
817 them with etags.
818
f1052e5d
EZ
819 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
820 changes in globals.h immediately force recompilation.
762b15be
EZ
821 (TAGS): Depend on $(CURDIR)/m/intel386.h and
822 $(CURDIR)/s/ms-w32.h.
823 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 824
fa6996bc
EZ
825 * character.c (Fchar_direction): Function deleted.
826 (syms_of_character): Don't defsubr it.
827 <char-direction-table>: Deleted.
828
e6c3da20
EZ
8292011-04-23 Eli Zaretskii <eliz@gnu.org>
830
831 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
832 * doprnt.c: Include limits.h.
833 (SIZE_MAX): New macro.
834 (doprnt): Return a size_t value. 2nd arg is now size_t. Many
835 local variables are now size_t instead of int or unsigned.
836 Improve overflow protection. Support `l' modifier for integer
837 conversions. Support %l conversion. Don't assume an EMACS_INT
838 argument for integer conversions and for %c.
839
840 * lisp.h (doprnt): Restore prototype.
841
842 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
843 $(SRC)/character.h.
844
845 * Makefile.in (base_obj): Add back doprnt.o.
846
847 * deps.mk (doprnt.o): Add back prerequisites.
848 (callint.o): Depend on character.h.
849
850 * eval.c (internal_lisp_condition_case): Include the handler
851 representation in the error message.
852 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
853 when breaking from the loop.
854
855 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
856
857 * callint.c (Fcall_interactively): When displaying error message
858 about invalid control letter, pass the character's codepoint, not
859 a pointer to its multibyte form. Improve display of the character
860 in octal and display also its hex code.
861
862 * character.c (char_string): Use %x to display the (unsigned)
863 codepoint of an invalid character, to avoid displaying a bogus
864 negative value.
865
866 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
867 `error', not SYMBOL_NAME itself.
868
869 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
870 character arguments to `error'.
871
872 * charset.c (check_iso_charset_parameter): Fix incorrect argument
873 to `error' in error message about FINAL_CHAR argument. Make sure
874 FINAL_CHAR is a character, and use %c when it is passed as
875 argument to `error'.
876
4ffd0d6b 8772011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
878
879 * s/ms-w32.h (localtime): Redirect to sys_localtime.
880
881 * w32.c: Include <time.h>.
882 (sys_localtime): New function.
883
4ffd0d6b 8842011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
885
886 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
887
4ffd0d6b 888 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 889
4ffd0d6b 8902011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 891
4ffd0d6b
GM
892 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
893 zombies (Bug#8467).
aac0c6e3 894
04c56954
EZ
8952011-04-19 Eli Zaretskii <eliz@gnu.org>
896
897 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
898 gl_state.e_property when gl_state.object is Qt.
899
900 * insdel.c (make_gap_larger): Remove limitation of buffer size
901 to <= INT_MAX.
902
16a43933
CY
9032011-04-18 Chong Yidong <cyd@stupidchicken.com>
904
905 * xdisp.c (lookup_glyphless_char_display)
906 (produce_glyphless_glyph): Handle cons cell entry in
907 glyphless-char-display.
908 (Vglyphless_char_display): Document it.
909
910 * term.c (produce_glyphless_glyph): Handle cons cell entry in
911 glyphless-char-display.
912
4581706e
CY
9132011-04-17 Chong Yidong <cyd@stupidchicken.com>
914
915 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
916
917 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
918
919 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
920 definition for no-X builds.
921
4887c6e2 9222011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 923
fd35b6f9
PE
924 Static checks with GCC 4.6.0 and non-default toolkits.
925
5c1ccb01
PE
926 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
927
006c5daa
PE
928 * process.c (keyboard_bit_set): Define only if SIGIO.
929 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
930 (send_process): Repair possible setjmp clobbering.
931
efc736d3
PE
932 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
933
4e2fe2e6
PE
934 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
935
f97334a2
PE
936 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
937
4e75f29d
PE
938 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
939 Define only if needed.
940
90efadd1
PE
941 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
942 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 943 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 944
3c647824
PE
945 * dispextern.h (struct redisplay_interface): Rename param
946 to avoid shadowing.
e264f262 947 * termhooks.h (struct terminal): Likewise.
761383f4 948 * xterm.c (xembed_send_message): Likewise.
3c647824 949
b58c5c4a
PE
950 * insdel.c (make_gap_smaller): Define only if
951 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
952
cad59032
PE
953 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
954 it.
955
c339dc2e
PE
956 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
957 so that we aren't warned about unused symbols.
958
91a3e27b
PE
959 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
960
399c71d3 961 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 962
8ffc96f5
PE
963 * xfns.c (x_real_positions): Mark locals as initialized.
964
eef9bc79
PE
965 * xmenu.c (xmenu_show): Don't use uninitialized vars.
966
098db9dd
PE
967 * xterm.c: Fix problems found by static analysis with other toolkits.
968 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
969 (x_dispatch_event): Declare static if USE_GTK, and
970 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 971 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 972 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
973 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
974 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 975
eb18f6cc
PE
976 * xmenu.c (menu_help_callback): Pointer type fixes.
977 Use const pointers when pointing at readonly data. Avoid pointer
978 signedness clashes.
979 (FALSE): Remove unused macro.
980 (update_frame_menubar): Remove unused decl.
981
1fe72bf8
PE
982 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
983
60d9e1db
PE
984 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
985 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
986 (single_menu_item): Rename local to avoid shadowing.
987
39261c26
PE
988 * keyboard.c (make_lispy_event): Remove unused local var.
989
018c5e19
PE
990 * frame.c, frame.h (x_get_resource_string): Bring this back, but
991 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
992
63d2b86e
PE
993 * bitmaps: Change bitmaps from unsigned char back to the X11
994 compatible char. Avoid the old compiler warnings about
995 out-of-range initializers by using, for example, '\xab' rather
996 than 0xab.
997
aefd87e1
PE
998 * xgselect.c (xgselect_initialize): Check vs interface
999 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
1000
bf501fb9
PE
1001 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
1002
e9829fdf
PE
1003 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
1004 to read-only memory.
1005
1086c095
PE
1006 * fns.c (vector): Remove; this old hack is no longer needed.
1007
2baccd04 1008 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 1009 Remove unused var.
dde42981 1010 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 1011
72391843 1012 * xrdb.c (x_load_resources): Omit unused local.
3565b346 1013
436c16df 1014 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 1015 (x_window): Rename locals to avoid shadowing.
dc5ddd85 1016 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 1017
92bb796d 1018 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 1019 (x_term_init): Remove local to avoid shadowing.
92bb796d 1020
764430a3 1021 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
1022
1023 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
1024 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
1025
d1dfb56c
EZ
10262011-04-16 Eli Zaretskii <eliz@gnu.org>
1027
c4354cb4
EZ
1028 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
1029
d1dfb56c
EZ
1030 Fix regex.c, syntax.c and friends for buffers > 2GB.
1031 * syntax.h (struct gl_state_s): Declare character position members
1032 EMACS_INT.
1033
1034 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
1035
1036 * textprop.c (verify_interval_modification, interval_of): Declare
1037 arguments EMACS_INT.
1038
1039 * intervals.c (adjust_intervals_for_insertion): Declare arguments
1040 EMACS_INT.
1041
1042 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
1043
1044 * indent.c (Fvertical_motion): Local variable it_start is now
1045 EMACS_INT.
1046
1047 * regex.c (re_match, re_match_2, re_match_2_internal)
1048 (bcmp_translate, regcomp, regexec, print_double_string)
1049 (group_in_compile_stack, re_search, re_search_2, regex_compile)
1050 (re_compile_pattern, re_exec): Declare arguments and local
1051 variables `size_t' and `ssize_t' and return values `regoff_t', as
1052 appropriate.
1053 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
1054 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
1055 <compile_stack_type>: `size' and `avail' are now `size_t'.
1056
1057 * regex.h <regoff_t>: Use ssize_t, not int.
1058 (re_search, re_search_2, re_match, re_match_2): Arguments that
1059 specify buffer/string position and length are now ssize_t and
1060 size_t. Return type is regoff_t.
1061
613052cd
BK
10622011-04-16 Ben Key <bkey76@gmail.com>
1063
1064 * nsfont.m: Fixed bugs in ns_get_family and
1065 ns_descriptor_to_entity that were caused by using free to
1066 deallocate memory blocks that were allocated by xmalloc (via
1067 xstrdup). This caused Emacs to crash when compiled with
1068 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
1069 --enable-checking=xmallocoverrun). xfree is now used to
1070 deallocate these memory blocks.
1071
4170f62f 10722011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 1073
71b41406
PE
1074 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
1075
9587a89d
PE
1076 emacs_write: Accept and return EMACS_INT for sizes.
1077 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
1078 et seq.
1079 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
1080 Accept and return EMACS_INT.
1081 (emacs_gnutls_write): Return the number of bytes written on
1082 partial writes.
1083 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
1084 (emacs_read, emacs_write): Remove check for negative size, as the
1085 Emacs source code has been audited now.
9587a89d
PE
1086 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
1087 (emacs_read, emacs_write): Use it.
273a5f82
PE
1088 * process.c (send_process): Adjust to the new signatures of
1089 emacs_write and emacs_gnutls_write. Do not attempt to store
1090 a byte offset into an 'int'; it might overflow.
9587a89d 1091 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 1092
3e047f51
PE
1093 * sound.c: Don't assume sizes fit in 'int'.
1094 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 1095 Return EMACS_INT, not int.
3e047f51 1096 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
1097 Accept EMACS_INT, not int.
1098 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
1099 record read return values.
1100
cc39a9db
BK
11012011-04-15 Ben Key <bkey76@gmail.com>
1102
c9d0ec6d
JB
1103 * keyboard.c (Qundefined): Don't declare static since it is used
1104 in nsfns.m.
1105 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
1106 static since they are used in nsfont.m.
cc39a9db 1107
6c60eb9f
SM
11082011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
1109
1110 * process.c (Qprocessp): Don't declare static.
1111 * lisp.h (Qprocessp): Declare again.
1112
7990b61a
JB
11132011-04-15 Juanma Barranquero <lekktu@gmail.com>
1114
1115 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
1116
5d4cb038
PE
11172011-04-14 Paul Eggert <eggert@cs.ucla.edu>
1118
8bd7b830 1119 Improve C-level modularity by making more things 'static'.
cd64ea1d 1120
e3b27b31
PE
1121 Don't publish debugger-only interfaces to other modules.
1122 * lisp.h (safe_debug_print, debug_output_compilation_hack):
1123 (verify_bytepos, count_markers): Move decls to the only modules
1124 that need them.
1125 * region-cache.h (pp_cache): Likewise.
1126 * window.h (check_all_windows): Likewise.
1127 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
1128
5d4cb038
PE
1129 * sysdep.c (croak): Now static, if
1130 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
1131 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
1132
1133 * alloc.c (refill_memory_reserve): Now static if
1134 !defined REL_ALLOC || defined SYSTEM_MALLOC.
1135 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 1136
e87b6180
PE
1137 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
1138 Define only if USE_LUCID.
1139
ac64929e
PE
1140 * xrdb.c (x_customization_string, x_rm_string): Now static.
1141
6f37259d
PE
1142 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
1143 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
1144
1683e3ab
PE
1145 * xdisp.c (draw_row_with_mouse_face): Now static.
1146 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
1147
de9c2632
PE
1148 * window.h (check_all_windows): Mark externally visible.
1149
2b96acb7
PE
1150 * window.c (window_deletion_count): Now static.
1151
1152 * undo.c: Make symbols static if they're not exported.
1153 (last_undo_buffer, last_boundary_position, pending_boundary):
1154 Now static.
1155
50436f33
PE
1156 * textprop.c (interval_insert_behind_hooks): Now static.
1157 (interval_insert_in_front_hooks): Likewise.
1158
64520e5c
PE
1159 * term.c: Make symbols static if they're not exported.
1160 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
1161 (max_frame_lines, tty_set_terminal_modes):
1162 (tty_reset_terminal_modes, tty_turn_off_highlight):
1163 (get_tty_terminal): Now static.
1164 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
1165 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 1166 HAVE_WINDOW_SYSTEM.
64520e5c
PE
1167 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
1168 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
1169
1fa53021
PE
1170 * sysdep.c: Make symbols static if they're not exported.
1171 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
1172 Now static.
1173 (sigprocmask_set, full_mask): Remove; unused.
1174 (wait_debugging): Mark as visible.
1175 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
1176 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
1177
d4b43b22
PE
1178 * syntax.c (syntax_temp): Define only if !__GNUC__.
1179
b7c513d0
PE
1180 * sound.c (current_sound_device, current_sound): Now static.
1181
989b29ad
PE
1182 * search.c (searchbufs, searchbuf_head): Now static.
1183
13a55a78
PE
1184 * scroll.c (scroll_cost): Remove; unused.
1185 * dispextern.h (scroll_cost): Remove decl.
1186
de68a1fc
PE
1187 * region-cache.h (pp_cache): Mark as externally visible.
1188
40ccffa6
PE
1189 * process.c: Make symbols static if they're not exported.
1190 (process_tick, update_tick, create_process, chan_process):
1191 (Vprocess_alist, proc_buffered_char, datagram_access):
1192 (fd_callback_data, send_process_frame, process_sent_to): Now static.
1193 (deactivate_process): Mark defn as static, as well as decl.
1194 * lisp.h (create_process): Remove decl.
1195 * process.h (chan_process, Vprocess_alist): Remove decls.
1196
ad64fc97
PE
1197 * print.c: Make symbols static if they're not exported.
1198 (print_depth, new_backquote_output, being_printed, print_buffer):
1199 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
1200 (print_interval, print_number_index, initial_stderr_stream):
1201 Now static.
1202 * lisp.h (Fprinc): Remove decl.
1203 (debug_output_compilation_hack): Mark as externally visible.
1204
adddb265
PE
1205 * sysdep.c (croak): Move decl from here to syssignal.h.
1206 * syssignal.h (croak): Put it here, so the API can be checked when
1207 'croak' is called from dissociate_if_controlling_tty.
1208
1717ede2
PE
1209 * minibuf.c: Make symbols static if they're not exported.
1210 (minibuf_save_list, choose_minibuf_frame): Now static.
1211 * lisp.h (choose_minibuf_frame): Remove decl.
1212
fa5fb2bc
PE
1213 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
1214
1e3890d1
PE
1215 * lread.c: Make symbols static if they're not exported.
1216 (read_objects, initial_obarray, oblookup_last_bucket_number):
1217 Now static.
1218 (make_symbol): Remove; unused.
1219 * lisp.h (initial_obarray, make_symbol): Remove decls.
1220
8a1414fa
PE
1221 * keyboard.c: Make symbols static if they're not exported.
1222 (single_kboard, recent_keys_index, total_keys, recent_keys):
1223 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
1224 (this_single_command_key_start, echoing, last_auto_save):
1225 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
1226 (command_loop, echo_now, keyboard_init_hook, help_char_p):
1227 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
1228 (Vlispy_mouse_stem, double_click_count):
1229 Now static.
1230 (force_auto_save_soon): Define only if SIGDANGER.
1231 (ignore_mouse_drag_p): Now static if
1232 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
1233 (print_help): Remove; unused.
1234 (stop_character, last_timer_event): Mark as externally visible.
1235 * keyboard.h (ignore_mouse_drag_p): Declare only if
1236 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
1237 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
1238 * lisp.h (echoing): Remove decl.
1239 (force_auto_save_soon): Declare only if SIGDANGER.
1240 * xdisp.c (redisplay_window): Simplify code, to make it more
1241 obvious that ignore_mouse_drag_p is not accessed if !defined
1242 USE_GTK && !defined HAVE_NS.
1243
93ea6e8f
PE
1244 * intervals.c: Make symbols static if they're not exported.
1245 (merge_properties_sticky, merge_interval_right, delete_interval):
1246 Now static.
1247 * intervals.h (merge_interval_right, delete_interval): Remove decls.
1248
77382fcc
PE
1249 * insdel.c: Make symbols static if they're not exported.
1250 However, leave prepare_to_modify_buffer alone. It's never
1251 called from outside this function, but that appears to be a bug.
1252 (combine_after_change_list, combine_after_change_buffer):
4889fc82 1253 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
1254 (adjust_after_replace_noundo): Remove; unused.
1255 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 1256 (signal_before_change): Remove decls.
77382fcc 1257
9306c32e
PE
1258 * indent.c (val_compute_motion, val_vmotion): Now static.
1259
cd44d2eb
PE
1260 * image.c: Make symbols static if they're not exported.
1261 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
1262 if USE_GTK.
1263 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
1264 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
1265
ad9a7a06
PE
1266 * fringe.c (standard_bitmaps): Now static.
1267 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
1268
81626931
PE
1269 * frame.c: Make symbols static if they're not exported.
1270 (x_report_frame_params, make_terminal_frame): Now static.
1271 (get_frame_param): Now static, unless HAVE_NS.
1272 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
1273 (x_get_resource_string): Remove; not used.
1274 * frame.h (make_terminal_frame, x_report_frame_params):
1275 (x_get_resource_string); Remove decls.
1276 (x_fullscreen_adjust): Declare only if WINDOWSNT.
1277 * lisp.h (get_frame_param): Declare only if HAVE_NS.
1278
239f9db9
PE
1279 * font.c, fontset.c: Make symbols static if they're not exported.
1280 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
1281 (FACE_SUITABLE_FOR_CHAR_P): Use it.
1282 * font.c (font_close_object): Now static.
1283 * font.h (font_close_object): Remove.
1284 * fontset.c (FONTSET_OBJLIST): Remove.
1285 (free_realized_fontset) #if-0 the body, which does nothing.
1286 (face_suitable_for_char_p): #if-0, as it's never called.
1287 * fontset.h (face_suitable_for_char_p): Remove decl.
1288 * xfaces.c (face_at_string_position): Use
1289 FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
1290 since 0 is always ASCII.
1291
dfcf3579
PE
1292 * fns.c (weak_hash_tables): Now static.
1293
5045092b
PE
1294 * fileio.c: Make symbols static if they're not exported.
1295 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
1296 (Vwrite_region_annotation_buffers): Now static.
1297
57a96f5c
PE
1298 * eval.c: Make symbols static if they're not exported.
1299 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
1300 * lisp.h (backtrace_list): Remove decl.
1301
35f08c38
PE
1302 * emacs.c: Make symbols static if they're not exported.
1303 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
1304 (fatal_error_code, fatal_error_signal_hook, standard_args):
1305 Now static.
1306 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
1307 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
1308 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
1309 * lisp.h (fatal_error_signal_hook): Remove decl.
1310 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
1311
f44bd759
PE
1312 * editfns.c: Move a (normally-unused) function to its only use.
1313 * editfns.c, lisp.h (get_operating_system_release): Remove.
1314 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
1315 worth the hassle of breaking this out.
1316
b532497d
PE
1317 * xterm.c: Make symbols static if they're not exported.
1318 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
1319 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
1320 (x_destroy_window, x_delete_display):
1321 Now static.
1322 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
1323 (x_mouse_leave): Remove; unused.
1324 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
1325 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
1326 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
1327 Remove decls.
1328 (x_mouse_leave): Declare only if WINDOWSNT.
1329 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
1330 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
1331 USE_X_TOOLKIT.
1332
1675728f
PE
1333 * ftxfont.c: Make symbols static if they're not exported.
1334 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
1335 HAVE_FREETYPE.
1336 * font.h (ftxfont_driver): Likewise.
1337
e4cebfca
PE
1338 * xfns.c: Make symbols static if they're not exported.
1339 (x_last_font_name, x_display_info_for_name):
1340 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
1341 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
1342 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
1343 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
1344 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
1345 (last_show_tip_args): Now static.
1346 (xic_defaut_fontset, xic_create_fontsetname): Define only if
1347 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
1348 (x_screen_planes): Remove; unused.
1349 * dispextern.h (x_screen_planes): Remove decl.
1350
5bf46f05
PE
1351 * dispnew.c: Make symbols static if they're not exported.
1352 * dispextern.h (redraw_garbaged_frames, scrolling):
1353 (increment_row_positions): Remove.
1354 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
1355 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
1356 Now static.
1357 (redraw_garbaged_frames): Remove; unused.
1358
435f4c28
PE
1359 * xfaces.c: Make symbols static if they're not exported.
1360 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
1361 Remove decls.
1362 * xterm.h (defined_color): Remove decls.
1363 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
1364 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
1365 (menu_face_changed_default, defined_color, free_realized_face):
1366 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
1367 (ascii_face_of_lisp_face): Remove; unused.
1368
8524aef3
PE
1369 * xdisp.c: Make symbols static if they're not exported.
1370 * dispextern.h (scratch_glyph_row, window_box_edges):
1371 (glyph_to_pixel_coords, set_cursor_from_row):
1372 (get_next_display_element, set_iterator_to_next):
1373 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
1374 (show_mouse_face): Remove decls
1375 * frame.h (message_buf_print): Likewise.
1376 * lisp.h (pop_message, set_message, check_point_in_composition):
1377 Likewise.
1378 * xterm.h (set_vertical_scroll_bar): Likewise.
1379 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
1380 (message_buf_print, scratch_glyph_row, displayed_buffer):
1381 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
1382 (get_next_display_element, show_mouse_face, window_box_edges):
1383 (frame_to_window_pixel_xy, check_point_in_composition):
1384 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
1385 (glyph_to_pixel_coords): Remove; unused.
1386
16390cd2
PE
1387 * dired.c (file_name_completion): Now static.
1388
1389 * dbusbind.c (xd_in_read_queued_messages): Now static.
1390
a25f4dfa
PE
1391 * lisp.h (circular_list_error, FOREACH): Remove; unused.
1392 * data.c (circular_list_error): Remove.
1393
14a9c8df
PE
1394 * commands.h (last_point_position, last_point_position_buffer):
1395 (last_point_position_window): Remove decls.
1396 * keyboard.c: Make these variables static.
1397
74ab6df5
PE
1398 * coding.h (coding, code_convert_region, encode_coding_gap): Remove
1399 decls.
1400 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
1401 (iso_code_class, detect_coding, code_convert_region): Now static.
1402 (encode_coding_gap): Remove; unused.
1403
38dfbee1
PE
1404 * chartab.c (chartab_chars, chartab_bits): Now static.
1405
a2cb4e63
PE
1406 * charset.h (charset_iso_8859_1): Remove decl.
1407 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
1408 Now static.
1409
127198fd
PE
1410 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
1411 * ccl.c (Vccl_program_table): Now static.
1412 (check_ccl_update): Remove; unused.
1413
d85b608f
PE
1414 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
1415 * category.h: ... from here.
1416 * category.c (check_category_table, set_category_set): Now static.
1417
31cd66f3
PE
1418 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
1419 * lisp.h: Remove these decls.
1420
c358e587
PE
1421 * buffer.c (buffer_count): Remove unused var.
1422
e78aecca
PE
1423 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
1424 so that it's not optimized away.
1425 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
1426 * dispextern.h (bidi_dump_cached_states): Remove, since it's
1427 exported only to the debugger.
1428
e192d7d3
PE
1429 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
1430 * atimer.h (run_all_atimers): Removed; not exported.
1431
92470028
PE
1432 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
1433 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
1434 was inaccessible from Lisp.
1435 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
1436 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
1437
244ed907
PE
1438 alloc.c: Import and export fewer symbols, and remove unused items.
1439 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
1440 is defined.
1441 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
1442 it's not optimized away by whole-program optimization.
1443 (message_enable_multibyte, free_misc): Remove.
1444 (catchlist, handlerlist, mark_backtrace):
1445 Declare only if BYTE_MARK_STACK.
1446 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
1447 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
1448 (message_enable_multibyte): Remove decl.
1449 (free_misc, interval_free_list, float_block, float_block_index):
1450 (n_float_blocks, float_free_list, cons_block, cons_block_index):
1451 (cons_free_list, last_marked_index):
1452 Now static.
1453 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
1454 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
1455 (mark_backtrace): Define only if BYTE_MARK_STACK.
1456 * xdisp.c (message_enable_multibyte): Now static.
1457
61c2b50e 1458 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
1459 This makes it easier for human readers (and static analyzers)
1460 to see whether these variables are used from other modules.
1461 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
1462 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
1463 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
1464 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
1465 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
1466 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
1467 * xmenu.c, xselect.c:
1468 Declare Q* vars static if they are not used in other modules.
1469 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
1470 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
1471 Remove decls of unexported vars.
1472 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
1473
95c82688
PE
1474 * lisp.h (DEFINE_FUNC): Make sname 'static'.
1475
16a97296
PE
1476 Make Emacs functions such as Fatom 'static' by default.
1477 This makes it easier for human readers (and static analyzers)
1478 to see whether these functions can be called from other modules.
1479 DEFUN now defines a static function. To make the function external
1480 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
1481 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
1482 (Finit_image_library):
16a97296
PE
1483 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
1484 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
1485 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
1486 Remove decls, since these functions are now static.
1487 (Funintern, Fget_internal_run_time): New decls, since these functions
1488 were already external.
95c82688 1489
16a97296
PE
1490 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
1491 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
1492 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
1493 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
1494 * keyboard.c, keymap.c, lread.c:
1495 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
1496 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
1497 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
1498 Mark functions with DEFUE instead of DEFUN,
1499 if they are used in other modules.
1500 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
1501 decls for now-static functions.
1502 * buffer.h (Fdelete_overlay): Remove decl.
1503 * callproc.c (Fgetenv_internal): Mark as internal.
1504 * composite.c (Fremove_list_of_text_properties): Remove decl.
1505 (Fcomposition_get_gstring): New forward static decl.
1506 * composite.h (Fcomposite_get_gstring): Remove decl.
1507 * dired.c (Ffile_attributes): New forward static decl.
1508 * doc.c (Fdocumntation_property): New forward static decl.
1509 * eval.c (Ffetch_bytecode): New forward static decl.
1510 (Funintern): Remove extern decl; now in .h file where it belongs.
1511 * fileio.c (Fmake_symbolic_link): New forward static decl.
1512 * image.c (Finit_image_library): New forward static decl.
1513 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
1514 * intervals.h (Fprevious_property_change):
1515 (Fremove_list_of_text_properties): Remove decls.
1516 * keyboard.c (Fthis_command_keys): Remove decl.
1517 (Fcommand_execute): New forward static decl.
1518 * keymap.c (Flookup_key): New forward static decl.
1519 (Fcopy_keymap): Now static.
1520 * keymap.h (Flookup_key): Remove decl.
1521 * process.c (Fget_process): New forward static decl.
1522 (Fprocess_datagram_address): Mark as internal.
1523 * syntax.c (Fsyntax_table_p): New forward static decl.
1524 (skip_chars): Remove duplicate decl.
1525 * textprop.c (Fprevious_property_change): New forward static decl.
1526 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
1527 Now internal.
1528 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
1529 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
1530
785bbd42
PE
1531 * editfns.c (Fformat): Remove unreachable code.
1532
8b913b57
AS
15332011-04-14 Andreas Schwab <schwab@linux-m68k.org>
1534
1535 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
1536 change. (Bug#8496)
1537
a6744a35
EZ
15382011-04-13 Eli Zaretskii <eliz@gnu.org>
1539
1540 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
1541 when at ZV. (Bug#8487)
1542
e7974947
AS
15432011-04-12 Andreas Schwab <schwab@linux-m68k.org>
1544
baad03f0
AS
1545 * charset.c (Fclear_charset_maps): Use xfree instead of free.
1546 (Bug#8437)
1547 * keyboard.c (parse_tool_bar_item): Likewise.
1548 * sound.c (sound_cleanup, alsa_close): Likewise.
1549 * termcap.c (tgetent): Likewise.
1550 * xfns.c (x_default_font_parameter): Likewise.
1551 * xsettings.c (read_and_apply_settings): Likewise.
1552
e7974947
AS
1553 * alloc.c (overrun_check_malloc, overrun_check_realloc)
1554 (overrun_check_free): Protoize.
1555
28272684
PE
15562011-04-12 Paul Eggert <eggert@cs.ucla.edu>
1557
1558 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
1559 since callers should never pass a negative size.
1560 Change the signature to match that of plain 'read' and 'write'; see
1561 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
1562 * lisp.h: Update prototypes of emacs_write and emacs_read.
1563
11997c76
EZ
15642011-04-11 Eli Zaretskii <eliz@gnu.org>
1565
1566 * xdisp.c (redisplay_window): Don't try to determine the character
1567 position of the scroll margin if the window start point w->startp
e896f03c 1568 is outside the buffer's accessible region. (Bug#8468)
11997c76 1569
8a2cbd72
EZ
15702011-04-10 Eli Zaretskii <eliz@gnu.org>
1571
1572 Fix write-region and its subroutines for buffers > 2GB.
1573 * fileio.c (a_write, e_write): Modify declaration of arguments and
1574 local variables to support buffers larger than 2GB.
1575 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
1576
1577 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
1578 argument, local variables, and return value.
1579
1580 * lisp.h: Update prototypes of emacs_write and emacs_read.
1581
1582 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
1583
4073e537 15842011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 1585
1ebfdcb6
PE
1586 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
1587
b2ded58d
PE
1588 Fix more problems found by GCC 4.6.0's static checks.
1589
7d66342c
PE
1590 * xdisp.c (vmessage): Use a better test for character truncation.
1591
bbf47d44
PE
1592 * charset.c (load_charset_map): <, not <=, for optimization,
1593 and to avoid potential problems with integer overflow.
9248994d 1594 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 1595 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 1596 * editfns.c (Fformat): Likewise.
1e69125e 1597 * syntax.c (skip_chars): Likewise.
3befa583 1598
e3019616
PE
1599 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
1600 This also lets GCC 4.6.0 generate slightly better loop code.
1601
becfa255
PE
1602 * callint.c (Fcall_interactively): <, not <=, for optimization.
1603 (Fcall_interactively): Count the number of arguments produced,
1604 not the number of arguments given. This is simpler and lets GCC
1605 4.6.0 generate slightly better code.
1606
dae0cd48
PE
1607 * ftfont.c: Distingish more carefully between FcChar8 and char.
1608 The previous code passed unsigned char * to a functions like
1609 strlen and xstrcasecmp that expect char *, which does not
1610 conform to the C standard.
1611 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
1612 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
1613 char * when the C standard requires it.
1614
76032d70
PE
1615 * keyboard.c (read_char): Remove unused var.
1616
eb3f1cc8
PE
1617 * eval.c: Port to Windows vsnprintf (Bug#8435).
1618 Include <limits.h>.
1619 (SIZE_MAX): Define if the headers do not.
1620 (verror): Do not give up if vsnprintf returns a negative count.
1621 Instead, grow the buffer. This ports to Windows vsnprintf, which
1622 does not conform to C99. Problem reported by Eli Zaretskii.
1623 Also, simplify the allocation scheme, by avoiding the need for
1624 calling realloc, and removing the ALLOCATED variable.
1625
70476b54
PE
1626 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
1627
12020a9e
PE
1628 Remove invocations of doprnt, as Emacs now uses vsnprintf.
1629 But keep the doprint source code for now, as we might revamp it
1630 and use it again (Bug#8435).
ea6c7ae6
PE
1631 * lisp.h (doprnt): Remove.
1632 * Makefile.in (base_obj): Remove doprnt.o.
1633 * deps.mk (doprnt.o): Remove.
1634
5fdb398c
PE
1635 error: Print 32- and 64-bit integers portably (Bug#8435).
1636 Without this change, on typical 64-bit hosts error ("...%d...", N)
1637 was used to print both 32- and 64-bit integers N, which relied on
1638 undefined behavior.
1639 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
1640 New macro.
1641 * lisp.h (error, verror): Mark as printf-like functions.
1642 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
1643 Report overflow in size calculations when allocating printf buffer.
1644 Do not truncate output string at its first null byte.
1645 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
1646 Truncate the output at a character boundary, since vsnprintf does not
1647 do that.
1648 * charset.c (check_iso_charset_parameter): Convert internal
1649 character to string before calling 'error', since %c now has the
1650 printf meaning.
1651 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
1652 overflow when computing char to be passed to 'error'. Do not
1653 pass Lisp_Object to 'error'; pass the integer instead.
1654 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
1655 formatted with plain %d.
1656
b189fa66
PE
1657 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
1658
bff87ef0
PE
1659 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
1660
7e2cac20
PE
1661 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
1662
ce4d90b5
PE
1663 * xterm.c (x_catch_errors): Remove duplicate declaration.
1664
266c9547
PE
1665 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
1666
79c49ad2
PE
1667 * xdisp.c, lisp.h (message_nolog): Remove; unused.
1668
368f4090
JM
16692011-04-10 Jim Meyering <meyering@redhat.com>
1670
1671 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
1672 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
1673 return ssize_t not "int", and use size_t as the buffer length.
1674 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
1675 * gnutls.h: Update declarations.
1676 * process.c (read_process_output): Use ssize_t, to match.
1677 (send_process): Likewise.
1678
a32d4040
CY
16792011-04-09 Chong Yidong <cyd@stupidchicken.com>
1680
1681 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
1682
8546720e 16832011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 1684
8546720e
GM
1685 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
1686 unsigned char, to match FcChar8 type definition.
aac0c6e3 1687
8546720e
GM
1688 * xterm.c (handle_one_xevent):
1689 * xmenu.c (create_and_show_popup_menu):
1690 * xselect.c (x_decline_selection_request)
1691 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 1692
0a2f5c1a 16932011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
1694
1695 Fix some uses of `int' instead of EMACS_INT.
1696 * search.c (string_match_1, fast_string_match)
1697 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
1698 (scan_buffer, find_next_newline_no_quit)
1699 (find_before_next_newline, search_command, Freplace_match)
1700 (Fmatch_data): Make some `int' variables be EMACS_INT.
1701
1702 * xdisp.c (display_count_lines): 3rd argument and return value now
1703 EMACS_INT. All callers changed.
1704 (pint2hrstr): Last argument is now EMACS_INT.
1705
1706 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
1707 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1708 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
1709 (decode_coding_utf_16, decode_coding_emacs_mule)
1710 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
1711 (decode_coding_ccl, decode_coding_charset)
1712 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
1713 (decode_coding_iso_2022, decode_coding_emacs_mule)
1714 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
1715 <char_offset, last_offset>: Declare EMACS_INT.
1716 (encode_coding_utf_8, encode_coding_utf_16)
1717 (encode_coding_emacs_mule, encode_invocation_designation)
1718 (encode_designation_at_bol, encode_coding_iso_2022)
1719 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
1720 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
1721 Declare EMACS_INT.
1722 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
1723 (encode_invocation_designation): Last argument P_NCHARS is now
1724 EMACS_INT.
1725 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
1726 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
1727
1728 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
1729 All users changed.
1730
1731 * ccl.c (Fccl_execute_on_string): Declare some variables
1732 EMACS_INT.
1733
8546720e 17342011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
1735
1736 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
1737
4e19a977
CS
17382011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
1739
1740 * process.c (Fformat_network_address): Doc fix.
1741
87302331
R
17422011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
1743
1744 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
1745
cbb59342
CY
17462011-04-08 Chong Yidong <cyd@stupidchicken.com>
1747
1748 * keyboard.c (read_char): Call Lisp function help-form-show,
1749 instead of using internal_with_output_to_temp_buffer.
1750 (Qhelp_form_show): New var.
e0d38eeb 1751 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
1752
1753 * print.c (internal_with_output_to_temp_buffer): Function deleted.
1754
1755 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
1756
e67a13ab
CY
17572011-04-06 Chong Yidong <cyd@stupidchicken.com>
1758
1759 * process.c (Flist_processes): Removed to Lisp.
1760 (list_processes_1): Deleted.
1761
973f782d
EZ
17622011-04-06 Eli Zaretskii <eliz@gnu.org>
1763
7c106b1e
EZ
1764 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
1765
973f782d
EZ
1766 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
1767
41cf7d1a 17682011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 1769
ca23cc88
PE
1770 Fix more problems found by GCC 4.6.0's static checks.
1771
f390e2d5
PE
1772 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
1773
42eea0d0
PE
1774 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
1775
b69769da 1776 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 1777
f9541e84
PE
1778 * xdisp.c (vmessage): Mark as a printf-like function.
1779
13841b55
PE
1780 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
1781
c136c10f
PE
1782 * sound.c (sound_warning): Don't crash if arg contains a printf format.
1783
5e2d4a30
PE
1784 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
1785 printf-like functions.
1786 (tiff_load): Add casts to remove these marks before passing them
1787 to system-supplied API.
1788
583f48b9
PE
1789 * eval.c (Fsignal): Remove excess argument to 'fatal'.
1790
b25d760e
PE
1791 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
1792 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
1793 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
1794 directly, rather than having caller test rule sign. This avoids
1795 some unnecessary tests.
1796 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
1797 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
1798 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 1799
bc7b6697 1800 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 1801 (xfont_open): Avoid unnecessary tests.
bc7b6697 1802
27ccc379
PE
1803 * composite.c (composition_gstring_put_cache): Use unsigned integer.
1804
dcd5c89a
PE
1805 * composite.h, composite.c (composition_gstring_put_cache):
1806 Use EMACS_INT, not int, for length.
1807
b13a45c6
PE
1808 * composite.h (COMPOSITION_DECODE_REFS): New macro,
1809 breaking out part of COMPOSITION_DECODE_RULE.
1810 (COMPOSITION_DECODE_RULE): Use it.
1811 * composite.c (get_composition_id): Remove unused local vars,
1812 by using the new macro.
1813
1e792e4d
PE
1814 * textprop.c (set_text_properties_1): Change while to do-while,
1815 since the condition is always true at first.
1816
dc6c6455 1817 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
1818 (interval_deletion_adjustment): Return unsigned value.
1819 All uses changed.
dc6c6455 1820
aba7731a
PE
1821 * process.c (list_processes_1, create_pty, read_process_output):
1822 (exec_sentinel): Remove vars that were set but not used.
afd4052b 1823 (create_pty): Remove unnecessary "volatile"s.
bc57d757 1824 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 1825 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 1826 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 1827
fdfc4bf3
PE
1828 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
1829
fca8fe46 1830 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 1831 (update_syntax_table): Use unsigned instead of int.
fca8fe46 1832
06a0259a 1833 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 1834 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 1835 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 1836
e7b9e80f
PE
1837 * print.c (print_error_message): Avoid int overflow.
1838
56201685
PE
1839 * font.c (font_list_entities): Redo for clarity,
1840 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
1841
78834453 1842 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 1843 (font_score): Avoid potential overflow in diff calculation.
78834453 1844
0bc0b309 1845 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 1846 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 1847
e610eaca
PE
1848 * eval.c (funcall_lambda): Rename local to avoid shadowing.
1849
b895abce
PE
1850 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
1851 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
1852 can always succeed if overflow has undefined behavior.
1853
1f1d9321 1854 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 1855 (wordify): Omit three unnecessary tests.
1f1d9321 1856
c59478bc
PE
1857 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
1858 All callers changed. This avoids the need for an unused var.
1859
79b73827
PE
1860 * casefiddle.c (casify_region): Remove var that is set but not used.
1861
a4db5dfe
PE
1862 * dired.c (file_name_completion): Remove var that is set but not used.
1863
43aae36e
PE
1864 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
1865
2a47c44d 1866 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 1867 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 1868
a37c69bf
PE
1869 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
1870 Check for integer overflow on size calculations.
1871
328ab8e7
PE
1872 * buffer.c (Fprevious_overlay_change): Remove var that is set
1873 but not used.
1874
e5a2a5cb
PE
1875 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
1876 Remove vars that are set but not used.
8d84a6eb 1877 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 1878 (timer_check_2): Mark vars as initialized.
e5a2a5cb 1879
a60e5f68
PE
1880 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
1881
f661cb61 1882 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 1883 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 1884
f0397f5a
PE
1885 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
1886 that are set but not used.
1887
8664db06 1888 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 1889 if XCreateBitmapFromData fails (Bug#8410).
8664db06 1890
6abdaa4a
PE
1891 * xselect.c (x_get_local_selection, x_handle_property_notify):
1892 Remove vars that are set but not used.
1893
0ce7538d 1894 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 1895 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 1896
9ae848fc
PE
1897 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
1898 Remove var that is set but not used.
0b918413
PE
1899 (scroll_bar_windows_size): Now size_t, not int.
1900 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
1901 Check for overflow.
9ae848fc 1902
a5a62657
PE
1903 * xfaces.c (realize_named_face): Remove vars that are set but not used.
1904 (map_tty_color) [!defined MSDOS]: Likewise.
1905
5c5cdd39
PE
1906 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
1907
66ebf983
PE
1908 * coding.c: Remove vars that are set but not used.
1909 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
1910 All callers changed.
1911 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
1912 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
1913 (decode_coding_charset): Remove vars that are set but not used.
1914
1be4d761
PE
1915 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
1916 that is set but not used.
1917
47553fa8
PE
1918 * print.c (print_object): Remove var that is set but not used.
1919
1f7196bf 1920 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
1921 The gnulib version avoids calling malloc in the usual case,
1922 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
1923 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
1924 * filelock.c (current_lock_owner): Likewise.
1925 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
1926 * sysdep.c: Include allocator.h, careadlinkat.h.
1927 (emacs_no_realloc_allocator): New static constant.
1928 (emacs_readlink): New function.
fdb61804
PE
1929 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
1930 ../lib/careadlinkat.h.
d1fdcab7 1931
f84c17c7
SM
19322011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
1933
1934 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
1935 first non-nil return value).
1936
ef3862ad
JD
19372011-04-03 Jan Djärv <jan.h.d@swipnet.se>
1938
1939 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
1940 if not defined (Bug#8403).
1941
376a7006
JB
19422011-04-02 Juanma Barranquero <lekktu@gmail.com>
1943
1944 * xdisp.c (display_count_lines): Remove parameter `start',
1945 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
1946 (get_char_face_and_encoding): Remove parameter `multibyte_p',
1947 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
1948 (fill_stretch_glyph_string): Remove parameters `row' and `area',
1949 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
1950 and thereabouts. All callers changed.
1951 (get_per_char_metric): Remove parameter `f', unused since
1952 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
1953
6ca3801d
JM
19542011-04-02 Jim Meyering <meyering@redhat.com>
1955
1956 do not dereference NULL upon failed strdup
1957 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
1958 (ns_get_family): Likewise.
1959
d8e2b5ba
JB
19602011-04-02 Juanma Barranquero <lekktu@gmail.com>
1961
1962 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
1963
8c74fcbd
JD
19642011-04-02 Jan Djärv <jan.h.d@swipnet.se>
1965
1966 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
1967 later (Bug#8403).
1968
7200d79c
SM
19692011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
1970
03408648 1971 Add lexical binding.
7200d79c 1972
03408648
SM
1973 * window.c (Ftemp_output_buffer_show): New fun.
1974 (Fsave_window_excursion):
1975 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
1976
1977 * lread.c (lisp_file_lexically_bound_p): New function.
1978 (Fload): Bind Qlexical_binding.
1979 (readevalloop): Remove `evalfun' arg.
1980 Bind Qinternal_interpreter_environment.
1981 (Feval_buffer): Bind Qlexical_binding.
1982 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
1983 Mark as dynamic.
1984 (syms_of_lread): Declare `lexical-binding'.
1985
1986 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
1987
1988 * keyboard.c (eval_dyn): New fun.
1989 (menu_item_eval_property): Use it.
ca105506
SM
1990
1991 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 1992
03408648
SM
1993 * fns.c (concat, mapcar1): Accept byte-code-functions.
1994
1995 * eval.c (Fsetq): Handle lexical vars.
1996 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
1997 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
1998 (FletX, Flet): Obey lexical binding.
1999 (Fcommandp): Handle closures.
2000 (Feval): New `lexical' arg.
2001 (eval_sub): New function extracted from Feval. Use it almost
2002 everywhere where Feval was used. Look up vars in lexical env.
2003 Handle closures.
2004 (Ffunctionp): Move from subr.el.
2005 (Ffuncall): Handle closures.
2006 (apply_lambda): Remove `eval_flags'.
2007 (funcall_lambda): Handle closures and new byte-code-functions.
2008 (Fspecial_variable_p): New function.
2009 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
2010 but without exporting it to Lisp.
23aba0ea 2011
23aba0ea 2012 * doc.c (Fdocumentation, store_function_docstring):
03408648 2013 * data.c (Finteractive_form): Handle closures.
23aba0ea 2014
03408648
SM
2015 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
2016 interactive spec.
ba83908c 2017
03408648
SM
2018 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
2019 byte-codes.
2020 (exec_byte_code): New function extracted from Fbyte_code to handle new
2021 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 2022
03408648 2023 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 2024
03408648 2025 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 2026
e2abce01
JB
20272011-03-31 Juanma Barranquero <lekktu@gmail.com>
2028
2029 * xdisp.c (redisplay_internal): Fix prototype.
2030
63696a73 20312011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 2032
63696a73
EZ
2033 * xdisp.c (SCROLL_LIMIT): New macro.
2034 (try_scrolling): Use it when setting scroll_limit. Limit
2035 scrolling to 100 screen lines.
2036 (redisplay_window): Even when falling back on "recentering",
2037 position point in the window according to scroll-conservatively,
2038 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
2039
2040 (try_scrolling): When point is above the window, allow searching
2041 as far as scroll_max, or one screenful, to compute vertical
2042 distance from PT to the scroll margin position. This prevents
2043 try_scrolling from unnecessarily failing when
2044 scroll-conservatively is set to a value slightly larger than the
2045 window height. Clean up the case of PT below the margin at bottom
2046 of window: scroll_max can no longer be INT_MAX. When aggressive
2047 scrolling is in use, don't let point enter the opposite scroll
2048 margin as result of the scroll.
2049 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
2050 threshold of 100 lines for never-recentering scrolling.
2051
e4cc2dfc
JB
20522011-03-31 Juanma Barranquero <lekktu@gmail.com>
2053
2054 * dispextern.h (move_it_by_lines):
2055 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
2056 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
2057 (message_log_check_duplicate): Remove parameters `prev_bol' and
2058 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
2059 (redisplay_internal): Remove parameter `preserve_echo_area',
2060 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
2061
2062 * indent.c (Fvertical_motion):
2063 * window.c (window_scroll_pixel_based, Frecenter):
2064 Don't pass `need_y_p' to `move_it_by_lines'.
2065
1c470562
SM
20662011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
2067
44f230aa
SM
2068 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
2069 steal a few bits to be more compact.
2070 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
2071 Remove unneeded casts.
2072
1c470562
SM
2073 * bytecode.c (Fbyte_code): CAR and CDR can GC.
2074
888adce9
ZK
20752011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
2076
2077 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
2078 binding" message (bug#7967).
2079
f838ed7b
PE
20802011-03-30 Paul Eggert <eggert@cs.ucla.edu>
2081
77861b95
PE
2082 Fix more problems found by GCC 4.6.0's static checks.
2083
de6dbc14
PE
2084 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
2085 Remove unused local var.
2086
f838ed7b
PE
2087 * editfns.c (Fmessage_box): Remove unused local var.
2088
792c7b2b
PE
2089 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
2090 (note_mode_line_or_margin_highlight, note_mouse_highlight):
2091 Omit unused local vars.
c499e557 2092 * window.c (shrink_windows): Omit unused local var.
b01a1c29 2093 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
2094 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
2095 Omit unused local var.
2096
ba0165e1
PE
2097 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
2098 Don't assume string length fits in int.
32ad8845 2099 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 2100 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 2101
3c59b4c9
PE
2102 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
2103 instead of alloca (Bug#8344).
2104
a3eed478 2105 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 2106 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 2107
eb4d412d
PE
2108 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
2109
1658b401
PE
2110 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
2111 concerns.
2112
2113 * term.c (produce_glyphless_glyph): Remove unnecessary test.
2114
2115 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 2116
9a2c6e05
PE
2117 * keyboard.c (syms_of_keyboard): Use the same style as later
2118 in this function when indexing through an array. This also
2119 works around GCC bug 48267.
2120
03d0a109
PE
2121 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
2122
44f730c8
PE
2123 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
2124
fe75f926
PE
2125 * chartab.c (sub_char_table_ref_and_range): Redo for slight
2126 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
2127
ffa8c828
PE
2128 * keyboard.c, keyboard.h (num_input_events): Now size_t.
2129 This avoids undefined behavior on integer overflow, and is a bit
2130 more convenient anyway since it is compared to a size_t variable.
2131
c5101a77
PE
2132 Variadic C functions now count arguments with size_t, not int.
2133 This avoids an unnecessary limitation on 64-bit machines, which
2134 caused (substring ...) to crash on large vectors (Bug#8344).
2135 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
2136 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 2137 All variadic functions and their callers changed accordingly.
c5101a77
PE
2138 (struct gcpro.nvars): Now size_t, not int. All uses changed.
2139 * data.c (arith_driver, float_arith_driver): Likewise.
2140 * editfns.c (general_insert_function): Likewise.
2141 * eval.c (struct backtrace.nargs, interactive_p)
2142 (internal_condition_case_n, run_hook_with_args, apply_lambda)
2143 (funcall_lambda, mark_backtrace): Likewise.
2144 * fns.c (concat): Likewise.
2145 * frame.c (x_set_frame_parameters): Likewise.
2146 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
2147 0 if not found, not -1. All callers changed.
2148
dd3f25f7
PE
2149 * alloc.c (garbage_collect): Don't assume stack size fits in int.
2150 (stack_copy_size): Now size_t, not int.
2151 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
2152
461c2ab9
JB
21532011-03-28 Juanma Barranquero <lekktu@gmail.com>
2154
2155 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
2156 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
2157 All callers changed.
2158
2159 * lisp.h (multibyte_char_to_unibyte):
2160 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
2161 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
2162 * character.h (CHAR_TO_BYTE8):
2163 * cmds.c (internal_self_insert):
2164 * editfns.c (general_insert_function):
2165 * keymap.c (push_key_description):
2166 * search.c (Freplace_match):
2167 * xdisp.c (message_dolog, set_message_1): All callers changed.
2168
f6d62986
SM
21692011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2170
2171 * keyboard.c (safe_run_hook_funcall): New function.
2172 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
2173 don't set the hook to nil, but remove the offending function instead.
2174 (Qcommand_hook_internal): Remove, unused.
2175 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
2176 Vcommand_hook_internal.
2177
2178 * eval.c (enum run_hooks_condition): Remove.
2179 (funcall_nil, funcall_not): New functions.
2180 (run_hook_with_args): Call each function through a `funcall' argument.
2181 Remove `cond' argument, now redundant.
2182 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
2183 (Frun_hook_with_args_until_failure): Adjust accordingly.
2184 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
2185
1db5b1ad
JB
21862011-03-28 Juanma Barranquero <lekktu@gmail.com>
2187
2188 * dispextern.h (string_buffer_position): Remove declaration.
2189
2190 * print.c (strout): Remove parameter `multibyte', unused since
2191 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
2192
2193 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
2194 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
2195 All callers changed.
2196
2197 * w32.c (_wsa_errlist): Use braces for struct initializers.
2198
2199 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
2200 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
2201 All callers changed.
2202 (string_buffer_position): Likewise. Also, make static (it's never
2203 used outside xdisp.c).
2204 (cursor_row_p): Remove parameter `w', unused since
2205 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
2206 (decode_mode_spec): Remove parameter `precision', introduced during
2207 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
2208 All callers changed.
2209
5ffb62aa
JD
22102011-03-27 Jan Djärv <jan.h.d@swipnet.se>
2211
2212 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
2213
461c2ab9 22142011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
2215
2216 * nsterm.m (ns_menu_bar_is_hidden): New variable.
2217 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
2218 (ns_update_auto_hide_menu_bar): New functions.
2219 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
2220 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
2221 ns_constrain_all_frames.
2222 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
2223 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
2224
5c380ffb
JD
22252011-03-27 Jan Djärv <jan.h.d@swipnet.se>
2226
2227 * nsmenu.m (runDialogAt): Remove argument to timer_check.
2228
9af30bdf
GM
22292011-03-27 Glenn Morris <rgm@gnu.org>
2230
2231 * syssignal.h: Replace RETSIGTYPE with void.
2232 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
2233 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
2234 Replace SIGTYPE with void everywhere.
2235 * s/usg5-4-common.h (SIGTYPE): Remove definition.
2236 * s/template.h (SIGTYPE): Remove commented out definition.
2237
e2abce01
JB
22382011-03-26 Eli Zaretskii <eliz@gnu.org>
2239
2240 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
2241 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
2242
f868cd8a
JB
22432011-03-26 Juanma Barranquero <lekktu@gmail.com>
2244
59eb0929
JB
2245 * w32.c (read_unc_volume): Use parameter `henum', instead of
2246 global variable `wget_enum_handle'.
2247
2248 * keymap.c (describe_vector): Remove parameters `indices' and
2249 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
2250 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
2251
f868cd8a
JB
2252 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
2253
2254 * keyboard.c (timer_check): Remove parameter `do_it_now',
2255 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
2256 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
2257 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
2258
2259 * keyboard.c (read_char):
2260 * w32menu.c (w32_menu_display_help):
2261 * xmenu.c (show_help_event, menu_help_callback):
2262 Adjust calls to `show_help_echo'.
2263
2264 * gtkutil.c (xg_maybe_add_timer):
2265 * keyboard.c (readable_events):
2266 * process.c (wait_reading_process_output):
2267 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
2268
2269 * insdel.c (adjust_markers_gap_motion):
2270 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
2271 (gap_left, gap_right): Don't call it.
2272
2ecf6fdb
CY
22732011-03-25 Chong Yidong <cyd@stupidchicken.com>
2274
2275 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
2276 incurred during fontification.
2277
6b1f9ba4
JB
22782011-03-25 Juanma Barranquero <lekktu@gmail.com>
2279
2280 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
2281 (DEFVAR_PER_BUFFER): Don't pass it.
2282
2283 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
2284 (scrolling_window): Don't pass it.
2285
0f4a96b5
JB
22862011-03-25 Juanma Barranquero <lekktu@gmail.com>
2287
2288 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
2289
2290 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
2291 and `suffix'.
2292 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
2293 of variables specific to SELinux and computation of `encoded_absname'.
2294
2295 * image.c (XPutPixel): Remove unused variable `height'.
2296
2297 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
2298
2299 * unexw32.c (get_section_info): Remove unused variable `section'.
2300
2301 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
2302 (system_process_attributes): Remove unused variable `sess'.
2303 (sys_read): Remove unused variable `err'.
2304
2305 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
2306 (w32_wnd_proc): Remove unused variable `isdead'.
2307 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
2308 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
2309 (x_create_tip_frame): Remove unused variable `tem'.
2310
2311 * w32inevt.c (w32_console_read_socket):
2312 Remove unused variable `no_events'.
2313
2314 * w32term.c (x_draw_composite_glyph_string_foreground):
2315 Remove unused variable `width'.
2316
1149507c
JB
23172011-03-24 Juanma Barranquero <lekktu@gmail.com>
2318
2319 * w32term.c (x_set_glyph_string_clipping):
2320 Don't pass uninitialized region to CombineRgn.
2321
9c88f339
JB
23222011-03-23 Juanma Barranquero <lekktu@gmail.com>
2323
2324 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
2325 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
2326 (Fx_close_connection): Remove unused variable `i'.
2327
2328 * w32font.c (w32font_draw): Return number of glyphs.
2329 (w32font_open_internal): Remove unused variable `i'.
2330 (w32font_driver): Add missing initializer.
2331
2332 * w32menu.c (utf8to16): Remove unused variable `utf16'.
2333 (fill_in_menu): Remove unused variable `items_added'.
2334
2335 * w32term.c (last_mouse_press_frame): Remove static global variable.
2336 (w32_clip_to_row): Remove unused variable `f'.
2337 (x_delete_terminal): Remove unused variable `i'.
2338
2339 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
2340 (NOTHING): Remove unused static global variable.
2341 (uniscribe_check_otf): Remove unused variable `table'.
2342 (uniscribe_font_driver): Add missing initializers.
2343
dee091a3
JD
23442011-03-23 Julien Danjou <julien@danjou.info>
2345
2346 * term.c (Fsuspend_tty, Fresume_tty):
2347 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
2348 * window.c (temp_output_buffer_show):
2349 * insdel.c (signal_before_change):
2350 * frame.c (Fhandle_switch_frame):
2351 * fileio.c (Fdo_auto_save):
2352 * emacs.c (Fkill_emacs):
2353 * editfns.c (save_excursion_restore):
2354 * cmds.c (internal_self_insert):
2355 * callint.c (Fcall_interactively):
2356 * buffer.c (Fkill_all_local_variables):
2357 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
2358 Use Frun_hooks.
0f4a96b5 2359 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
dee091a3
JD
2360 unconditionnaly since it does the check itself.
2361
2c520ab5 23622011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 2363
c9c49752
PE
2364 Fix more problems found by GCC 4.5.2's static checks.
2365
8abc3f12
PE
2366 * coding.c (encode_coding_raw_text): Avoid unnecessary test
2367 the first time through the loop, since we know p0 < p1 then.
2368 This also avoids a gcc -Wstrict-overflow warning.
2369
a2d26660
PE
2370 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
2371 leading to a memory leak, possible in functions like
2372 load_charset_map_from_file that can allocate an unbounded number
b12ef411 2373 of objects (Bug#8318).
a2d26660 2374
916c72e9
PE
2375 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
2376 that could (at least in theory) be that large.
2377
19ab8a18
PE
2378 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
2379 This is less likely to overflow, and avoids undefined behavior if
2380 overflow does occur. All callers changed. Use strtoul to scan
2381 for the unsigned long integer.
b7cbbd6f
PE
2382 (pint2hrstr): Simplify and tune code slightly.
2383 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 2384
f0641eff
PE
2385 * scroll.c (do_scrolling): Work around GCC bug 48228.
2386 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
2387
7f650bb9
PE
2388 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
2389 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
2390 (validate_x_resource_name): Simplify count usage.
2391 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 2392
37dd57d1
PE
2393 * fileio.c (Fcopy_file): Report error if fchown or fchmod
2394 fail (Bug#8306).
81e56e61 2395
699979fc 2396 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 2397
401bf9b4
PE
2398 * process.c (Fmake_network_process): Use socklen_t, not int,
2399 where POSIX says socklen_t is required in portable programs.
2400 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 2401 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
2402 (Fmake_network_process, server_accept_connection):
2403 (wait_reading_process_output, read_process_output):
2404 Likewise.
2405
b93aacde
PE
2406 * process.c: Rename or move locals to avoid shadowing.
2407 (list_processes_1, Fmake_network_process):
2408 (read_process_output_error_handler, exec_sentinel_error_handler):
2409 Rename or move locals.
4dc343ee 2410 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 2411 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 2412 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 2413 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 2414 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 2415
af8a867c 2416 Make tparam.h and terminfo.c consistent.
44f230aa
SM
2417 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
2418 Include tparam.h instead, since it declares them.
af8a867c
PE
2419 * cm.h (PC): Remove extern decl; tparam.h now does this.
2420 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
2421 * terminfo.c: Include tparam.h, to check interfaces.
2422 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
2423 (tparam): Adjust signature to match interface in tparam.h;
2424 this removes some undefined behavior. Check that outstring and len
2425 are zero, which they always are with Emacs.
2426 * tparam.h (PC, BC, UP): New extern decls.
2427
0248044d 2428 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 2429 (xftfont_open): Rename locals to avoid shadowing.
0248044d 2430
8ff096c1 2431 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
2432 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
2433 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 2434 (ftfont_list): Remove unused local.
49eaafba
PE
2435 (get_adstyle_property, ftfont_pattern_entity):
2436 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
2437 Rename locals to avoid shadowing.
8ff096c1 2438
e2be39f6
PE
2439 * xfont.c (xfont_list_family): Mark var as initialized.
2440
c9735e30
PE
2441 * xml.c (make_dom): Now static.
2442
8f5201ae
PE
2443 * composite.c (composition_compute_stop_pos): Rename local to
2444 avoid shadowing.
b246f932
PE
2445 (composition_reseat_it): Remove unused locals.
2446 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 2447 (composition_update_it): Mark var as initialized.
11b61122
PE
2448 (find_automatic_composition): Mark vars as initialized,
2449 with a FIXME (Bug#8290).
8f5201ae 2450
760fbc2c
PE
2451 character.h: Rename locals to avoid shadowing.
2452 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
2453 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
2454 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
2455 (BUF_DEC_POS): Be more systematic about renaming local temporaries
2456 to avoid shadowing.
2457
ff08eb85
PE
2458 * textprop.c (property_change_between_p): Remove; unused.
2459
fc7bf025
PE
2460 * intervals.c (interval_start_pos): Now static.
2461
235d7abc
PE
2462 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
2463
44f230aa
SM
2464 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
2465 Rename locals to avoid shadowing.
3e7d6594 2466
50060332
PE
2467 * sound.c (wav_play, au_play, Fplay_sound_internal):
2468 Fix pointer signedness.
d01f234b 2469 (alsa_choose_format): Remove unused local var.
c83b8872
PE
2470 (wav_play): Initialize a variable to 0, to prevent undefined
2471 behavior (Bug#8278).
50060332 2472
c4fc4e30
PE
2473 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
2474
918436ed
PE
2475 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
2476
c939f91b
PE
2477 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
2478 clobbering (Bug#8298).
b9c7f648
PE
2479 * sysdep.c (sys_subshell): Likewise.
2480 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 2481
6bd8c144
PE
2482 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
2483 This should get cleaned up, so that child_setup has the
2484 same signature on all platforms.
2485
7710357c 2486 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 2487 (relocate_fd): Rename locals to avoid shadowing.
7710357c 2488
c59da222
CY
24892011-03-22 Chong Yidong <cyd@stupidchicken.com>
2490
2491 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
2492 not to be necessary, and produces flickering.
2493
66b87493
GM
24942011-03-20 Glenn Morris <rgm@gnu.org>
2495
2496 * config.in: Remove file.
2497
45b6f6d5
JB
24982011-03-20 Juanma Barranquero <lekktu@gmail.com>
2499
2500 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
2501 are now in src/globals.h.
2502 (syms_of_minibuf): Remove spurious & from previous change.
2503
3ec03f7e
LL
25042011-03-20 Leo <sdl.web@gmail.com>
2505
2506 * minibuf.c (completing-read-function): New variable.
2507 (completing-read-default): Rename from completing-read.
2508 (completing-read): Call completing-read-function.
2509
b14e3e21
CY
25102011-03-19 Juanma Barranquero <lekktu@gmail.com>
2511
2512 * xfaces.c (Fx_load_color_file):
2513 Read color file from absolute filename (bug#8250).
2514
f2b726e6
JB
25152011-03-19 Juanma Barranquero <lekktu@gmail.com>
2516
2517 * makefile.w32-in: Update dependencies.
2518
09f6ff02
EZ
25192011-03-17 Eli Zaretskii <eliz@gnu.org>
2520
2521 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
2522
29a6015a
PE
25232011-03-17 Paul Eggert <eggert@cs.ucla.edu>
2524
a3a6c54e
PE
2525 Fix more problems found by GCC 4.5.2's static checks.
2526
b766f867
PE
2527 * process.c (make_serial_process_unwind, send_process_trap):
2528 (sigchld_handler): Now static.
2529
be02381c
PE
2530 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
2531 That way, the code declares only the vars that it needs.
2532 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
2533 * s/cygwin.h (PTY_ITERATION): Likewise.
2534 * s/darwin.h (PTY_ITERATION): Likewise.
2535 * s/gnu-linux.h (PTY_ITERATION): Likewise.
2536
57048744
PE
2537 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
2538 * process.c (allocate_pty): Don't declare stb unless it's needed.
2539
7914961c 2540 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
2541 (CONSTANTLIM): Remove; unused.
2542 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
2543 Define only if needed.
7914961c 2544
b3967b18
PE
2545 * unexelf.c (unexec): Name an expression,
2546 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
2547 Use a different way to cause a compilation error if anyone uses
2548 n rather than nn, a way that does not involve shadowing.
73366a00 2549 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 2550
29a6015a
PE
2551 * deps.mk (unexalpha.o): Remove; unused.
2552
43cfc33e 2553 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 2554 * unexec.h: New file.
ce701a33
PE
2555 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
2556 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
2557 Depend on unexec.h.
2558 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
2559 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
2560 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 2561 Change as necessary to match prototype in unexec.h.
ce701a33 2562
01f44d5a
PE
2563 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
2564 shadowing.
4f63c6bb 2565 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 2566
a6670b0b
PE
2567 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
2568 Rename locals to avoid shadowing.
2569
cef2010d 2570 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 2571 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 2572
d4d7173a
PE
2573 * print.c (Fredirect_debugging_output): Fix pointer signedess.
2574
f08b802a
PE
2575 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
2576 warning when compiling print.c.
2577
3ddb0639
PE
2578 * font.c (font_unparse_fcname): Abort in an "impossible" situation
2579 instead of using an uninitialized var.
5ad03b97 2580 (font_sort_entities): Mark var as initialized.
3ddb0639 2581
170a2692
PE
2582 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
2583
e663c700
PE
2584 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
2585 pointers to constants.
89bc529a 2586 (font_parse_fcname): Remove unused vars.
7b81e2d0 2587 (font_delete_unmatched): Now static.
ea838e10 2588 (font_get_spec): Remove; unused.
13a547c6
PE
2589 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
2590 (font_update_drivers, Ffont_get_glyphs, font_add_log):
2591 Rename or move locals to avoid shadowing.
e663c700 2592
2a80c887 2593 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 2594 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 2595
1384fa33 2596 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 2597 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 2598
8b2c52e9
PE
2599 * alloc.c (mark_backtrace): Move decl from here ...
2600 * lisp.h: ... to here, so that it can be checked.
2601
475545b5 2602 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 2603 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
2604 (lisp_indirect_variable): Name an expression,
2605 to avoid gcc -Wbad-function-cast warning.
1faed8ae 2606 (Fdefvar): Rename locals to avoid shadowing.
475545b5 2607
b1349114 2608 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 2609 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 2610 Use const pointer when appropriate.
b1349114 2611
a2928364
PE
2612 * lisp.h (get_system_name, get_operating_system_release):
2613 Move decls here, to check interfaces.
2614 * process.c (get_operating_system_release): Move decl to lisp.h.
2615 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
2616 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
2617 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
2618 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
2619 (Fformat_time_string, Fencode_time, Finsert_char):
2620 (Ftranslate_region_internal, Fformat):
2621 Rename or remove local vars to avoid shadowing.
9710023e 2622 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 2623
a415e694
PE
2624 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
2625 avoid shadowing.
2626
8ef4622d
PE
2627 * lisp.h (eassert): Check that the argument compiles, even if
2628 ENABLE_CHECKING is not defined.
2629
946f9a5b
PE
2630 * data.c (Findirect_variable): Name an expression, to avoid
2631 gcc -Wbad-function-cast warning.
112396d6 2632 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 2633 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
2634 (Fmake_variable_buffer_local, Fmake_local_variable):
2635 Mark variables as initialized.
52746918 2636 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 2637
e5aab7e7 2638 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
2639 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
2640 Rename locals to avoid shadowing.
dff45157
PE
2641 (mark_stack): Move local variables into the #ifdef region where
2642 they're used.
7bc26fdb
PE
2643 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
2644 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
2645 needed otherwise.
2646 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
2647 (GC_STRING_CHARS): Remove; not used.
d40d4be1 2648 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 2649
e5aab7e7
PE
2650 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
2651 avoids undefined behavior in theory.
2652
4da60324
PE
2653 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
2654
88043301
PE
2655 Use functions, not macros, for up- and down-casing (Bug#8254).
2656 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
2657 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
2658 to use the following functions instead of these macros.
2659 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
2660 EMACS_INT, since callers assume the returned value fits in int.
2661 (upcase1): Likewise, for UPCASE_TABLE.
2662 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 2663 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 2664 the race-condition problem in the old DOWNCASE.
88043301 2665
19ed5445
PE
2666 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
2667 Rename locals to avoid shadowing.
2668 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
2669 (regex_compile, re_search_2, re_match_2_internal):
2670 Remove unused local vars.
952db0d7
PE
2671 (FREE_VAR): Rewrite so as not to use empty "else",
2672 which gcc can warn about.
da053e48 2673 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
2674 (RETALLOC_IF): Define only if needed.
2675 (WORDCHAR_P): Likewise. This one is never needed, but is used
2676 only in a comment talking about a compiler bug, so put inside
2677 the #if 0 of that comment.
2678 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
2679 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
2680 Remove; unused.
19ed5445 2681
1f3561e4 2682 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
2683 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
2684 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 2685
ded6f8f7
PE
2686 * search.c (simple_search): Remove unused var.
2687
dbd37a95
PE
2688 * dired.c (compile_pattern): Move decl from here ...
2689 * lisp.h: ... to here, so that it can be checked.
2690 (struct re_registers): New forward decl.
2691
7e47afad
PE
2692 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
2693
85f24f61
PE
2694 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
2695 All uses changed.
2696 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
2697 Rename locals to avoid shadowing.
5671df8f 2698 (Fvertical_motion): Mark locals as initialized.
85f24f61 2699
181aa2be 2700 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 2701 (casify_region): Mark local as initialized.
181aa2be 2702
930d429c
PE
2703 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
2704
7082eac6
PE
2705 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
2706 New macros, so that the caller can use some names other than
2707 gcpro1, gcpro2, etc.
2708 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
2709 of the new macros.
2710 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
2711 argument, for consistency with GCPRO2_VAR, etc: it is now the
2712 prefix of the variable, not the variable itself. All uses
2713 changed.
38b2c076
PE
2714 * dired.c (directory_files_internal, file_name_completion):
2715 Rename locals to avoid shadowing.
2716
15206ed9
PE
2717 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
2718 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
2719 dired.c's scmp function, had undefined behavior.
2720 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
2721 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
2722 * buffer.h: ... to here, because these macros use current_buffer,
2723 and the new implementation with inline functions needs to have
2724 current_buffer in scope now, rather than later when the macros
2725 are used.
2726 (downcase, upcase1): New static inline functions.
2727 (DOWNCASE, UPCASE1): Reimplement using these functions.
2728 This avoids undefined behavior in expressions like
2729 DOWNCASE (x) == DOWNCASE (y), which previously suffered
2730 from race conditions in accessing the global variables
2731 case_temp1 and case_temp2.
2732 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
2733 * lisp.h (case_temp1, case_temp2): Remove their decls.
2734 * character.h (ASCII_CHAR_P): Move from here ...
2735 * lisp.h: ... to here, so that the inline functions mentioned
2736 above can use them.
2737
4a6bea26
PE
2738 * dired.c (directory_files_internal_unwind): Now static.
2739
f14b7e14
PE
2740 * fileio.c (file_name_as_directory, directory_file_name):
2741 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
2742 Now static.
2893f146
PE
2743 (file_name_as_directory): Use const pointers when appropriate.
2744 (Fexpand_file_name): Likewise. In particular, newdir might
2745 point at constant storage, so make it a const pointer.
fd4ead52 2746 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
2747 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
2748 signedness issues.
f839df0c
PE
2749 (Fset_file_times, Finsert_file_contents, auto_save_error):
2750 Rename locals to avoid shadowing.
f14b7e14 2751
5716756e 2752 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
2753 (Ftry_completion, Fall_completions): Rename or remove locals
2754 to avoid shadowing.
5716756e 2755
b4c3046a
PE
2756 * marker.c (bytepos_to_charpos): Remove; unused.
2757
b45db522
PE
2758 * lisp.h (verify_bytepos, count_markers): New decls,
2759 so that gcc does not warn that these functions aren't declared.
2760
85876d07
PE
2761 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
2762 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 2763 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 2764 (copy_text): Remove unused local var.
85876d07 2765
03d78a21 2766 * filelock.c (within_one_second): Now static.
b3dd38ab 2767 (lock_file_1): Rename local to avoid shadowing.
03d78a21 2768
5df8f01b
PE
2769 * buffer.c (fix_overlays_before): Mark locals as initialized.
2770 (fix_start_end_in_overlays): Likewise. This function should be
2771 simplified by using pointers-to-pointers, but that's a different
2772 matter.
b1d876f1 2773 (switch_to_buffer_1): Now static.
8f54f30a
PE
2774 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
2775 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 2776
a70072c9 2777 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 2778 Fix pointer signedness issue.
edced198
PE
2779 (sys_subshell): Mark local as volatile if checking for lint,
2780 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 2781 (MAXPATHLEN): Define only if needed.
a70072c9 2782
a0977c44
PE
2783 * process.c (serial_open, serial_configure): Move decls from here ...
2784 * systty.h: ... to here, so that they can be checked.
2785
a884fdcc
PE
2786 * fns.c (get_random, seed_random): Move extern decls from here ...
2787 * lisp.h: ... to here, so that they can be checked.
2788
604efe86 2789 * sysdep.c (reset_io): Now static.
b8950c94 2790 (wait_for_termination_signal): Remove; unused.
604efe86 2791
38fc62d9
PE
2792 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
2793 (copy_keymap_item, append_key, push_text_char_description):
2794 Now static.
1004a21a 2795 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 2796 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
2797 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
2798 (describe_map_tree):
2799 Rename locals to avoid shadowing.
38fc62d9 2800
2f2650da
PE
2801 * keyboard.c: Declare functions static if they are not used elsewhere.
2802 (echo_char, echo_dash, cmd_error, top_level_2):
2803 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
2804 (read_char, kbd_buffer_get_event, make_lispy_position):
2805 (make_lispy_event, make_lispy_movement, apply_modifiers):
2806 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
2807 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
2808 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 2809 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 2810 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 2811
a053e86c 2812 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
2813 (mark_kboards): Move decl here ...
2814 * alloc.c (mark_kboards): ... from here.
a053e86c 2815
4752793e
PE
2816 * lisp.h (force_auto_save_soon): New decl.
2817
74f10ca7 2818 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
2819 (DEFINE_DUMMY_FUNCTION): New macro.
2820 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
2821 Use it.
c03cd23f
PE
2822 (main): Add casts to avoid warnings
2823 if GCC considers string literals to be constants.
74f10ca7 2824
022e70d4
PE
2825 * lisp.h (fatal_error_signal): Add decl, since it's exported.
2826
59d6fe83
PE
2827 * dbusbind.c: Pointer signedness fixes.
2828 (xd_signature, xd_append_arg, xd_initialize):
2829 (Fdbus_call_method, Fdbus_call_method_asynchronously):
2830 (Fdbus_method_return_internal, Fdbus_method_error_internal):
2831 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
2832 (Fdbus_register_signal): Use SSDATA when the context wants char *.
2833
78320123
PE
2834 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
2835 if GCC considers string literals to be constants.
49cebcca 2836 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 2837
35ac2a97
SM
28382011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
2839
fb103ca9
SM
2840 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
2841 (print_preprocess, print_object): New macro to fix last change.
2842
35ac2a97
SM
2843 * print.c (print_preprocess): Don't forget font objects.
2844
62973b41
JB
28452011-03-16 Juanma Barranquero <lekktu@gmail.com>
2846
2847 * emacs.c (USAGE3): Doc fixes.
2848
0e48bb22
AS
28492011-03-15 Andreas Schwab <schwab@linux-m68k.org>
2850
2851 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
2852 structure.
2853
7684e57b
JB
28542011-03-14 Juanma Barranquero <lekktu@gmail.com>
2855
2856 * lisp.h (VWindow_system, Qfile_name_history):
2857 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
2858 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
2859 (w32_system_caret_x, w32_system_caret_y): Declare extern.
2860
2861 * w32select.c: Don't #include "keyboard.h".
c96bbc66 2862 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
2863
2864 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
2865 * w32console.c (detect_input_pending, read_input_pending)
2866 (encode_terminal_code):
2867 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
2868 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
2869 (w32_system_caret_y, Qfile_name_history):
2870 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
2871 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
2872 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
2873 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
2874 * w32proc.c (Qlocal, report_file_error):
2875 * w32term.c (Vwindow_system, updating_frame):
2876 * w32uniscribe.c (initialized, uniscribe_font_driver):
2877 Remove unneeded extern declarations.
2878
2aa46d6c
CY
28792011-03-14 Chong Yidong <cyd@stupidchicken.com>
2880
c96bbc66 2881 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 2882
cffc6f3b
CY
28832011-03-13 Chong Yidong <cyd@stupidchicken.com>
2884
2885 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
2886 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
2887 These macros can no longer be used for assignment.
2888
44f230aa
SM
2889 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2890 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
2891 (record_buffer_markers, fetch_buffer_markers): New functions for
2892 recording and fetching special buffer markers.
2893 (set_buffer_internal_1, set_buffer_temp): Use them.
2894
2895 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
2896
2897 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
2898
2899 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
2900 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
2901
2902 * xdisp.c (hscroll_window_tree):
2903 (reconsider_clip_changes): Use PT instead of BUF_PT.
2904
d251f04b
EZ
29052011-03-13 Eli Zaretskii <eliz@gnu.org>
2906
2907 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
2908 $(EMACS_ROOT)/lib/intprops.h.
2909
f0c77cd1
PE
29102011-03-13 Paul Eggert <eggert@cs.ucla.edu>
2911
3eca4629
PE
2912 Fix more problems found by GCC 4.5.2's static checks.
2913
7c86ee98
PE
2914 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
2915 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
2916 (xg_free_frame_widgets): Make it clear that a local variable is
2917 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
2918 (gdk_window_get_screen): Make it clear that this macro is needed
2919 only if USE_GTK_TOOLTIP.
1e5524e7
PE
2920 (int_gtk_range_get_value): New function, which avoids a diagnostic
2921 from gcc -Wbad-function-cast.
2922 (xg_set_toolkit_scroll_bar_thumb): Use it.
2923 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
2924 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
2925 (get_utf8_string, xg_get_file_with_chooser):
2926 Rename locals to avoid shadowing.
2927 (create_dialog): Move locals to avoid shadowing.
7c86ee98 2928
41729b81
PE
2929 * xgselect.c (xg_select): Remove unused var.
2930
f0c77cd1
PE
2931 * image.c (four_corners_best): Mark locals as initialized.
2932 (gif_load): Initialize transparent_p to zero (Bug#8238).
2933 Mark another local as initialized.
ec6cf4c6 2934 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 2935
ce0ad53d 2936 * image.c (clear_image_cache): Now static.
d5d5a617 2937 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 2938 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
2939 (x_edge_detection): Remove unnecessary cast that
2940 gcc -Wbad-function-cast diagnoses.
2037898d 2941 (gif_load): Fix pointer signedness.
6ae141d6
PE
2942 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
2943 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 2944
33383987 29452011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 2946
d32df629
PE
2947 Improve quality of tests for time stamp overflow.
2948 For example, without this patch (encode-time 0 0 0 1 1
2949 1152921504606846976) returns the obviously-bogus value (-948597
2950 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
2951 reports time overflow. See
2952 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
2953 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
2954 * editfns.c: Include limits.h and intprops.h.
2955 (TIME_T_MIN, TIME_T_MAX): New macros.
2956 (time_overflow): Move earlier, to before first use.
2957 (hi_time, lo_time): New functions, for an accurate test for
2958 out-of-range times.
2959 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
2960 (Fget_internal_run_time): Don't assume time_t fits in int.
2961 (make_time): Use list2 instead of Fcons twice.
2962 (Fdecode_time): More accurate test for out-of-range times.
2963 (check_tm_member): New function.
2964 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
2965 (lisp_time_argument): Don't rely on undefined left-shift and
2966 right-shift behavior when checking for time stamp overflow.
8be6f318 2967
fe31d94c
PE
2968 * editfns.c (time_overflow): New function, refactoring common code.
2969 (Fformat_time_string, Fdecode_time, Fencode_time):
2970 (Fcurrent_time_string): Use it.
2971
8be6f318
PE
2972 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
2973 * dired.c (make_time): Move to ...
2974 * editfns.c (make_time): ... here.
2975 * systime.h: Note the move.
2976
09d9db2c 29772011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 2978
126bc0dc
YM
2979 * fringe.c (update_window_fringes): Remove unused variables.
2980
c47cbdfd
YM
2981 * unexmacosx.c (copy_data_segment): Also copy __got section.
2982 (Bug#8223)
2983
7ac80be9
EZ
29842011-03-12 Eli Zaretskii <eliz@gnu.org>
2985
c96bbc66 2986 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
2987 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
2988 Constify `char *' arguments and their references according to
2989 prototypes in tparam.h.
2990
ecb0f94d 2991 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 2992
7ac80be9
EZ
2993 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
2994 Adapt all references accordingly.
2995
2996 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
2997
ef1fd07e
TT
29982011-03-11 Tom Tromey <tromey@redhat.com>
2999
3000 * buffer.c (syms_of_buffer): Remove obsolete comment.
3001
7ef4b50c
EZ
30022011-03-11 Eli Zaretskii <eliz@gnu.org>
3003
3004 * termhooks.h (encode_terminal_code): Declare prototype.
3005
3006 * msdos.c (encode_terminal_code): Don't declare prototype.
3007
3008 * term.c (encode_terminal_code): Now external again, used by
3009 w32console.c and msdos.c.
3010
44f230aa
SM
3011 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
3012 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 3013
4b1ec863 30142011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 3015
1714f52b 3016 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 3017
4b1ec863
PE
3018 * fringe.c (update_window_fringes): Mark locals as initialized
3019 (Bug#8227).
3020 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 3021
524c7aa6
PE
3022 * alloc.c (mark_fringe_data): Move decl from here ...
3023 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
3024 to check its interface.
3025 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
3026
a5c0af81 3027 * fontset.c (free_realized_fontset): Now static.
7519b8cd 3028 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 3029 (fontset_font): Mark local as initialized.
a9a06e0b 3030 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 3031
b4716021
PE
3032 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
3033
811e9bac 3034 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 3035 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
3036 (x_own_selection, Fx_disown_selection_internal): Rename locals
3037 to avoid shadowing.
3038 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 3039
7e3ab302
PE
3040 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
3041 so that the caller can use some name other than gcpro1.
3042 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
3043 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
3044 (Fx_backspace_delete_keys_p):
3045 Use them to avoid shadowing, and rename vars to avoid shadowing.
3046 (x_decode_color, x_set_name, x_window): Now static.
6b437900 3047 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 3048 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
3049 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
3050 Remove unused locals.
7e3ab302
PE
3051 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
3052 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
3053 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
3054 macros.
f78faa98 3055
e2b13473
PE
3056 * xterm.h (x_mouse_leave): New decl.
3057
77f23912
PE
3058 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
3059 Remove unused functions.
cdf4ba58
PE
3060 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
3061 (x_calc_absolute_position): Now static.
7411c686 3062 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 3063 Don't declare local "event" unless it's used.
ed7bf3a5
PE
3064 (x_iconify_frame, x_free_frame_resources): Don't declare locals
3065 unless they are used.
38d0b34a
PE
3066 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
3067 (x_fatal_error_signal): Remove; not used.
a6067996
PE
3068 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
3069 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
3070 (x_error_catcher, x_connection_closed, x_error_handler):
3071 (x_error_quitter, xembed_send_message, x_iconify_frame):
3072 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 3073 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 3074 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 3075
44f230aa
SM
3076 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
3077 Rename or move locals to avoid shadowing.
6b463e58 3078 (tty_defined_color, merge_face_heights): Now static.
5967d051 3079 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
3080 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
3081 does not deduce is never used uninitialized.
73719eba
PE
3082 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
3083 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 3084
426994c3 3085 * terminal.c (store_terminal_param): Now static.
5489860b 3086
032f1620 3087 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 3088 (set_frame_menubar): Remove unused local.
d4323972 3089 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
3090 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
3091 since they might point to immutable storage.
281585b0
PE
3092 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
3093 since it's unused otherwise.
032f1620 3094
367c19e5 3095 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 3096 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
3097 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
3098 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 3099 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
3100 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
3101 does not deduce are never used uninitialized.
70739cbe 3102
07b48fa9
PE
3103 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
3104
8868a238 3105 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
3106 * window.c (window_loop, size_window):
3107 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 3108
7e5cf297 3109 * window.c (display_buffer): Now static.
d6550a9f
PE
3110 (size_window): Mark variables that gcc -Wuninitialized
3111 does not deduce are never used uninitialized.
a586633d
PE
3112 * window.h (check_all_windows): New decl, to forestall
3113 gcc -Wmissing-prototypes diagnostic.
5b555da1 3114 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 3115
f6095868
PE
3116 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
3117 shadowing.
3118 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
3119 Include <limits.h>.
3120 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
3121 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
3122 (load_charset_map): Mark variables that gcc -Wuninitialized
3123 does not deduce are never used uninitialized.
53df7c11 3124 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 3125
f38b440c
PE
3126 * coding.c (coding_set_source, coding_set_destination):
3127 Use "else { /* comment */ }" rather than "else /* comment */;"
3128 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
3129 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
3130 a block, when the outer 'i' will do.
3131 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
3132 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
3133 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
3134 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
3135 (Fdecode_sjis_char, Fdefine_coding_system_internal):
3136 Rename locals to avoid shadowing.
3137 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
3138 * coding.c (emacs_mule_char, encode_invocation_designation):
3139 Now static, since they're not used elsewhere.
413bb2db 3140 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 3141 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
3142 (decode_coding_emacs_mule): Mark variables that gcc
3143 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
3144 (detect_coding_iso_2022): Initialize a local variable that might
3145 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 3146 this initialization is needed. (Bug#8211)
5f58e762
PE
3147 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
3148 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
3149 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
3150 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
3151 Remove unused macros.
f38b440c 3152
232b38b9 3153 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 3154 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 3155 * character.c (string_count_byte8): Likewise.
232b38b9 3156
fb90da1b
PE
3157 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
3158 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
3159
fb93dbc2
PE
3160 * chartab.c (copy_sub_char_table): Now static, since it's not used
3161 elsewhere.
5c156ace
PE
3162 (sub_char_table_ref_and_range, char_table_ref_and_range):
3163 Rename locals to avoid shadowing.
bbcd0949 3164 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 3165
7d3b3862 3166 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 3167 (BIDI_BOB): Remove unused macro.
7d3b3862 3168
6be7d3da
PE
3169 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
3170 deduce are never used uninitialized.
c2ed9c8b 3171 * term.c (encode_terminal_code): Likewise.
6be7d3da 3172
75f8807f 3173 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 3174
50938595
PE
3175 * tparam.h: New file.
3176 * term.c, tparam.h: Include it.
3177 * deps.mk (term.o, tparam.o): Depend on tparam.h.
3178 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
3179 Move these decls to tparam.h, and make them agree with what
3180 is actually in tparam.c. The previous trick of using incompatible
3181 decls in different modules does not conform to the C standard.
3182 All callers of tparam changed to use tparam's actual API.
3183 * tparam.c (tparam1, tparam, tgoto):
3184 Use const pointers where appropriate.
3185
fbceeba2
PE
3186 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
3187 * cm.h (struct cm): Likewise.
3188 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
3189 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
3190 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
3191 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
3192 (turn_on_face, init_tty): Likewise.
3193 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 3194
7f3f1250
PE
3195 * term.c (term_mouse_position): Rename local to avoid shadowing.
3196
e6ca6543
PE
3197 * alloc.c (mark_ttys): Move decl from here ...
3198 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
3199
c40f8d15
AS
32002011-03-11 Andreas Schwab <schwab@linux-m68k.org>
3201
3202 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
3203
cfe0661d
JB
32042011-03-09 Juanma Barranquero <lekktu@gmail.com>
3205
3206 * search.c (compile_pattern_1): Remove argument regp, unused since
3207 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
3208 (compile_pattern): Don't pass it.
3209
0afb4571
J
32102011-03-08 Jan Djärv <jan.h.d@swipnet.se>
3211
3212 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
3213 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
3214 for ! HAVE_GTK3.
3215 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
3216
3217 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
3218
3219 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
3220 gdk_window_get_screen, gdk_window_get_geometry,
3221 gdk_x11_window_lookup_for_display and GDK_KEY_g.
3222 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
3223 (xg_get_pixbuf_from_pixmap): New function.
3224 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
3225 to Pixmap, take frame as parameter, remove GdkColormap parameter.
3226 Call xg_get_pixbuf_from_pixmap instead of
3227 gdk_pixbuf_get_from_drawable.
3228 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
3229 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
3230 (xg_check_special_colors): Use GtkStyleContext and its functions
3231 for HAVE_GTK3.
3232 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
3233 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
3234 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
3235 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
3236 Call gtk_widget_get_preferred_size.
0afb4571
J
3237 (xg_frame_resized): gdk_window_get_geometry only takes 5
3238 parameters.
44f230aa
SM
3239 (xg_win_to_widget, xg_event_is_for_menubar):
3240 Call gdk_x11_window_lookup_for_display.
0afb4571
J
3241 (xg_set_widget_bg): New function.
3242 (delete_cb): New function.
895009e1 3243 (xg_create_frame_widgets): Connect delete-event to delete_cb.
0afb4571
J
3244 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
3245 (xg_set_background_color): Call xg_set_widget_bg.
3246 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
3247 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
3248 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
3249 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
3250 if ! HAVE_GTK3.
3251 (update_frame_tool_bar): Call gtk_widget_hide.
3252 (xg_initialize): Use GDK_KEY_g.
3253
3254 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
3255 if ! HAVE_GTK3
3256 (x_session_initialize): Call gdk_x11_set_sm_client_id.
3257
3258 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
3259 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
3260 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
3261
1c2cc4ef
JB
32622011-03-08 Juanma Barranquero <lekktu@gmail.com>
3263
3264 * w32xfns.c (select_palette): Check success of RealizePalette against
3265 GDI_ERROR, not zero.
3266
33383987 3267See ChangeLog.11 for earlier changes.
aac0c6e3
MR
3268
3269;; Local Variables:
3270;; coding: utf-8
aac0c6e3
MR
3271;; End:
3272
33383987 3273 Copyright (C) 2011 Free Software Foundation, Inc.
aac0c6e3
MR
3274
3275 This file is part of GNU Emacs.
3276
3277 GNU Emacs is free software: you can redistribute it and/or modify
3278 it under the terms of the GNU General Public License as published by
3279 the Free Software Foundation, either version 3 of the License, or
3280 (at your option) any later version.
3281
3282 GNU Emacs is distributed in the hope that it will be useful,
3283 but WITHOUT ANY WARRANTY; without even the implied warranty of
3284 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3285 GNU General Public License for more details.
3286
3287 You should have received a copy of the GNU General Public License
3288 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.