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