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