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