- is outside the buffer's accessible region.
+ 2011-04-11 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (redisplay_window): Don't try to determine the character
+ position of the scroll margin if the window start point w->startp
-2011-03-30 Eli Zaretskii <eliz@gnu.org>
++ is outside the buffer's accessible region. (Bug#8468)
+
+2011-04-10 Eli Zaretskii <eliz@gnu.org>
- * xdisp.c (syms_of_xdisp) <scroll-conservatively>: Document the
- threshold of 100 lines for never-recentering scrolling.
+ Fix write-region and its subroutines for buffers > 2GB.
+ * fileio.c (a_write, e_write): Modify declaration of arguments and
+ local variables to support buffers larger than 2GB.
+ (Fcopy_file): Use EMACS_INT for return value of emacs_read.
+
+ * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
+ argument, local variables, and return value.
+
+ * lisp.h: Update prototypes of emacs_write and emacs_read.
+
+ * sound.c (vox_write): Use ssize_t for return value of emacs_write.
+
+2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
+
+ Fix more problems found by GCC 4.6.0's static checks.
+
+ * xdisp.c (vmessage): Use a better test for character truncation.
+
+ * charset.c (load_charset_map): <, not <=, for optimization,
+ and to avoid potential problems with integer overflow.
+ * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
+ * casetab.c (set_identity, shuffle): Likewise.
+ * editfns.c (Fformat): Likewise.
+ * syntax.c (skip_chars): Likewise.
+
+ * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
+ This also lets GCC 4.6.0 generate slightly better loop code.
+
+ * callint.c (Fcall_interactively): <, not <=, for optimization.
+ (Fcall_interactively): Count the number of arguments produced,
+ not the number of arguments given. This is simpler and lets GCC
+ 4.6.0 generate slightly better code.
+
+ * ftfont.c: Distingish more carefully between FcChar8 and char.
+ The previous code passed unsigned char * to a functions like
+ strlen and xstrcasecmp that expect char *, which does not
+ conform to the C standard.
+ (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
+ arguments to FcPatternGetString, and explicitly cast FcChar8 * to
+ char * when the C standard requires it.
+
+ * keyboard.c (read_char): Remove unused var.
+
+ * eval.c: Port to Windows vsnprintf (Bug#8435).
+ Include <limits.h>.
+ (SIZE_MAX): Define if the headers do not.
+ (verror): Do not give up if vsnprintf returns a negative count.
+ Instead, grow the buffer. This ports to Windows vsnprintf, which
+ does not conform to C99. Problem reported by Eli Zaretskii.
+ Also, simplify the allocation scheme, by avoiding the need for
+ calling realloc, and removing the ALLOCATED variable.
+
+ * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
+
+ Remove invocations of doprnt, as Emacs now uses vsnprintf.
+ But keep the doprint source code for now, as we might revamp it
+ and use it again (Bug#8435).
+ * lisp.h (doprnt): Remove.
+ * Makefile.in (base_obj): Remove doprnt.o.
+ * deps.mk (doprnt.o): Remove.
+
+ error: Print 32- and 64-bit integers portably (Bug#8435).
+ Without this change, on typical 64-bit hosts error ("...%d...", N)
+ was used to print both 32- and 64-bit integers N, which relied on
+ undefined behavior.
+ * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
+ New macro.
+ * lisp.h (error, verror): Mark as printf-like functions.
+ * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
+ Report overflow in size calculations when allocating printf buffer.
+ Do not truncate output string at its first null byte.
+ * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
+ Truncate the output at a character boundary, since vsnprintf does not
+ do that.
+ * charset.c (check_iso_charset_parameter): Convert internal
+ character to string before calling 'error', since %c now has the
+ printf meaning.
+ * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
+ overflow when computing char to be passed to 'error'. Do not
+ pass Lisp_Object to 'error'; pass the integer instead.
+ * nsfns.m (Fns_do_applescript): Use int, not long, since it's
+ formatted with plain %d.
+
+ * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
+
+ * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
+
+ * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
+
+ * xterm.c (x_catch_errors): Remove duplicate declaration.
+
+ * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
+
+ * xdisp.c, lisp.h (message_nolog): Remove; unused.
+
+2011-04-10 Jim Meyering <meyering@redhat.com>
+
+ use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
+ * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
+ return ssize_t not "int", and use size_t as the buffer length.
+ (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
+ * gnutls.h: Update declarations.
+ * process.c (read_process_output): Use ssize_t, to match.
+ (send_process): Likewise.
+
+2011-04-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
+
+2011-04-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
+ unsigned char, to match FcChar8 type definition.
+
+ * xterm.c (handle_one_xevent):
+ * xmenu.c (create_and_show_popup_menu):
+ * xselect.c (x_decline_selection_request)
+ (x_reply_selection_request): Avoid type-punned deref of X events.
+
+2011-04-09 Eli Zaretskii <eliz@gnu.org>
+
+ Fix some uses of `int' instead of EMACS_INT.
+ * search.c (string_match_1, fast_string_match)
+ (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
+ (scan_buffer, find_next_newline_no_quit)
+ (find_before_next_newline, search_command, Freplace_match)
+ (Fmatch_data): Make some `int' variables be EMACS_INT.
+
+ * xdisp.c (display_count_lines): 3rd argument and return value now
+ EMACS_INT. All callers changed.
+ (pint2hrstr): Last argument is now EMACS_INT.
+
+ * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
+ (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
+ (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
+ (decode_coding_utf_16, decode_coding_emacs_mule)
+ (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
+ (decode_coding_ccl, decode_coding_charset)
+ <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
+ (decode_coding_iso_2022, decode_coding_emacs_mule)
+ (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
+ <char_offset, last_offset>: Declare EMACS_INT.
+ (encode_coding_utf_8, encode_coding_utf_16)
+ (encode_coding_emacs_mule, encode_invocation_designation)
+ (encode_designation_at_bol, encode_coding_iso_2022)
+ (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
+ (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
+ Declare EMACS_INT.
+ (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
+ (encode_invocation_designation): Last argument P_NCHARS is now
+ EMACS_INT.
+ (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
+ (produce_chars): from_nchars and to_nchars are now EMACS_INT.
+
+ * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
+ All users changed.
+
+ * ccl.c (Fccl_execute_on_string): Declare some variables
+ EMACS_INT.
+
+2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
+
+ * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
+
+2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
+
+ * process.c (Fformat_network_address): Doc fix.
+
+2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
+
+ * xml.c (parse_region): Avoid creating spurious whiespace nodes.
+
+2011-04-08 Chong Yidong <cyd@stupidchicken.com>
+
+ * keyboard.c (read_char): Call Lisp function help-form-show,
+ instead of using internal_with_output_to_temp_buffer.
+ (Qhelp_form_show): New var.
+ (syms_of_keyboard): Use DEFSYM macro.
+
+ * print.c (internal_with_output_to_temp_buffer): Function deleted.
+
+ * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
+
+2011-04-06 Chong Yidong <cyd@stupidchicken.com>
+
+ * process.c (Flist_processes): Removed to Lisp.
+ (list_processes_1): Deleted.
+
+2011-04-06 Eli Zaretskii <eliz@gnu.org>
+
+ * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
+
+ * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
+
+2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix more problems found by GCC 4.6.0's static checks.
+
+ * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
+
+ * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
+
+ * lisp.h (message, message_nolog, fatal): Mark as printf-like.
+
+ * xdisp.c (vmessage): Mark as a printf-like function.
+
+ * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
+
+ * sound.c (sound_warning): Don't crash if arg contains a printf format.
+
+ * image.c (tiff_error_handler, tiff_warning_handler): Mark as
+ printf-like functions.
+ (tiff_load): Add casts to remove these marks before passing them
+ to system-supplied API.
+
+ * eval.c (Fsignal): Remove excess argument to 'fatal'.
+
+ * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
+ This avoids several warnings with gcc -Wstrict-overflow.
+ (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
+ directly, rather than having caller test rule sign. This avoids
+ some unnecessary tests.
+ * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
+ (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
+ affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
+
+ * xfont.c (xfont_text_extents): Remove var that was set but not used.
+ (xfont_open): Avoid unnecessary tests.
+
+ * composite.c (composition_gstring_put_cache): Use unsigned integer.
+
+ * composite.h, composite.c (composition_gstring_put_cache):
+ Use EMACS_INT, not int, for length.
+
+ * composite.h (COMPOSITION_DECODE_REFS): New macro,
+ breaking out part of COMPOSITION_DECODE_RULE.
+ (COMPOSITION_DECODE_RULE): Use it.
+ * composite.c (get_composition_id): Remove unused local vars,
+ by using the new macro.
+
+ * textprop.c (set_text_properties_1): Change while to do-while,
+ since the condition is always true at first.
+
+ * intervals.c (graft_intervals_into_buffer): Mark var as used.
+ (interval_deletion_adjustment): Return unsigned value.
+ All uses changed.
+
+ * process.c (list_processes_1, create_pty, read_process_output):
+ (exec_sentinel): Remove vars that were set but not used.
+ (create_pty): Remove unnecessary "volatile"s.
+ (Fnetwork_interface_info): Avoid possibility of int overflow.
+ (read_process_output): Do adaptive read buffering even if carryover.
+ (read_process_output): Simplify nbytes computation if buffered.
+
+ * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
+
+ * syntax.c (scan_words): Remove var that was set but not used.
+ (update_syntax_table): Use unsigned instead of int.
+
+ * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
+ (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
+ (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
+
+ * print.c (print_error_message): Avoid int overflow.
+
+ * font.c (font_list_entities): Redo for clarity,
+ so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
+
+ * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
+ (font_score): Avoid potential overflow in diff calculation.
+
+ * fns.c (substring_both): Remove var that is set but not used.
+ (sxhash): Redo loop for clarity and to avoid wraparound warning.
-2011-03-29 Eli Zaretskii <eliz@gnu.org>
+ * eval.c (funcall_lambda): Rename local to avoid shadowing.
- * xdisp.c (try_scrolling): When scrolling down aggressively,
- scroll one screen line less, to make sure we end up at the margin
- for fractions close to 1.
+ * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
+ Otherwise, GCC 4.6.0 optimizes the loop check away since the check
+ can always succeed if overflow has undefined behavior.
-2011-03-28 Eli Zaretskii <eliz@gnu.org>
+ * search.c (boyer_moore, wordify): Remove vars set but not used.
+ (wordify): Omit three unnecessary tests.
- * xdisp.c (try_scrolling): When point is above the window, allow
- searching as far as scroll_max, or one screenful, to compute
- vertical distance from PT to the scroll margin position. This
- prevents try_scrolling from unnecessarily failing when
+ * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
+ All callers changed. This avoids the need for an unused var.
+
+ * casefiddle.c (casify_region): Remove var that is set but not used.
+
+ * dired.c (file_name_completion): Remove var that is set but not used.
+
+ * fileio.c (Finsert_file_contents): Make EOF condition clearer.
+
+ * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
+ (Finsert_file_contents): Remove unnecessary code checking fd.
+
+ * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
+ Check for integer overflow on size calculations.
+
+ * buffer.c (Fprevious_overlay_change): Remove var that is set
+ but not used.
+
+ * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
+ Remove vars that are set but not used.
+ (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
+ (timer_check_2): Mark vars as initialized.
+
+ * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
+
+ * image.c (lookup_image): Remove var that is set but not used.
+ (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
+
+ * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
+ that are set but not used.
+
+ * xfns.c (make_invisible_cursor): Don't return garbage
+ if XCreateBitmapFromData fails (Bug#8410).
+
+ * xselect.c (x_get_local_selection, x_handle_property_notify):
+ Remove vars that are set but not used.
+
+ * xfns.c (x_create_tip_frame): Remove var that is set but not used.
+ (make_invisible_cursor): Initialize a possibly-uninitialized variable.
+
+ * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
+ Remove var that is set but not used.
+ (scroll_bar_windows_size): Now size_t, not int.
+ (x_send_scroll_bar_event): Use size_t, not int, for sizes.
+ Check for overflow.
+
+ * xfaces.c (realize_named_face): Remove vars that are set but not used.
+ (map_tty_color) [!defined MSDOS]: Likewise.
+
+ * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
+
+ * coding.c: Remove vars that are set but not used.
+ (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
+ All callers changed.
+ (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
+ (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
+ (decode_coding_charset): Remove vars that are set but not used.
+
+ * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
+ that is set but not used.
+
+ * print.c (print_object): Remove var that is set but not used.
+
+ Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
+ The gnulib version avoids calling malloc in the usual case,
+ and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
+ * fileio.c (Ffile_symlink_p): Use emacs_readlink.
+ * filelock.c (current_lock_owner): Likewise.
+ * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
+ * sysdep.c: Include allocator.h, careadlinkat.h.
+ (emacs_no_realloc_allocator): New static constant.
+ (emacs_readlink): New function.
+ * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
+ ../lib/careadlinkat.h.
+
+2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
+ first non-nil return value).
+
+2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
+ if not defined (Bug#8403).
+
+2011-04-02 Juanma Barranquero <lekktu@gmail.com>
+
+ * xdisp.c (display_count_lines): Remove parameter `start',
+ unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
+ (get_char_face_and_encoding): Remove parameter `multibyte_p',
+ unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
+ (fill_stretch_glyph_string): Remove parameters `row' and `area',
+ unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
+ and thereabouts. All callers changed.
+ (get_per_char_metric): Remove parameter `f', unused since
+ 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
+
+2011-04-02 Jim Meyering <meyering@redhat.com>
+
+ do not dereference NULL upon failed strdup
+ * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
+ (ns_get_family): Likewise.
+
+2011-04-02 Juanma Barranquero <lekktu@gmail.com>
+
+ * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
+
+2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
+ later (Bug#8403).
+
+2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Add lexical binding.
+
+ * window.c (Ftemp_output_buffer_show): New fun.
+ (Fsave_window_excursion):
+ * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
+
+ * lread.c (lisp_file_lexically_bound_p): New function.
+ (Fload): Bind Qlexical_binding.
+ (readevalloop): Remove `evalfun' arg.
+ Bind Qinternal_interpreter_environment.
+ (Feval_buffer): Bind Qlexical_binding.
+ (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
+ Mark as dynamic.
+ (syms_of_lread): Declare `lexical-binding'.
+
+ * lisp.h (struct Lisp_Symbol): New field `declared_special'.
+
+ * keyboard.c (eval_dyn): New fun.
+ (menu_item_eval_property): Use it.
+
+ * image.c (parse_image_spec): Use Ffunctionp.
+
+ * fns.c (concat, mapcar1): Accept byte-code-functions.
+
+ * eval.c (Fsetq): Handle lexical vars.
+ (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
+ (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
+ (FletX, Flet): Obey lexical binding.
+ (Fcommandp): Handle closures.
+ (Feval): New `lexical' arg.
+ (eval_sub): New function extracted from Feval. Use it almost
+ everywhere where Feval was used. Look up vars in lexical env.
+ Handle closures.
+ (Ffunctionp): Move from subr.el.
+ (Ffuncall): Handle closures.
+ (apply_lambda): Remove `eval_flags'.
+ (funcall_lambda): Handle closures and new byte-code-functions.
+ (Fspecial_variable_p): New function.
+ (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
+ but without exporting it to Lisp.
+
+ * doc.c (Fdocumentation, store_function_docstring):
+ * data.c (Finteractive_form): Handle closures.
+
+ * callint.c (Fcall_interactively): Preserve lexical-binding mode for
+ interactive spec.
+
+ * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
+ byte-codes.
+ (exec_byte_code): New function extracted from Fbyte_code to handle new
+ calling convention for byte-code-functions. Add new byte-codes.
+
+ * buffer.c (defvar_per_buffer): Set new `declared_special' field.
+
+ * alloc.c (Fmake_symbol): Init new `declared_special' field.
+
+2011-03-31 Juanma Barranquero <lekktu@gmail.com>
+
+ * xdisp.c (redisplay_internal): Fix prototype.
+
+2011-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (SCROLL_LIMIT): New macro.
+ (try_scrolling): Use it when setting scroll_limit. Limit
+ scrolling to 100 screen lines.
+ (redisplay_window): Even when falling back on "recentering",
+ position point in the window according to scroll-conservatively,
+ scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
+
+ (try_scrolling): When point is above the window, allow searching
+ as far as scroll_max, or one screenful, to compute vertical
+ distance from PT to the scroll margin position. This prevents
+ try_scrolling from unnecessarily failing when
scroll-conservatively is set to a value slightly larger than the
- window height.
+ window height. Clean up the case of PT below the margin at bottom
+ of window: scroll_max can no longer be INT_MAX. When aggressive
+ scrolling is in use, don't let point enter the opposite scroll
+ margin as result of the scroll.
+ (syms_of_xdisp) <scroll-conservatively>: Document the
+ threshold of 100 lines for never-recentering scrolling.
+
+2011-03-31 Juanma Barranquero <lekktu@gmail.com>
+
+ * dispextern.h (move_it_by_lines):
+ * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
+ since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
+ (message_log_check_duplicate): Remove parameters `prev_bol' and
+ `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
+ (redisplay_internal): Remove parameter `preserve_echo_area',
+ unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
+
+ * indent.c (Fvertical_motion):
+ * window.c (window_scroll_pixel_based, Frecenter):
+ Don't pass `need_y_p' to `move_it_by_lines'.
+
+2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (struct backtrace): Don't cheat with negative numbers, but do
+ steal a few bits to be more compact.
+ (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
+ Remove unneeded casts.
+
+ * bytecode.c (Fbyte_code): CAR and CDR can GC.
-2011-03-27 Eli Zaretskii <eliz@gnu.org>
+2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
- * xdisp.c (try_scrolling): Clean up the case of PT below the
- margin at bottom of window: scroll_max can no longer be INT_MAX.
- (redisplay_window): Find character position of margin and use
- that, rather than adding margin to PT.
+ * keyboard.c (Fexecute_extended_command): Do log the "suggest key
+ binding" message (bug#7967).
+
+2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix more problems found by GCC 4.6.0's static checks.
+
+ * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
+ Remove unused local var.
+
+ * editfns.c (Fmessage_box): Remove unused local var.
+
+ * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
+ (note_mode_line_or_margin_highlight, note_mouse_highlight):
+ Omit unused local vars.
+ * window.c (shrink_windows): Omit unused local var.
+ * menu.c (digest_single_submenu): Omit unused local var.
+ * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
+ Omit unused local var.
+
+ * keyboard.c (parse_modifiers_uncached, parse_modifiers):
+ Don't assume string length fits in int.
+ (keyremap_step, read_key_sequence): Use size_t for sizes.
+ (read_key_sequence): Don't check last_real_key_start redundantly.
+
+ * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
+ instead of alloca (Bug#8344).
+
+ * eval.c (Fbacktrace): Don't assume nargs fits in int.
+ (Fbacktrace_frame): Don't assume nframes fits in int.
+
+ * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
+
+ * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
+ concerns.
+
+ * term.c (produce_glyphless_glyph): Remove unnecessary test.
+
+ * cm.c (calccost): Turn while-do into do-while, for clarity.
+
+ * keyboard.c (syms_of_keyboard): Use the same style as later
+ in this function when indexing through an array. This also
+ works around GCC bug 48267.
+
+ * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
+
+ * xselect.c (x_check_property_data): Return correct size (Bug#8335).
+
+ * chartab.c (sub_char_table_ref_and_range): Redo for slight
+ efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
+
+ * keyboard.c, keyboard.h (num_input_events): Now size_t.
+ This avoids undefined behavior on integer overflow, and is a bit
+ more convenient anyway since it is compared to a size_t variable.
+
+ Variadic C functions now count arguments with size_t, not int.
+ This avoids an unnecessary limitation on 64-bit machines, which
+ caused (substring ...) to crash on large vectors (Bug#8344).
+ * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
+ (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
+ All variadic functions and their callers changed accordingly.
+ (struct gcpro.nvars): Now size_t, not int. All uses changed.
+ * data.c (arith_driver, float_arith_driver): Likewise.
+ * editfns.c (general_insert_function): Likewise.
+ * eval.c (struct backtrace.nargs, interactive_p)
+ (internal_condition_case_n, run_hook_with_args, apply_lambda)
+ (funcall_lambda, mark_backtrace): Likewise.
+ * fns.c (concat): Likewise.
+ * frame.c (x_set_frame_parameters): Likewise.
+ * fns.c (get_key_arg): Now accepts and returns size_t, and returns
+ 0 if not found, not -1. All callers changed.
+
+ * alloc.c (garbage_collect): Don't assume stack size fits in int.
+ (stack_copy_size): Now size_t, not int.
+ (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
+
+2011-03-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
+ unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
+ All callers changed.
+
+ * lisp.h (multibyte_char_to_unibyte):
+ * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
+ unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
+ * character.h (CHAR_TO_BYTE8):
+ * cmds.c (internal_self_insert):
+ * editfns.c (general_insert_function):
+ * keymap.c (push_key_description):
+ * search.c (Freplace_match):
+ * xdisp.c (message_dolog, set_message_1): All callers changed.
+
+2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (safe_run_hook_funcall): New function.
+ (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
+ don't set the hook to nil, but remove the offending function instead.
+ (Qcommand_hook_internal): Remove, unused.
+ (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
+ Vcommand_hook_internal.
+
+ * eval.c (enum run_hooks_condition): Remove.
+ (funcall_nil, funcall_not): New functions.
+ (run_hook_with_args): Call each function through a `funcall' argument.
+ Remove `cond' argument, now redundant.
+ (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
+ (Frun_hook_with_args_until_failure): Adjust accordingly.
+ (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
+
+2011-03-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * dispextern.h (string_buffer_position): Remove declaration.
+
+ * print.c (strout): Remove parameter `multibyte', unused since
+ 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
+
+ * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
+ never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
+ All callers changed.
+
+ * w32.c (_wsa_errlist): Use braces for struct initializers.
+
+ * xdisp.c (string_buffer_position_lim): Remove parameter `w',
+ never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
+ All callers changed.
+ (string_buffer_position): Likewise. Also, make static (it's never
+ used outside xdisp.c).
+ (cursor_row_p): Remove parameter `w', unused since
+ 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
+ (decode_mode_spec): Remove parameter `precision', introduced during
+ Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
+ All callers changed.
+
+2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
+
+2011-03-27 Anders Lindgren <andlind@gmail.com>
+
+ * nsterm.m (ns_menu_bar_is_hidden): New variable.
+ (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
+ (ns_update_auto_hide_menu_bar): New functions.
+ (ns_update_begin): Call ns_update_auto_hide_menu_bar.
+ (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
+ ns_constrain_all_frames.
+ (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
+ (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
+
+2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsmenu.m (runDialogAt): Remove argument to timer_check.
+
+2011-03-27 Glenn Morris <rgm@gnu.org>
+
+ * syssignal.h: Replace RETSIGTYPE with void.
+ * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
+ * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
+ Replace SIGTYPE with void everywhere.
+ * s/usg5-4-common.h (SIGTYPE): Remove definition.
+ * s/template.h (SIGTYPE): Remove commented out definition.
2011-03-26 Eli Zaretskii <eliz@gnu.org>