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