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