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