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