* xfaces.c (USG, __TIMEVAL__): Likewise.
[bpt/emacs.git] / src / ChangeLog
1 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
2
3 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
4 by pacifying GCC about it. Maybe it's time to retire it?
5 * xfaces.c (USG, __TIMEVAL__): Likewise.
6
7 * dispextern.h (struct redisplay_interface): Rename param
8 to avoid shadowing.
9 * termhooks.h (struct terminal): Likewise.
10
11 * insdel.c (make_gap_smaller): Define only if
12 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
13
14 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
15 it.
16
17 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
18 so that we aren't warned about unused symbols.
19
20 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
21
22 * xdisp.c (x_produce_glyphs): Avoid possibly-uninitialized
23 var (Bug#8512).
24
25 * xfns.c (x_real_positions): Mark locals as initialized.
26
27 * xmenu.c (xmenu_show): Don't use uninitialized vars.
28
29 * xterm.c: Fix problems found by static analysis with other toolkits.
30 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
31 (x_dispatch_event): Declare static if USE_GTK, and
32 define if USE_GTK || USE_X_TOOLKIT.
33 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
34 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
35 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only if
36 defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
37
38 * xmenu.c (menu_help_callback): Pointer type fixes.
39 Use const pointers when pointing at readonly data. Avoid pointer
40 signedness clashes.
41 (FALSE): Remove unused macro.
42 (update_frame_menubar): Remove unused decl.
43
44 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
45
46 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
47 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
48 (single_menu_item): Rename local to avoid shadowing.
49
50 * keyboard.c (make_lispy_event): Remove unused local var.
51
52 * frame.c, frame.h (x_get_resource_string): Bring this back, but
53 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
54
55 * bitmaps: Change bitmaps from unsigned char back to the X11
56 compatible char. Avoid the old compiler warnings about
57 out-of-range initializers by using, for example, '\xab' rather
58 than 0xab.
59
60 * xgselect.c (xgselect_initialize): Check vs interface
61 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
62
63 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
64
65 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
66 to read-only memory.
67
68 * fns.c (vector): Remove; this old hack is no longer needed.
69
70 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
71 Remove unused var.
72 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
73
74 * xrdb.c (x_load_resources): Omit unused local.
75
76 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
77 (x_window): Rename locals to avoid shadowing.
78 (USG): Use the kludged USG macro, to pacify gcc.
79
80 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
81 (x_term_init): Remove local to avoid shadowing.
82
83 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
84
85 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
86 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
87
88 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
89
90 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
91
92 emacs_write: Accept and return EMACS_INT for sizes.
93 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
94 et seq.
95 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
96 Accept and return EMACS_INT.
97 (emacs_gnutls_write): Return the number of bytes written on
98 partial writes.
99 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
100 (emacs_read, emacs_write): Remove check for negative size, as the
101 Emacs source code has been audited now.
102 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
103 (emacs_read, emacs_write): Use it.
104 * process.c (send_process): Adjust to the new signatures of
105 emacs_write and emacs_gnutls_write. Do not attempt to store
106 a byte offset into an 'int'; it might overflow.
107 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
108
109 * sound.c: Don't assume sizes fit in 'int'.
110 (struct sound_device.period_size, alsa_period_size):
111 Return EMACS_INT, not int.
112 (struct sound_device.write, vox_write, alsa_write):
113 Accept EMACS_INT, not int.
114 (wav_play, au_play): Use EMACS_INT to store sizes and to
115 record read return values.
116
117 2011-04-15 Ben Key <bkey76@gmail.com>
118
119 * keyboard.c (Qundefined): Don't declare static since it is
120 used in nsfns.m.
121 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't
122 declare static since they are used in nsfont.m.
123
124 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
125
126 * process.c (Qprocessp): Don't declare static.
127 * lisp.h (Qprocessp): Declare again.
128
129 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
130
131 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
132
133 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
134
135 Improve C-level modularity by making more things 'static'.
136
137 Don't publish debugger-only interfaces to other modules.
138 * lisp.h (safe_debug_print, debug_output_compilation_hack):
139 (verify_bytepos, count_markers): Move decls to the only modules
140 that need them.
141 * region-cache.h (pp_cache): Likewise.
142 * window.h (check_all_windows): Likewise.
143 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
144
145 * sysdep.c (croak): Now static, if
146 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
147 * syssignal.h (croak): Declare only if not static.
148
149 * alloc.c (refill_memory_reserve): Now static if
150 !defined REL_ALLOC || defined SYSTEM_MALLOC.
151 * lisp.h (refill_memory_reserve): Declare only if not static.
152
153 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
154 Define only if USE_LUCID.
155
156 * xrdb.c (x_customization_string, x_rm_string): Now static.
157
158 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
159 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
160
161 * xdisp.c (draw_row_with_mouse_face): Now static.
162 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
163
164 * window.h (check_all_windows): Mark externally visible.
165
166 * window.c (window_deletion_count): Now static.
167
168 * undo.c: Make symbols static if they're not exported.
169 (last_undo_buffer, last_boundary_position, pending_boundary):
170 Now static.
171
172 * textprop.c (interval_insert_behind_hooks): Now static.
173 (interval_insert_in_front_hooks): Likewise.
174
175 * term.c: Make symbols static if they're not exported.
176 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
177 (max_frame_lines, tty_set_terminal_modes):
178 (tty_reset_terminal_modes, tty_turn_off_highlight):
179 (get_tty_terminal): Now static.
180 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
181 * termhooks.h (term_mouse_moveto): Do not declare if
182 HAVE_WINDOW_SYSTEM.
183 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
184 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
185
186 * sysdep.c: Make symbols static if they're not exported.
187 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
188 Now static.
189 (sigprocmask_set, full_mask): Remove; unused.
190 (wait_debugging): Mark as visible.
191 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
192 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
193
194 * syntax.c (syntax_temp): Define only if !__GNUC__.
195
196 * sound.c (current_sound_device, current_sound): Now static.
197
198 * search.c (searchbufs, searchbuf_head): Now static.
199
200 * scroll.c (scroll_cost): Remove; unused.
201 * dispextern.h (scroll_cost): Remove decl.
202
203 * region-cache.h (pp_cache): Mark as externally visible.
204
205 * process.c: Make symbols static if they're not exported.
206 (process_tick, update_tick, create_process, chan_process):
207 (Vprocess_alist, proc_buffered_char, datagram_access):
208 (fd_callback_data, send_process_frame, process_sent_to): Now static.
209 (deactivate_process): Mark defn as static, as well as decl.
210 * lisp.h (create_process): Remove decl.
211 * process.h (chan_process, Vprocess_alist): Remove decls.
212
213 * print.c: Make symbols static if they're not exported.
214 (print_depth, new_backquote_output, being_printed, print_buffer):
215 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
216 (print_interval, print_number_index, initial_stderr_stream):
217 Now static.
218 * lisp.h (Fprinc): Remove decl.
219 (debug_output_compilation_hack): Mark as externally visible.
220
221 * sysdep.c (croak): Move decl from here to syssignal.h.
222 * syssignal.h (croak): Put it here, so the API can be checked when
223 'croak' is called from dissociate_if_controlling_tty.
224
225 * minibuf.c: Make symbols static if they're not exported.
226 (minibuf_save_list, choose_minibuf_frame): Now static.
227 * lisp.h (choose_minibuf_frame): Remove decl.
228
229 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
230
231 * lread.c: Make symbols static if they're not exported.
232 (read_objects, initial_obarray, oblookup_last_bucket_number):
233 Now static.
234 (make_symbol): Remove; unused.
235 * lisp.h (initial_obarray, make_symbol): Remove decls.
236
237 * keyboard.c: Make symbols static if they're not exported.
238 (single_kboard, recent_keys_index, total_keys, recent_keys):
239 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
240 (this_single_command_key_start, echoing, last_auto_save):
241 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
242 (command_loop, echo_now, keyboard_init_hook, help_char_p):
243 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
244 (Vlispy_mouse_stem, double_click_count):
245 Now static.
246 (force_auto_save_soon): Define only if SIGDANGER.
247 (ignore_mouse_drag_p): Now static if
248 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
249 (print_help): Remove; unused.
250 (stop_character, last_timer_event): Mark as externally visible.
251 * keyboard.h (ignore_mouse_drag_p): Declare only if
252 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
253 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
254 * lisp.h (echoing): Remove decl.
255 (force_auto_save_soon): Declare only if SIGDANGER.
256 * xdisp.c (redisplay_window): Simplify code, to make it more
257 obvious that ignore_mouse_drag_p is not accessed if !defined
258 USE_GTK && !defined HAVE_NS.
259
260 * intervals.c: Make symbols static if they're not exported.
261 (merge_properties_sticky, merge_interval_right, delete_interval):
262 Now static.
263 * intervals.h (merge_interval_right, delete_interval): Remove decls.
264
265 * insdel.c: Make symbols static if they're not exported.
266 However, leave prepare_to_modify_buffer alone. It's never
267 called from outside this function, but that appears to be a bug.
268 (combine_after_change_list, combine_after_change_buffer):
269 (adjust_after_replace, signal_before_change): Now static.
270 (adjust_after_replace_noundo): Remove; unused.
271 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
272 (signal_before_change): Remove decls.
273
274 * indent.c (val_compute_motion, val_vmotion): Now static.
275
276 * image.c: Make symbols static if they're not exported.
277 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
278 if USE_GTK.
279 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
280 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
281
282 * fringe.c (standard_bitmaps): Now static.
283 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
284
285 * frame.c: Make symbols static if they're not exported.
286 (x_report_frame_params, make_terminal_frame): Now static.
287 (get_frame_param): Now static, unless HAVE_NS.
288 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
289 (x_get_resource_string): Remove; not used.
290 * frame.h (make_terminal_frame, x_report_frame_params):
291 (x_get_resource_string); Remove decls.
292 (x_fullscreen_adjust): Declare only if WINDOWSNT.
293 * lisp.h (get_frame_param): Declare only if HAVE_NS.
294
295 * font.c, fontset.c: Make symbols static if they're not exported.
296 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
297 (FACE_SUITABLE_FOR_CHAR_P): Use it.
298 * font.c (font_close_object): Now static.
299 * font.h (font_close_object): Remove.
300 * fontset.c (FONTSET_OBJLIST): Remove.
301 (free_realized_fontset) #if-0 the body, which does nothing.
302 (face_suitable_for_char_p): #if-0, as it's never called.
303 * fontset.h (face_suitable_for_char_p): Remove decl.
304 * xfaces.c (face_at_string_position): Use
305 FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
306 since 0 is always ASCII.
307
308 * fns.c (weak_hash_tables): Now static.
309
310 * fileio.c: Make symbols static if they're not exported.
311 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
312 (Vwrite_region_annotation_buffers): Now static.
313
314 * eval.c: Make symbols static if they're not exported.
315 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
316 * lisp.h (backtrace_list): Remove decl.
317
318 * emacs.c: Make symbols static if they're not exported.
319 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
320 (fatal_error_code, fatal_error_signal_hook, standard_args):
321 Now static.
322 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
323 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
324 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
325 * lisp.h (fatal_error_signal_hook): Remove decl.
326 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
327
328 * editfns.c: Move a (normally-unused) function to its only use.
329 * editfns.c, lisp.h (get_operating_system_release): Remove.
330 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
331 worth the hassle of breaking this out.
332
333 * xterm.c: Make symbols static if they're not exported.
334 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
335 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
336 (x_destroy_window, x_delete_display):
337 Now static.
338 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
339 (x_mouse_leave): Remove; unused.
340 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
341 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
342 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
343 Remove decls.
344 (x_mouse_leave): Declare only if WINDOWSNT.
345 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
346 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
347 USE_X_TOOLKIT.
348
349 * ftxfont.c: Make symbols static if they're not exported.
350 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
351 HAVE_FREETYPE.
352 * font.h (ftxfont_driver): Likewise.
353
354 * xfns.c: Make symbols static if they're not exported.
355 (x_last_font_name, x_display_info_for_name):
356 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
357 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
358 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
359 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
360 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
361 (last_show_tip_args): Now static.
362 (xic_defaut_fontset, xic_create_fontsetname): Define only if
363 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
364 (x_screen_planes): Remove; unused.
365 * dispextern.h (x_screen_planes): Remove decl.
366
367 * dispnew.c: Make symbols static if they're not exported.
368 * dispextern.h (redraw_garbaged_frames, scrolling):
369 (increment_row_positions): Remove.
370 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
371 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
372 Now static.
373 (redraw_garbaged_frames): Remove; unused.
374
375 * xfaces.c: Make symbols static if they're not exported.
376 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
377 Remove decls.
378 * xterm.h (defined_color): Remove decls.
379 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
380 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
381 (menu_face_changed_default, defined_color, free_realized_face):
382 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
383 (ascii_face_of_lisp_face): Remove; unused.
384
385 * xdisp.c: Make symbols static if they're not exported.
386 * dispextern.h (scratch_glyph_row, window_box_edges):
387 (glyph_to_pixel_coords, set_cursor_from_row):
388 (get_next_display_element, set_iterator_to_next):
389 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
390 (show_mouse_face): Remove decls
391 * frame.h (message_buf_print): Likewise.
392 * lisp.h (pop_message, set_message, check_point_in_composition):
393 Likewise.
394 * xterm.h (set_vertical_scroll_bar): Likewise.
395 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
396 (message_buf_print, scratch_glyph_row, displayed_buffer):
397 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
398 (get_next_display_element, show_mouse_face, window_box_edges):
399 (frame_to_window_pixel_xy, check_point_in_composition):
400 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
401 (glyph_to_pixel_coords): Remove; unused.
402
403 * dired.c (file_name_completion): Now static.
404
405 * dbusbind.c (xd_in_read_queued_messages): Now static.
406
407 * lisp.h (circular_list_error, FOREACH): Remove; unused.
408 * data.c (circular_list_error): Remove.
409
410 * commands.h (last_point_position, last_point_position_buffer):
411 (last_point_position_window): Remove decls.
412 * keyboard.c: Make these variables static.
413
414 * coding.h (coding, code_convert_region, encode_coding_gap): Remove
415 decls.
416 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
417 (iso_code_class, detect_coding, code_convert_region): Now static.
418 (encode_coding_gap): Remove; unused.
419
420 * chartab.c (chartab_chars, chartab_bits): Now static.
421
422 * charset.h (charset_iso_8859_1): Remove decl.
423 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
424 Now static.
425
426 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
427 * ccl.c (Vccl_program_table): Now static.
428 (check_ccl_update): Remove; unused.
429
430 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
431 * category.h: ... from here.
432 * category.c (check_category_table, set_category_set): Now static.
433
434 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
435 * lisp.h: Remove these decls.
436
437 * buffer.c (buffer_count): Remove unused var.
438
439 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
440 so that it's not optimized away.
441 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
442 * dispextern.h (bidi_dump_cached_states): Remove, since it's
443 exported only to the debugger.
444
445 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
446 * atimer.h (run_all_atimers): Removed; not exported.
447
448 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
449 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
450 was inaccessible from Lisp.
451 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
452 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
453
454 alloc.c: Import and export fewer symbols, and remove unused items.
455 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
456 is defined.
457 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
458 it's not optimized away by whole-program optimization.
459 (message_enable_multibyte, free_misc): Remove.
460 (catchlist, handlerlist, mark_backtrace):
461 Declare only if BYTE_MARK_STACK.
462 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
463 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
464 (message_enable_multibyte): Remove decl.
465 (free_misc, interval_free_list, float_block, float_block_index):
466 (n_float_blocks, float_free_list, cons_block, cons_block_index):
467 (cons_free_list, last_marked_index):
468 Now static.
469 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
470 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
471 (mark_backtrace): Define only if BYTE_MARK_STACK.
472 * xdisp.c (message_enable_multibyte): Now static.
473
474 Declare Lisp_Object Q* variables to be 'static' if not exproted.
475 This makes it easier for human readers (and static analyzers)
476 to see whether these variables are used from other modules.
477 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
478 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
479 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
480 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
481 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
482 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
483 * xmenu.c, xselect.c:
484 Declare Q* vars static if they are not used in other modules.
485 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
486 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
487 Remove decls of unexported vars.
488 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
489
490 * lisp.h (DEFINE_FUNC): Make sname 'static'.
491
492 Make Emacs functions such as Fatom 'static' by default.
493 This makes it easier for human readers (and static analyzers)
494 to see whether these functions can be called from other modules.
495 DEFUN now defines a static function. To make the function external
496 so that it can be used in other C modules, use the new macro DEFUE.
497 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
498 (Finit_image_library):
499 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
500 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
501 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
502 Remove decls, since these functions are now static.
503 (Funintern, Fget_internal_run_time): New decls, since these functions
504 were already external.
505
506 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
507 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
508 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
509 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
510 * keyboard.c, keymap.c, lread.c:
511 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
512 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
513 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
514 Mark functions with DEFUE instead of DEFUN,
515 if they are used in other modules.
516 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
517 decls for now-static functions.
518 * buffer.h (Fdelete_overlay): Remove decl.
519 * callproc.c (Fgetenv_internal): Mark as internal.
520 * composite.c (Fremove_list_of_text_properties): Remove decl.
521 (Fcomposition_get_gstring): New forward static decl.
522 * composite.h (Fcomposite_get_gstring): Remove decl.
523 * dired.c (Ffile_attributes): New forward static decl.
524 * doc.c (Fdocumntation_property): New forward static decl.
525 * eval.c (Ffetch_bytecode): New forward static decl.
526 (Funintern): Remove extern decl; now in .h file where it belongs.
527 * fileio.c (Fmake_symbolic_link): New forward static decl.
528 * image.c (Finit_image_library): New forward static decl.
529 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
530 * intervals.h (Fprevious_property_change):
531 (Fremove_list_of_text_properties): Remove decls.
532 * keyboard.c (Fthis_command_keys): Remove decl.
533 (Fcommand_execute): New forward static decl.
534 * keymap.c (Flookup_key): New forward static decl.
535 (Fcopy_keymap): Now static.
536 * keymap.h (Flookup_key): Remove decl.
537 * process.c (Fget_process): New forward static decl.
538 (Fprocess_datagram_address): Mark as internal.
539 * syntax.c (Fsyntax_table_p): New forward static decl.
540 (skip_chars): Remove duplicate decl.
541 * textprop.c (Fprevious_property_change): New forward static decl.
542 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
543 Now internal.
544 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
545 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
546
547 * editfns.c (Fformat): Remove unreachable code.
548
549 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
550
551 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
552 change. (Bug#8496)
553
554 2011-04-13 Eli Zaretskii <eliz@gnu.org>
555
556 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
557 when at ZV. (Bug#8487)
558
559 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
560
561 * charset.c (Fclear_charset_maps): Use xfree instead of free.
562 (Bug#8437)
563 * keyboard.c (parse_tool_bar_item): Likewise.
564 * sound.c (sound_cleanup, alsa_close): Likewise.
565 * termcap.c (tgetent): Likewise.
566 * xfns.c (x_default_font_parameter): Likewise.
567 * xsettings.c (read_and_apply_settings): Likewise.
568
569 * alloc.c (overrun_check_malloc, overrun_check_realloc)
570 (overrun_check_free): Protoize.
571
572 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
573
574 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
575 since callers should never pass a negative size.
576 Change the signature to match that of plain 'read' and 'write'; see
577 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
578 * lisp.h: Update prototypes of emacs_write and emacs_read.
579
580 2011-04-11 Eli Zaretskii <eliz@gnu.org>
581
582 * xdisp.c (redisplay_window): Don't try to determine the character
583 position of the scroll margin if the window start point w->startp
584 is outside the buffer's accessible region. (Bug#8468)
585
586 2011-04-10 Eli Zaretskii <eliz@gnu.org>
587
588 Fix write-region and its subroutines for buffers > 2GB.
589 * fileio.c (a_write, e_write): Modify declaration of arguments and
590 local variables to support buffers larger than 2GB.
591 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
592
593 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
594 argument, local variables, and return value.
595
596 * lisp.h: Update prototypes of emacs_write and emacs_read.
597
598 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
599
600 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
601
602 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
603
604 Fix more problems found by GCC 4.6.0's static checks.
605
606 * xdisp.c (vmessage): Use a better test for character truncation.
607
608 * charset.c (load_charset_map): <, not <=, for optimization,
609 and to avoid potential problems with integer overflow.
610 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
611 * casetab.c (set_identity, shuffle): Likewise.
612 * editfns.c (Fformat): Likewise.
613 * syntax.c (skip_chars): Likewise.
614
615 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
616 This also lets GCC 4.6.0 generate slightly better loop code.
617
618 * callint.c (Fcall_interactively): <, not <=, for optimization.
619 (Fcall_interactively): Count the number of arguments produced,
620 not the number of arguments given. This is simpler and lets GCC
621 4.6.0 generate slightly better code.
622
623 * ftfont.c: Distingish more carefully between FcChar8 and char.
624 The previous code passed unsigned char * to a functions like
625 strlen and xstrcasecmp that expect char *, which does not
626 conform to the C standard.
627 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
628 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
629 char * when the C standard requires it.
630
631 * keyboard.c (read_char): Remove unused var.
632
633 * eval.c: Port to Windows vsnprintf (Bug#8435).
634 Include <limits.h>.
635 (SIZE_MAX): Define if the headers do not.
636 (verror): Do not give up if vsnprintf returns a negative count.
637 Instead, grow the buffer. This ports to Windows vsnprintf, which
638 does not conform to C99. Problem reported by Eli Zaretskii.
639 Also, simplify the allocation scheme, by avoiding the need for
640 calling realloc, and removing the ALLOCATED variable.
641
642 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
643
644 Remove invocations of doprnt, as Emacs now uses vsnprintf.
645 But keep the doprint source code for now, as we might revamp it
646 and use it again (Bug#8435).
647 * lisp.h (doprnt): Remove.
648 * Makefile.in (base_obj): Remove doprnt.o.
649 * deps.mk (doprnt.o): Remove.
650
651 error: Print 32- and 64-bit integers portably (Bug#8435).
652 Without this change, on typical 64-bit hosts error ("...%d...", N)
653 was used to print both 32- and 64-bit integers N, which relied on
654 undefined behavior.
655 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
656 New macro.
657 * lisp.h (error, verror): Mark as printf-like functions.
658 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
659 Report overflow in size calculations when allocating printf buffer.
660 Do not truncate output string at its first null byte.
661 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
662 Truncate the output at a character boundary, since vsnprintf does not
663 do that.
664 * charset.c (check_iso_charset_parameter): Convert internal
665 character to string before calling 'error', since %c now has the
666 printf meaning.
667 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
668 overflow when computing char to be passed to 'error'. Do not
669 pass Lisp_Object to 'error'; pass the integer instead.
670 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
671 formatted with plain %d.
672
673 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
674
675 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
676
677 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
678
679 * xterm.c (x_catch_errors): Remove duplicate declaration.
680
681 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
682
683 * xdisp.c, lisp.h (message_nolog): Remove; unused.
684
685 2011-04-10 Jim Meyering <meyering@redhat.com>
686
687 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
688 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
689 return ssize_t not "int", and use size_t as the buffer length.
690 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
691 * gnutls.h: Update declarations.
692 * process.c (read_process_output): Use ssize_t, to match.
693 (send_process): Likewise.
694
695 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
696
697 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
698
699 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
700
701 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
702 unsigned char, to match FcChar8 type definition.
703
704 * xterm.c (handle_one_xevent):
705 * xmenu.c (create_and_show_popup_menu):
706 * xselect.c (x_decline_selection_request)
707 (x_reply_selection_request): Avoid type-punned deref of X events.
708
709 2011-04-09 Eli Zaretskii <eliz@gnu.org>
710
711 Fix some uses of `int' instead of EMACS_INT.
712 * search.c (string_match_1, fast_string_match)
713 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
714 (scan_buffer, find_next_newline_no_quit)
715 (find_before_next_newline, search_command, Freplace_match)
716 (Fmatch_data): Make some `int' variables be EMACS_INT.
717
718 * xdisp.c (display_count_lines): 3rd argument and return value now
719 EMACS_INT. All callers changed.
720 (pint2hrstr): Last argument is now EMACS_INT.
721
722 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
723 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
724 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
725 (decode_coding_utf_16, decode_coding_emacs_mule)
726 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
727 (decode_coding_ccl, decode_coding_charset)
728 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
729 (decode_coding_iso_2022, decode_coding_emacs_mule)
730 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
731 <char_offset, last_offset>: Declare EMACS_INT.
732 (encode_coding_utf_8, encode_coding_utf_16)
733 (encode_coding_emacs_mule, encode_invocation_designation)
734 (encode_designation_at_bol, encode_coding_iso_2022)
735 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
736 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
737 Declare EMACS_INT.
738 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
739 (encode_invocation_designation): Last argument P_NCHARS is now
740 EMACS_INT.
741 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
742 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
743
744 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
745 All users changed.
746
747 * ccl.c (Fccl_execute_on_string): Declare some variables
748 EMACS_INT.
749
750 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
751
752 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
753
754 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
755
756 * process.c (Fformat_network_address): Doc fix.
757
758 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
759
760 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
761
762 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
763
764 * keyboard.c (read_char): Call Lisp function help-form-show,
765 instead of using internal_with_output_to_temp_buffer.
766 (Qhelp_form_show): New var.
767 (syms_of_keyboard): Use DEFSYM macro.
768
769 * print.c (internal_with_output_to_temp_buffer): Function deleted.
770
771 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
772
773 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
774
775 * process.c (Flist_processes): Removed to Lisp.
776 (list_processes_1): Deleted.
777
778 2011-04-06 Eli Zaretskii <eliz@gnu.org>
779
780 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
781
782 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
783
784 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
785
786 Fix more problems found by GCC 4.6.0's static checks.
787
788 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
789
790 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
791
792 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
793
794 * xdisp.c (vmessage): Mark as a printf-like function.
795
796 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
797
798 * sound.c (sound_warning): Don't crash if arg contains a printf format.
799
800 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
801 printf-like functions.
802 (tiff_load): Add casts to remove these marks before passing them
803 to system-supplied API.
804
805 * eval.c (Fsignal): Remove excess argument to 'fatal'.
806
807 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
808 This avoids several warnings with gcc -Wstrict-overflow.
809 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
810 directly, rather than having caller test rule sign. This avoids
811 some unnecessary tests.
812 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
813 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
814 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
815
816 * xfont.c (xfont_text_extents): Remove var that was set but not used.
817 (xfont_open): Avoid unnecessary tests.
818
819 * composite.c (composition_gstring_put_cache): Use unsigned integer.
820
821 * composite.h, composite.c (composition_gstring_put_cache):
822 Use EMACS_INT, not int, for length.
823
824 * composite.h (COMPOSITION_DECODE_REFS): New macro,
825 breaking out part of COMPOSITION_DECODE_RULE.
826 (COMPOSITION_DECODE_RULE): Use it.
827 * composite.c (get_composition_id): Remove unused local vars,
828 by using the new macro.
829
830 * textprop.c (set_text_properties_1): Change while to do-while,
831 since the condition is always true at first.
832
833 * intervals.c (graft_intervals_into_buffer): Mark var as used.
834 (interval_deletion_adjustment): Return unsigned value.
835 All uses changed.
836
837 * process.c (list_processes_1, create_pty, read_process_output):
838 (exec_sentinel): Remove vars that were set but not used.
839 (create_pty): Remove unnecessary "volatile"s.
840 (Fnetwork_interface_info): Avoid possibility of int overflow.
841 (read_process_output): Do adaptive read buffering even if carryover.
842 (read_process_output): Simplify nbytes computation if buffered.
843
844 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
845
846 * syntax.c (scan_words): Remove var that was set but not used.
847 (update_syntax_table): Use unsigned instead of int.
848
849 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
850 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
851 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
852
853 * print.c (print_error_message): Avoid int overflow.
854
855 * font.c (font_list_entities): Redo for clarity,
856 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
857
858 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
859 (font_score): Avoid potential overflow in diff calculation.
860
861 * fns.c (substring_both): Remove var that is set but not used.
862 (sxhash): Redo loop for clarity and to avoid wraparound warning.
863
864 * eval.c (funcall_lambda): Rename local to avoid shadowing.
865
866 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
867 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
868 can always succeed if overflow has undefined behavior.
869
870 * search.c (boyer_moore, wordify): Remove vars set but not used.
871 (wordify): Omit three unnecessary tests.
872
873 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
874 All callers changed. This avoids the need for an unused var.
875
876 * casefiddle.c (casify_region): Remove var that is set but not used.
877
878 * dired.c (file_name_completion): Remove var that is set but not used.
879
880 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
881
882 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
883 (Finsert_file_contents): Remove unnecessary code checking fd.
884
885 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
886 Check for integer overflow on size calculations.
887
888 * buffer.c (Fprevious_overlay_change): Remove var that is set
889 but not used.
890
891 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
892 Remove vars that are set but not used.
893 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
894 (timer_check_2): Mark vars as initialized.
895
896 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
897
898 * image.c (lookup_image): Remove var that is set but not used.
899 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
900
901 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
902 that are set but not used.
903
904 * xfns.c (make_invisible_cursor): Don't return garbage
905 if XCreateBitmapFromData fails (Bug#8410).
906
907 * xselect.c (x_get_local_selection, x_handle_property_notify):
908 Remove vars that are set but not used.
909
910 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
911 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
912
913 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
914 Remove var that is set but not used.
915 (scroll_bar_windows_size): Now size_t, not int.
916 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
917 Check for overflow.
918
919 * xfaces.c (realize_named_face): Remove vars that are set but not used.
920 (map_tty_color) [!defined MSDOS]: Likewise.
921
922 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
923
924 * coding.c: Remove vars that are set but not used.
925 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
926 All callers changed.
927 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
928 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
929 (decode_coding_charset): Remove vars that are set but not used.
930
931 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
932 that is set but not used.
933
934 * print.c (print_object): Remove var that is set but not used.
935
936 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
937 The gnulib version avoids calling malloc in the usual case,
938 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
939 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
940 * filelock.c (current_lock_owner): Likewise.
941 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
942 * sysdep.c: Include allocator.h, careadlinkat.h.
943 (emacs_no_realloc_allocator): New static constant.
944 (emacs_readlink): New function.
945 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
946 ../lib/careadlinkat.h.
947
948 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
949
950 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
951 first non-nil return value).
952
953 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
954
955 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
956 if not defined (Bug#8403).
957
958 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
959
960 * xdisp.c (display_count_lines): Remove parameter `start',
961 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
962 (get_char_face_and_encoding): Remove parameter `multibyte_p',
963 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
964 (fill_stretch_glyph_string): Remove parameters `row' and `area',
965 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
966 and thereabouts. All callers changed.
967 (get_per_char_metric): Remove parameter `f', unused since
968 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
969
970 2011-04-02 Jim Meyering <meyering@redhat.com>
971
972 do not dereference NULL upon failed strdup
973 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
974 (ns_get_family): Likewise.
975
976 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
977
978 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
979
980 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
981
982 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
983 later (Bug#8403).
984
985 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
986
987 Add lexical binding.
988
989 * window.c (Ftemp_output_buffer_show): New fun.
990 (Fsave_window_excursion):
991 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
992
993 * lread.c (lisp_file_lexically_bound_p): New function.
994 (Fload): Bind Qlexical_binding.
995 (readevalloop): Remove `evalfun' arg.
996 Bind Qinternal_interpreter_environment.
997 (Feval_buffer): Bind Qlexical_binding.
998 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
999 Mark as dynamic.
1000 (syms_of_lread): Declare `lexical-binding'.
1001
1002 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
1003
1004 * keyboard.c (eval_dyn): New fun.
1005 (menu_item_eval_property): Use it.
1006
1007 * image.c (parse_image_spec): Use Ffunctionp.
1008
1009 * fns.c (concat, mapcar1): Accept byte-code-functions.
1010
1011 * eval.c (Fsetq): Handle lexical vars.
1012 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
1013 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
1014 (FletX, Flet): Obey lexical binding.
1015 (Fcommandp): Handle closures.
1016 (Feval): New `lexical' arg.
1017 (eval_sub): New function extracted from Feval. Use it almost
1018 everywhere where Feval was used. Look up vars in lexical env.
1019 Handle closures.
1020 (Ffunctionp): Move from subr.el.
1021 (Ffuncall): Handle closures.
1022 (apply_lambda): Remove `eval_flags'.
1023 (funcall_lambda): Handle closures and new byte-code-functions.
1024 (Fspecial_variable_p): New function.
1025 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
1026 but without exporting it to Lisp.
1027
1028 * doc.c (Fdocumentation, store_function_docstring):
1029 * data.c (Finteractive_form): Handle closures.
1030
1031 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
1032 interactive spec.
1033
1034 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
1035 byte-codes.
1036 (exec_byte_code): New function extracted from Fbyte_code to handle new
1037 calling convention for byte-code-functions. Add new byte-codes.
1038
1039 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
1040
1041 * alloc.c (Fmake_symbol): Init new `declared_special' field.
1042
1043 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
1044
1045 * xdisp.c (redisplay_internal): Fix prototype.
1046
1047 2011-03-31 Eli Zaretskii <eliz@gnu.org>
1048
1049 * xdisp.c (SCROLL_LIMIT): New macro.
1050 (try_scrolling): Use it when setting scroll_limit. Limit
1051 scrolling to 100 screen lines.
1052 (redisplay_window): Even when falling back on "recentering",
1053 position point in the window according to scroll-conservatively,
1054 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
1055
1056 (try_scrolling): When point is above the window, allow searching
1057 as far as scroll_max, or one screenful, to compute vertical
1058 distance from PT to the scroll margin position. This prevents
1059 try_scrolling from unnecessarily failing when
1060 scroll-conservatively is set to a value slightly larger than the
1061 window height. Clean up the case of PT below the margin at bottom
1062 of window: scroll_max can no longer be INT_MAX. When aggressive
1063 scrolling is in use, don't let point enter the opposite scroll
1064 margin as result of the scroll.
1065 (syms_of_xdisp) <scroll-conservatively>: Document the
1066 threshold of 100 lines for never-recentering scrolling.
1067
1068 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
1069
1070 * dispextern.h (move_it_by_lines):
1071 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
1072 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
1073 (message_log_check_duplicate): Remove parameters `prev_bol' and
1074 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
1075 (redisplay_internal): Remove parameter `preserve_echo_area',
1076 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
1077
1078 * indent.c (Fvertical_motion):
1079 * window.c (window_scroll_pixel_based, Frecenter):
1080 Don't pass `need_y_p' to `move_it_by_lines'.
1081
1082 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
1083
1084 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
1085 steal a few bits to be more compact.
1086 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
1087 Remove unneeded casts.
1088
1089 * bytecode.c (Fbyte_code): CAR and CDR can GC.
1090
1091 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
1092
1093 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
1094 binding" message (bug#7967).
1095
1096 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
1097
1098 Fix more problems found by GCC 4.6.0's static checks.
1099
1100 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
1101 Remove unused local var.
1102
1103 * editfns.c (Fmessage_box): Remove unused local var.
1104
1105 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
1106 (note_mode_line_or_margin_highlight, note_mouse_highlight):
1107 Omit unused local vars.
1108 * window.c (shrink_windows): Omit unused local var.
1109 * menu.c (digest_single_submenu): Omit unused local var.
1110 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
1111 Omit unused local var.
1112
1113 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
1114 Don't assume string length fits in int.
1115 (keyremap_step, read_key_sequence): Use size_t for sizes.
1116 (read_key_sequence): Don't check last_real_key_start redundantly.
1117
1118 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
1119 instead of alloca (Bug#8344).
1120
1121 * eval.c (Fbacktrace): Don't assume nargs fits in int.
1122 (Fbacktrace_frame): Don't assume nframes fits in int.
1123
1124 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
1125
1126 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
1127 concerns.
1128
1129 * term.c (produce_glyphless_glyph): Remove unnecessary test.
1130
1131 * cm.c (calccost): Turn while-do into do-while, for clarity.
1132
1133 * keyboard.c (syms_of_keyboard): Use the same style as later
1134 in this function when indexing through an array. This also
1135 works around GCC bug 48267.
1136
1137 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
1138
1139 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
1140
1141 * chartab.c (sub_char_table_ref_and_range): Redo for slight
1142 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
1143
1144 * keyboard.c, keyboard.h (num_input_events): Now size_t.
1145 This avoids undefined behavior on integer overflow, and is a bit
1146 more convenient anyway since it is compared to a size_t variable.
1147
1148 Variadic C functions now count arguments with size_t, not int.
1149 This avoids an unnecessary limitation on 64-bit machines, which
1150 caused (substring ...) to crash on large vectors (Bug#8344).
1151 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
1152 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
1153 All variadic functions and their callers changed accordingly.
1154 (struct gcpro.nvars): Now size_t, not int. All uses changed.
1155 * data.c (arith_driver, float_arith_driver): Likewise.
1156 * editfns.c (general_insert_function): Likewise.
1157 * eval.c (struct backtrace.nargs, interactive_p)
1158 (internal_condition_case_n, run_hook_with_args, apply_lambda)
1159 (funcall_lambda, mark_backtrace): Likewise.
1160 * fns.c (concat): Likewise.
1161 * frame.c (x_set_frame_parameters): Likewise.
1162 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
1163 0 if not found, not -1. All callers changed.
1164
1165 * alloc.c (garbage_collect): Don't assume stack size fits in int.
1166 (stack_copy_size): Now size_t, not int.
1167 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
1168
1169 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
1170
1171 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
1172 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
1173 All callers changed.
1174
1175 * lisp.h (multibyte_char_to_unibyte):
1176 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
1177 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
1178 * character.h (CHAR_TO_BYTE8):
1179 * cmds.c (internal_self_insert):
1180 * editfns.c (general_insert_function):
1181 * keymap.c (push_key_description):
1182 * search.c (Freplace_match):
1183 * xdisp.c (message_dolog, set_message_1): All callers changed.
1184
1185 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
1186
1187 * keyboard.c (safe_run_hook_funcall): New function.
1188 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
1189 don't set the hook to nil, but remove the offending function instead.
1190 (Qcommand_hook_internal): Remove, unused.
1191 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
1192 Vcommand_hook_internal.
1193
1194 * eval.c (enum run_hooks_condition): Remove.
1195 (funcall_nil, funcall_not): New functions.
1196 (run_hook_with_args): Call each function through a `funcall' argument.
1197 Remove `cond' argument, now redundant.
1198 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
1199 (Frun_hook_with_args_until_failure): Adjust accordingly.
1200 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
1201
1202 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
1203
1204 * dispextern.h (string_buffer_position): Remove declaration.
1205
1206 * print.c (strout): Remove parameter `multibyte', unused since
1207 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
1208
1209 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
1210 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
1211 All callers changed.
1212
1213 * w32.c (_wsa_errlist): Use braces for struct initializers.
1214
1215 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
1216 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
1217 All callers changed.
1218 (string_buffer_position): Likewise. Also, make static (it's never
1219 used outside xdisp.c).
1220 (cursor_row_p): Remove parameter `w', unused since
1221 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
1222 (decode_mode_spec): Remove parameter `precision', introduced during
1223 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
1224 All callers changed.
1225
1226 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
1227
1228 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
1229
1230 2011-03-27 Anders Lindgren <andlind@gmail.com>
1231
1232 * nsterm.m (ns_menu_bar_is_hidden): New variable.
1233 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
1234 (ns_update_auto_hide_menu_bar): New functions.
1235 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
1236 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
1237 ns_constrain_all_frames.
1238 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
1239 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
1240
1241 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
1242
1243 * nsmenu.m (runDialogAt): Remove argument to timer_check.
1244
1245 2011-03-27 Glenn Morris <rgm@gnu.org>
1246
1247 * syssignal.h: Replace RETSIGTYPE with void.
1248 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
1249 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
1250 Replace SIGTYPE with void everywhere.
1251 * s/usg5-4-common.h (SIGTYPE): Remove definition.
1252 * s/template.h (SIGTYPE): Remove commented out definition.
1253
1254 2011-03-26 Eli Zaretskii <eliz@gnu.org>
1255
1256 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
1257 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
1258
1259 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
1260
1261 * w32.c (read_unc_volume): Use parameter `henum', instead of
1262 global variable `wget_enum_handle'.
1263
1264 * keymap.c (describe_vector): Remove parameters `indices' and
1265 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
1266 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
1267
1268 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
1269
1270 * keyboard.c (timer_check): Remove parameter `do_it_now',
1271 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
1272 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
1273 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
1274
1275 * keyboard.c (read_char):
1276 * w32menu.c (w32_menu_display_help):
1277 * xmenu.c (show_help_event, menu_help_callback):
1278 Adjust calls to `show_help_echo'.
1279
1280 * gtkutil.c (xg_maybe_add_timer):
1281 * keyboard.c (readable_events):
1282 * process.c (wait_reading_process_output):
1283 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
1284
1285 * insdel.c (adjust_markers_gap_motion):
1286 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
1287 (gap_left, gap_right): Don't call it.
1288
1289 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
1290
1291 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
1292 incurred during fontification.
1293
1294 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
1295
1296 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
1297 (DEFVAR_PER_BUFFER): Don't pass it.
1298
1299 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
1300 (scrolling_window): Don't pass it.
1301
1302 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
1303
1304 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
1305
1306 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
1307 and `suffix'.
1308 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
1309 of variables specific to SELinux and computation of `encoded_absname'.
1310
1311 * image.c (XPutPixel): Remove unused variable `height'.
1312
1313 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
1314
1315 * unexw32.c (get_section_info): Remove unused variable `section'.
1316
1317 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
1318 (system_process_attributes): Remove unused variable `sess'.
1319 (sys_read): Remove unused variable `err'.
1320
1321 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
1322 (w32_wnd_proc): Remove unused variable `isdead'.
1323 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
1324 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
1325 (x_create_tip_frame): Remove unused variable `tem'.
1326
1327 * w32inevt.c (w32_console_read_socket):
1328 Remove unused variable `no_events'.
1329
1330 * w32term.c (x_draw_composite_glyph_string_foreground):
1331 Remove unused variable `width'.
1332
1333 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
1334
1335 * w32term.c (x_set_glyph_string_clipping):
1336 Don't pass uninitialized region to CombineRgn.
1337
1338 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
1339
1340 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
1341 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
1342 (Fx_close_connection): Remove unused variable `i'.
1343
1344 * w32font.c (w32font_draw): Return number of glyphs.
1345 (w32font_open_internal): Remove unused variable `i'.
1346 (w32font_driver): Add missing initializer.
1347
1348 * w32menu.c (utf8to16): Remove unused variable `utf16'.
1349 (fill_in_menu): Remove unused variable `items_added'.
1350
1351 * w32term.c (last_mouse_press_frame): Remove static global variable.
1352 (w32_clip_to_row): Remove unused variable `f'.
1353 (x_delete_terminal): Remove unused variable `i'.
1354
1355 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
1356 (NOTHING): Remove unused static global variable.
1357 (uniscribe_check_otf): Remove unused variable `table'.
1358 (uniscribe_font_driver): Add missing initializers.
1359
1360 2011-03-23 Julien Danjou <julien@danjou.info>
1361
1362 * term.c (Fsuspend_tty, Fresume_tty):
1363 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
1364 * window.c (temp_output_buffer_show):
1365 * insdel.c (signal_before_change):
1366 * frame.c (Fhandle_switch_frame):
1367 * fileio.c (Fdo_auto_save):
1368 * emacs.c (Fkill_emacs):
1369 * editfns.c (save_excursion_restore):
1370 * cmds.c (internal_self_insert):
1371 * callint.c (Fcall_interactively):
1372 * buffer.c (Fkill_all_local_variables):
1373 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
1374 Use Frun_hooks.
1375 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
1376 unconditionnaly since it does the check itself.
1377
1378 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
1379
1380 Fix more problems found by GCC 4.5.2's static checks.
1381
1382 * coding.c (encode_coding_raw_text): Avoid unnecessary test
1383 the first time through the loop, since we know p0 < p1 then.
1384 This also avoids a gcc -Wstrict-overflow warning.
1385
1386 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
1387 leading to a memory leak, possible in functions like
1388 load_charset_map_from_file that can allocate an unbounded number
1389 of objects (Bug#8318).
1390
1391 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
1392 that could (at least in theory) be that large.
1393
1394 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
1395 This is less likely to overflow, and avoids undefined behavior if
1396 overflow does occur. All callers changed. Use strtoul to scan
1397 for the unsigned long integer.
1398 (pint2hrstr): Simplify and tune code slightly.
1399 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
1400
1401 * scroll.c (do_scrolling): Work around GCC bug 48228.
1402 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
1403
1404 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
1405 This also avoids a warning with gcc -Wstrict-overflow.
1406 (validate_x_resource_name): Simplify count usage.
1407 This also avoids a warning with gcc -Wstrict-overflow.
1408
1409 * fileio.c (Fcopy_file): Report error if fchown or fchmod
1410 fail (Bug#8306).
1411
1412 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
1413
1414 * process.c (Fmake_network_process): Use socklen_t, not int,
1415 where POSIX says socklen_t is required in portable programs.
1416 This fixes a porting bug on hosts like 64-bit HP-UX, where
1417 socklen_t is wider than int (Bug#8277).
1418 (Fmake_network_process, server_accept_connection):
1419 (wait_reading_process_output, read_process_output):
1420 Likewise.
1421
1422 * process.c: Rename or move locals to avoid shadowing.
1423 (list_processes_1, Fmake_network_process):
1424 (read_process_output_error_handler, exec_sentinel_error_handler):
1425 Rename or move locals.
1426 (Fmake_network_process): Define label "retry_connect" only if needed.
1427 (Fnetwork_interface_info): Fix pointer signedness.
1428 (process_send_signal): Add cast to avoid pointer signedness problem.
1429 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
1430 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
1431
1432 Make tparam.h and terminfo.c consistent.
1433 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
1434 Include tparam.h instead, since it declares them.
1435 * cm.h (PC): Remove extern decl; tparam.h now does this.
1436 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
1437 * terminfo.c: Include tparam.h, to check interfaces.
1438 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
1439 (tparam): Adjust signature to match interface in tparam.h;
1440 this removes some undefined behavior. Check that outstring and len
1441 are zero, which they always are with Emacs.
1442 * tparam.h (PC, BC, UP): New extern decls.
1443
1444 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
1445 (xftfont_open): Rename locals to avoid shadowing.
1446
1447 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
1448 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
1449 (OTF_TAG_SYM): Omit macro if not needed.
1450 (ftfont_list): Remove unused local.
1451 (get_adstyle_property, ftfont_pattern_entity):
1452 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
1453 Rename locals to avoid shadowing.
1454
1455 * xfont.c (xfont_list_family): Mark var as initialized.
1456
1457 * xml.c (make_dom): Now static.
1458
1459 * composite.c (composition_compute_stop_pos): Rename local to
1460 avoid shadowing.
1461 (composition_reseat_it): Remove unused locals.
1462 (find_automatic_composition, composition_adjust_point): Likewise.
1463 (composition_update_it): Mark var as initialized.
1464 (find_automatic_composition): Mark vars as initialized,
1465 with a FIXME (Bug#8290).
1466
1467 character.h: Rename locals to avoid shadowing.
1468 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
1469 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
1470 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
1471 (BUF_DEC_POS): Be more systematic about renaming local temporaries
1472 to avoid shadowing.
1473
1474 * textprop.c (property_change_between_p): Remove; unused.
1475
1476 * intervals.c (interval_start_pos): Now static.
1477
1478 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
1479
1480 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
1481 Rename locals to avoid shadowing.
1482
1483 * sound.c (wav_play, au_play, Fplay_sound_internal):
1484 Fix pointer signedness.
1485 (alsa_choose_format): Remove unused local var.
1486 (wav_play): Initialize a variable to 0, to prevent undefined
1487 behavior (Bug#8278).
1488
1489 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
1490
1491 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
1492
1493 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
1494 clobbering (Bug#8298).
1495 * sysdep.c (sys_subshell): Likewise.
1496 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
1497
1498 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
1499 This should get cleaned up, so that child_setup has the
1500 same signature on all platforms.
1501
1502 * callproc.c (call_process_cleanup): Now static.
1503 (relocate_fd): Rename locals to avoid shadowing.
1504
1505 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
1506
1507 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
1508 not to be necessary, and produces flickering.
1509
1510 2011-03-20 Glenn Morris <rgm@gnu.org>
1511
1512 * config.in: Remove file.
1513
1514 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
1515
1516 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
1517 are now in src/globals.h.
1518 (syms_of_minibuf): Remove spurious & from previous change.
1519
1520 2011-03-20 Leo <sdl.web@gmail.com>
1521
1522 * minibuf.c (completing-read-function): New variable.
1523 (completing-read-default): Rename from completing-read.
1524 (completing-read): Call completing-read-function.
1525
1526 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
1527
1528 * xfaces.c (Fx_load_color_file):
1529 Read color file from absolute filename (bug#8250).
1530
1531 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
1532
1533 * makefile.w32-in: Update dependencies.
1534
1535 2011-03-17 Eli Zaretskii <eliz@gnu.org>
1536
1537 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
1538
1539 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
1540
1541 Fix more problems found by GCC 4.5.2's static checks.
1542
1543 * process.c (make_serial_process_unwind, send_process_trap):
1544 (sigchld_handler): Now static.
1545
1546 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
1547 That way, the code declares only the vars that it needs.
1548 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
1549 * s/cygwin.h (PTY_ITERATION): Likewise.
1550 * s/darwin.h (PTY_ITERATION): Likewise.
1551 * s/gnu-linux.h (PTY_ITERATION): Likewise.
1552
1553 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
1554 * process.c (allocate_pty): Don't declare stb unless it's needed.
1555
1556 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
1557 (CONSTANTLIM): Remove; unused.
1558 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
1559 Define only if needed.
1560
1561 * unexelf.c (unexec): Name an expression,
1562 to avoid gcc -Wbad-function-cast warning.
1563 Use a different way to cause a compilation error if anyone uses
1564 n rather than nn, a way that does not involve shadowing.
1565 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
1566
1567 * deps.mk (unexalpha.o): Remove; unused.
1568
1569 New file unexec.h, the (simple) interface for unexec (Bug#8267).
1570 * unexec.h: New file.
1571 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
1572 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
1573 Depend on unexec.h.
1574 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
1575 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
1576 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
1577 Change as necessary to match prototype in unexec.h.
1578
1579 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
1580 shadowing.
1581 (back_comment, skip_chars): Mark vars as initialized.
1582
1583 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
1584 Rename locals to avoid shadowing.
1585
1586 * lread.c (read1): Rewrite so as not to use empty "else".
1587 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
1588
1589 * print.c (Fredirect_debugging_output): Fix pointer signedess.
1590
1591 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
1592 warning when compiling print.c.
1593
1594 * font.c (font_unparse_fcname): Abort in an "impossible" situation
1595 instead of using an uninitialized var.
1596 (font_sort_entities): Mark var as initialized.
1597
1598 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
1599
1600 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
1601 pointers to constants.
1602 (font_parse_fcname): Remove unused vars.
1603 (font_delete_unmatched): Now static.
1604 (font_get_spec): Remove; unused.
1605 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
1606 (font_update_drivers, Ffont_get_glyphs, font_add_log):
1607 Rename or move locals to avoid shadowing.
1608
1609 * fns.c (require_nesting_list, require_unwind): Now static.
1610 (Ffillarray): Rename locals to avoid shadowing.
1611
1612 * floatfns.c (domain_error2): Define only if needed.
1613 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1614
1615 * alloc.c (mark_backtrace): Move decl from here ...
1616 * lisp.h: ... to here, so that it can be checked.
1617
1618 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
1619 (Fdefvar): Rewrite so as not to use empty "else".
1620 (lisp_indirect_variable): Name an expression,
1621 to avoid gcc -Wbad-function-cast warning.
1622 (Fdefvar): Rename locals to avoid shadowing.
1623
1624 * callint.c (quotify_arg, quotify_args): Now static.
1625 (Fcall_interactively): Rename locals to avoid shadowing.
1626 Use const pointer when appropriate.
1627
1628 * lisp.h (get_system_name, get_operating_system_release):
1629 Move decls here, to check interfaces.
1630 * process.c (get_operating_system_release): Move decl to lisp.h.
1631 * xrdb.c (get_system_name): Likewise.
1632 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
1633 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
1634 some of which prompt warnings from gcc -Wbad-function-cast.
1635 (Fformat_time_string, Fencode_time, Finsert_char):
1636 (Ftranslate_region_internal, Fformat):
1637 Rename or remove local vars to avoid shadowing.
1638 (Ftranslate_region_internal): Mark var as initialized.
1639
1640 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
1641 avoid shadowing.
1642
1643 * lisp.h (eassert): Check that the argument compiles, even if
1644 ENABLE_CHECKING is not defined.
1645
1646 * data.c (Findirect_variable): Name an expression, to avoid
1647 gcc -Wbad-function-cast warning.
1648 (default_value, arithcompare, arith_driver, arith_error): Now static.
1649 (store_symval_forwarding): Rename local to avoid shadowing.
1650 (Fmake_variable_buffer_local, Fmake_local_variable):
1651 Mark variables as initialized.
1652 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
1653
1654 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
1655 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
1656 Rename locals to avoid shadowing.
1657 (mark_stack): Move local variables into the #ifdef region where
1658 they're used.
1659 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
1660 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
1661 needed otherwise.
1662 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
1663 (GC_STRING_CHARS): Remove; not used.
1664 (Fmemory_limit): Cast sbrk's returned value to char *.
1665
1666 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
1667 avoids undefined behavior in theory.
1668
1669 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
1670
1671 Use functions, not macros, for up- and down-casing (Bug#8254).
1672 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1673 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
1674 to use the following functions instead of these macros.
1675 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
1676 EMACS_INT, since callers assume the returned value fits in int.
1677 (upcase1): Likewise, for UPCASE_TABLE.
1678 (uppercasep, lowercasep, upcase): New static inline functions.
1679 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
1680 the race-condition problem in the old DOWNCASE.
1681
1682 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
1683 Rename locals to avoid shadowing.
1684 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
1685 (regex_compile, re_search_2, re_match_2_internal):
1686 Remove unused local vars.
1687 (FREE_VAR): Rewrite so as not to use empty "else",
1688 which gcc can warn about.
1689 (regex_compile, re_match_2_internal): Mark locals as initialized.
1690 (RETALLOC_IF): Define only if needed.
1691 (WORDCHAR_P): Likewise. This one is never needed, but is used
1692 only in a comment talking about a compiler bug, so put inside
1693 the #if 0 of that comment.
1694 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
1695 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
1696 Remove; unused.
1697
1698 * search.c (boyer_moore): Rename locals to avoid shadowing.
1699 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
1700 (PREV_CHAR_BOUNDARY): Likewise.
1701
1702 * search.c (simple_search): Remove unused var.
1703
1704 * dired.c (compile_pattern): Move decl from here ...
1705 * lisp.h: ... to here, so that it can be checked.
1706 (struct re_registers): New forward decl.
1707
1708 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
1709
1710 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
1711 All uses changed.
1712 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
1713 Rename locals to avoid shadowing.
1714 (Fvertical_motion): Mark locals as initialized.
1715
1716 * casefiddle.c (casify_object, casify_region): Now static.
1717 (casify_region): Mark local as initialized.
1718
1719 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
1720
1721 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
1722 New macros, so that the caller can use some names other than
1723 gcpro1, gcpro2, etc.
1724 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
1725 of the new macros.
1726 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
1727 argument, for consistency with GCPRO2_VAR, etc: it is now the
1728 prefix of the variable, not the variable itself. All uses
1729 changed.
1730 * dired.c (directory_files_internal, file_name_completion):
1731 Rename locals to avoid shadowing.
1732
1733 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
1734 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
1735 dired.c's scmp function, had undefined behavior.
1736 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1737 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
1738 * buffer.h: ... to here, because these macros use current_buffer,
1739 and the new implementation with inline functions needs to have
1740 current_buffer in scope now, rather than later when the macros
1741 are used.
1742 (downcase, upcase1): New static inline functions.
1743 (DOWNCASE, UPCASE1): Reimplement using these functions.
1744 This avoids undefined behavior in expressions like
1745 DOWNCASE (x) == DOWNCASE (y), which previously suffered
1746 from race conditions in accessing the global variables
1747 case_temp1 and case_temp2.
1748 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
1749 * lisp.h (case_temp1, case_temp2): Remove their decls.
1750 * character.h (ASCII_CHAR_P): Move from here ...
1751 * lisp.h: ... to here, so that the inline functions mentioned
1752 above can use them.
1753
1754 * dired.c (directory_files_internal_unwind): Now static.
1755
1756 * fileio.c (file_name_as_directory, directory_file_name):
1757 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
1758 Now static.
1759 (file_name_as_directory): Use const pointers when appropriate.
1760 (Fexpand_file_name): Likewise. In particular, newdir might
1761 point at constant storage, so make it a const pointer.
1762 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
1763 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
1764 signedness issues.
1765 (Fset_file_times, Finsert_file_contents, auto_save_error):
1766 Rename locals to avoid shadowing.
1767
1768 * minibuf.c (choose_minibuf_frame_1): Now static.
1769 (Ftry_completion, Fall_completions): Rename or remove locals
1770 to avoid shadowing.
1771
1772 * marker.c (bytepos_to_charpos): Remove; unused.
1773
1774 * lisp.h (verify_bytepos, count_markers): New decls,
1775 so that gcc does not warn that these functions aren't declared.
1776
1777 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
1778 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
1779 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
1780 (copy_text): Remove unused local var.
1781
1782 * filelock.c (within_one_second): Now static.
1783 (lock_file_1): Rename local to avoid shadowing.
1784
1785 * buffer.c (fix_overlays_before): Mark locals as initialized.
1786 (fix_start_end_in_overlays): Likewise. This function should be
1787 simplified by using pointers-to-pointers, but that's a different
1788 matter.
1789 (switch_to_buffer_1): Now static.
1790 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
1791 (report_overlay_modification): Rename locals to avoid shadowing.
1792
1793 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
1794 Fix pointer signedness issue.
1795 (sys_subshell): Mark local as volatile if checking for lint,
1796 to suppress a gcc -Wclobbered warning that does not seem to be right.
1797 (MAXPATHLEN): Define only if needed.
1798
1799 * process.c (serial_open, serial_configure): Move decls from here ...
1800 * systty.h: ... to here, so that they can be checked.
1801
1802 * fns.c (get_random, seed_random): Move extern decls from here ...
1803 * lisp.h: ... to here, so that they can be checked.
1804
1805 * sysdep.c (reset_io): Now static.
1806 (wait_for_termination_signal): Remove; unused.
1807
1808 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
1809 (copy_keymap_item, append_key, push_text_char_description):
1810 Now static.
1811 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
1812 (DENSE_TABLE_SIZE): Remove; unused.
1813 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
1814 (describe_map_tree):
1815 Rename locals to avoid shadowing.
1816
1817 * keyboard.c: Declare functions static if they are not used elsewhere.
1818 (echo_char, echo_dash, cmd_error, top_level_2):
1819 (poll_for_input, handle_async_input): Now static.
1820 (read_char, kbd_buffer_get_event, make_lispy_position):
1821 (make_lispy_event, make_lispy_movement, apply_modifiers):
1822 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
1823 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
1824 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
1825 (read_key_sequence, read_char): Mark locals as initialized.
1826 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
1827
1828 * keyboard.h (make_ctrl_char): New decl.
1829 (mark_kboards): Move decl here ...
1830 * alloc.c (mark_kboards): ... from here.
1831
1832 * lisp.h (force_auto_save_soon): New decl.
1833
1834 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
1835 (DEFINE_DUMMY_FUNCTION): New macro.
1836 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
1837 Use it.
1838 (main): Add casts to avoid warnings
1839 if GCC considers string literals to be constants.
1840
1841 * lisp.h (fatal_error_signal): Add decl, since it's exported.
1842
1843 * dbusbind.c: Pointer signedness fixes.
1844 (xd_signature, xd_append_arg, xd_initialize):
1845 (Fdbus_call_method, Fdbus_call_method_asynchronously):
1846 (Fdbus_method_return_internal, Fdbus_method_error_internal):
1847 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
1848 (Fdbus_register_signal): Use SSDATA when the context wants char *.
1849
1850 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
1851 if GCC considers string literals to be constants.
1852 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
1853
1854 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
1855
1856 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
1857 (print_preprocess, print_object): New macro to fix last change.
1858
1859 * print.c (print_preprocess): Don't forget font objects.
1860
1861 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
1862
1863 * emacs.c (USAGE3): Doc fixes.
1864
1865 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
1866
1867 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
1868 structure.
1869
1870 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
1871
1872 * lisp.h (VWindow_system, Qfile_name_history):
1873 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
1874 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
1875 (w32_system_caret_x, w32_system_caret_y): Declare extern.
1876
1877 * w32select.c: Don't #include "keyboard.h".
1878 (run_protected): Add extern declaration for waiting_for_input.
1879
1880 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
1881 * w32console.c (detect_input_pending, read_input_pending)
1882 (encode_terminal_code):
1883 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
1884 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
1885 (w32_system_caret_y, Qfile_name_history):
1886 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
1887 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
1888 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
1889 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
1890 * w32proc.c (Qlocal, report_file_error):
1891 * w32term.c (Vwindow_system, updating_frame):
1892 * w32uniscribe.c (initialized, uniscribe_font_driver):
1893 Remove unneeded extern declarations.
1894
1895 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
1896
1897 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
1898
1899 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
1900
1901 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
1902 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
1903 These macros can no longer be used for assignment.
1904
1905 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
1906 Assign struct members directly, instead of using BUF_BEGV etc.
1907 (record_buffer_markers, fetch_buffer_markers): New functions for
1908 recording and fetching special buffer markers.
1909 (set_buffer_internal_1, set_buffer_temp): Use them.
1910
1911 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
1912
1913 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
1914
1915 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
1916 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
1917
1918 * xdisp.c (hscroll_window_tree):
1919 (reconsider_clip_changes): Use PT instead of BUF_PT.
1920
1921 2011-03-13 Eli Zaretskii <eliz@gnu.org>
1922
1923 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
1924 $(EMACS_ROOT)/lib/intprops.h.
1925
1926 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
1927
1928 Fix more problems found by GCC 4.5.2's static checks.
1929
1930 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
1931 to unsigned char * to avoid compiler diagnostic.
1932 (xg_free_frame_widgets): Make it clear that a local variable is
1933 needed only if USE_GTK_TOOLTIP.
1934 (gdk_window_get_screen): Make it clear that this macro is needed
1935 only if USE_GTK_TOOLTIP.
1936 (int_gtk_range_get_value): New function, which avoids a diagnostic
1937 from gcc -Wbad-function-cast.
1938 (xg_set_toolkit_scroll_bar_thumb): Use it.
1939 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
1940 diagnostic from gcc -Wbad-function-cast.
1941 (get_utf8_string, xg_get_file_with_chooser):
1942 Rename locals to avoid shadowing.
1943 (create_dialog): Move locals to avoid shadowing.
1944
1945 * xgselect.c (xg_select): Remove unused var.
1946
1947 * image.c (four_corners_best): Mark locals as initialized.
1948 (gif_load): Initialize transparent_p to zero (Bug#8238).
1949 Mark another local as initialized.
1950 (my_png_error, my_error_exit): Mark with NO_RETURN.
1951
1952 * image.c (clear_image_cache): Now static.
1953 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
1954 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
1955 (x_edge_detection): Remove unnecessary cast that
1956 gcc -Wbad-function-cast diagnoses.
1957 (gif_load): Fix pointer signedness.
1958 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
1959 (jpeg_load, gif_load): Rename locals to avoid shadowing.
1960
1961 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
1962
1963 Improve quality of tests for time stamp overflow.
1964 For example, without this patch (encode-time 0 0 0 1 1
1965 1152921504606846976) returns the obviously-bogus value (-948597
1966 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
1967 reports time overflow. See
1968 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
1969 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
1970 * editfns.c: Include limits.h and intprops.h.
1971 (TIME_T_MIN, TIME_T_MAX): New macros.
1972 (time_overflow): Move earlier, to before first use.
1973 (hi_time, lo_time): New functions, for an accurate test for
1974 out-of-range times.
1975 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
1976 (Fget_internal_run_time): Don't assume time_t fits in int.
1977 (make_time): Use list2 instead of Fcons twice.
1978 (Fdecode_time): More accurate test for out-of-range times.
1979 (check_tm_member): New function.
1980 (Fencode_time): Use it, to test for out-of-range times.
1981 (lisp_time_argument): Don't rely on undefined left-shift and
1982 right-shift behavior when checking for time stamp overflow.
1983
1984 * editfns.c (time_overflow): New function, refactoring common code.
1985 (Fformat_time_string, Fdecode_time, Fencode_time):
1986 (Fcurrent_time_string): Use it.
1987
1988 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
1989 * dired.c (make_time): Move to ...
1990 * editfns.c (make_time): ... here.
1991 * systime.h: Note the move.
1992
1993 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1994
1995 * fringe.c (update_window_fringes): Remove unused variables.
1996
1997 * unexmacosx.c (copy_data_segment): Also copy __got section.
1998 (Bug#8223)
1999
2000 2011-03-12 Eli Zaretskii <eliz@gnu.org>
2001
2002 * termcap.c [MSDOS]: Include "msdos.h".
2003 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
2004 Constify `char *' arguments and their references according to
2005 prototypes in tparam.h.
2006
2007 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
2008
2009 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
2010 Adapt all references accordingly.
2011
2012 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
2013
2014 2011-03-11 Tom Tromey <tromey@redhat.com>
2015
2016 * buffer.c (syms_of_buffer): Remove obsolete comment.
2017
2018 2011-03-11 Eli Zaretskii <eliz@gnu.org>
2019
2020 * termhooks.h (encode_terminal_code): Declare prototype.
2021
2022 * msdos.c (encode_terminal_code): Don't declare prototype.
2023
2024 * term.c (encode_terminal_code): Now external again, used by
2025 w32console.c and msdos.c.
2026
2027 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
2028 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
2029
2030 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
2031
2032 Fix some minor problems found by GCC 4.5.2's static checks.
2033
2034 * fringe.c (update_window_fringes): Mark locals as initialized
2035 (Bug#8227).
2036 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
2037
2038 * alloc.c (mark_fringe_data): Move decl from here ...
2039 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
2040 to check its interface.
2041 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
2042
2043 * fontset.c (free_realized_fontset): Now static.
2044 (Fset_fontset_font): Rename local to avoid shadowing.
2045 (fontset_font): Mark local as initialized.
2046 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
2047
2048 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
2049
2050 * xselect.c (x_disown_buffer_selections): Remove; not used.
2051 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
2052 (x_own_selection, Fx_disown_selection_internal): Rename locals
2053 to avoid shadowing.
2054 (x_handle_dnd_message): Remove local to avoid shadowing.
2055
2056 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
2057 so that the caller can use some name other than gcpro1.
2058 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
2059 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
2060 (Fx_backspace_delete_keys_p):
2061 Use them to avoid shadowing, and rename vars to avoid shadowing.
2062 (x_decode_color, x_set_name, x_window): Now static.
2063 (Fx_create_frame): Add braces to silence GCC warning.
2064 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
2065 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
2066 Remove unused locals.
2067 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
2068 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
2069 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
2070 macros.
2071
2072 * xterm.h (x_mouse_leave): New decl.
2073
2074 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
2075 Remove unused functions.
2076 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
2077 (x_calc_absolute_position): Now static.
2078 (XTread_socket): Don't define label "out" unless it's used.
2079 Don't declare local "event" unless it's used.
2080 (x_iconify_frame, x_free_frame_resources): Don't declare locals
2081 unless they are used.
2082 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
2083 (x_fatal_error_signal): Remove; not used.
2084 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
2085 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
2086 (x_error_catcher, x_connection_closed, x_error_handler):
2087 (x_error_quitter, xembed_send_message, x_iconify_frame):
2088 (my_log_handler): Rename locals to avoid shadowing.
2089 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2090 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
2091
2092 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
2093 Rename or move locals to avoid shadowing.
2094 (tty_defined_color, merge_face_heights): Now static.
2095 (free_realized_faces_for_fontset): Remove; not used.
2096 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
2097 does not deduce is never used uninitialized.
2098 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
2099 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
2100
2101 * terminal.c (store_terminal_param): Now static.
2102
2103 * xmenu.c (menu_highlight_callback): Now static.
2104 (set_frame_menubar): Remove unused local.
2105 (xmenu_show): Rename parameter to avoid shadowing.
2106 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
2107 since they might point to immutable storage.
2108 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
2109 since it's unused otherwise.
2110
2111 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
2112 Add a FIXME, since the code still doesn't look right. (Bug#8215)
2113 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
2114 avoids a gcc -Wuninitialized diagnostic.
2115 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
2116 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
2117 does not deduce are never used uninitialized.
2118
2119 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
2120
2121 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
2122 * window.c (window_loop, size_window):
2123 (run_window_configuration_change_hook, enlarge_window): Likewise.
2124
2125 * window.c (display_buffer): Now static.
2126 (size_window): Mark variables that gcc -Wuninitialized
2127 does not deduce are never used uninitialized.
2128 * window.h (check_all_windows): New decl, to forestall
2129 gcc -Wmissing-prototypes diagnostic.
2130 * dispextern.h (bidi_dump_cached_states): Likewise.
2131
2132 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
2133 shadowing.
2134 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
2135 Include <limits.h>.
2136 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
2137 and to avoid gcc -Wuninitialized warning.
2138 (load_charset_map): Mark variables that gcc -Wuninitialized
2139 does not deduce are never used uninitialized.
2140 (load_charset): Abort instead of using uninitialized var (Bug#8229).
2141
2142 * coding.c (coding_set_source, coding_set_destination):
2143 Use "else { /* comment */ }" rather than "else /* comment */;"
2144 for clarity, and to avoid gcc -Wempty-body warning.
2145 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
2146 a block, when the outer 'i' will do.
2147 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
2148 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
2149 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
2150 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
2151 (Fdecode_sjis_char, Fdefine_coding_system_internal):
2152 Rename locals to avoid shadowing.
2153 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
2154 * coding.c (emacs_mule_char, encode_invocation_designation):
2155 Now static, since they're not used elsewhere.
2156 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
2157 (decode_coding_object, encode_coding_object, detect_coding_system):
2158 (decode_coding_emacs_mule): Mark variables that gcc
2159 -Wuninitialized does not deduce are never used uninitialized.
2160 (detect_coding_iso_2022): Initialize a local variable that might
2161 be used uninitialized. Leave a FIXME because it's not clear that
2162 this initialization is needed. (Bug#8211)
2163 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
2164 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
2165 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
2166 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
2167 Remove unused macros.
2168
2169 * category.c (hash_get_category_set): Remove unused local var.
2170 (copy_category_table): Now static, since it's not used elsewhere.
2171 * character.c (string_count_byte8): Likewise.
2172
2173 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
2174 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
2175
2176 * chartab.c (copy_sub_char_table): Now static, since it's not used
2177 elsewhere.
2178 (sub_char_table_ref_and_range, char_table_ref_and_range):
2179 Rename locals to avoid shadowing.
2180 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
2181
2182 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
2183 (BIDI_BOB): Remove unused macro.
2184
2185 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
2186 deduce are never used uninitialized.
2187 * term.c (encode_terminal_code): Likewise.
2188
2189 * term.c (encode_terminal_code): Now static. Remove unused local.
2190
2191 * tparam.h: New file.
2192 * term.c, tparam.h: Include it.
2193 * deps.mk (term.o, tparam.o): Depend on tparam.h.
2194 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
2195 Move these decls to tparam.h, and make them agree with what
2196 is actually in tparam.c. The previous trick of using incompatible
2197 decls in different modules does not conform to the C standard.
2198 All callers of tparam changed to use tparam's actual API.
2199 * tparam.c (tparam1, tparam, tgoto):
2200 Use const pointers where appropriate.
2201
2202 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
2203 * cm.h (struct cm): Likewise.
2204 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
2205 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
2206 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
2207 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
2208 (turn_on_face, init_tty): Likewise.
2209 * termchar.h (struct tty_display_info): Likewise.
2210
2211 * term.c (term_mouse_position): Rename local to avoid shadowing.
2212
2213 * alloc.c (mark_ttys): Move decl from here ...
2214 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
2215
2216 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
2217
2218 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
2219
2220 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
2221
2222 * search.c (compile_pattern_1): Remove argument regp, unused since
2223 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
2224 (compile_pattern): Don't pass it.
2225
2226 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
2227
2228 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
2229 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
2230 for ! HAVE_GTK3.
2231 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
2232
2233 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
2234
2235 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
2236 gdk_window_get_screen, gdk_window_get_geometry,
2237 gdk_x11_window_lookup_for_display and GDK_KEY_g.
2238 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
2239 (xg_get_pixbuf_from_pixmap): New function.
2240 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
2241 to Pixmap, take frame as parameter, remove GdkColormap parameter.
2242 Call xg_get_pixbuf_from_pixmap instead of
2243 gdk_pixbuf_get_from_drawable.
2244 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
2245 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
2246 (xg_check_special_colors): Use GtkStyleContext and its functions
2247 for HAVE_GTK3.
2248 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
2249 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
2250 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
2251 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
2252 Call gtk_widget_get_preferred_size.
2253 (xg_frame_resized): gdk_window_get_geometry only takes 5
2254 parameters.
2255 (xg_win_to_widget, xg_event_is_for_menubar):
2256 Call gdk_x11_window_lookup_for_display.
2257 (xg_set_widget_bg): New function.
2258 (delete_cb): New function.
2259 (xg_create_frame_widgets): connect delete-event to delete_cb.
2260 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
2261 (xg_set_background_color): Call xg_set_widget_bg.
2262 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
2263 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
2264 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
2265 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
2266 if ! HAVE_GTK3.
2267 (update_frame_tool_bar): Call gtk_widget_hide.
2268 (xg_initialize): Use GDK_KEY_g.
2269
2270 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
2271 if ! HAVE_GTK3
2272 (x_session_initialize): Call gdk_x11_set_sm_client_id.
2273
2274 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
2275 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
2276 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
2277
2278 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
2279
2280 * w32xfns.c (select_palette): Check success of RealizePalette against
2281 GDI_ERROR, not zero.
2282
2283 See ChangeLog.11 for earlier changes.
2284
2285 ;; Local Variables:
2286 ;; coding: utf-8
2287 ;; End:
2288
2289 Copyright (C) 2011 Free Software Foundation, Inc.
2290
2291 This file is part of GNU Emacs.
2292
2293 GNU Emacs is free software: you can redistribute it and/or modify
2294 it under the terms of the GNU General Public License as published by
2295 the Free Software Foundation, either version 3 of the License, or
2296 (at your option) any later version.
2297
2298 GNU Emacs is distributed in the hope that it will be useful,
2299 but WITHOUT ANY WARRANTY; without even the implied warranty of
2300 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2301 GNU General Public License for more details.
2302
2303 You should have received a copy of the GNU General Public License
2304 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.