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