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