commit f66b16c3659ed3d58ce700190b22001db77d9bfd (HEAD, refs/remotes/origin/master) Author: Oleh Krehel Date: Thu Apr 23 12:36:22 2015 +0200 Remove the deprecated INTERNAL_FIELD macro by expanding it * src/lisp.h (INTERNAL_FIELD): Remove. (DEFVAR_KBOARD): Modify accordingly. * alloc.c, buffer.c, buffer.h, category.c, keyboard.c, keyboard.h: * syntax.c: Adjust users. * src/buffer.c (compact_buffer): Use BVAR. diff --git a/src/alloc.c b/src/alloc.c index 1f4b1a4..688363d 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -4496,7 +4496,7 @@ live_buffer_p (struct mem_node *m, void *p) must not have been killed. */ return (m->type == MEM_TYPE_BUFFER && p == m->start - && !NILP (((struct buffer *) p)->INTERNAL_FIELD (name))); + && !NILP (((struct buffer *) p)->name_)); } #endif /* GC_MARK_STACK || defined GC_MALLOC_CHECK */ diff --git a/src/buffer.c b/src/buffer.c index 332d6d5..b09676c 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -134,227 +134,227 @@ CHECK_OVERLAY (Lisp_Object x) static void bset_abbrev_mode (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (abbrev_mode) = val; + b->abbrev_mode_ = val; } static void bset_abbrev_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (abbrev_table) = val; + b->abbrev_table_ = val; } static void bset_auto_fill_function (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (auto_fill_function) = val; + b->auto_fill_function_ = val; } static void bset_auto_save_file_format (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (auto_save_file_format) = val; + b->auto_save_file_format_ = val; } static void bset_auto_save_file_name (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (auto_save_file_name) = val; + b->auto_save_file_name_ = val; } static void bset_backed_up (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (backed_up) = val; + b->backed_up_ = val; } static void bset_begv_marker (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (begv_marker) = val; + b->begv_marker_ = val; } static void bset_bidi_display_reordering (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (bidi_display_reordering) = val; + b->bidi_display_reordering_ = val; } static void bset_buffer_file_coding_system (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (buffer_file_coding_system) = val; + b->buffer_file_coding_system_ = val; } static void bset_case_fold_search (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (case_fold_search) = val; + b->case_fold_search_ = val; } static void bset_ctl_arrow (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (ctl_arrow) = val; + b->ctl_arrow_ = val; } static void bset_cursor_in_non_selected_windows (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (cursor_in_non_selected_windows) = val; + b->cursor_in_non_selected_windows_ = val; } static void bset_cursor_type (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (cursor_type) = val; + b->cursor_type_ = val; } static void bset_display_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (display_table) = val; + b->display_table_ = val; } static void bset_extra_line_spacing (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (extra_line_spacing) = val; + b->extra_line_spacing_ = val; } static void bset_file_format (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (file_format) = val; + b->file_format_ = val; } static void bset_file_truename (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (file_truename) = val; + b->file_truename_ = val; } static void bset_fringe_cursor_alist (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (fringe_cursor_alist) = val; + b->fringe_cursor_alist_ = val; } static void bset_fringe_indicator_alist (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (fringe_indicator_alist) = val; + b->fringe_indicator_alist_ = val; } static void bset_fringes_outside_margins (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (fringes_outside_margins) = val; + b->fringes_outside_margins_ = val; } static void bset_header_line_format (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (header_line_format) = val; + b->header_line_format_ = val; } static void bset_indicate_buffer_boundaries (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (indicate_buffer_boundaries) = val; + b->indicate_buffer_boundaries_ = val; } static void bset_indicate_empty_lines (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (indicate_empty_lines) = val; + b->indicate_empty_lines_ = val; } static void bset_invisibility_spec (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (invisibility_spec) = val; + b->invisibility_spec_ = val; } static void bset_left_fringe_width (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (left_fringe_width) = val; + b->left_fringe_width_ = val; } static void bset_major_mode (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (major_mode) = val; + b->major_mode_ = val; } static void bset_mark (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (mark) = val; + b->mark_ = val; } static void bset_minor_modes (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (minor_modes) = val; + b->minor_modes_ = val; } static void bset_mode_line_format (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (mode_line_format) = val; + b->mode_line_format_ = val; } static void bset_mode_name (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (mode_name) = val; + b->mode_name_ = val; } static void bset_name (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (name) = val; + b->name_ = val; } static void bset_overwrite_mode (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (overwrite_mode) = val; + b->overwrite_mode_ = val; } static void bset_pt_marker (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (pt_marker) = val; + b->pt_marker_ = val; } static void bset_right_fringe_width (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (right_fringe_width) = val; + b->right_fringe_width_ = val; } static void bset_save_length (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (save_length) = val; + b->save_length_ = val; } static void bset_scroll_bar_width (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (scroll_bar_width) = val; + b->scroll_bar_width_ = val; } static void bset_scroll_bar_height (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (scroll_bar_height) = val; + b->scroll_bar_height_ = val; } static void bset_scroll_down_aggressively (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (scroll_down_aggressively) = val; + b->scroll_down_aggressively_ = val; } static void bset_scroll_up_aggressively (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (scroll_up_aggressively) = val; + b->scroll_up_aggressively_ = val; } static void bset_selective_display (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (selective_display) = val; + b->selective_display_ = val; } static void bset_selective_display_ellipses (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (selective_display_ellipses) = val; + b->selective_display_ellipses_ = val; } static void bset_vertical_scroll_bar_type (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (vertical_scroll_bar_type) = val; + b->vertical_scroll_bar_type_ = val; } static void bset_horizontal_scroll_bar_type (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (horizontal_scroll_bar_type) = val; + b->horizontal_scroll_bar_type_ = val; } static void bset_word_wrap (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (word_wrap) = val; + b->word_wrap_ = val; } static void bset_zv_marker (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (zv_marker) = val; + b->zv_marker_ = val; } void @@ -1591,7 +1591,7 @@ compact_buffer (struct buffer *buffer) turned off in that buffer. Calling truncate_undo_list on Qt tends to return NULL, which effectively turns undo back on. So don't call truncate_undo_list if undo_list is Qt. */ - if (!EQ (buffer->INTERNAL_FIELD (undo_list), Qt)) + if (!EQ (BVAR(buffer, undo_list), Qt)) truncate_undo_list (buffer); /* Shrink buffer gaps. */ diff --git a/src/buffer.h b/src/buffer.h index 81852ca..a0410d4 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -483,7 +483,7 @@ struct buffer_text /* Most code should use this macro to access Lisp fields in struct buffer. */ -#define BVAR(buf, field) ((buf)->INTERNAL_FIELD (field)) +#define BVAR(buf, field) ((buf)->field ## _) /* This is the structure that the buffer Lisp object points to. */ @@ -492,17 +492,17 @@ struct buffer struct vectorlike_header header; /* The name of this buffer. */ - Lisp_Object INTERNAL_FIELD (name); + Lisp_Object name_; /* The name of the file visited in this buffer, or nil. */ - Lisp_Object INTERNAL_FIELD (filename); + Lisp_Object filename_; /* Directory for expanding relative file names. */ - Lisp_Object INTERNAL_FIELD (directory); + Lisp_Object directory_; /* True if this buffer has been backed up (if you write to the visited file and it hasn't been backed up, then a backup will be made). */ - Lisp_Object INTERNAL_FIELD (backed_up); + Lisp_Object backed_up_; /* Length of file when last read or saved. -1 means auto saving turned off because buffer shrank a lot. @@ -510,132 +510,132 @@ struct buffer (That value is used with buffer-swap-text.) This is not in the struct buffer_text because it's not used in indirect buffers at all. */ - Lisp_Object INTERNAL_FIELD (save_length); + Lisp_Object save_length_; /* File name used for auto-saving this buffer. This is not in the struct buffer_text because it's not used in indirect buffers at all. */ - Lisp_Object INTERNAL_FIELD (auto_save_file_name); + Lisp_Object auto_save_file_name_; /* Non-nil if buffer read-only. */ - Lisp_Object INTERNAL_FIELD (read_only); + Lisp_Object read_only_; /* "The mark". This is a marker which may point into this buffer or may point nowhere. */ - Lisp_Object INTERNAL_FIELD (mark); + Lisp_Object mark_; /* Alist of elements (SYMBOL . VALUE-IN-THIS-BUFFER) for all per-buffer variables of this buffer. For locally unbound symbols, just the symbol appears as the element. */ - Lisp_Object INTERNAL_FIELD (local_var_alist); + Lisp_Object local_var_alist_; /* Symbol naming major mode (e.g., lisp-mode). */ - Lisp_Object INTERNAL_FIELD (major_mode); + Lisp_Object major_mode_; /* Pretty name of major mode (e.g., "Lisp"). */ - Lisp_Object INTERNAL_FIELD (mode_name); + Lisp_Object mode_name_; /* Mode line element that controls format of mode line. */ - Lisp_Object INTERNAL_FIELD (mode_line_format); + Lisp_Object mode_line_format_; /* Analogous to mode_line_format for the line displayed at the top of windows. Nil means don't display that line. */ - Lisp_Object INTERNAL_FIELD (header_line_format); + Lisp_Object header_line_format_; /* Keys that are bound local to this buffer. */ - Lisp_Object INTERNAL_FIELD (keymap); + Lisp_Object keymap_; /* This buffer's local abbrev table. */ - Lisp_Object INTERNAL_FIELD (abbrev_table); + Lisp_Object abbrev_table_; /* This buffer's syntax table. */ - Lisp_Object INTERNAL_FIELD (syntax_table); + Lisp_Object syntax_table_; /* This buffer's category table. */ - Lisp_Object INTERNAL_FIELD (category_table); + Lisp_Object category_table_; /* Values of several buffer-local variables. */ /* tab-width is buffer-local so that redisplay can find it in buffers that are not current. */ - Lisp_Object INTERNAL_FIELD (case_fold_search); - Lisp_Object INTERNAL_FIELD (tab_width); - Lisp_Object INTERNAL_FIELD (fill_column); - Lisp_Object INTERNAL_FIELD (left_margin); + Lisp_Object case_fold_search_; + Lisp_Object tab_width_; + Lisp_Object fill_column_; + Lisp_Object left_margin_; /* Function to call when insert space past fill column. */ - Lisp_Object INTERNAL_FIELD (auto_fill_function); + Lisp_Object auto_fill_function_; /* Case table for case-conversion in this buffer. This char-table maps each char into its lower-case version. */ - Lisp_Object INTERNAL_FIELD (downcase_table); + Lisp_Object downcase_table_; /* Char-table mapping each char to its upper-case version. */ - Lisp_Object INTERNAL_FIELD (upcase_table); + Lisp_Object upcase_table_; /* Char-table for conversion for case-folding search. */ - Lisp_Object INTERNAL_FIELD (case_canon_table); + Lisp_Object case_canon_table_; /* Char-table of equivalences for case-folding search. */ - Lisp_Object INTERNAL_FIELD (case_eqv_table); + Lisp_Object case_eqv_table_; /* Non-nil means do not display continuation lines. */ - Lisp_Object INTERNAL_FIELD (truncate_lines); + Lisp_Object truncate_lines_; /* Non-nil means to use word wrapping when displaying continuation lines. */ - Lisp_Object INTERNAL_FIELD (word_wrap); + Lisp_Object word_wrap_; /* Non-nil means display ctl chars with uparrow. */ - Lisp_Object INTERNAL_FIELD (ctl_arrow); + Lisp_Object ctl_arrow_; /* Non-nil means reorder bidirectional text for display in the visual order. */ - Lisp_Object INTERNAL_FIELD (bidi_display_reordering); + Lisp_Object bidi_display_reordering_; /* If non-nil, specifies which direction of text to force in all the paragraphs of the buffer. Nil means determine paragraph direction dynamically for each paragraph. */ - Lisp_Object INTERNAL_FIELD (bidi_paragraph_direction); + Lisp_Object bidi_paragraph_direction_; /* Non-nil means do selective display; see doc string in syms_of_buffer (buffer.c) for details. */ - Lisp_Object INTERNAL_FIELD (selective_display); + Lisp_Object selective_display_; /* Non-nil means show ... at end of line followed by invisible lines. */ - Lisp_Object INTERNAL_FIELD (selective_display_ellipses); + Lisp_Object selective_display_ellipses_; /* Alist of (FUNCTION . STRING) for each minor mode enabled in buffer. */ - Lisp_Object INTERNAL_FIELD (minor_modes); + Lisp_Object minor_modes_; /* t if "self-insertion" should overwrite; `binary' if it should also overwrite newlines and tabs - for editing executables and the like. */ - Lisp_Object INTERNAL_FIELD (overwrite_mode); + Lisp_Object overwrite_mode_; /* Non-nil means abbrev mode is on. Expand abbrevs automatically. */ - Lisp_Object INTERNAL_FIELD (abbrev_mode); + Lisp_Object abbrev_mode_; /* Display table to use for text in this buffer. */ - Lisp_Object INTERNAL_FIELD (display_table); + Lisp_Object display_table_; /* t means the mark and region are currently active. */ - Lisp_Object INTERNAL_FIELD (mark_active); + Lisp_Object mark_active_; /* Non-nil means the buffer contents are regarded as multi-byte form of characters, not a binary code. */ - Lisp_Object INTERNAL_FIELD (enable_multibyte_characters); + Lisp_Object enable_multibyte_characters_; /* Coding system to be used for encoding the buffer contents on saving. */ - Lisp_Object INTERNAL_FIELD (buffer_file_coding_system); + Lisp_Object buffer_file_coding_system_; /* List of symbols naming the file format used for visited file. */ - Lisp_Object INTERNAL_FIELD (file_format); + Lisp_Object file_format_; /* List of symbols naming the file format used for auto-save file. */ - Lisp_Object INTERNAL_FIELD (auto_save_file_format); + Lisp_Object auto_save_file_format_; /* True if the newline position cache, width run cache and BIDI paragraph cache are enabled. See search.c, indent.c and bidi.c for details. */ - Lisp_Object INTERNAL_FIELD (cache_long_scans); + Lisp_Object cache_long_scans_; /* If the width run cache is enabled, this table contains the character widths width_run_cache (see above) assumes. When we @@ -643,104 +643,104 @@ struct buffer current display table to see whether the display table has affected the widths of any characters. If it has, we invalidate the width run cache, and re-initialize width_table. */ - Lisp_Object INTERNAL_FIELD (width_table); + Lisp_Object width_table_; /* In an indirect buffer, or a buffer that is the base of an indirect buffer, this holds a marker that records PT for this buffer when the buffer is not current. */ - Lisp_Object INTERNAL_FIELD (pt_marker); + Lisp_Object pt_marker_; /* In an indirect buffer, or a buffer that is the base of an indirect buffer, this holds a marker that records BEGV for this buffer when the buffer is not current. */ - Lisp_Object INTERNAL_FIELD (begv_marker); + Lisp_Object begv_marker_; /* In an indirect buffer, or a buffer that is the base of an indirect buffer, this holds a marker that records ZV for this buffer when the buffer is not current. */ - Lisp_Object INTERNAL_FIELD (zv_marker); + Lisp_Object zv_marker_; /* This holds the point value before the last scroll operation. Explicitly setting point sets this to nil. */ - Lisp_Object INTERNAL_FIELD (point_before_scroll); + Lisp_Object point_before_scroll_; /* Truename of the visited file, or nil. */ - Lisp_Object INTERNAL_FIELD (file_truename); + Lisp_Object file_truename_; /* Invisibility spec of this buffer. t => any non-nil `invisible' property means invisible. A list => `invisible' property means invisible if it is memq in that list. */ - Lisp_Object INTERNAL_FIELD (invisibility_spec); + Lisp_Object invisibility_spec_; /* This is the last window that was selected with this buffer in it, or nil if that window no longer displays this buffer. */ - Lisp_Object INTERNAL_FIELD (last_selected_window); + Lisp_Object last_selected_window_; /* Incremented each time the buffer is displayed in a window. */ - Lisp_Object INTERNAL_FIELD (display_count); + Lisp_Object display_count_; /* Widths of left and right marginal areas for windows displaying this buffer. */ - Lisp_Object INTERNAL_FIELD (left_margin_cols); - Lisp_Object INTERNAL_FIELD (right_margin_cols); + Lisp_Object left_margin_cols_; + Lisp_Object right_margin_cols_; /* Widths of left and right fringe areas for windows displaying this buffer. */ - Lisp_Object INTERNAL_FIELD (left_fringe_width); - Lisp_Object INTERNAL_FIELD (right_fringe_width); + Lisp_Object left_fringe_width_; + Lisp_Object right_fringe_width_; /* Non-nil means fringes are drawn outside display margins; othersize draw them between margin areas and text. */ - Lisp_Object INTERNAL_FIELD (fringes_outside_margins); + Lisp_Object fringes_outside_margins_; /* Width, height and types of scroll bar areas for windows displaying this buffer. */ - Lisp_Object INTERNAL_FIELD (scroll_bar_width); - Lisp_Object INTERNAL_FIELD (scroll_bar_height); - Lisp_Object INTERNAL_FIELD (vertical_scroll_bar_type); - Lisp_Object INTERNAL_FIELD (horizontal_scroll_bar_type); + Lisp_Object scroll_bar_width_; + Lisp_Object scroll_bar_height_; + Lisp_Object vertical_scroll_bar_type_; + Lisp_Object horizontal_scroll_bar_type_; /* Non-nil means indicate lines not displaying text (in a style like vi). */ - Lisp_Object INTERNAL_FIELD (indicate_empty_lines); + Lisp_Object indicate_empty_lines_; /* Non-nil means indicate buffer boundaries and scrolling. */ - Lisp_Object INTERNAL_FIELD (indicate_buffer_boundaries); + Lisp_Object indicate_buffer_boundaries_; /* Logical to physical fringe bitmap mappings. */ - Lisp_Object INTERNAL_FIELD (fringe_indicator_alist); + Lisp_Object fringe_indicator_alist_; /* Logical to physical cursor bitmap mappings. */ - Lisp_Object INTERNAL_FIELD (fringe_cursor_alist); + Lisp_Object fringe_cursor_alist_; /* Time stamp updated each time this buffer is displayed in a window. */ - Lisp_Object INTERNAL_FIELD (display_time); + Lisp_Object display_time_; /* If scrolling the display because point is below the bottom of a window showing this buffer, try to choose a window start so that point ends up this number of lines from the top of the window. Nil means that scrolling method isn't used. */ - Lisp_Object INTERNAL_FIELD (scroll_up_aggressively); + Lisp_Object scroll_up_aggressively_; /* If scrolling the display because point is above the top of a window showing this buffer, try to choose a window start so that point ends up this number of lines from the bottom of the window. Nil means that scrolling method isn't used. */ - Lisp_Object INTERNAL_FIELD (scroll_down_aggressively); + Lisp_Object scroll_down_aggressively_; /* Desired cursor type in this buffer. See the doc string of per-buffer variable `cursor-type'. */ - Lisp_Object INTERNAL_FIELD (cursor_type); + Lisp_Object cursor_type_; /* An integer > 0 means put that number of pixels below text lines in the display of this buffer. */ - Lisp_Object INTERNAL_FIELD (extra_line_spacing); + Lisp_Object extra_line_spacing_; /* Cursor type to display in non-selected windows. t means to use hollow box cursor. See `cursor-type' for other values. */ - Lisp_Object INTERNAL_FIELD (cursor_in_non_selected_windows); + Lisp_Object cursor_in_non_selected_windows_; /* No more Lisp_Object beyond this point. Except undo_list, which is handled specially in Fgarbage_collect. */ @@ -872,7 +872,7 @@ struct buffer buffer of an indirect buffer. But we can't store it in the struct buffer_text because local variables have to be right in the struct buffer. So we copy it around in set_buffer_internal. */ - Lisp_Object INTERNAL_FIELD (undo_list); + Lisp_Object undo_list_; }; /* Most code should use these functions to set Lisp fields in struct @@ -881,102 +881,102 @@ struct buffer INLINE void bset_bidi_paragraph_direction (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (bidi_paragraph_direction) = val; + b->bidi_paragraph_direction_ = val; } INLINE void bset_cache_long_scans (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (cache_long_scans) = val; + b->cache_long_scans_ = val; } INLINE void bset_case_canon_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (case_canon_table) = val; + b->case_canon_table_ = val; } INLINE void bset_case_eqv_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (case_eqv_table) = val; + b->case_eqv_table_ = val; } INLINE void bset_directory (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (directory) = val; + b->directory_ = val; } INLINE void bset_display_count (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (display_count) = val; + b->display_count_ = val; } INLINE void bset_display_time (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (display_time) = val; + b->display_time_ = val; } INLINE void bset_downcase_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (downcase_table) = val; + b->downcase_table_ = val; } INLINE void bset_enable_multibyte_characters (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (enable_multibyte_characters) = val; + b->enable_multibyte_characters_ = val; } INLINE void bset_filename (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (filename) = val; + b->filename_ = val; } INLINE void bset_keymap (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (keymap) = val; + b->keymap_ = val; } INLINE void bset_last_selected_window (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (last_selected_window) = val; + b->last_selected_window_ = val; } INLINE void bset_local_var_alist (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (local_var_alist) = val; + b->local_var_alist_ = val; } INLINE void bset_mark_active (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (mark_active) = val; + b->mark_active_ = val; } INLINE void bset_point_before_scroll (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (point_before_scroll) = val; + b->point_before_scroll_ = val; } INLINE void bset_read_only (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (read_only) = val; + b->read_only_ = val; } INLINE void bset_truncate_lines (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (truncate_lines) = val; + b->truncate_lines_ = val; } INLINE void bset_undo_list (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (undo_list) = val; + b->undo_list_ = val; } INLINE void bset_upcase_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (upcase_table) = val; + b->upcase_table_ = val; } INLINE void bset_width_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (width_table) = val; + b->width_table_ = val; } /* Number of Lisp_Objects at the beginning of struct buffer. @@ -1253,7 +1253,7 @@ extern int last_per_buffer_idx; from the start of a buffer structure. */ #define PER_BUFFER_VAR_OFFSET(VAR) \ - offsetof (struct buffer, INTERNAL_FIELD (VAR)) + offsetof (struct buffer, VAR ## _) /* Used to iterate over normal Lisp_Object fields of struct buffer (all Lisp_Objects except undo_list). If you add, remove, or reorder diff --git a/src/category.c b/src/category.c index b20493e..ab90f5f 100644 --- a/src/category.c +++ b/src/category.c @@ -41,7 +41,7 @@ along with GNU Emacs. If not, see . */ static void bset_category_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (category_table) = val; + b->category_table_ = val; } /* The version number of the latest category table. Each category diff --git a/src/keyboard.c b/src/keyboard.c index bd79f90..c2739df 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -391,47 +391,47 @@ static void store_user_signal_events (void); static void kset_echo_string (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (echo_string) = val; + kb->echo_string_ = val; } static void kset_kbd_queue (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (kbd_queue) = val; + kb->kbd_queue_ = val; } static void kset_keyboard_translate_table (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vkeyboard_translate_table) = val; + kb->Vkeyboard_translate_table_ = val; } static void kset_last_prefix_arg (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vlast_prefix_arg) = val; + kb->Vlast_prefix_arg_ = val; } static void kset_last_repeatable_command (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vlast_repeatable_command) = val; + kb->Vlast_repeatable_command_ = val; } static void kset_local_function_key_map (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vlocal_function_key_map) = val; + kb->Vlocal_function_key_map_ = val; } static void kset_overriding_terminal_local_map (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Voverriding_terminal_local_map) = val; + kb->Voverriding_terminal_local_map_ = val; } static void kset_real_last_command (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vreal_last_command) = val; + kb->Vreal_last_command_ = val; } static void kset_system_key_syms (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (system_key_syms) = val; + kb->system_key_syms_ = val; } diff --git a/src/keyboard.h b/src/keyboard.h index 0ce6d18..bcdeaf6 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -25,7 +25,7 @@ INLINE_HEADER_BEGIN /* Most code should use this macro to access Lisp fields in struct kboard. */ -#define KVAR(kboard, field) ((kboard)->INTERNAL_FIELD (field)) +#define KVAR(kboard, field) ((kboard)->field ## _) /* Each KBOARD represents one logical input stream from which Emacs gets input. If we are using ordinary terminals, it has one KBOARD @@ -78,32 +78,32 @@ struct kboard can effectively wait for input in the any-kboard state, and hence avoid blocking out the other KBOARDs. See universal-argument in lisp/simple.el for an example. */ - Lisp_Object INTERNAL_FIELD (Voverriding_terminal_local_map); + Lisp_Object Voverriding_terminal_local_map_; /* Last command executed by the editor command loop, not counting commands that set the prefix argument. */ - Lisp_Object INTERNAL_FIELD (Vlast_command); + Lisp_Object Vlast_command_; /* Normally same as last-command, but never modified by other commands. */ - Lisp_Object INTERNAL_FIELD (Vreal_last_command); + Lisp_Object Vreal_last_command_; /* User-supplied table to translate input characters through. */ - Lisp_Object INTERNAL_FIELD (Vkeyboard_translate_table); + Lisp_Object Vkeyboard_translate_table_; /* Last command that may be repeated by `repeat'. */ - Lisp_Object INTERNAL_FIELD (Vlast_repeatable_command); + Lisp_Object Vlast_repeatable_command_; /* The prefix argument for the next command, in raw form. */ - Lisp_Object INTERNAL_FIELD (Vprefix_arg); + Lisp_Object Vprefix_arg_; /* Saved prefix argument for the last command, in raw form. */ - Lisp_Object INTERNAL_FIELD (Vlast_prefix_arg); + Lisp_Object Vlast_prefix_arg_; /* Unread events specific to this kboard. */ - Lisp_Object INTERNAL_FIELD (kbd_queue); + Lisp_Object kbd_queue_; /* Non-nil while a kbd macro is being defined. */ - Lisp_Object INTERNAL_FIELD (defining_kbd_macro); + Lisp_Object defining_kbd_macro_; /* The start of storage for the current keyboard macro. */ Lisp_Object *kbd_macro_buffer; @@ -125,28 +125,28 @@ struct kboard ptrdiff_t kbd_macro_bufsize; /* Last anonymous kbd macro defined. */ - Lisp_Object INTERNAL_FIELD (Vlast_kbd_macro); + Lisp_Object Vlast_kbd_macro_; /* Alist of system-specific X windows key symbols. */ - Lisp_Object INTERNAL_FIELD (Vsystem_key_alist); + Lisp_Object Vsystem_key_alist_; /* Cache for modify_event_symbol. */ - Lisp_Object INTERNAL_FIELD (system_key_syms); + Lisp_Object system_key_syms_; /* The kind of display: x, w32, ... */ - Lisp_Object INTERNAL_FIELD (Vwindow_system); + Lisp_Object Vwindow_system_; /* Keymap mapping keys to alternative preferred forms. See the DEFVAR for more documentation. */ - Lisp_Object INTERNAL_FIELD (Vlocal_function_key_map); + Lisp_Object Vlocal_function_key_map_; /* Keymap mapping ASCII function key sequences onto their preferred forms. Initialized by the terminal-specific lisp files. See the DEFVAR for more documentation. */ - Lisp_Object INTERNAL_FIELD (Vinput_decode_map); + Lisp_Object Vinput_decode_map_; /* Minibufferless frames on this display use this frame's minibuffer. */ - Lisp_Object INTERNAL_FIELD (Vdefault_minibuffer_frame); + Lisp_Object Vdefault_minibuffer_frame_; /* Number of displays using this KBOARD. Normally 1, but can be larger when you have multiple screens on a single X display. */ @@ -154,7 +154,7 @@ struct kboard /* The text we're echoing in the modeline - partial key sequences, usually. This is nil when not echoing. */ - Lisp_Object INTERNAL_FIELD (echo_string); + Lisp_Object echo_string_; /* This flag indicates that events were put into kbd_queue while Emacs was running for some other KBOARD. @@ -179,42 +179,42 @@ struct kboard INLINE void kset_default_minibuffer_frame (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vdefault_minibuffer_frame) = val; + kb->Vdefault_minibuffer_frame_ = val; } INLINE void kset_defining_kbd_macro (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (defining_kbd_macro) = val; + kb->defining_kbd_macro_ = val; } INLINE void kset_input_decode_map (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vinput_decode_map) = val; + kb->Vinput_decode_map_ = val; } INLINE void kset_last_command (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vlast_command) = val; + kb->Vlast_command_ = val; } INLINE void kset_last_kbd_macro (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vlast_kbd_macro) = val; + kb->Vlast_kbd_macro_ = val; } INLINE void kset_prefix_arg (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vprefix_arg) = val; + kb->Vprefix_arg_ = val; } INLINE void kset_system_key_alist (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vsystem_key_alist) = val; + kb->Vsystem_key_alist_ = val; } INLINE void kset_window_system (struct kboard *kb, Lisp_Object val) { - kb->INTERNAL_FIELD (Vwindow_system) = val; + kb->Vwindow_system_ = val; } /* Temporarily used before a frame has been opened. */ diff --git a/src/lisp.h b/src/lisp.h index 55c4c66..6d34ce3 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -1144,10 +1144,6 @@ LISP_MACRO_DEFUN_VOID (CHECK_TYPE, (int ok, Lisp_Object predicate, Lisp_Object x), (ok, predicate, x)) -/* Deprecated and will be removed soon. */ - -#define INTERNAL_FIELD(field) field ## _ - /* See the macros in intervals.h. */ typedef struct interval *INTERVAL; diff --git a/src/syntax.c b/src/syntax.c index 2f82156..1695815 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -186,7 +186,7 @@ static bool in_classes (int, Lisp_Object); static void bset_syntax_table (struct buffer *b, Lisp_Object val) { - b->INTERNAL_FIELD (syntax_table) = val; + b->syntax_table_ = val; } /* Whether the syntax of the character C has the prefix flag set. */ commit 4594f894e60a50e3b5449d762b44a6c69b1bcae6 Author: Glenn Morris Date: Tue Apr 28 23:32:09 2015 -0700 Replace an obsolete function alias * lisp/isearch.el (isearch-yank-x-selection): * lisp/mouse-copy.el (mouse-drag-secondary-pasting) (mouse-drag-secondary-moving): * lisp/obsolete/mouse-sel.el (mouse-sel-get-selection-function): Replace obsolete alias x-get-selection with gui-get-selection. diff --git a/lisp/isearch.el b/lisp/isearch.el index 35fb060..c714ba0 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1924,8 +1924,8 @@ If search string is empty, just beep." (defun isearch-yank-x-selection () "Pull current X selection into search string." (interactive) - (isearch-yank-string (x-get-selection)) - ;; If `x-get-selection' returned the text from the active region, + (isearch-yank-string (gui-get-selection)) + ;; If `gui-get-selection' returned the text from the active region, ;; then it "used" the mark which we should hence deactivate. (when select-active-regions (deactivate-mark))) diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el index 609713c..d3c3c80 100644 --- a/lisp/mouse-copy.el +++ b/lisp/mouse-copy.el @@ -177,7 +177,7 @@ put the point at one place, then click and drag over some other region." (mouse-copy-work-around-drag-bug start-event last-input-event)) ;; Remember what we do so we can undo it, if necessary. (setq mouse-copy-last-paste-start (point)) - (insert (x-get-selection 'SECONDARY)) + (insert (gui-get-selection 'SECONDARY)) (setq mouse-copy-last-paste-end (point))) (setq mouse-copy-last-paste-start nil))) @@ -216,7 +216,7 @@ by johnh@ficus.cs.ucla.edu." (if (mouse-drag-secondary start-event) (progn (mouse-kill-preserving-secondary) - (insert (x-get-selection 'SECONDARY)))) + (insert (gui-get-selection 'SECONDARY)))) ) (provide 'mouse-copy) diff --git a/lisp/obsolete/mouse-sel.el b/lisp/obsolete/mouse-sel.el index fcadedf..865a427 100644 --- a/lisp/obsolete/mouse-sel.el +++ b/lisp/obsolete/mouse-sel.el @@ -315,7 +315,7 @@ is `interprogram-cut-paste'.") (or (gui-selection-value) (bound-and-true-p x-last-selected-text-primary) gui--last-selected-text-primary) - (x-get-selection selection))) + (gui-get-selection selection))) "Function to call to get the selection. Called with one argument: commit b7352cb2fa65655dbf97cb7d80ebb1f77dffc039 Author: Stefan Monnier Date: Wed Apr 29 02:34:36 2015 -0400 * lisp/mail/rmailsum.el: Use lexical-binding. diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index 280539e..7097fef 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -1,4 +1,4 @@ -;;; rmailsum.el --- make summary buffers for the mail reader +;;; rmailsum.el --- make summary buffers for the mail reader -*- lexical-binding:t -*- ;; Copyright (C) 1985, 1993-1996, 2000-2015 Free Software Foundation, Inc. @@ -262,7 +262,7 @@ Setting this option to nil might speed up the generation of summaries." ;; Regenerate the contents of the summary ;; using the same selection criterion as last time. ;; M-x revert-buffer in a summary buffer calls this function. -(defun rmail-update-summary (&rest ignore) +(defun rmail-update-summary (&rest _) (apply (car rmail-summary-redo) (cdr rmail-summary-redo))) ;;;###autoload @@ -674,7 +674,7 @@ LINES is the number of lines in the message (if we should display that) (goto-char (point-min)) (let ((line (rmail-header-summary)) (labels (rmail-get-summary-labels)) - pos status prefix basic-start basic-end linecount-string) + status prefix basic-start basic-end linecount-string) (setq linecount-string (cond @@ -746,7 +746,7 @@ the message being processed." ;; Get all the lines of the From field ;; so that we get a whole comment if there is one, ;; so that mail-strip-quoted-names can discard it. - (let ((opoint (point))) + (progn (while (progn (forward-line 1) (looking-at "[ \t]"))) ;; Back up over newline, then trailing spaces or tabs @@ -928,8 +928,8 @@ A prefix argument serves as a repeat count; a negative argument means to delete and move backward." (interactive "p") (unless (numberp count) (setq count 1)) - (let (end del-msg - (backward (< count 0))) + (let (del-msg + (backward (< count 0))) (while (and (/= count 0) ;; Don't waste time if we are at the beginning ;; and trying to go backward. @@ -1048,7 +1048,7 @@ Optional prefix ARG means undelete ARG previous messages." (forward-line 1)) (setq n (1- n))) (rmail-summary-goto-msg 1) - (dotimes (i rmail-total-messages) + (dotimes (_ rmail-total-messages) (rmail-summary-goto-msg) (let (del-msg) (when (rmail-summary-deleted-p) commit 56d487bdc2425281333802cb884d11a1a5055c76 Author: Glenn Morris Date: Tue Apr 28 23:24:48 2015 -0700 * test/automated/package-test.el (package-test-update-archives-async): Skip test on hydra.nixos.org. diff --git a/test/automated/package-test.el b/test/automated/package-test.el index 1f8f8ac..ed2e3cf 100644 --- a/test/automated/package-test.el +++ b/test/automated/package-test.el @@ -343,6 +343,8 @@ Must called from within a `tar-mode' buffer." (ert-deftest package-test-update-archives-async () "Test updating package archives asynchronously." (skip-unless (executable-find "python2")) + ;; For some reason this test doesn't work reliably on hydra.nixos.org. + (skip-unless (not (getenv "NIX_STORE"))) (with-package-test (:basedir package-test-data-dir :location "http://0.0.0.0:8000/") commit 438b6b1a5254753425520ed9c984e00704ae401c Author: Glenn Morris Date: Tue Apr 28 21:09:25 2015 -0400 * lisp/foldout.el: Update for 2015-01-30 outline.el changes. (foldout-zoom-subtree, foldout-exit-fold, foldout-mouse-show) (foldout-mouse-hide-or-exit): Use new names for outline functions. diff --git a/lisp/foldout.el b/lisp/foldout.el index 443f8b7..64c0af4 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el @@ -280,16 +280,16 @@ optional arg EXPOSURE \(interactively with prefix arg\) changes this:- (goto-char start) (cond ((null exposure) - (show-entry) - (show-children)) + (outline-show-entry) + (outline-show-children)) ((< exposure-value 0) - (show-entry)) + (outline-show-entry)) ((consp exposure) - (show-children)) + (outline-show-children)) ((> exposure-value 0) - (show-children exposure-value)) + (outline-show-children exposure-value)) (t - (show-subtree)) + (outline-show-subtree)) ) ;; save the location of the fold we are entering @@ -366,7 +366,7 @@ exited and text is left visible." ;; hide the subtree (when hide-fold (goto-char start-marker) - (hide-subtree)) + (outline-hide-subtree)) ;; make sure the next heading is exposed (if end-marker @@ -454,10 +454,10 @@ What gets exposed depends on the number of mouse clicks:- (foldout-mouse-goto-heading event) (let ((nclicks (event-click-count event))) (cond - ((= nclicks 1) (show-entry)) - ((= nclicks 2) (show-children)) - ((= nclicks 3) (show-entry) (show-children)) - (t (show-subtree))))) + ((= nclicks 1) (outline-show-entry)) + ((= nclicks 2) (outline-show-children)) + ((= nclicks 3) (outline-show-entry) (outline-show-children)) + (t (outline-show-subtree))))) (defun foldout-mouse-hide-or-exit (event) "Hide the subtree under the heading clicked on, or exit a fold. @@ -478,7 +478,7 @@ What happens depends on the number of mouse clicks:- (if (= nclicks 1) (progn (foldout-mouse-goto-heading event) - (hide-subtree)) + (outline-hide-subtree)) (foldout-exit-fold (cond ((= nclicks 2) 1) ; exit and hide commit 853941383f8d1e1d0b182e3784b2bc72aca55460 Author: Glenn Morris Date: Tue Apr 28 21:01:58 2015 -0400 * lisp/cedet/semantic/bovine/c.el (semantic-c-do-lex-if): Update for 2014-06-26 hideif.el change. diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el index aa93e24..e86f09c 100644 --- a/lisp/cedet/semantic/bovine/c.el +++ b/lisp/cedet/semantic/bovine/c.el @@ -498,12 +498,12 @@ code to parse." (parsedtokelist (condition-case nil ;; This is imperfect, so always assume on error. - (hif-canonicalize) + (hif-canonicalize hif-ifx-regexp) (error nil)))) (let ((eval-form (condition-case err (eval parsedtokelist) - (error + (error (semantic-push-parser-warning (format "Hideif forms produced an error. Assuming false.\n%S" err) (point) (1+ (point))) commit 38167fb133f7c68b639f226886773900320b0b42 Author: Glenn Morris Date: Tue Apr 28 19:27:37 2015 -0400 * lisp/mail/rmailsum.el: Fix search for encoded subjects. (Bug#19088) (rmail--decode-and-apply): New function. (rmail-message-regexp-p-1, rmail-message-subject-p): Use it. diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index 7144e43..280539e 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el @@ -340,13 +340,30 @@ Emacs will list the message in the summary." "Return t, if for message number MSG, regexp REGEXP matches in the header." (rmail-apply-in-message msg 'rmail-message-regexp-p-1 msg regexp)) +(defun rmail--decode-and-apply (function &rest args) + "Make an RFC2047-decoded copy of current buffer, apply FUNCTION with ARGS." + (let ((buff (current-buffer))) + (with-temp-buffer + (insert-buffer-substring buff) + (goto-char (point-min)) + ;; FIXME? In rmail-show-message-1, decoding depends on + ;; rmail-enable-mime being non-nil (?). + (rfc2047-decode-region (point-min) + (save-excursion + (progn + (search-forward "\n\n" nil 'move) + (point)))) + (apply function args)))) + (defun rmail-message-regexp-p-1 (msg regexp) ;; Search functions can expect to start from the beginning. (narrow-to-region (point) (save-excursion (search-forward "\n\n") (point))) (if (and rmail-enable-mime rmail-search-mime-header-function) (funcall rmail-search-mime-header-function msg regexp (point)) - (re-search-forward regexp nil t))) + ;; We need to search the full headers, but probably want to decode + ;; them so they match the ones people see displayed. (Bug#19088) + (rmail--decode-and-apply 're-search-forward regexp nil t))) ;;;###autoload (defun rmail-summary-by-topic (subject &optional whole-message) @@ -370,7 +387,9 @@ SUBJECT is a string of regexps separated by commas." (defun rmail-message-subject-p (msg subject &optional whole-message) (if whole-message - (rmail-apply-in-message msg 're-search-forward subject nil t) + ;; SUBJECT and rmail-simplified-subject are 2047 decoded. + (rmail-apply-in-message msg 'rmail--decode-and-apply + 're-search-forward subject nil t) (string-match subject (rmail-simplified-subject msg)))) ;;;###autoload commit 6c5765e2328dfd59b2b62caf777dcee3e09938a2 Author: Glenn Morris Date: Tue Apr 28 19:25:56 2015 -0400 * lisp/mail/rmail.el (rmail-highlighted-headers): Fix :type. diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index bf439ec..934b9d8 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -393,7 +393,7 @@ go to that message and type \\[rmail-toggle-header] twice." "Regexp to match Header fields that Rmail should display. If nil, display all header fields except those matched by `rmail-ignored-headers'." - :type '(choice regexp (const :tag "All")) + :type '(choice regexp (const :tag "All" nil)) :group 'rmail-headers) ;;;###autoload @@ -407,7 +407,7 @@ If nil, display all header fields except those matched by (defcustom rmail-highlighted-headers (purecopy "^From:\\|^Subject:") "Regexp to match Header fields that Rmail should normally highlight. A value of nil means don't highlight. Uses the face `rmail-highlight'." - :type 'regexp + :type '(choice regexp (const :tag "None" nil)) :group 'rmail-headers) (defface rmail-highlight commit 301514f2bfd49ce1c01724dcbbcded2c2736f858 Author: Artur Malabarba Date: Tue Apr 28 22:29:26 2015 +0100 * lisp/emacs-lisp/package.el: Fix priority-hiding corner case (package-menu--refresh): Delegate obsolete-hiding to `package--remove-hidden'. (package--remove-hidden): Disregard high-priority package if it is older than the installed one. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index bb9a3bb..84b6987 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2499,29 +2499,43 @@ Installed obsolete packages are always displayed.") (defun package--remove-hidden (pkg-list) "Filter PKG-LIST according to `package-archive-priorities'. -PKG-LIST must be a list of package-desc objects sorted by -decreasing version number. +PKG-LIST must be a list of package-desc objects, all with the +same name, sorted by decreasing `package-desc-priority-version'. Return a list of packages tied for the highest priority according to their archives." (when pkg-list - ;; The first is a variable toggled with - ;; `package-menu-hide-obsolete', the second is a static user - ;; option that defines *what* we hide. - (if (and package-menu--hide-obsolete - package-menu-hide-low-priority) - (let ((max-priority (package-desc-priority (car pkg-list))) - (out (list (pop pkg-list)))) - (dolist (p pkg-list (nreverse out)) - (let ((priority (package-desc-priority p))) - (cond - ((> priority max-priority) - (setq max-priority priority) - (setq out (list p))) - ;; This assumes pkg-list is sorted by version number. - ((and (= priority max-priority) - (eq package-menu-hide-low-priority 'archive)) - (push p out)))))) - pkg-list))) + ;; Variable toggled with `package-menu-hide-obsolete'. + (if (not package-menu--hide-obsolete) + pkg-list + (let ((installed (cadr (assq (package-desc-name (car pkg-list)) + package-alist)))) + (when installed + (setq pkg-list + (let ((ins-version (package-desc-version installed))) + (cl-remove-if (lambda (p) (version-list-< (package-desc-version p) + ins-version)) + pkg-list)))) + (let ((filtered-by-priority + (cond + ((not package-menu-hide-low-priority) + pkg-list) + ((eq package-menu-hide-low-priority 'archive) + (let* ((max-priority most-negative-fixnum) + (out)) + (while pkg-list + (let ((p (pop pkg-list))) + (if (>= (package-desc-priority p) max-priority) + (push p out) + (setq pkg-list nil)))) + (nreverse out))) + (pkg-list + (list (car pkg-list)))))) + (if (not installed) + filtered-by-priority + (let ((ins-version (package-desc-version installed))) + (cl-remove-if (lambda (p) (version-list-= (package-desc-version p) + ins-version)) + filtered-by-priority)))))))) (defun package-menu--refresh (&optional packages keywords) "Re-populate the `tabulated-list-entries'. @@ -2550,15 +2564,12 @@ KEYWORDS should be nil or a list of keywords." ;; Available and disabled packages: (dolist (elt package-archive-contents) - (setq name (car elt)) - (when (or (eq packages t) (memq name packages)) - (dolist (pkg (package--remove-hidden (cdr elt))) - ;; Hide available obsolete packages. - (when (and (not (and package-menu--hide-obsolete - (package-installed-p (package-desc-name pkg) - (package-desc-version pkg)))) - (package--has-keyword-p pkg keywords)) - (package--push pkg (package-desc-status pkg) info-list))))) + (let ((name (car elt))) + (when (or (eq packages t) (memq name packages)) + ;; Hide available-obsolete or low-priority packages. + (dolist (pkg (package--remove-hidden (cdr elt))) + (when (package--has-keyword-p pkg keywords) + (package--push pkg (package-desc-status pkg) info-list)))))) ;; Print the result. (setq tabulated-list-entries commit 25166a91fdec1ef9721fe7440b9f8af809134e7d Author: Paul Eggert Date: Tue Apr 28 10:51:21 2015 -0700 Update source file encoding list Update admin/notes/unicode, along with coding system cookies in other files, so that the two match each other better. * admin/notes/unicode: lisp/language/ethio-util.el and lisp/language/ethiopic.el also use utf-8-emacs. * admin/notes/hydra, doc/misc/dbus.texi, doc/misc/org.texi: * doc/misc/remember.texi, etc/refcards/cs-dired-ref.tex: * etc/refcards/cs-refcard.tex, etc/refcards/cs-survival.tex: * etc/refcards/sk-dired-ref.tex, etc/refcards/sk-refcard.tex: * etc/refcards/sk-survival.tex: Add "coding: utf-8" so that this file is not mishandled in a Latin-1 or Big-5 locale. * lisp/international/robin.el, lisp/org/ox-ascii.el: Specify utf-8, not utf-8-emacs, as these are plain UTF-8 files. * lisp/language/ethio-util.el: Fix trailer. diff --git a/admin/notes/hydra b/admin/notes/hydra index 7f8615d..80ce787 100644 --- a/admin/notes/hydra +++ b/admin/notes/hydra @@ -1,4 +1,4 @@ --*- outline -*- +-*- mode: outline; coding: utf-8 -*- Copyright (C) 2013-2015 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/admin/notes/unicode b/admin/notes/unicode index 13971ef..028bcc1 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode @@ -167,8 +167,8 @@ nontrivial changes to the build process. leim/CXTERM-DIC/QJ.tit leim/CXTERM-DIC/SW.tit leim/CXTERM-DIC/TONEPY.tit - leim/MISC-DIC/pinyin.map leim/MISC-DIC/CTLau.html + leim/MISC-DIC/pinyin.map leim/MISC-DIC/ziranma.cin * cp850 @@ -237,9 +237,11 @@ nontrivial changes to the build process. These files contain characters that cannot be encoded in UTF-8. - lisp/language/tibetan.el - lisp/language/tibet-util.el + lisp/language/ethio-util.el + lisp/language/ethiopic.el lisp/language/ind-util.el + lisp/language/tibet-util.el + lisp/language/tibetan.el lisp/leim/quail/ethiopic.el lisp/leim/quail/tibetan.el diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi index 2eef4f4..da18236 100644 --- a/doc/misc/dbus.texi +++ b/doc/misc/dbus.texi @@ -1,4 +1,4 @@ -\input texinfo @c -*-texinfo-*- +\input texinfo @c -*- coding: utf-8 -*- @setfilename ../../info/dbus.info @c %**start of header @settitle Using of D-Bus diff --git a/doc/misc/org.texi b/doc/misc/org.texi index a2cc51e..a013632 100644 --- a/doc/misc/org.texi +++ b/doc/misc/org.texi @@ -1,4 +1,4 @@ -\input texinfo +\input texinfo @c -*- coding: utf-8 -*- @c %**start of header @setfilename ../../info/org.info @settitle The Org Manual diff --git a/doc/misc/remember.texi b/doc/misc/remember.texi index 13594d9..d64d0ea 100644 --- a/doc/misc/remember.texi +++ b/doc/misc/remember.texi @@ -1,4 +1,4 @@ -\input texinfo @c -*-texinfo-*- +\input texinfo @c -*- mode: texinfo; coding: utf-8 -*- @c %**start of header @setfilename ../../info/remember.info @settitle Remember Manual diff --git a/etc/refcards/cs-dired-ref.tex b/etc/refcards/cs-dired-ref.tex index 29a9b09..ac1d27a 100644 --- a/etc/refcards/cs-dired-ref.tex +++ b/etc/refcards/cs-dired-ref.tex @@ -1,4 +1,4 @@ -% Reference Card for Dired +% Reference Card for Dired -*- coding: utf-8 -*- % Copyright (C) 2000-2015 Free Software Foundation, Inc. diff --git a/etc/refcards/cs-refcard.tex b/etc/refcards/cs-refcard.tex index 29ea258..3158b5b 100644 --- a/etc/refcards/cs-refcard.tex +++ b/etc/refcards/cs-refcard.tex @@ -1,4 +1,4 @@ -% Reference Card for GNU Emacs +% Reference Card for GNU Emacs -*- coding: utf-8 -*- % Copyright (C) 1987, 1993, 1996-1997, 2001-2015 Free Software % Foundation, Inc. diff --git a/etc/refcards/cs-survival.tex b/etc/refcards/cs-survival.tex index 72162c3..cdf261a 100644 --- a/etc/refcards/cs-survival.tex +++ b/etc/refcards/cs-survival.tex @@ -1,4 +1,4 @@ -% Title: GNU Emacs Survival Card +% Title: GNU Emacs Survival Card -*- coding: utf-8 -*- % Copyright (C) 2000-2015 Free Software Foundation, Inc. diff --git a/etc/refcards/sk-dired-ref.tex b/etc/refcards/sk-dired-ref.tex index 8f89856..57a4b5b 100644 --- a/etc/refcards/sk-dired-ref.tex +++ b/etc/refcards/sk-dired-ref.tex @@ -1,4 +1,4 @@ -% Reference Card for Dired +% Reference Card for Dired -*- coding: utf-8 -*- % Copyright (C) 2000-2015 Free Software Foundation, Inc. diff --git a/etc/refcards/sk-refcard.tex b/etc/refcards/sk-refcard.tex index a8d0760..e2df212 100644 --- a/etc/refcards/sk-refcard.tex +++ b/etc/refcards/sk-refcard.tex @@ -1,4 +1,4 @@ -% Reference Card for GNU Emacs +% Reference Card for GNU Emacs -*- coding: utf-8 -*- % Copyright (C) 1987, 1993, 1996-1997, 2001-2015 Free Software % Foundation, Inc. diff --git a/etc/refcards/sk-survival.tex b/etc/refcards/sk-survival.tex index 363716c..9f25b6a 100644 --- a/etc/refcards/sk-survival.tex +++ b/etc/refcards/sk-survival.tex @@ -1,4 +1,4 @@ -% Title: GNU Emacs Survival Card +% Title: GNU Emacs Survival Card -*- coding: utf-8 -*- % Copyright (C) 2000-2015 Free Software Foundation, Inc. diff --git a/lisp/international/robin.el b/lisp/international/robin.el index 897075f..8254180 100644 --- a/lisp/international/robin.el +++ b/lisp/international/robin.el @@ -576,7 +576,7 @@ used." (provide 'robin) ;; Local Variables: -;; coding: utf-8-emacs +;; coding: utf-8 ;; End: ;;; robin.el ends here diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el index 8575e7b..a27f749 100644 --- a/lisp/language/ethio-util.el +++ b/lisp/language/ethio-util.el @@ -2071,5 +2071,3 @@ mark." (provide 'ethio-util) ;;; ethio-util.el ends here - -;;; ethio-util.el ends here diff --git a/lisp/org/ox-ascii.el b/lisp/org/ox-ascii.el index 65b6f75..a3284d9 100644 --- a/lisp/org/ox-ascii.el +++ b/lisp/org/ox-ascii.el @@ -1965,7 +1965,7 @@ Return output file name." ;; Local variables: ;; generated-autoload-file: "org-loaddefs.el" -;; coding: utf-8-emacs +;; coding: utf-8 ;; End: ;;; ox-ascii.el ends here commit e78aef008332477d568e904de3646cfc1ba68cbf Author: Eli Zaretskii Date: Tue Apr 28 18:36:25 2015 +0300 Fix synchronous invocation of Ispell * lisp/textmodes/ispell.el (ispell-init-process): Assign a non-nil value to ispell-process-directory before calling ispell-init-process. Don't call set-process-coding-system if ispell-async-processp is nil. (Bug#20448) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 498def0..43003af 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -2986,10 +2986,14 @@ Keeps argument list for future Ispell invocations for no async support." (or ispell-local-dictionary ispell-dictionary "default")) (sit-for 0) (setq ispell-library-directory (ispell-check-version) + ;; Assign a non-nil value to ispell-process-directory + ;; before calling ispell-start-process, since that + ;; function needs it to set default-directory when + ;; ispell-async-processp is nil. + ispell-process-directory default-directory ispell-process (ispell-start-process) ispell-filter nil - ispell-filter-continue nil - ispell-process-directory default-directory) + ispell-filter-continue nil) (unless (equal ispell-process-directory (expand-file-name "~/")) ;; At this point, `ispell-process-directory' will be "~/" unless using @@ -3015,7 +3019,12 @@ Keeps argument list for future Ispell invocations for no async support." (if (and (or (featurep 'xemacs) (and (boundp 'enable-multibyte-characters) enable-multibyte-characters)) - (fboundp 'set-process-coding-system)) + (fboundp 'set-process-coding-system) + ;; Evidently, some people use the synchronous mode even + ;; when async subprocesses are supported, in which case + ;; set-process-coding-system is bound, but + ;; ispell-process is not a process object. + ispell-async-processp) (set-process-coding-system ispell-process (ispell-get-coding-system) (ispell-get-coding-system))) ;; Get version ID line commit f23d716a0c7baf30179c79c88ada131e137250cf Author: Glenn Morris Date: Tue Apr 28 06:18:18 2015 -0400 ; Auto-commit of loaddefs files. diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index a76c31d..bf439ec 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -4693,7 +4693,7 @@ encoded string (and the same mask) will decode the string." ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "rmailedit" "rmailedit.el" "f6da7267316d02c90b9d314ce95b3c22") +;;;### (autoloads nil "rmailedit" "rmailedit.el" "1ed1c211e6e9c254ba3e0dd8d546e745") ;;; Generated autoloads from rmailedit.el (autoload 'rmail-edit-current-message "rmailedit" "\ diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index ce083c9..788fdcc 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el @@ -3046,7 +3046,7 @@ During a selection process, these are the local bindings. ;;;*** -;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "8b6d6733d445a55206e84fc119909520") +;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "70daa7ce5ba54f2c8d469337f64636c1") ;;; Generated autoloads from reftex-toc.el (autoload 'reftex-toc "reftex-toc" "\ commit fecd155703ee2e546bee1749e9e0fb97bab357eb Author: Artur Malabarba Date: Tue Apr 28 11:08:40 2015 +0100 * lisp/emacs-lisp/package.el: Skip space and comments in init file (package--ensure-init-file): Insert snippet at first non-whitespace non-comments line. Respects local-vars at the top of the file. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 81e0ee9..bb9a3bb 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1813,6 +1813,7 @@ using `package-compute-transaction'." (widen) (goto-char (point-min)) (search-forward "(package-initialize)" nil 'noerror)))) + ;; Don't visit the file if we don't have to. (with-temp-buffer (insert-file-contents user-init-file) (goto-char (point-min)) @@ -1825,7 +1826,11 @@ using `package-compute-transaction'." (save-restriction (widen) (goto-char (point-min)) + (while (and (looking-at-p "[[:blank:]]*\\(;\\|$\\)") + (not (eobp))) + (forward-line 1)) (insert + "\n" ";; Added by Package.el. This must come before configurations of\n" ";; installed packages. Don't delete this line. If you don't want it,\n" ";; just comment it out by adding a semicolon to the start of the line.\n"