Merge from emacs-23 branch
[bpt/emacs.git] / src / ChangeLog
index 4928e20..9186061 100644 (file)
@@ -1,8 +1,584 @@
-2011-06-20  Paul Eggert  <eggert@cs.ucla.edu>
+2011-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * composite.c (composition_compute_stop_pos): Ignore a static
+       composition starting before CHARPOS (Bug#8915).
+
+       * xdisp.c (handle_composition_prop): Likewise.
+
+2011-07-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
+       (Bug#9015)
+
+2011-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * character.h (unicode_category_t): New enum type.
+
+       * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
+       (Qchar_code_property_table): New variable.
+       (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
+       (UNIPROP_COMPRESSED_FORM_P): New macros.
+       (char_table_ascii): Uncompress the compressed values.
+       (sub_char_table_ref): New arg is_uniprop.  Callers changed.
+       Uncompress the compressed values.
+       (sub_char_table_ref_and_range):  Likewise.
+       (char_table_ref_and_range): Uncompress the compressed values.
+       (sub_char_table_set): New arg is_uniprop.  Callers changed.
+       Uncompress the compressed values.
+       (sub_char_table_set_range): Args changed.  Callers changed.
+       (char_table_set_range): Adjuted for the above change.
+       (map_sub_char_table): Delete args default_val and parent.  Add arg
+       top.  Give decoded values to a Lisp function.
+       (map_char_table): Adjusted for the above change.  Give decoded
+       values to a Lisp function.  Gcpro more variables.
+       (uniprop_table_uncompress)
+       (uniprop_decode_value_run_length): New functions.
+       (uniprop_decoder, uniprop_decoder_count): New variables.
+       (uniprop_get_decoder, uniprop_encode_value_character)
+       (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
+       New functions.
+       (uniprop_encoder, uniprop_encoder_count): New variables.
+       (uniprop_get_encoder, uniprop_table)
+       (Funicode_property_table_internal, Fget_unicode_property_internal)
+       (Fput_unicode_property_internal): New functions.
+       (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
+       Sunicode_property_table_internal, Sget_unicode_property_internal,
+       and Sput_unicode_property_internal. Defvar_lisp
+       char-code-property-alist.
+
+       * composite.c (CHAR_COMPOSABLE_P): Adjusted for the change of
+       Vunicode_category_table.
+
+       * font.c (font_range): Adjusted for the change of
+       Vunicode_category_table.
+
+2011-07-07  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * m/iris4d.h: Remove file, move contents ...
+       * s/irix6-5.h: ... here.
+
+2011-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove unportable assumption about struct layout (Bug#8884).
+       * alloc.c (mark_buffer):
+       * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
+       (clone_per_buffer_values): Don't assume that
+       sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
+       This isn't true in general, and it's particularly not true
+       if Emacs is configured with --with-wide-int.
+       * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
+       New macros, used in the buffer.c change.
+
+2011-07-05  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xsettings.c: Use both GConf and GSettings if both are available.
+       (store_config_changed_event): Add comment.
+       (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
+       (store_tool_bar_style_changed): New functions.
+       (store_monospaced_changed): Add comment. Call dpyinfo_valid.
+       (struct xsettings): Move font inside HAVE_XFT.
+       (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
+       (GSETTINGS_MONO_FONT): Renamed from SYSTEM_MONO_FONT.
+       Move inside HAVE_XFT.
+       (something_changed_gsettingsCB): Renamed from something_changedCB.
+       Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
+       also.
+       (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
+       (GCONF_MONO_FONT): Renamed from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
+       (something_changed_gconfCB): Renamed from something_changedCB.
+       Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
+       (parse_settings): Move check for font inside HAVE_XFT.
+       (read_settings, apply_xft_settings): Add comment.
+       (read_and_apply_settings): Add comment.  Call map_tool_bar_style and
+       store_tool_bar_style_changed.  Move check for font inside HAVE_XFT and
+       call store_font_name_changed.
+       (xft_settings_event): Add comment.
+       (init_gsettings): Add comment.  Get values for GSETTINGS_TOOL_BAR_STYLE
+       and GSETTINGS_FONT_NAME.  Move check for fonts within HAVE_XFT.
+       (init_gconf): Add comment.  Get values for GCONF_TOOL_BAR_STYLE
+       and GCONF_FONT_NAME.  Move check for fonts within HAVE_XFT.
+       (xsettings_initialize): Call init_gsettings last.
+       (xsettings_get_system_font, xsettings_get_system_normal_font): Add
+       comment.
+
+2011-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Random fixes.  E.g., (random) never returned negative values.
+       * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
+       subseconds part to the entropy, as that's a bit more random.
+       Prefer signed to unsigned, since the signedness doesn't matter and
+       in general we prefer signed.  When given a limit, use a
+       denominator equal to INTMASK + 1, not to VALMASK + 1, because the
+       latter isn't right if USE_2_TAGS_FOR_INTS.
+       * sysdep.c (get_random): Return a value in the range 0..INTMASK,
+       not 0..VALMASK.  Don't discard "excess" bits that random () returns.
+
+2011-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * textprop.c (text_property_stickiness):
+       Obey Vtext_property_default_nonsticky.
+       (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
+       * w32fns.c (syms_of_w32fns):
+       * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
+
+2011-07-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
+       This is more efficient than Ffile_directory_p and avoids a minor race.
+
+2011-07-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * buffer.c (Foverlay_put): Say what the return value is
+       (bug#7835).
+
+       * fileio.c (barf_or_query_if_file_exists): Check first if the file
+       is a directory before asking whether to use the file name
+       (bug#7564).
+       (barf_or_query_if_file_exists): Make the "File is a directory"
+       error be more correct.
+
+       * fns.c (Frequire): Remove the mention of the .gz files, since
+       that's installation-specific, but keep the mention of
+       `get-load-suffixes'.
+
+2011-07-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
+       Report string overflow if the output is too long.
+
+2011-07-04  Juanma Barranquero  <lekktu@gmail.com>
+
+       * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
+       (syms_of_gnutls): Remove duplicate DEFSYM for
+       Qgnutls_bootprop_verify_hostname_error, an error for
+       Qgnutls_bootprop_verify_error (which is no longer used).
+
+       * eval.c (find_handler_clause): Remove parameters `sig' and `data',
+       unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca.  All callers changed.
+       Also (re)move comments that are misplaced or no longer relevant.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
+
+2011-07-03  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
+       and background color parameters if they have been changed.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
+
+2011-07-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xsettings.c (SYSTEM_FONT): Define only when used.
+       No need to define when HAVE_GSETTINGS || !HAVE_XFT.
+
+       * keymap.c (access_keymap_1): Now static.
+
+2011-07-02  Chong Yidong  <cyd@stupidchicken.com>
+
+       * keyboard.c (command_loop_1): If a down-mouse event is unbound,
+       leave any prefix arg for the up event (Bug#1586).
+
+2011-07-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * lread.c (syms_of_lread): Mention single symbols defined by
+       `defvar' or `defconst' (bug#7154).
+
+       * fns.c (Frequire): Mention .el.gz files (bug#7314).
+       (Frequire): Mention get-load-suffixes.
+
+2011-07-02  Martin Rudalics  <rudalics@gmx.at>
 
+       * window.h (window): Remove clone_number slot.
+       * window.c (Fwindow_clone_number, Fset_window_clone_number):
+       Remove.
+       (make_parent_window, make_window, saved_window)
+       (Fset_window_configuration, save_window_save): Don't deal with
+       clone numbers.
+       * buffer.c (Qclone_number): Remove declaration.
+       (sort_overlays, overlay_strings): Don't deal with clone numbers.
+
+2011-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Add multiple inheritance to keymaps.
+       * keymap.c (Fmake_composed_keymap): New function.
+       (Fset_keymap_parent): Simplify.
+       (fix_submap_inheritance): Remove.
+       (access_keymap_1): New function extracted from access_keymap to handle
+       embedded parents and handle lists of maps.
+       (access_keymap): Use it.
+       (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
+       (Fcopy_keymap): Handle embedded parents.
+       (Fcommand_remapping, define_as_prefix): Simplify.
+       (Fkey_binding): Simplify.
+       (syms_of_keymap): Move minibuffer-local-completion-map,
+       minibuffer-local-filename-completion-map,
+       minibuffer-local-must-match-map, and
+       minibuffer-local-filename-must-match-map to Elisp.
+       (syms_of_keymap): Defsubr make-composed-keymap.
+       * keyboard.c (menu_bar_items): Use map_keymap_canonical.
+       (parse_menu_item): Trivial simplification.
+
+2011-07-01  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (SETTINGS_LIBS): Fix typo.
+
+2011-07-01  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny patch)
+
+       * coding.c (Fencode_coding_string): Record the last coding system
+       used, as the function doc string says (bug#8738).
+
+2011-07-01  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xsettings.c (store_monospaced_changed): Take new font as arg and
+       check for change against current_mono_font.
+       (EMACS_TYPE_SETTINGS): Remove this and related defines.
+       (emacs_settings_constructor, emacs_settings_get_property)
+       (emacs_settings_set_property, emacs_settings_class_init)
+       (emacs_settings_init, gsettings_obj): Remove.
+       (something_changedCB): New function for HAVE_GSETTINGS.
+       (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
+       with value as argument.
+       (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
+       g_settings_new (Bug#8967).  Do not create gsettings_obj.
+       Remove calls to g_settings_bind.  Connect something_changedCB to
+       "changed".
+
+       * xgselect.c: Add defined (HAVE_GSETTINGS).
+       (xgselect_initialize): Ditto.
+
+       * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
+       (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
+       xg_select.
+
+2011-07-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * eval.c (struct backtrace): Simplify and port the data structure.
+       Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
+       signed bit field, as this assumption is not portable and it makes
+       Emacs crash when compiled with Sun C 5.8 on sparc.  Do not use
+       "char debug_on_exit : 1" as this is not portable either; instead,
+       use the portable "unsigned int debug_on_exit : 1".  Remove unused
+       member evalargs.  Remove obsolete comments about cc bombing out.
+
+2011-06-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
+       Let HAVE_GSETTINGS override HAVE_GCONF.
+       (store_monospaced_changed): New function.
+       (EMACS_SETTINGS): A new type derived from GObject to handle
+       GSettings notifications.
+       (emacs_settings_constructor, emacs_settings_get_property)
+       (emacs_settings_set_property, emacs_settings_class_init):
+       New functions.
+       (gsettings_client, gsettings_obj): New variables.
+       (GSETTINGS_SCHEMA): New define.
+       (something_changedCB): Call store_monospaced_changed.
+       (init_gsettings): New function.
+       (xsettings_initialize): Call init_gsettings.
+       (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
+       to NULL.
+
+       * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Renamed from
+       GCONF_CFLAGS/LIBS.
+
+2011-06-29  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.c (resize_root_window, grow_mini_window)
+       (shrink_mini_window): Rename Qresize_root_window to
+       Qwindow_resize_root_window and Qresize_root_window_vertically to
+       Qwindow_resize_root_window_vertically.
+
+2011-06-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
+
+2011-06-27  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in: Redesign dependencies so they reflect more
+       clearly which files are directly included by each source file,
+       and not through other includes.
+
+2011-06-27  Martin Rudalics  <rudalics@gmx.at>
+
+       * buffer.c (Qclone_number): Declare static and DEFSYM it.
+       (sort_overlays, overlay_strings): When an overlay's clone number
+       matches the window's clone number process the overlay even if
+       the overlay's window property doesn't match the current window.
+
+       * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
+       (Fwindow_hchild): Rename to Fwindow_left_child.
+       (Fwindow_next): Rename to Fwindow_next_sibling.
+       (Fwindow_prev): Rename to Fwindow_prev_sibling.
+       (resize_window_check): Rename to window_resize_check.
+       (resize_window_apply): Rename to window_resize_apply.
+       (Fresize_window_apply): Rename to Fwindow_resize_apply.
+       (Fdelete_other_windows_internal, resize_frame_windows)
+       (Fsplit_window_internal, Fdelete_window_internal)
+       (grow_mini_window, shrink_mini_window)
+       (Fresize_mini_window_internal): Fix callers accordingly.
+
+2011-06-26  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * emacsgtkfixed.h: State that this is only used with Gtk+3.
+       (emacs_fixed_set_min_size): Remove.
+       (emacs_fixed_new): Take frame as argument.
+
+       * emacsgtkfixed.c: State that this is only used with Gtk+3.
+       (_EmacsFixedPrivate): Remove minwidth/height.
+       Add struct frame *f.
+       (emacs_fixed_init): Initialize priv->f.
+       (get_parent_class, emacs_fixed_set_min_size): Remove.
+       (emacs_fixed_new): Set priv->f to argument.
+       (emacs_fixed_get_preferred_width)
+       (emacs_fixed_get_preferred_height): Use min_width/height from
+       frames size_hint to set minimum and natural (Bug#8919).
+       (XSetWMSizeHints, XSetWMNormalHints): Override these functions
+       and use min_width/height from frames size_hint to set
+       min_width/height (Bug#8919).
+
+       * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
+       (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
+       Fix indentation.
+
+2011-06-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
+       bidi_at_paragraph_end, since fast_looking_at doesn't like to be
+       called at ZV.
+
+2011-06-26  Chong Yidong  <cyd@stupidchicken.com>
+
+       * process.c (wait_reading_process_output): Bypass select if
+       waiting for a cell while ignoring keyboard input, and input is
+       pending.  Suggested by Jan Djärv (Bug#8869).
+
+2011-06-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use gnulib's dup2 module instead of rolling our own.
+       * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
+
+2011-06-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * dispnew.c (scrolling_window): Before scrolling, turn off a
+       mouse-highlight in the window being scrolled.
+
+2011-06-24  Juanma Barranquero  <lekktu@gmail.com>
+
+       Move DEFSYM to lisp.h and use everywhere.
+
+       * character.h (DEFSYM): Move declaration...
+       * lisp.h (DEFSYM): ...here.
+
+       * gnutls.c:
+       * minibuf.c:
+       * w32menu.c:
+       * w32proc.c:
+       * w32select.c: Don't include character.h.
+
+       * alloc.c (syms_of_alloc):
+       * buffer.c (syms_of_buffer):
+       * bytecode.c (syms_of_bytecode):
+       * callint.c (syms_of_callint):
+       * casefiddle.c (syms_of_casefiddle):
+       * casetab.c (init_casetab_once):
+       * category.c (init_category_once, syms_of_category):
+       * ccl.c (syms_of_ccl):
+       * cmds.c (syms_of_cmds):
+       * composite.c (syms_of_composite):
+       * dbusbind.c (syms_of_dbusbind):
+       * dired.c (syms_of_dired):
+       * dispnew.c (syms_of_display):
+       * doc.c (syms_of_doc):
+       * editfns.c (syms_of_editfns):
+       * emacs.c (syms_of_emacs):
+       * eval.c (syms_of_eval):
+       * fileio.c (syms_of_fileio):
+       * fns.c (syms_of_fns):
+       * frame.c (syms_of_frame):
+       * fringe.c (syms_of_fringe):
+       * insdel.c (syms_of_insdel):
+       * keymap.c (syms_of_keymap):
+       * lread.c (init_obarray, syms_of_lread):
+       * macros.c (syms_of_macros):
+       * msdos.c (syms_of_msdos):
+       * print.c (syms_of_print):
+       * process.c (syms_of_process):
+       * search.c (syms_of_search):
+       * sound.c (syms_of_sound):
+       * syntax.c (init_syntax_once, syms_of_syntax):
+       * terminal.c (syms_of_terminal):
+       * textprop.c (syms_of_textprop):
+       * undo.c (syms_of_undo):
+       * w32.c (globals_of_w32):
+       * window.c (syms_of_window):
+       * xdisp.c (syms_of_xdisp):
+       * xfaces.c (syms_of_xfaces):
+       * xfns.c (syms_of_xfns):
+       * xmenu.c (syms_of_xmenu):
+       * xsettings.c (syms_of_xsettings):
+       * xterm.c (syms_of_xterm): Use DEFSYM.
+
+2011-06-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
+
+2011-06-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Integer and buffer overflow fixes (Bug#8873).
+
+       * print.c (printchar, strout): Check for string overflow.
+       (PRINTPREPARE, printchar, strout):
+       Don't set size unless allocation succeeds.
+
+       * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
+       for sizes.  Check for string overflow more accurately.
+       Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
+
+       * macros.c: Integer and buffer overflow fixes.
+       * keyboard.h (struct keyboard.kbd_macro_bufsize):
+       * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
+       Use ptrdiff_t, not int, for sizes.
+       Don't increment bufsize until after realloc succeeds.
+       Check for size-calculation overflow.
+       (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
+
+       * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
+
+       * lread.c: Integer overflow fixes.
+       (read_integer): Radix is now EMACS_INT, not int,
+       to improve quality of diagnostics for out-of-range radices.
+       Calculate buffer size correctly for out-of-range radices.
+       (read1): Check for integer overflow in radices, and in
+       read-circle numbers.
+       (read_escape): Avoid int overflow.
+       (Fload, openp, read_buffer_size, read1)
+       (substitute_object_recurse, read_vector, read_list, map_obarray):
+       Use ptrdiff_t, not int, for sizes.
+       (read1): Use EMACS_INT, not int, for sizes.
+       Check for size overflow.
+
+       * image.c (cache_image): Check for size arithmetic overflow.
+
+       * lread.c: Integer overflow issues.
+       (saved_doc_string_size, saved_doc_string_length)
+       (prev_saved_doc_string_size, prev_saved_doc_string_length):
+       Now ptrdiff_t, not int.
+       (read1): Don't assume doc string length fits in int.  Check for
+       out-of-range doc string lengths.
+       (read_list): Don't assume file position fits in int.
+       (read_escape): Check for hex character overflow.
+
+2011-06-22  Leo Liu  <sdl.web@gmail.com>
+
+       * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
+       Move to minibuffer.el.
+
+2011-06-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
+       The following patches are for when GLYPH_DEBUG && !XASSERT.
+       * dispextern.h (trace_redisplay_p, dump_glyph_string):
+       * dispnew.c (flush_stdout):
+       * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
+       Mark as externally visible.
+       * dispnew.c (check_window_matrix_pointers): Now static.
+       * dispnew.c (window_to_frame_vpos):
+       * xfns.c (unwind_create_frame):
+       * xterm.c (x_check_font): Remove unused local.
+       * scroll.c (CHECK_BOUNDS):
+       * xfaces.c (cache_fache): Rename local to avoid shadowing.
+       * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
+       * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
+       (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
+       (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
+       Now static.
+       (debug_method_add): Use va_list and vsprintf rather than relying
+       on undefined behavior with wrong number of arguments.
+       (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
+       Don't assume ptrdiff_t and EMACS_INT are the same width as int.
+       In this code, it's OK to assume C99 behavior for ptrdiff_t formats
+       since we're not interested in debugging glyphs with old libraries.
+       * xfaces.c (cache_face): Move debugging code earlier; this pacifies
+       GCC 4.6.0's static checking.
+
+2011-06-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Integer overflow and signedness fixes (Bug#8873).
+       A few related buffer overrun fixes, too.
+
+       * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
+
+       * dispextern.h (struct face.stipple):
+       * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+       (x_bitmap_mask, x_allocate_bitmap_record)
+       (x_create_bitmap_from_data, x_create_bitmap_from_file)
+       (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
+       (x_create_bitmap_from_xpm_data):
+       * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
+       * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
+       (.bitmaps_last):
+       * xfaces.c (load_pixmap):
+       * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
+       * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
+       (.bitmaps_last, struct x_output.icon_bitmap):
+       Use ptrdiff_t, not int, for bitmap indexes.
+       (x_allocate_bitmap_record): Check for size overflow.
+       * dispextern.h, lisp.h: Adjust to API changes elsewhere.
+
+       Use ptrdiff_t, not int, for overlay counts.
+       * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
+       * editfns.c (overlays_around, get_pos_property):
+       * textprop.c (get_char_property_and_overlay):
+       * xdisp.c (next_overlay_change, note_mouse_highlight):
+       * xfaces.c (face_at_buffer_position):
+       * buffer.c (OVERLAY_COUNT_MAX): New macro.
+       (overlays_at, overlays_in, sort_overlays, Foverlays_at)
+       (Fnext_overlay_change, Fprevious_overlay_change)
+       (mouse_face_overlay_overlaps, Foverlays_in):
+       Use ptrdiff_t, not int, for sizes.
+       (overlays_at, overlays_in): Check for size-calculation overflow.
+
+       * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
+
+       * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
+       (x_session_initialize): Do not assume string length fits in int.
+
+       * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
+       This is unlikely, but can occur if DPI is outlandish.
+
+       * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
+       * xselect.c (Fx_get_atom_name): Avoid need for strlen.
+
+       * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
+       * xrdb.c (magic_file_p, search_magic_path):
+       Omit last arg SUFFIX; it was always 0.  All callers changed.
+       (magic_file_p): Use ptrdiff_t, not int.  Check for size overflow.
+
+       * xfont.c (xfont_match): Avoid need for strlen.
+
+       * xfns.c: Don't assume strlen fits in int.
+       (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
+
+       * xdisp.c (message_log_check_duplicate): Return intmax_t,
+       not unsigned long, as we prefer signed integers.  All callers changed.
+       Detect integer overflow in repeat count.
+       (message_dolog): Don't assume print length fits in 39 bytes.
+       (display_mode_element): Don't assume strlen fits in int.
+
+       * termcap.c: Don't assume sizes fit in int and never overflow.
+       (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
+       (gobble_line): Check for size-calculation overflow.
+
+       * minibuf.c (Fread_buffer):
+       * lread.c (intern, intern_c_string):
        * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
        Don't assume string length fits in int.
 
+       * keyboard.c (parse_tool_bar_item):
        * gtkutil.c (style_changed_cb): Avoid need for strlen.
 
        * font.c: Don't assume string length fits in int.
        * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
 
        * filelock.c: Fix some buffer overrun and integer overflow issues.
-       (get_boot_time): Don't assume that gzip command string fits in 100 bytes.
+       (get_boot_time): Don't assume gzip command string fits in 100 bytes.
        Reformulate so as not to need the command string.
        Invoke gzip -cd rather than gunzip, as it's more portable.
        (lock_info_type, lock_file_1, lock_file):
        Check for time_t and/or pid_t out of range, e.g., via a network share.
        Don't alloca where an auto var works fine.
 
-2011-06-19  Paul Eggert  <eggert@cs.ucla.edu>
-
        * fileio.c: Fix some integer overflow issues.
        (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
        Don't assume string length fits in int.
        All uses changed.  This doesn't fix a bug, but it simplifies the
        code away from its former Hollerith-constant appearance, and it's
        one less 'int' to worry about when looking at integer-overflow issues.
-       (string_to_number): Simplify the 2011-04-26 change by invoking xsignal1.
+       (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
 
        * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
        This didn't break anything, but it didn't help either.
        (LIST_END_P): Remove unused macro and its bogus comment.
        (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
 
-2011-06-18  Paul Eggert  <eggert@cs.ucla.edu>
-
        * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
        This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
        implementation.
        (compute_motion): Use it.  This is just for clarity.
        (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
 
-       * image.c (xbm_image_p): Don't assume stated width and height fit in int.
+       * image.c (xbm_image_p): Don't assume stated width, height fit in int.
 
        * lisp.h (lint_assume): New macro.
        * composite.c (composition_gstring_put_cache):
        * fns.c (concat): Catch string overflow earlier.
        Do not rely on integer wraparound.
 
-       * dispextern.h (struct it.overlay_strings_charpos): EMACS_INT, not int.
-
-2011-06-17  Paul Eggert  <eggert@cs.ucla.edu>
-
-       * dispextern.h (struct it.selective): Now EMACS_INT, not int.
+       * dispextern.h (struct it.overlay_strings_charpos)
+       (struct it.selective): Now EMACS_INT, not int.
        * xdisp.c (forward_to_next_line_start)
        (back_to_previous_visible_line_start)
        (reseat_at_next_visible_line_start, next_element_from_buffer):
        (record_overlay_string): Check for size-calculation overflow.
        (init_buffer_once): Check at compile-time, not run-time.
 
+2011-06-22  Jim Meyering  <meyering@redhat.com>
+
+       Don't leak an XBM-image-sized buffer
+       * image.c (xbm_load): Free the image buffer after using it.
+
+2011-06-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to Sun C.
+       * composite.c (find_automatic_composition): Omit needless 'return 0;'
+       that Sun C diagnosed.
+       * fns.c (secure_hash): Fix pointer signedness issue.
+       * intervals.c (static_offset_intervals): New function.
+       (offset_intervals): Use it.
+
+2011-06-21  Leo Liu  <sdl.web@gmail.com>
+
+       * deps.mk (fns.o):
+       * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
+       sha512.h.
+
+       * fns.c (secure_hash): Rename from crypto_hash_function and change
+       the first arg to accept symbols.
+       (Fsecure_hash): New primitive.
+       (syms_of_fns): New symbols.
+
+2011-06-20  Deniz Dogan  <deniz@dogan.se>
+
+       * process.c (Fset_process_buffer): Clarify return value in
+       docstring.
+
+2011-06-18  Chong Yidong  <cyd@stupidchicken.com>
+
+       * dispnew.c (add_window_display_history): Use BVAR.
+
+       * xdisp.c (debug_method_add): Use BVAR.
+       (check_window_end, dump_glyph_matrix, dump_glyph)
+       (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
+
+       * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
+       Likewise.
+
+       * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
+       check till after the cache is created in init_frame_faces.
+
+2011-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
+
 2011-06-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
        and %.0c.  Fix bug with strchr succeeding on '\0' when looking for
        flags.  Fix bug with (format "%c" 256.0).  Avoid integer overflow when
        formatting out-of-range floating point numbers with int
-       formats. (Bug#8668)
+       formats.  (Bug#8668)
 
        * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
 
        :verify-hostname-error, :verify-error, and :verify-flags
        parameters of `gnutls-boot' and documented those parameters in the
        docstring.  Start callback support.
-       (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
-       unless a fatal error occured. Call gnutls_alert_send_appropriate
-       on error. Return error code.
+       (emacs_gnutls_handshake): Add Woe32 support.  Retry handshake
+       unless a fatal error occurred.  Call gnutls_alert_send_appropriate
+       on error.  Return error code.
        (emacs_gnutls_write): Call emacs_gnutls_handle_error.
        (emacs_gnutls_read): Likewise.
        (Fgnutls_boot): Return handshake error code.