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