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