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