Update and split ChangeLogs.
[bpt/emacs.git] / src / ChangeLog
dissimilarity index 97%
index 04064ad..4c85272 100644 (file)
-2011-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * bytecode.c (Fbyte_code): Revert to old calling convention.
-       * lisp.h (COMPILED_PUSH_ARGS): Remove, unused.
-
-2011-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * image.c (parse_image_spec): Use Ffunctionp.
-       * lisp.h: Declare Ffunctionp.
-
-2011-03-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Ffunction): Use simpler format for closures.
-       (Fcommandp, funcall_lambda):
-       * doc.c (Fdocumentation, store_function_docstring):
-       * data.c (Finteractive_form): Adjust to new closure format.
-
-2011-03-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Fprog1, Fprog2): Simplify and use XCDR/XCAR.
-       (Fdefvar): Remove redundant SYMBOLP check.
-       (Ffunctionp): Don't signal an error for undefined aliases.
-
-2011-03-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * bytecode.c (exec_byte_code): Remove old lexical binding slot handling
-       and replace it with the a integer args-desc handling.
-       * eval.c (funcall_lambda): Adjust arglist test accordingly.
-
-2011-03-01  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * callint.c (quotify_arg): Simplify the logic.
-       (Fcall_interactively): Use lexical binding when evaluating the
-       interactive spec of a lexically bound function.
-
-2011-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Qcurry): Remove.
-       (funcall_funvec): Remove.
-       (funcall_lambda): Move new byte-code handling to reduce impact.
-       Treat all args as lexical in the case of lexbind.
-       (Fcurry): Remove.
-       * data.c (Qfunction_vector): Remove.
-       (Ffunvecp): Remove.
-       * lread.c (read1): Revert to calling make_byte_code here.
-       (read_vector): Don't call make_byte_code any more.
-       * lisp.h (enum pvec_type): Rename back to PVEC_COMPILED.
-       (XSETCOMPILED): Rename back from XSETFUNVEC.
-       (FUNVEC_SIZE): Remove.
-       (FUNVEC_COMPILED_TAG_P, FUNVEC_COMPILED_P): Remove.
-       (COMPILEDP): Rename back from FUNVECP.
-       * fns.c (Felt): Remove unexplained FUNVEC check.
-       * doc.c (Fdocumentation): Don't handle funvec.
-       * alloc.c (make_funvec, Ffunvec): Remove.
-
-2011-02-21  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * bytecode.c (exec_byte_code): Change stack_ref and stack_set to use
-       offsets relative to top rather than to bottom.
-
-       * alloc.c (Fgarbage_collect): Don't mark the byte-stack redundantly.
-
-2011-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * window.c (Fsave_window_excursion): Remove.  Moved to Lisp.
-       (syms_of_window): Don't defsubr it.
-       * window.h (Fsave_window_excursion): Don't declare it.
-       * bytecode.c (exec_byte_code): Inline Fsave_window_excursion.
-
-2011-02-17  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Vinternal_interpreter_environment): Remove.
-       (syms_of_eval): Do declare Vinternal_interpreter_environment as
-       a global lisp var, but unintern it to hide it.
-       (Fcommandp):
-       * data.c (Finteractive_form): Understand `closure's.
-
-       * bytecode.c (exec_byte_code): Fix handling of &rest.
-
-2011-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * bytecode.c (Bvec_ref, Bvec_set): Remove.
-       (exec_byte_code): Don't handle them.
-
-2010-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Fdefvar): Record specialness before computing initial value.
-
-2010-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Feval): Add `lexical' argument.  Adjust callers.
-       (Ffuncall, eval_sub): Avoid goto.
-
-2010-12-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       Try and be more careful about propagation of lexical environment.
-       * eval.c (apply_lambda, funcall_lambda): Remove lexenv arg.
-       (Feval): Always eval in the empty environment.
-       (eval_sub): New function.  Use it for all calls to Feval that should
-       evaluate in the lexical environment of the caller.
-       Pass `closure's as is to apply_lambda.
-       (Ffuncall): Pass `closure's as is to funcall_lambda.
-       (funcall_lambda): Extract lexenv for `closure's, when applicable.
-       Also use lexical scoping for the &rest argument, if applicable.
-       * lisp.h (eval_sub): Declare.
-       * lread.c (readevalloop): Remove `evalfun' argument.
-       * print.c (Fwith_output_to_temp_buffer):
-       * data.c (Fsetq_default): Use eval_sub.
-
-2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       Make the effect of (defvar foo) local.
-       * eval.c (apply_lambda): Make static.  Remove eval_flag arg.
-       (Fsetq): Don't check declared_special.
-       (Fdefun, Fdefmacro): Use Ffunction.
-       (Fdefvar): Don't set declared_special for (defvar foo).
-       (FletX): Check locally-special vars.  Only do specbind once.
-       (Flet): Check locally-special vars.
-       (Feval): Don't check declared_special.
-       (funcall_lambda): Check locally-special vars.
-       * lisp.h (apply_lambda): Remove extern declaration.
-       * lread.c (readevalloop): CSE.
-
-2010-07-23  Andreas Schwab  <schwab@linux-m68k.org>
-
-       * eval.c (funcall_funvec): Replace bcopy by memcpy.
-
-2010-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * eval.c (Fspecial_variable_p): Rename from `specialp'.
-
-2010-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-       * bytecode.c (exec_byte_code):
-       * eval.c (Ffunctionp): Fix up int/Lisp_Object confusions.
-
-2008-04-23  Miles Bader  <miles@gnu.org>
-
-       * eval.c (Ffunctionp): Return nil for special forms.
-       (Qunevalled): New variable.
-       (syms_of_eval): Initialize it.
-
-2007-10-18  Miles Bader  <miles@gnu.org>
-
-       * eval.c (FletX): Test the type of VARLIST rather than just !NILP.
-       (Flet): Use XCAR instead of Fcar.
-
-2007-10-16  Miles Bader  <miles@gnu.org>
-
-       * alloc.c (make_funvec, Fpurecopy): Set the pseudo-vector type.
-
-2006-02-10  Miles Bader  <miles@gnu.org>
-
-       * eval.c (Ffunctionp): Supply new 2nd arg to Findirect_function.
-
-2005-03-04  Miles Bader  <miles@gnu.org>
-
-       * eval.c (FletX): Update Vinterpreter_lexical_environment for each
-       variable we bind, instead of all at once like `let'.
-
-2004-08-09  Miles Bader  <miles@gnu.org>
-
-       Changes from merging the funvec patch:
-
-       * eval.c (Feval, Ffuncall): Don't special-case vectors.
-       (funcall_lambda): Use FUNVEC_SIZE.
-       (Fcurry): Remove function.
-
-       Merge funvec patch.
-
-2004-05-20  Miles Bader  <miles@gnu.org>
-
-       * lisp.h: Declare make_funvec and Ffunvec.
-       (enum pvec_type): Rename `PVEC_COMPILED' to `PVEC_FUNVEC'.
-       (XSETFUNVEC): Rename from `XSETCOMPILED'.
-       (FUNVEC_SIZE, FUNVEC_COMPILED_TAG_P, FUNVEC_COMPILED_P): New macros.
-       (COMPILEDP): Define in terms of funvec macros.
-       (FUNVECP, GC_FUNVECP): Rename from `COMPILEDP' & `GC_COMPILEDP'.
-       (FUNCTIONP): Use FUNVECP instead of COMPILEDP.
-       * alloc.c (make_funvec, funvec): New functions.
-       (Fmake_byte_code): Make sure the first element is a list.
-
-       * eval.c (Qcurry): New variable.
-       (funcall_funvec, Fcurry): New functions.
-       (syms_of_eval): Initialize them.
-       (funcall_lambda): Handle non-bytecode funvec objects by calling
-       funcall_funvec.
-       (Ffuncall, Feval): Use FUNVECP insetad of COMPILEDP.
-       * lread.c (read1): Return result of read_vector for `#[' syntax
-       directly; read_vector now does any extra work required.
-       (read_vector): Handle both funvec and byte-code objects, converting the
-       type as necessary.  `bytecodeflag' argument is now called
-       `read_funvec'.
-       * data.c (Ffunvecp): New function.
-       * doc.c (Fdocumentation): Return nil for unknown funvecs.
-       * fns.c (mapcar1, Felt, concat): Allow funvecs.
-
-       * eval.c (Ffunctionp): Use `funvec' operators instead of `compiled'
-       operators.
-       * alloc.c (Fmake_byte_code, Fpurecopy, mark_object): Likewise.
-       * keyboard.c (Fcommand_execute): Likewise.
-       * image.c (parse_image_spec): Likewise.
-       * fns.c (Flength, concat, internal_equal): Likewise.
-       * data.c (Faref, Ftype_of): Likewise.
-       * print.c (print_preprocess, print_object): Likewise.
-
-2004-04-10  Miles Bader  <miles@gnu.org>
-
-       * eval.c (Fspecialp): New function.
-       (syms_of_eval): Initialize it.
-
-2004-04-03  Miles Bader  <miles@gnu.org>
-
-       * eval.c (Feval): If a variable isn't bound lexically, fall back
-       to looking it up dynamically even if it isn't declared special.
-
-2002-08-26  Miles Bader  <miles@gnu.org>
-
-       * bytecode.c (Fbyte_code): Fsub1 can GC, so protect it.
-
-2002-06-12  Miles Bader  <miles@gnu.org>
-
-       Lexical binding changes to the byte-code interpreter:
-
-       * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, Bvec_ref, Bvec_set)
-       (BdiscardN): New constants.
-       (exec_byte_code): Rename from `Fbyte_code'.
-       Implement above new bytecodes.
-       Add ARGS-TEMPLATE, NARGS and ARGS parameters, and optionally use
-       them push initial args on the stack.
-       (Fbyte_code): New function, just call `exec_byte_code'.
-       Add additional optional arguments for `exec_byte_code'.
-       (Qand_optional, Qand_rest): New extern declarations.
-       * eval.c (Fcurry, Ffunctionp): New functions.
-       (syms_of_eval): Initialize them.
-       (funcall_lambda): Call `exec_byte_code' instead of Fbyte_code.
-       If a compiled-function object has a `push-args' slot, call the
-       byte-code interpreter without binding any arguments.
-       (Ffuncall): Add support for curried functions.
-       * lisp.h (Fbyte_code): Declare max-args as MANY.
-       (exec_byte_code): New declaration.
-
-       Lexical binding changes to the lisp interpreter:
-
-       * lisp.h (struct Lisp_Symbol): Add `declared_special' field.
-       (apply_lambda): Add new 3rd arg to decl.
-       * alloc.c (Fmake_symbol): Initialize `declared_special' field.
-       * eval.c (Vinterpreter_lexical_environment): New variable.
-       (syms_of_eval): Initialize it.
-       (Fsetq): Modify SYM's lexical binding if appropriate.
-       (Ffunction): Return a closure if within a lexical environment.
-       (Flet, FletX): Lexically bind non-defvar'd variables if inside a
-       lexical environment.
-       (Feval): Return lexical binding of variables, if they have one.
-       Pass current lexical environment to embedded lambdas.  Handle closures.
-       (Ffuncall): Pass nil lexical environment to lambdas.  Handle closures.
-       (funcall_lambda): Add new LEXENV argument, and lexically bind
-       arguments if it's non-nil.  Bind `interpreter-lexenv' if it changed.
-       (apply_lambda): Add new LEXENV argument and pass it to funcall_lambda.
-       (Fdefvaralias, Fdefvar, Fdefconst): Mark the variable as special.
-       (Qinternal_interpreter_environment, Qclosure): New constants.
-       (syms_of_eval): Initialize them.
-       (Fdefun, Fdefmacro): Use a closure if lexical binding is active.
-       * lread.c (defvar_bool, defvar_lisp_nopro, defvar_per_buffer)
-       (defvar_kboard, defvar_int): Mark the variable as special.
-       (Vlexical_binding, Qlexical_binding): New variables.
-       (syms_of_lread): Initialize them.
-       (Fload): Bind `lexically-bound' to nil unless specified otherwise
-       in the file header.
-       (lisp_file_lexically_bound_p): New function.
-       (Qinternal_interpreter_environment): New variable.
-       * doc.c (Qclosure): New extern declaration.
-       (Fdocumentation, store_function_docstring): Handle interpreted
-       closures.
-
-;; arch-tag: 7cf884aa-6b48-40cb-bfca-265a1e99b3c5
+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.
+
+       * eval.c (funcall_lambda): Rename local to avoid shadowing.
+
+       * 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.
+
+       * search.c (boyer_moore, wordify): Remove vars set but not used.
+       (wordify): Omit three unnecessary tests.
+
+       * 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.  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-30  Zachary Kanfer  <zkanfer@gmail.com>  (tiny change)
+
+       * 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>
+
+       * xdisp.c (redisplay_window): Don't check buffer's clip_changed
+       flag as a prerequisite for invoking try_scrolling.  (Bug#6671)
+
+2011-03-26  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32.c (read_unc_volume): Use parameter `henum', instead of
+       global variable `wget_enum_handle'.
+
+       * keymap.c (describe_vector): Remove parameters `indices' and
+       `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
+       (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
+
+       * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
+
+       * keyboard.c (timer_check): Remove parameter `do_it_now',
+       unused since 1996-04-12T06:01:29Z!rms@gnu.org.
+       (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
+       unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
+
+       * keyboard.c (read_char):
+       * w32menu.c (w32_menu_display_help):
+       * xmenu.c (show_help_event, menu_help_callback):
+       Adjust calls to `show_help_echo'.
+
+       * gtkutil.c (xg_maybe_add_timer):
+       * keyboard.c (readable_events):
+       * process.c (wait_reading_process_output):
+       * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
+
+       * insdel.c (adjust_markers_gap_motion):
+       Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
+       (gap_left, gap_right): Don't call it.
+
+2011-03-25  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
+       incurred during fontification.
+
+2011-03-25  Juanma Barranquero  <lekktu@gmail.com>
+
+       * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
+       (DEFVAR_PER_BUFFER): Don't pass it.
+
+       * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
+       (scrolling_window): Don't pass it.
+
+2011-03-25  Juanma Barranquero  <lekktu@gmail.com>
+
+       * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
+
+       * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
+       and `suffix'.
+       (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
+       of variables specific to SELinux and computation of `encoded_absname'.
+
+       * image.c (XPutPixel): Remove unused variable `height'.
+
+       * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
+
+       * unexw32.c (get_section_info): Remove unused variable `section'.
+
+       * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
+       (system_process_attributes): Remove unused variable `sess'.
+       (sys_read): Remove unused variable `err'.
+
+       * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
+       (w32_wnd_proc): Remove unused variable `isdead'.
+       (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
+       (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
+       (x_create_tip_frame): Remove unused variable `tem'.
+
+       * w32inevt.c (w32_console_read_socket):
+       Remove unused variable `no_events'.
+
+       * w32term.c (x_draw_composite_glyph_string_foreground):
+       Remove unused variable `width'.
+
+2011-03-24  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32term.c (x_set_glyph_string_clipping):
+       Don't pass uninitialized region to CombineRgn.
+
+2011-03-23  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
+       (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
+       (Fx_close_connection): Remove unused variable `i'.
+
+       * w32font.c (w32font_draw): Return number of glyphs.
+       (w32font_open_internal): Remove unused variable `i'.
+       (w32font_driver): Add missing initializer.
+
+       * w32menu.c (utf8to16): Remove unused variable `utf16'.
+       (fill_in_menu): Remove unused variable `items_added'.
+
+       * w32term.c (last_mouse_press_frame): Remove static global variable.
+       (w32_clip_to_row): Remove unused variable `f'.
+       (x_delete_terminal): Remove unused variable `i'.
+
+       * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
+       (NOTHING): Remove unused static global variable.
+       (uniscribe_check_otf): Remove unused variable `table'.
+       (uniscribe_font_driver): Add missing initializers.
+
+2011-03-23  Julien Danjou  <julien@danjou.info>
+
+       * term.c (Fsuspend_tty, Fresume_tty):
+       * minibuf.c (read_minibuf, run_exit_minibuf_hook):
+       * window.c (temp_output_buffer_show):
+       * insdel.c (signal_before_change):
+       * frame.c (Fhandle_switch_frame):
+       * fileio.c (Fdo_auto_save):
+       * emacs.c (Fkill_emacs):
+       * editfns.c (save_excursion_restore):
+       * cmds.c (internal_self_insert):
+       * callint.c (Fcall_interactively):
+       * buffer.c (Fkill_all_local_variables):
+       * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
+       Use Frun_hooks.
+       (command_loop_1): Use Frun_hooks.  Call safe_run_hooks
+       unconditionnaly since it does the check itself.
+
+2011-03-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix more problems found by GCC 4.5.2's static checks.
+
+       * coding.c (encode_coding_raw_text): Avoid unnecessary test
+       the first time through the loop, since we know p0 < p1 then.
+       This also avoids a gcc -Wstrict-overflow warning.
+
+       * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
+       leading to a memory leak, possible in functions like
+       load_charset_map_from_file that can allocate an unbounded number
+       of objects (Bug#8318).
+
+       * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
+       that could (at least in theory) be that large.
+
+       * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
+       This is less likely to overflow, and avoids undefined behavior if
+       overflow does occur.  All callers changed.  Use strtoul to scan
+       for the unsigned long integer.
+       (pint2hrstr): Simplify and tune code slightly.
+       This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
+
+       * scroll.c (do_scrolling): Work around GCC bug 48228.
+       See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
+
+       * frame.c (Fmodify_frame_parameters): Simplify loop counter.
+       This also avoids a warning with gcc -Wstrict-overflow.
+       (validate_x_resource_name): Simplify count usage.
+       This also avoids a warning with gcc -Wstrict-overflow.
+
+       * fileio.c (Fcopy_file): Report error if fchown or fchmod
+       fail (Bug#8306).
+
+       * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
+
+       * process.c (Fmake_network_process): Use socklen_t, not int,
+       where POSIX says socklen_t is required in portable programs.
+       This fixes a porting bug on hosts like 64-bit HP-UX, where
+       socklen_t is wider than int (Bug#8277).
+       (Fmake_network_process, server_accept_connection):
+       (wait_reading_process_output, read_process_output):
+       Likewise.
+
+       * process.c: Rename or move locals to avoid shadowing.
+       (list_processes_1, Fmake_network_process):
+       (read_process_output_error_handler, exec_sentinel_error_handler):
+       Rename or move locals.
+       (Fmake_network_process): Define label "retry_connect" only if needed.
+       (Fnetwork_interface_info): Fix pointer signedness.
+       (process_send_signal): Add cast to avoid pointer signedness problem.
+       (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
+       (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
+
+       Make tparam.h and terminfo.c consistent.
+       * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
+       Include tparam.h instead, since it declares them.
+       * cm.h (PC): Remove extern decl; tparam.h now does this.
+       * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
+       * terminfo.c: Include tparam.h, to check interfaces.
+       (tparm): Make 1st arg a const pointer in decl.  Put it at top level.
+       (tparam): Adjust signature to match interface in tparam.h;
+       this removes some undefined behavior.  Check that outstring and len
+       are zero, which they always are with Emacs.
+       * tparam.h (PC, BC, UP): New extern decls.
+
+       * xftfont.c (xftfont_shape): Now static, and defined only if needed.
+       (xftfont_open): Rename locals to avoid shadowing.
+
+       * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
+       (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
+       (OTF_TAG_SYM): Omit macro if not needed.
+       (ftfont_list): Remove unused local.
+       (get_adstyle_property, ftfont_pattern_entity):
+       (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
+       Rename locals to avoid shadowing.
+
+       * xfont.c (xfont_list_family): Mark var as initialized.
+
+       * xml.c (make_dom): Now static.
+
+       * composite.c (composition_compute_stop_pos): Rename local to
+       avoid shadowing.
+       (composition_reseat_it): Remove unused locals.
+       (find_automatic_composition, composition_adjust_point): Likewise.
+       (composition_update_it): Mark var as initialized.
+       (find_automatic_composition): Mark vars as initialized,
+       with a FIXME (Bug#8290).
+
+       character.h: Rename locals to avoid shadowing.
+       * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
+       (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
+       (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
+       (BUF_DEC_POS): Be more systematic about renaming local temporaries
+       to avoid shadowing.
+
+       * textprop.c (property_change_between_p): Remove; unused.
+
+       * intervals.c (interval_start_pos): Now static.
+
+       * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
+
+       * atimer.c (start_atimer, append_atimer_lists, set_alarm):
+       Rename locals to avoid shadowing.
+
+       * sound.c (wav_play, au_play, Fplay_sound_internal):
+       Fix pointer signedness.
+       (alsa_choose_format): Remove unused local var.
+       (wav_play): Initialize a variable to 0, to prevent undefined
+       behavior (Bug#8278).
+
+       * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
+
+       * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
+
+       * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
+       clobbering (Bug#8298).
+       * sysdep.c (sys_subshell): Likewise.
+       Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
+
+       * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
+       This should get cleaned up, so that child_setup has the
+       same signature on all platforms.
+
+       * callproc.c (call_process_cleanup): Now static.
+       (relocate_fd): Rename locals to avoid shadowing.
+
+2011-03-22  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xterm.c (x_clear_frame): Remove XClearWindow call.  This appears
+       not to be necessary, and produces flickering.
+
+2011-03-20  Glenn Morris  <rgm@gnu.org>
+
+       * config.in: Remove file.
+
+2011-03-20  Juanma Barranquero  <lekktu@gmail.com>
+
+       * minibuf.c (Vcompleting_read_function): Don't declare, global variables
+       are now in src/globals.h.
+       (syms_of_minibuf): Remove spurious & from previous change.
+
+2011-03-20  Leo  <sdl.web@gmail.com>
+
+       * minibuf.c (completing-read-function): New variable.
+       (completing-read-default): Rename from completing-read.
+       (completing-read): Call completing-read-function.
+
+2011-03-19  Juanma Barranquero  <lekktu@gmail.com>
+
+       * xfaces.c (Fx_load_color_file):
+       Read color file from absolute filename (bug#8250).
+
+2011-03-19  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in: Update dependencies.
+
+2011-03-17  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
+
+2011-03-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix more problems found by GCC 4.5.2's static checks.
+
+       * process.c (make_serial_process_unwind, send_process_trap):
+       (sigchld_handler): Now static.
+
+       * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
+       That way, the code declares only the vars that it needs.
+       * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
+       * s/cygwin.h (PTY_ITERATION): Likewise.
+       * s/darwin.h (PTY_ITERATION): Likewise.
+       * s/gnu-linux.h (PTY_ITERATION): Likewise.
+
+       * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
+       * process.c (allocate_pty): Don't declare stb unless it's needed.
+
+       * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
+       (CONSTANTLIM): Remove; unused.
+       (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
+       Define only if needed.
+
+       * unexelf.c (unexec): Name an expression,
+       to avoid gcc -Wbad-function-cast warning.
+       Use a different way to cause a compilation error if anyone uses
+       n rather than nn, a way that does not involve shadowing.
+       (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
+
+       * deps.mk (unexalpha.o): Remove; unused.
+
+       New file unexec.h, the (simple) interface for unexec (Bug#8267).
+       * unexec.h: New file.
+       * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
+       (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
+       Depend on unexec.h.
+       * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
+       * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
+       * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
+       Change as necessary to match prototype in unexec.h.
+
+       * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
+       shadowing.
+       (back_comment, skip_chars): Mark vars as initialized.
+
+       * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
+       Rename locals to avoid shadowing.
+
+       * lread.c (read1): Rewrite so as not to use empty "else".
+       (Fload, readevalloop, read1): Rename locals to avoid shadowing.
+
+       * print.c (Fredirect_debugging_output): Fix pointer signedess.
+
+       * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
+       warning when compiling print.c.
+
+       * font.c (font_unparse_fcname): Abort in an "impossible" situation
+       instead of using an uninitialized var.
+       (font_sort_entities): Mark var as initialized.
+
+       * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
+
+       * font.c (font_unparse_xlfd): Don't mix pointers to variables with
+       pointers to constants.
+       (font_parse_fcname): Remove unused vars.
+       (font_delete_unmatched): Now static.
+       (font_get_spec): Remove; unused.
+       (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
+       (font_update_drivers, Ffont_get_glyphs, font_add_log):
+       Rename or move locals to avoid shadowing.
+
+       * fns.c (require_nesting_list, require_unwind): Now static.
+       (Ffillarray): Rename locals to avoid shadowing.
+
+       * floatfns.c (domain_error2): Define only if needed.
+       (Ffrexp, Fldexp): Rename locals to avoid shadowing.
+
+       * alloc.c (mark_backtrace): Move decl from here ...
+       * lisp.h: ... to here, so that it can be checked.
+
+       * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
+       (Fdefvar): Rewrite so as not to use empty "else".
+       (lisp_indirect_variable): Name an expression,
+       to avoid gcc -Wbad-function-cast warning.
+       (Fdefvar): Rename locals to avoid shadowing.
+
+       * callint.c (quotify_arg, quotify_args): Now static.
+       (Fcall_interactively): Rename locals to avoid shadowing.
+       Use const pointer when appropriate.
+
+       * lisp.h (get_system_name, get_operating_system_release):
+       Move decls here, to check interfaces.
+       * process.c (get_operating_system_release): Move decl to lisp.h.
+       * xrdb.c (get_system_name): Likewise.
+       * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
+       (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
+       some of which prompt warnings from gcc -Wbad-function-cast.
+       (Fformat_time_string, Fencode_time, Finsert_char):
+       (Ftranslate_region_internal, Fformat):
+       Rename or remove local vars to avoid shadowing.
+       (Ftranslate_region_internal): Mark var as initialized.
+
+       * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
+       avoid shadowing.
+
+       * lisp.h (eassert): Check that the argument compiles, even if
+       ENABLE_CHECKING is not defined.
+
+       * data.c (Findirect_variable): Name an expression, to avoid
+       gcc -Wbad-function-cast warning.
+       (default_value, arithcompare, arith_driver, arith_error): Now static.
+       (store_symval_forwarding): Rename local to avoid shadowing.
+       (Fmake_variable_buffer_local, Fmake_local_variable):
+       Mark variables as initialized.
+       (do_blv_forwarding, do_symval_forwarding): Remove; unused.
+
+       * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
+       (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
+       Rename locals to avoid shadowing.
+       (mark_stack): Move local variables into the #ifdef region where
+       they're used.
+       (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
+       ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
+       needed otherwise.
+       (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
+       (GC_STRING_CHARS): Remove; not used.
+       (Fmemory_limit): Cast sbrk's returned value to char *.
+
+       * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
+       avoids undefined behavior in theory.
+
+       * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
+
+       Use functions, not macros, for up- and down-casing (Bug#8254).
+       * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
+       (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove.  All callers changed
+       to use the following functions instead of these macros.
+       (downcase): Adjust to lack of DOWNCASE_TABLE.  Return int, not
+       EMACS_INT, since callers assume the returned value fits in int.
+       (upcase1): Likewise, for UPCASE_TABLE.
+       (uppercasep, lowercasep, upcase): New static inline functions.
+       * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
+       the race-condition problem in the old DOWNCASE.
+
+       * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
+       Rename locals to avoid shadowing.
+       (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
+       (regex_compile, re_search_2, re_match_2_internal):
+       Remove unused local vars.
+       (FREE_VAR): Rewrite so as not to use empty "else",
+       which gcc can warn about.
+       (regex_compile, re_match_2_internal): Mark locals as initialized.
+       (RETALLOC_IF): Define only if needed.
+       (WORDCHAR_P): Likewise.  This one is never needed, but is used
+       only in a comment talking about a compiler bug, so put inside
+       the #if 0 of that comment.
+       (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
+       (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
+       Remove; unused.
+
+       * search.c (boyer_moore): Rename locals to avoid shadowing.
+       * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
+       (PREV_CHAR_BOUNDARY): Likewise.
+
+       * search.c (simple_search): Remove unused var.
+
+       * dired.c (compile_pattern): Move decl from here ...
+       * lisp.h: ... to here, so that it can be checked.
+       (struct re_registers): New forward decl.
+
+       * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
+
+       * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
+       All uses changed.
+       (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
+       Rename locals to avoid shadowing.
+       (Fvertical_motion): Mark locals as initialized.
+
+       * casefiddle.c (casify_object, casify_region): Now static.
+       (casify_region): Mark local as initialized.
+
+       * cmds.c (internal_self_insert): Rename local to avoid shadowing.
+
+       * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
+       New macros, so that the caller can use some names other than
+       gcpro1, gcpro2, etc.
+       (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
+       of the new macros.
+       (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
+       argument, for consistency with GCPRO2_VAR, etc: it is now the
+       prefix of the variable, not the variable itself.  All uses
+       changed.
+       * dired.c (directory_files_internal, file_name_completion):
+       Rename locals to avoid shadowing.
+
+       Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
+       An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
+       dired.c's scmp function, had undefined behavior.
+       * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
+       (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
+       * buffer.h: ... to here, because these macros use current_buffer,
+       and the new implementation with inline functions needs to have
+       current_buffer in scope now, rather than later when the macros
+       are used.
+       (downcase, upcase1): New static inline functions.
+       (DOWNCASE, UPCASE1): Reimplement using these functions.
+       This avoids undefined behavior in expressions like
+       DOWNCASE (x) == DOWNCASE (y), which previously suffered
+       from race conditions in accessing the global variables
+       case_temp1 and case_temp2.
+       * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
+       * lisp.h (case_temp1, case_temp2): Remove their decls.
+       * character.h (ASCII_CHAR_P): Move from here ...
+       * lisp.h: ... to here, so that the inline functions mentioned
+       above can use them.
+
+       * dired.c (directory_files_internal_unwind): Now static.
+
+       * fileio.c (file_name_as_directory, directory_file_name):
+       (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
+       Now static.
+       (file_name_as_directory): Use const pointers when appropriate.
+       (Fexpand_file_name): Likewise.  In particular, newdir might
+       point at constant storage, so make it a const pointer.
+       (Fmake_directory_internal, Fread_file_name): Remove unused vars.
+       (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
+       signedness issues.
+       (Fset_file_times, Finsert_file_contents, auto_save_error):
+       Rename locals to avoid shadowing.
+
+       * minibuf.c (choose_minibuf_frame_1): Now static.
+       (Ftry_completion, Fall_completions): Rename or remove locals
+       to avoid shadowing.
+
+       * marker.c (bytepos_to_charpos): Remove; unused.
+
+       * lisp.h (verify_bytepos, count_markers): New decls,
+       so that gcc does not warn that these functions aren't declared.
+
+       * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
+       (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
+       (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
+       (copy_text): Remove unused local var.
+
+       * filelock.c (within_one_second): Now static.
+       (lock_file_1): Rename local to avoid shadowing.
+
+       * buffer.c (fix_overlays_before): Mark locals as initialized.
+       (fix_start_end_in_overlays): Likewise.  This function should be
+       simplified by using pointers-to-pointers, but that's a different
+       matter.
+       (switch_to_buffer_1): Now static.
+       (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
+       (report_overlay_modification): Rename locals to avoid shadowing.
+
+       * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
+       Fix pointer signedness issue.
+       (sys_subshell): Mark local as volatile if checking for lint,
+       to suppress a gcc -Wclobbered warning that does not seem to be right.
+       (MAXPATHLEN): Define only if needed.
+
+       * process.c (serial_open, serial_configure): Move decls from here ...
+       * systty.h: ... to here, so that they can be checked.
+
+       * fns.c (get_random, seed_random): Move extern decls from here ...
+       * lisp.h: ... to here, so that they can be checked.
+
+       * sysdep.c (reset_io): Now static.
+       (wait_for_termination_signal): Remove; unused.
+
+       * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
+       (copy_keymap_item, append_key, push_text_char_description):
+       Now static.
+       (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
+       (DENSE_TABLE_SIZE): Remove; unused.
+       (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
+       (describe_map_tree):
+       Rename locals to avoid shadowing.
+
+       * keyboard.c: Declare functions static if they are not used elsewhere.
+       (echo_char, echo_dash, cmd_error, top_level_2):
+       (poll_for_input, handle_async_input): Now static.
+       (read_char, kbd_buffer_get_event, make_lispy_position):
+       (make_lispy_event, make_lispy_movement, apply_modifiers):
+       (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
+       (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
+       (Fread_key_sequence_vector): Rename locals to avoid shadowing.
+       (read_key_sequence, read_char): Mark locals as initialized.
+       (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
+
+       * keyboard.h (make_ctrl_char): New decl.
+       (mark_kboards): Move decl here ...
+       * alloc.c (mark_kboards): ... from here.
+
+       * lisp.h (force_auto_save_soon): New decl.
+
+       * emacs.c (init_cmdargs): Rename local to avoid shadowing.
+       (DEFINE_DUMMY_FUNCTION): New macro.
+       (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
+       Use it.
+       (main): Add casts to avoid warnings
+       if GCC considers string literals to be constants.
+
+       * lisp.h (fatal_error_signal): Add decl, since it's exported.
+
+       * dbusbind.c: Pointer signedness fixes.
+       (xd_signature, xd_append_arg, xd_initialize):
+       (Fdbus_call_method, Fdbus_call_method_asynchronously):
+       (Fdbus_method_return_internal, Fdbus_method_error_internal):
+       (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
+       (Fdbus_register_signal): Use SSDATA when the context wants char *.
+
+       * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
+       if GCC considers string literals to be constants.
+       (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
+
+2011-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
+       (print_preprocess, print_object): New macro to fix last change.
+
+       * print.c (print_preprocess): Don't forget font objects.
+
+2011-03-16  Juanma Barranquero  <lekktu@gmail.com>
+
+       * emacs.c (USAGE3): Doc fixes.
+
+2011-03-15  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * coding.c (detect_coding_iso_2022): Reorganize code to clarify
+       structure.
+
+2011-03-14  Juanma Barranquero  <lekktu@gmail.com>
+
+       * lisp.h (VWindow_system, Qfile_name_history):
+       * keyboard.h (lispy_function_keys) [WINDOWSNT]:
+       * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
+       (w32_system_caret_x, w32_system_caret_y): Declare extern.
+
+       * w32select.c: Don't #include "keyboard.h".
+       (run_protected): Add extern declaration for waiting_for_input.
+
+       * w32.c (Qlocal, noninteractive1, inhibit_window_system):
+       * w32console.c (detect_input_pending, read_input_pending)
+       (encode_terminal_code):
+       * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
+       (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
+       (w32_system_caret_y, Qfile_name_history):
+       * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
+       * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
+       * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
+       (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
+       * w32proc.c (Qlocal, report_file_error):
+       * w32term.c (Vwindow_system, updating_frame):
+       * w32uniscribe.c (initialized, uniscribe_font_driver):
+       Remove unneeded extern declarations.
+
+2011-03-14  Chong Yidong  <cyd@stupidchicken.com>
+
+       * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
+
+2011-03-13  Chong Yidong  <cyd@stupidchicken.com>
+
+       * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
+       (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
+       These macros can no longer be used for assignment.
+
+       * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
+       Assign struct members directly, instead of using BUF_BEGV etc.
+       (record_buffer_markers, fetch_buffer_markers): New functions for
+       recording and fetching special buffer markers.
+       (set_buffer_internal_1, set_buffer_temp): Use them.
+
+       * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
+
+       * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
+
+       * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
+       (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
+
+       * xdisp.c (hscroll_window_tree):
+       (reconsider_clip_changes): Use PT instead of BUF_PT.
+
+2011-03-13  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
+       $(EMACS_ROOT)/lib/intprops.h.
+
+2011-03-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix more problems found by GCC 4.5.2's static checks.
+
+       * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
+       to unsigned char * to avoid compiler diagnostic.
+       (xg_free_frame_widgets): Make it clear that a local variable is
+       needed only if USE_GTK_TOOLTIP.
+       (gdk_window_get_screen): Make it clear that this macro is needed
+       only if USE_GTK_TOOLTIP.
+       (int_gtk_range_get_value): New function, which avoids a diagnostic
+       from gcc -Wbad-function-cast.
+       (xg_set_toolkit_scroll_bar_thumb): Use it.
+       (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
+       diagnostic from gcc -Wbad-function-cast.
+       (get_utf8_string, xg_get_file_with_chooser):
+       Rename locals to avoid shadowing.
+       (create_dialog): Move locals to avoid shadowing.
+
+       * xgselect.c (xg_select): Remove unused var.
+
+       * image.c (four_corners_best): Mark locals as initialized.
+       (gif_load): Initialize transparent_p to zero (Bug#8238).
+       Mark another local as initialized.
+       (my_png_error, my_error_exit): Mark with NO_RETURN.
+
+       * image.c (clear_image_cache): Now static.
+       (DIM, HAVE_STDLIB_H_1): Remove unused macros.
+       (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
+       (x_edge_detection): Remove unnecessary cast that
+       gcc -Wbad-function-cast diagnoses.
+       (gif_load): Fix pointer signedness.
+       (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
+       (jpeg_load, gif_load): Rename locals to avoid shadowing.
+
+2011-03-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve quality of tests for time stamp overflow.
+       For example, without this patch (encode-time 0 0 0 1 1
+       1152921504606846976) returns the obviously-bogus value (-948597
+       62170) on my RHEL 5.5 x86-64 host.  With the patch, it correctly
+       reports time overflow.  See
+       <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
+       * deps.mk (editfns.o): Depend on ../lib/intprops.h.
+       * editfns.c: Include limits.h and intprops.h.
+       (TIME_T_MIN, TIME_T_MAX): New macros.
+       (time_overflow): Move earlier, to before first use.
+       (hi_time, lo_time): New functions, for an accurate test for
+       out-of-range times.
+       (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
+       (Fget_internal_run_time): Don't assume time_t fits in int.
+       (make_time): Use list2 instead of Fcons twice.
+       (Fdecode_time): More accurate test for out-of-range times.
+       (check_tm_member): New function.
+       (Fencode_time): Use it, to test for out-of-range times.
+       (lisp_time_argument): Don't rely on undefined left-shift and
+       right-shift behavior when checking for time stamp overflow.
+
+       * editfns.c (time_overflow): New function, refactoring common code.
+       (Fformat_time_string, Fdecode_time, Fencode_time):
+       (Fcurrent_time_string): Use it.
+
+       Move 'make_time' to be next to its inverse 'lisp_time_argument'.
+       * dired.c (make_time): Move to ...
+       * editfns.c (make_time): ... here.
+       * systime.h: Note the move.
+
+2011-03-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * fringe.c (update_window_fringes): Remove unused variables.
+
+       * unexmacosx.c (copy_data_segment): Also copy __got section.
+       (Bug#8223)
+
+2011-03-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * termcap.c [MSDOS]: Include "msdos.h".
+       (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
+       Constify `char *' arguments and their references according to
+       prototypes in tparam.h.
+
+       * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
+
+       * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
+       Adapt all references accordingly.
+
+       * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
+
+2011-03-11  Tom Tromey  <tromey@redhat.com>
+
+       * buffer.c (syms_of_buffer): Remove obsolete comment.
+
+2011-03-11  Eli Zaretskii  <eliz@gnu.org>
+
+       * termhooks.h (encode_terminal_code): Declare prototype.
+
+       * msdos.c (encode_terminal_code): Don't declare prototype.
+
+       * term.c (encode_terminal_code): Now external again, used by
+       w32console.c and msdos.c.
+
+       * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
+       Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
+
+2011-03-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix some minor problems found by GCC 4.5.2's static checks.
+
+       * fringe.c (update_window_fringes): Mark locals as initialized
+       (Bug#8227).
+       (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
+
+       * alloc.c (mark_fringe_data): Move decl from here ...
+       * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
+       to check its interface.
+       (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
+
+       * fontset.c (free_realized_fontset): Now static.
+       (Fset_fontset_font): Rename local to avoid shadowing.
+       (fontset_font): Mark local as initialized.
+       (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
+
+       * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
+
+       * xselect.c (x_disown_buffer_selections): Remove; not used.
+       (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
+       (x_own_selection, Fx_disown_selection_internal): Rename locals
+       to avoid shadowing.
+       (x_handle_dnd_message): Remove local to avoid shadowing.
+
+       * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
+       so that the caller can use some name other than gcpro1.
+       (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
+       * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
+       (Fx_backspace_delete_keys_p):
+       Use them to avoid shadowing, and rename vars to avoid shadowing.
+       (x_decode_color, x_set_name, x_window): Now static.
+       (Fx_create_frame): Add braces to silence GCC warning.
+       (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
+       (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
+       Remove unused locals.
+       (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
+       (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
+       Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
+       macros.
+
+       * xterm.h (x_mouse_leave): New decl.
+
+       * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
+       Remove unused functions.
+       (x_shift_glyphs_for_insert, XTflash, XTring_bell):
+       (x_calc_absolute_position): Now static.
+       (XTread_socket): Don't define label "out" unless it's used.
+       Don't declare local "event" unless it's used.
+       (x_iconify_frame, x_free_frame_resources): Don't declare locals
+       unless they are used.
+       (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
+       (x_fatal_error_signal): Remove; not used.
+       (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
+       (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
+       (x_error_catcher, x_connection_closed, x_error_handler):
+       (x_error_quitter, xembed_send_message, x_iconify_frame):
+       (my_log_handler): Rename locals to avoid shadowing.
+       (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
+       (x_connection_closed): Tell GCC not to suggest NO_RETURN.
+
+       * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
+       Rename or move locals to avoid shadowing.
+       (tty_defined_color, merge_face_heights): Now static.
+       (free_realized_faces_for_fontset): Remove; not used.
+       (Fx_list_fonts): Mark variable that gcc -Wuninitialized
+       does not deduce is never used uninitialized.
+       (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
+       (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
+
+       * terminal.c (store_terminal_param): Now static.
+
+       * xmenu.c (menu_highlight_callback): Now static.
+       (set_frame_menubar): Remove unused local.
+       (xmenu_show): Rename parameter to avoid shadowing.
+       (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
+       since they might point to immutable storage.
+       (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
+       since it's unused otherwise.
+
+       * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
+       Add a FIXME, since the code still doesn't look right.  (Bug#8215)
+       (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
+       avoids a gcc -Wuninitialized diagnostic.
+       (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
+       (note_mouse_highlight): Mark variables that gcc -Wuninitialized
+       does not deduce are never used uninitialized.
+
+       * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
+
+       * xdisp.c (redisplay_window): Rename local to avoid shadowing.
+       * window.c (window_loop, size_window):
+       (run_window_configuration_change_hook, enlarge_window): Likewise.
+
+       * window.c (display_buffer): Now static.
+       (size_window): Mark variables that gcc -Wuninitialized
+       does not deduce are never used uninitialized.
+       * window.h (check_all_windows): New decl, to forestall
+       gcc -Wmissing-prototypes diagnostic.
+       * dispextern.h (bidi_dump_cached_states): Likewise.
+
+       * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
+       shadowing.
+       * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
+       Include <limits.h>.
+       (Fsort_charsets): Redo min/max calculation to shorten the code a bit
+       and to avoid gcc -Wuninitialized warning.
+       (load_charset_map): Mark variables that gcc -Wuninitialized
+       does not deduce are never used uninitialized.
+       (load_charset): Abort instead of using uninitialized var (Bug#8229).
+
+       * coding.c (coding_set_source, coding_set_destination):
+       Use "else { /* comment */ }" rather than "else /* comment */;"
+       for clarity, and to avoid gcc -Wempty-body warning.
+       (Fdefine_coding_system_internal): Don't redeclare 'i' inside
+       a block, when the outer 'i' will do.
+       (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
+       (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
+       (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
+       (decode_coding_raw_text, decode_coding_charset, get_translation_table):
+       (Fdecode_sjis_char, Fdefine_coding_system_internal):
+       Rename locals to avoid shadowing.
+       * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
+       * coding.c (emacs_mule_char, encode_invocation_designation):
+       Now static, since they're not used elsewhere.
+       (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
+       (decode_coding_object, encode_coding_object, detect_coding_system):
+       (decode_coding_emacs_mule): Mark variables that gcc
+       -Wuninitialized does not deduce are never used uninitialized.
+       (detect_coding_iso_2022): Initialize a local variable that might
+       be used uninitialized.  Leave a FIXME because it's not clear that
+       this initialization is needed.  (Bug#8211)
+       (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
+       (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
+       (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
+       (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
+       Remove unused macros.
+
+       * category.c (hash_get_category_set): Remove unused local var.
+       (copy_category_table): Now static, since it's not used elsewhere.
+       * character.c (string_count_byte8): Likewise.
+
+       * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
+       (Fregister_code_conversion_map): Rename locals to avoid shadowing.
+
+       * chartab.c (copy_sub_char_table): Now static, since it's not used
+       elsewhere.
+       (sub_char_table_ref_and_range, char_table_ref_and_range):
+       Rename locals to avoid shadowing.
+       (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
+
+       * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
+       (BIDI_BOB): Remove unused macro.
+
+       * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
+       deduce are never used uninitialized.
+       * term.c (encode_terminal_code): Likewise.
+
+       * term.c (encode_terminal_code): Now static.  Remove unused local.
+
+       * tparam.h: New file.
+       * term.c, tparam.h: Include it.
+       * deps.mk (term.o, tparam.o): Depend on tparam.h.
+       * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
+       Move these decls to tparam.h, and make them agree with what
+       is actually in tparam.c.  The previous trick of using incompatible
+       decls in different modules does not conform to the C standard.
+       All callers of tparam changed to use tparam's actual API.
+       * tparam.c (tparam1, tparam, tgoto):
+       Use const pointers where appropriate.
+
+       * cm.c (calccost, cmgoto): Use const pointers where appropriate.
+       * cm.h (struct cm): Likewise.
+       * dispextern.h (do_line_insertion_deletion_costs): Likewise.
+       * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
+       * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
+       (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
+       (turn_on_face, init_tty): Likewise.
+       * termchar.h (struct tty_display_info): Likewise.
+
+       * term.c (term_mouse_position): Rename local to avoid shadowing.
+
+       * alloc.c (mark_ttys): Move decl from here ...
+       * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
+
+2011-03-11  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
+
+2011-03-09  Juanma Barranquero  <lekktu@gmail.com>
+
+       * search.c (compile_pattern_1): Remove argument regp, unused since
+       revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
+       (compile_pattern): Don't pass it.
+
+2011-03-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xterm.h (DEFAULT_GDK_DISPLAY): New define.
+       (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
+       for ! HAVE_GTK3.
+       (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
+
+       * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
+
+       * gtkutil.c: Include gtkx.h if HAVE_GTK3.  If ! HAVE_GTK3, define
+       gdk_window_get_screen, gdk_window_get_geometry,
+       gdk_x11_window_lookup_for_display and GDK_KEY_g.
+       (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
+       (xg_get_pixbuf_from_pixmap): New function.
+       (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
+       to Pixmap, take frame as parameter, remove GdkColormap parameter.
+       Call xg_get_pixbuf_from_pixmap instead of
+       gdk_pixbuf_get_from_drawable.
+       (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
+       xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
+       (xg_check_special_colors): Use GtkStyleContext and its functions
+       for HAVE_GTK3.
+       (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
+       (xg_prepare_tooltip, create_dialog, menubar_map_cb)
+       (xg_update_frame_menubar, xg_tool_bar_detach_callback)
+       (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
+       Call gtk_widget_get_preferred_size.
+       (xg_frame_resized): gdk_window_get_geometry only takes 5
+       parameters.
+       (xg_win_to_widget, xg_event_is_for_menubar):
+       Call gdk_x11_window_lookup_for_display.
+       (xg_set_widget_bg): New function.
+       (delete_cb): New function.
+       (xg_create_frame_widgets): connect delete-event to delete_cb.
+       Call xg_set_widget_bg.  Only set backgrund pixmap for ! HAVE_GTK3
+       (xg_set_background_color): Call xg_set_widget_bg.
+       (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
+       (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
+       Only call gtk_range_set_update_policy if ! HAVE_GTK3.
+       (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
+       if ! HAVE_GTK3.
+       (update_frame_tool_bar): Call gtk_widget_hide.
+       (xg_initialize): Use GDK_KEY_g.
+
+       * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
+       if ! HAVE_GTK3
+       (x_session_initialize): Call gdk_x11_set_sm_client_id.
+
+       * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
+       (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
+       Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
+
+2011-03-08  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32xfns.c (select_palette): Check success of RealizePalette against
+       GDI_ERROR, not zero.
+
+See ChangeLog.11 for earlier changes.
+
+;; Local Variables:
+;; coding: utf-8
+;; End:
+
+  Copyright (C) 2011  Free Software Foundation, Inc.
+
+  This file is part of GNU Emacs.
+
+  GNU Emacs is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  GNU Emacs is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.