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