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