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