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