X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/74ca2eb34bb66901b04d33cbef16ff7c8d8df551..412f24b9ddf1e07022f8c5fe05f0717f130c4c02:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index 4928e20936..9186061530 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,8 +1,584 @@ -2011-06-20 Paul Eggert +2011-07-07 Kenichi Handa + + * 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 + + * term.c (produce_glyphs) : Allow IT_GLYPHLESS in it->what. + (Bug#9015) + +2011-07-07 Kenichi Handa + + * 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 + + * m/iris4d.h: Remove file, move contents ... + * s/irix6-5.h: ... here. + +2011-07-06 Paul Eggert + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813). + +2011-07-03 Chong Yidong + + * 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 + + * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659). + +2011-07-03 Paul Eggert + + * 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 + + * 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 + + * 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 + * 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 + + 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 + + * Makefile.in (SETTINGS_LIBS): Fix typo. + +2011-07-01 Kazuhiro Ito (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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var. + +2011-06-27 Juanma Barranquero + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * dispnew.c (scrolling_window): Before scrolling, turn off a + mouse-highlight in the window being scrolled. + +2011-06-24 Juanma Barranquero + + 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 + + * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h. + +2011-06-23 Paul Eggert + + 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 + + * minibuf.c (Fcompleting_read_default, Vcompleting_read_function): + Move to minibuffer.el. + +2011-06-22 Paul Eggert + + 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 + + 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. @@ -13,7 +589,7 @@ * 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): @@ -25,8 +601,6 @@ 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 - * 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. @@ -58,7 +632,7 @@ 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. @@ -67,8 +641,6 @@ (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 - * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT. This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE, implementation. @@ -84,7 +656,7 @@ (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): @@ -108,11 +680,8 @@ * 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 - - * 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): @@ -138,6 +707,54 @@ (record_overlay_string): Check for size-calculation overflow. (init_buffer_once): Check at compile-time, not run-time. +2011-06-22 Jim Meyering + + Don't leak an XBM-image-sized buffer + * image.c (xbm_load): Free the image buffer after using it. + +2011-06-21 Paul Eggert + + 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 + + * 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 + + * process.c (Fset_process_buffer): Clarify return value in + docstring. + +2011-06-18 Chong Yidong + + * 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 + + * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup. + 2011-06-16 Paul Eggert * lisp.h: Include , for INT_MAX, LONG_MAX, LLONG_MAX. @@ -1286,7 +1903,7 @@ 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. @@ -2250,9 +2867,9 @@ :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.