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