-2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
+2011-07-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * image.c: Integer signedness and overflow and related fixes.
+ This is not an exhaustive set of fixes, but it's time to
+ record what I've got.
+ (lookup_pixel_color, check_image_size): Remove redundant decls.
+ (check_image_size): Don't assume that arbitrary EMACS_INT values
+ fit in 'int', or that arbitrary 'double' values fit in 'int'.
+ (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
+ (tiff_load, imagemagick_load_image):
+ Check for overflow in size calculations.
+ (x_create_x_image_and_pixmap): Remove unnecessary test for
+ xmalloc returning NULL; that can't happen.
+ (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
+ (xpm_color_bucket): Use better integer hashing function.
+ (xpm_cache_color): Don't possibly over-allocate memory.
+ (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
+ (gif_memory_source):
+ Use ptrdiff_t, not int or size_t, to record sizes.
+ (png_load): Don't assume values greater than 2**31 fit in 'int'.
+ (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
+ either works, as we prefer signed integers.
+ (tiff_read_from_memory, tiff_write_from_memory):
+ Return tsize_t, not size_t, since that's what the TIFF API wants.
+ (tiff_read_from_memory): Don't fail simply because the read would
+ go past EOF; instead, return a short read.
+ (tiff_load): Omit no-longer-needed casts.
+ (Fimagemagick_types): Don't assume size fits into 'int'.
+
+2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ Improve hashing quality when configured --with-wide-int.
+ * fns.c (hash_string): New function, taken from sxhash_string.
+ Do not discard information about ASCII character case; this
+ discarding is no longer needed.
+ (sxhash-string): Use it. Change sig to match it. Caller changed.
+ * lisp.h: Declare it.
+ * lread.c (hash_string): Remove, since we now use fns.c's version.
+ The fns.c version returns a wider integer if --with-wide-int is
+ specified, so this should help the quality of the hashing a bit.
+
+2011-07-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * emacs.c: Integer overflow minor fix.
+ (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
+ Define only if GNU_LINUX.
+ (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
+
+ * dispnew.c: Integer signedness and overflow fixes.
+ Remove unnecessary forward decls, that were a maintenance hassle.
+ (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
+ All uses changed.
+ (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
+ (scrolling_window): Use ptrdiff_t, not int, for byte count.
+ (prepare_desired_row, line_draw_cost):
+ Use int, not unsigned, where either works.
+ (save_current_matrix, restore_current_matrix):
+ Use ptrdiff_t, not size_t, where either works.
+ (init_display): Check for overflow more accurately, and without
+ relying on undefined behavior.
+
+ * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
+ Remove, replacing with the new symbols in lisp.h. All uses changed.
+ * fileio.c (make_temp_name):
+ * filelock.c (lock_file_1, lock_file):
+ * xdisp.c (message_dolog):
+ Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
+ Use pMd etc. instead.
+ * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
+ replacing the pWIDE etc. symbols removed from editfns.c.
+
+ * keyboard.h (num_input_events): Now uintmax_t.
+ This is (very slightly) less likely to mess up due to wraparound.
+ All uses changed.
+
+ * buffer.c: Integer signedness fixes.
+ (alloc_buffer_text, enlarge_buffer_text):
+ Use ptrdiff_t rather than size_t when either will do, as we prefer
+ signed integers.
+
+ * bidi.c: Integer signedness and overflow fixes.
+ (bidi_cache_idx, bidi_cache_last_idx, bidi_cache_fetch_state)
+ (bidi_cache_search, bidi_cache_find_level_change)
+ (bidi_cache_iterator_state, bidi_cache_find, bidi_find_other_level_edge)
+ (bidi_dump_cached_states):
+ Don't arbitrarily limit cache indexes to int; use ptrdiff_t instead.
+ (bidi_cache_size): Use ptrdiff_t rather than size_t, as we prefer
+ signed integers.
+ (elsz): Make it a (signed) constant.
+ (bidi_cache_iterator_state): Check for size-calculation overflow.
+
+ * alloc.c: Integer signedness and overflow fixes.
+ Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
+ (__malloc_size_t): Default to size_t, not to int.
+ (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
+ (Fgarbage_collect, mark_object_loop_halt, mark_object):
+ Prefer ptrdiff_t to size_t when either would do, as we prefer
+ signed integers.
+ (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
+ (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
+ Now const. Initialize with values that are in range even if char
+ is signed.
+ (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
+ (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
+ These functions do the right thing with sizes > 2**32.
+ (check_depth): Now ptrdiff_t, not int.
+ (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
+ Adjust to new way of storing sizes. Check for size overflow bugs
+ in rest of code.
+ (STRING_BYTES_MAX): Adjust to new overheads. The old code was
+ slightly wrong anyway, as it missed one instance of
+ XMALLOC_OVERRUN_CHECK_OVERHEAD.
+ (refill_memory_reserve): Omit needless cast to size_t.
+ (mark_object_loop_halt): Mark as externally visible.
+
+ * xselect.c: Integer signedness and overflow fixes.
+ (Fx_register_dnd_atom, x_handle_dnd_message):
+ Use ptrdiff_t, not size_t, since we prefer signed.
+ (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
+ * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
+ x_dnd_atoms_size and x_dnd_atoms_length.
+
+ * doprnt.c: Prefer signed to unsigned when either works.
+ * eval.c (verror):
+ * doprnt.c (doprnt):
+ * lisp.h (doprnt):
+ * xdisp.c (vmessage):
+ Use ptrdiff_t, not size_t, when using or implementing doprnt,
+ since the sizes cannot exceed ptrdiff_t bounds anyway, and we
+ prefer signed arithmetic to avoid comparison confusion.
+ * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
+ but is a bit tricky.
+
+ Assume freestanding C89 headers, string.h, stdlib.h.
+ * data.c, doprnt.c, floatfns.c, print.c:
+ Include float.h unconditionally.
+ * gmalloc.c: Assume C89-at-least behavior for preprocessor,
+ limits.h, stddef.h, string.h. Use memset instead of 'flood'.
+ * regex.c: Likewise for stddef.h, string.h.
+ (ISASCII): Remove; can assume it returns 1 now. All uses removed.
+ * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
+ * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
+ (STDC_HEADERS): Remove obsolete defines.
+ * sysdep.c: Include limits.h unconditionally.
+
+2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ Assume support for memcmp, memcpy, memmove, memset.
+ * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
+ * regex.c (memcmp, memcpy):
+ Remove; we assume C89 now.
+
+ * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
+ (__malloc_safe_bcopy): Remove; no longer needed.
+
+ * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
+ Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
+ well either way, and we prefer signed to unsigned.
+
+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.
(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
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.