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