It would be nice if we could set up completion to stop offering obsolete functions; this might help prevent them from getting added to new code. On 2016-11-04 12:59, Mark Oteiza wrote: > > Hi, > > I was eyeing some code in subr.el that deprecated in 22, and was > wondering if there is any concern with ripping it out. In particular, > the bits included in the following patch. > > The parts for buffer_defaults is incomplete of course, there are many > references to this structure. Just searching through, uses of > buffer_defaults look very easy to remove, but I may be missing something > subtle. > > I removed references/uses of these functions/aliases/default-variables > in documentation and lisp in commit 2c6920a > > diff --git a/lisp/subr.el b/lisp/subr.el > index fba43be..6a8911f 100644 > --- a/lisp/subr.el > +++ b/lisp/subr.el > @@ -1290,13 +1290,6 @@ posn-object-width-height > > ;;;; Obsolescent names for functions. > > -(define-obsolete-function-alias 'window-dot 'window-point "22.1") > -(define-obsolete-function-alias 'set-window-dot 'set-window-point "22.1") > -(define-obsolete-function-alias 'read-input 'read-string "22.1") > -(define-obsolete-function-alias 'show-buffer 'set-window-buffer "22.1") > -(define-obsolete-function-alias 'eval-current-buffer 'eval-buffer "22.1") > -(define-obsolete-function-alias 'string-to-int 'string-to-number "22.1") > - > (make-obsolete 'forward-point "use (+ (point) N) instead." "23.1") > (make-obsolete 'buffer-has-markers-at nil "24.3") > > @@ -1306,18 +1299,6 @@ 'string-to-int > (make-obsolete 'string-to-multibyte "use `decode-coding-string'." "25.2") > (make-obsolete 'string-as-multibyte "use `decode-coding-string'." "25.2") > > -(defun insert-string (&rest args) > - "Mocklisp-compatibility insert function. > -Like the function `insert' except that any argument that is a number > -is converted into a string by expressing it in decimal." > - (declare (obsolete insert "22.1")) > - (dolist (el args) > - (insert (if (integerp el) (number-to-string el) el)))) > - > -(defun makehash (&optional test) > - (declare (obsolete make-hash-table "22.1")) > - (make-hash-table :test (or test 'eql))) > - > (defun log10 (x) > "Return (log X 10), the log base 10 of X." > (declare (obsolete log "24.4")) > @@ -1319,45 +1319,6 @@ 'unfocus-frame > > ;;;; Obsolescence declarations for variables, and aliases. > > -;; Special "default-FOO" variables which contain the default value of > -;; the "FOO" variable are nasty. Their implementation is brittle, and > -;; slows down several unrelated variable operations; furthermore, they > -;; can lead to really odd behavior if you decide to make them > -;; buffer-local. > - > -;; Not used at all in Emacs, last time I checked: > -(make-obsolete-variable 'default-mode-line-format > - "use (setq-default mode-line-format) or (default-value mode-line-format) instead" > - "23.2") > -(make-obsolete-variable 'default-header-line-format 'header-line-format "23.2") > -(make-obsolete-variable 'default-line-spacing 'line-spacing "23.2") > -(make-obsolete-variable 'default-abbrev-mode 'abbrev-mode "23.2") > -(make-obsolete-variable 'default-ctl-arrow 'ctl-arrow "23.2") > -(make-obsolete-variable 'default-truncate-lines 'truncate-lines "23.2") > -(make-obsolete-variable 'default-left-margin 'left-margin "23.2") > -(make-obsolete-variable 'default-tab-width 'tab-width "23.2") > -(make-obsolete-variable 'default-case-fold-search 'case-fold-search "23.2") > -(make-obsolete-variable 'default-left-margin-width 'left-margin-width "23.2") > -(make-obsolete-variable 'default-right-margin-width 'right-margin-width "23.2") > -(make-obsolete-variable 'default-left-fringe-width 'left-fringe-width "23.2") > -(make-obsolete-variable 'default-right-fringe-width 'right-fringe-width "23.2") > -(make-obsolete-variable 'default-fringes-outside-margins 'fringes-outside-margins "23.2") > -(make-obsolete-variable 'default-scroll-bar-width 'scroll-bar-width "23.2") > -(make-obsolete-variable 'default-vertical-scroll-bar 'vertical-scroll-bar "23.2") > -(make-obsolete-variable 'default-indicate-empty-lines 'indicate-empty-lines "23.2") > -(make-obsolete-variable 'default-indicate-buffer-boundaries 'indicate-buffer-boundaries "23.2") > -(make-obsolete-variable 'default-fringe-indicator-alist 'fringe-indicator-alist "23.2") > -(make-obsolete-variable 'default-fringe-cursor-alist 'fringe-cursor-alist "23.2") > -(make-obsolete-variable 'default-scroll-up-aggressively 'scroll-up-aggressively "23.2") > -(make-obsolete-variable 'default-scroll-down-aggressively 'scroll-down-aggressively "23.2") > -(make-obsolete-variable 'default-fill-column 'fill-column "23.2") > -(make-obsolete-variable 'default-cursor-type 'cursor-type "23.2") > -(make-obsolete-variable 'default-cursor-in-non-selected-windows 'cursor-in-non-selected-windows "23.2") > -(make-obsolete-variable 'default-buffer-file-coding-system 'buffer-file-coding-system "23.2") > -(make-obsolete-variable 'default-major-mode 'major-mode "23.2") > -(make-obsolete-variable 'default-enable-multibyte-characters > - "use enable-multibyte-characters or set-buffer-multibyte instead" "23.2") > - > (make-obsolete-variable 'define-key-rebound-commands nil "23.2") > (make-obsolete-variable 'redisplay-end-trigger-functions 'jit-lock-register "23.1") > (make-obsolete-variable 'deferred-action-list 'post-command-hook "24.1") > diff --git a/src/buffer.c b/src/buffer.c > index 3d205bb..aa556b7 100644 > --- a/src/buffer.c > +++ b/src/buffer.c > @@ -5413,144 +5413,6 @@ syms_of_buffer (void) > Fput (Qprotected_field, Qerror_message, > build_pure_c_string ("Attempt to modify a protected field")); > > - DEFVAR_BUFFER_DEFAULTS ("default-mode-line-format", > - mode_line_format, > - doc: /* Default value of `mode-line-format' for buffers that don't override it. > -This is the same as (default-value \\='mode-line-format). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-header-line-format", > - header_line_format, > - doc: /* Default value of `header-line-format' for buffers that don't override it. > -This is the same as (default-value \\='header-line-format). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-cursor-type", cursor_type, > - doc: /* Default value of `cursor-type' for buffers that don't override it. > -This is the same as (default-value \\='cursor-type). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-line-spacing", > - extra_line_spacing, > - doc: /* Default value of `line-spacing' for buffers that don't override it. > -This is the same as (default-value \\='line-spacing). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-cursor-in-non-selected-windows", > - cursor_in_non_selected_windows, > - doc: /* Default value of `cursor-in-non-selected-windows'. > -This is the same as (default-value \\='cursor-in-non-selected-windows). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-abbrev-mode", > - abbrev_mode, > - doc: /* Default value of `abbrev-mode' for buffers that do not override it. > -This is the same as (default-value \\='abbrev-mode). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-ctl-arrow", > - ctl_arrow, > - doc: /* Default value of `ctl-arrow' for buffers that do not override it. > -This is the same as (default-value \\='ctl-arrow). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-enable-multibyte-characters", > - enable_multibyte_characters, > - doc: /* Default value of `enable-multibyte-characters' for buffers not overriding it. > -This is the same as (default-value \\='enable-multibyte-characters). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-buffer-file-coding-system", > - buffer_file_coding_system, > - doc: /* Default value of `buffer-file-coding-system' for buffers not overriding it. > -This is the same as (default-value \\='buffer-file-coding-system). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-truncate-lines", > - truncate_lines, > - doc: /* Default value of `truncate-lines' for buffers that do not override it. > -This is the same as (default-value \\='truncate-lines). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-fill-column", > - fill_column, > - doc: /* Default value of `fill-column' for buffers that do not override it. > -This is the same as (default-value \\='fill-column). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-left-margin", > - left_margin, > - doc: /* Default value of `left-margin' for buffers that do not override it. > -This is the same as (default-value \\='left-margin). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-tab-width", > - tab_width, > - doc: /* Default value of `tab-width' for buffers that do not override it. > -NOTE: This controls the display width of a TAB character, and not > -the size of an indentation step. > -This is the same as (default-value \\='tab-width). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-case-fold-search", > - case_fold_search, > - doc: /* Default value of `case-fold-search' for buffers that don't override it. > -This is the same as (default-value \\='case-fold-search). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-left-margin-width", > - left_margin_cols, > - doc: /* Default value of `left-margin-width' for buffers that don't override it. > -This is the same as (default-value \\='left-margin-width). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-right-margin-width", > - right_margin_cols, > - doc: /* Default value of `right-margin-width' for buffers that don't override it. > -This is the same as (default-value \\='right-margin-width). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-left-fringe-width", > - left_fringe_width, > - doc: /* Default value of `left-fringe-width' for buffers that don't override it. > -This is the same as (default-value \\='left-fringe-width). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-right-fringe-width", > - right_fringe_width, > - doc: /* Default value of `right-fringe-width' for buffers that don't override it. > -This is the same as (default-value \\='right-fringe-width). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-fringes-outside-margins", > - fringes_outside_margins, > - doc: /* Default value of `fringes-outside-margins' for buffers that don't override it. > -This is the same as (default-value \\='fringes-outside-margins). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-scroll-bar-width", > - scroll_bar_width, > - doc: /* Default value of `scroll-bar-width' for buffers that don't override it. > -This is the same as (default-value \\='scroll-bar-width). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-vertical-scroll-bar", > - vertical_scroll_bar_type, > - doc: /* Default value of `vertical-scroll-bar' for buffers that don't override it. > -This is the same as (default-value \\='vertical-scroll-bar). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-indicate-empty-lines", > - indicate_empty_lines, > - doc: /* Default value of `indicate-empty-lines' for buffers that don't override it. > -This is the same as (default-value \\='indicate-empty-lines). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-indicate-buffer-boundaries", > - indicate_buffer_boundaries, > - doc: /* Default value of `indicate-buffer-boundaries' for buffers that don't override it. > -This is the same as (default-value \\='indicate-buffer-boundaries). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-fringe-indicator-alist", > - fringe_indicator_alist, > - doc: /* Default value of `fringe-indicator-alist' for buffers that don't override it. > -This is the same as (default-value \\='fringe-indicator-alist). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-fringe-cursor-alist", > - fringe_cursor_alist, > - doc: /* Default value of `fringe-cursor-alist' for buffers that don't override it. > -This is the same as (default-value \\='fringe-cursor-alist). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-scroll-up-aggressively", > - scroll_up_aggressively, > - doc: /* Default value of `scroll-up-aggressively'. > -This value applies in buffers that don't have their own local values. > -This is the same as (default-value \\='scroll-up-aggressively). */); > - > - DEFVAR_BUFFER_DEFAULTS ("default-scroll-down-aggressively", > - scroll_down_aggressively, > - doc: /* Default value of `scroll-down-aggressively'. > -This value applies in buffers that don't have their own local values. > -This is the same as (default-value \\='scroll-down-aggressively). */); > - > DEFVAR_PER_BUFFER ("header-line-format", > &BVAR (current_buffer, header_line_format), > Qnil, > @@ -5621,9 +5483,6 @@ A string is printed verbatim in the mode line except for %-constructs: > %% -- print %. %- -- print infinitely many dashes. > Decimal digits after the % specify field width to which to pad. */); > > - DEFVAR_BUFFER_DEFAULTS ("default-major-mode", major_mode, > - doc: /* Value of `major-mode' for new buffers. */); > - > DEFVAR_PER_BUFFER ("major-mode", &BVAR (current_buffer, major_mode), > Qsymbolp, > doc: /* Symbol for current buffer's major mode. > diff --git a/src/lisp.h b/src/lisp.h > index 2e46592..aaa4423 100644 > --- a/src/lisp.h > +++ b/src/lisp.h > @@ -3035,12 +3035,6 @@ extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int); > defvar_int (&i_fwd, lname, &globals.f_ ## vname); \ > } while (false) > > -#define DEFVAR_BUFFER_DEFAULTS(lname, vname, doc) \ > - do { \ > - static struct Lisp_Objfwd o_fwd; \ > - defvar_lisp_nopro (&o_fwd, lname, &BVAR (&buffer_defaults, vname)); \ > - } while (false) > - > #define DEFVAR_KBOARD(lname, vname, doc) \ > do { \ > static struct Lisp_Kboard_Objfwd ko_fwd; \ > >