Re: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1

Daniel Colascione-5
I don't think iswitchb is obsolete.

On 03/10/2018 07:16 PM, Glenn Morris wrote:

> branch: master
> commit f1c48b0ec521744826ed43ae27eed0e152c472bf
> Author: Glenn Morris <[hidden email]>
> Commit: Glenn Morris <[hidden email]>
>
>      Remove many items obsolete since Emacs 22.1
>      
>      Emacs 22.1 was five major releases and over decade ago.
>      In bug reporting statistics, it's been absent for around 5 years.
>      Ref: https://debbugs.gnu.org/stats/emacs.html
>      This list can be reviewed before to the next release, but for
>      now hopefully this motivates any needed external updates.
>      * lisp/arc-mode.el (archive-mouse-extract):
>      * lisp/bookmark.el (bookmark-exit-hooks):
>      * lisp/comint.el (comint-use-prompt-regexp-instead-of-fields):
>      * lisp/cus-edit.el (custom-face-save-command):
>      * lisp/descr-text.el (describe-char-after):
>      * lisp/desktop.el (desktop-enable, desktop-basefilename)
>      (desktop-buffer-modes-to-save, desktop-buffer-misc-functions)
>      (desktop-buffer-handlers, desktop-load-default):
>      * lisp/dired-x.el (dired-omit-files-p):
>      * lisp/frame.el (new-frame, set-default-font, delete-frame-hook)
>      (blink-cursor):
>      * lisp/generic-x.el (generic-define-mswindows-modes)
>      (generic-define-unix-modes):
>      * lisp/help.el (describe-project, view-todo):
>      * lisp/hilit-chg.el (highlight-changes-colours):
>      * lisp/ibuffer.el (ibuffer-elide-long-columns, ibuffer-hooks)
>      (ibuffer-mode-hooks):
>      * lisp/imenu.el (imenu-always-use-completion-buffer-p):
>      * lisp/isearch.el (isearch-lazy-highlight-cleanup)
>      (isearch-lazy-highlight-initial-delay)
>      (isearch-lazy-highlight-interval)
>      (isearch-lazy-highlight-max-at-a-time)
>      (isearch-lazy-highlight-cleanup):
>      * lisp/mwheel.el (mouse-wheel-down-button)
>      (mouse-wheel-up-button, mouse-wheel-click-button):
>      * lisp/novice.el (disabled-command-hook):
>      * lisp/recentf.el (recentf-menu-append-commands-p):
>      * lisp/savehist.el (savehist-load):
>      * lisp/speedbar.el (speedbar-ignored-path-expressions)
>      (speedbar-ignored-path-regexp, speedbar-add-ignored-path-regexp)
>      (speedbar-line-path, speedbar-buffers-line-path, speedbar-path-line):
>      * lisp/subr.el (assoc-ignore-case, assoc-ignore-representation)
>      (x-lost-selection-hooks, x-sent-selection-hooks)
>      (process-kill-without-query):
>      * lisp/calendar/icalendar.el (icalendar-convert-diary-to-ical)
>      (icalendar-extract-ical-from-buffer):
>      * lisp/emacs-lisp/autoload.el (update-autoloads-from-directories):
>      * lisp/emacs-lisp/derived.el (derived-mode-class):
>      * lisp/emacs-lisp/generic.el (generic-font-lock-defaults):
>      * lisp/emacs-lisp/timer.el (timer-set-time-with-usecs):
>      * lisp/gnus/spam.el (spam-list-of-processors):
>      * lisp/international/latin1-disp.el (latin1-char-displayable-p):
>      * lisp/mail/rmail.el (rmail-pop-password, rmail-pop-password-required):
>      * lisp/net/goto-addr.el (goto-address-at-mouse):
>      * lisp/net/net-utils.el (ipconfig-program, ipconfig-program-options):
>      * lisp/obsolete/iswitchb.el (iswitchb-use-fonts):
>      * lisp/play/dunnet.el (dungeon-mode-map):
>      * lisp/progmodes/compile.el (compilation-finish-function)
>      * lisp/progmodes/cperl-mode.el (cperl-vc-header-alist)
>      * lisp/progmodes/gud.el (tooltip-gud-modes, tooltip-gud-display)
>      (tooltip-gud-toggle-dereference):
>      * lisp/progmodes/pascal.el (pascal-outline):
>      * lisp/progmodes/perl-mode.el (electric-perl-terminator):
>      * lisp/textmodes/nroff-mode.el (count-text-lines)
>      (forward-text-line, backward-text-line, electric-nroff-newline)
>      (electric-nroff-mode):
>      * lisp/vc/log-edit.el (vc-comment-ring, vc-comment-ring-index)
>      (vc-previous-comment, vc-next-comment)
>      (vc-comment-search-reverse, vc-comment-search-forward)
>      (vc-comment-to-change-log):
>      * lisp/vc/pcvs-info.el (cvs-display-full-path)
>      (cvs-fileinfo->full-path):
>      * lisp/vc/vc.el (vc-diff-switches-list):
>      Remove items, obsolete since Emacs 22.1.
>      * lisp/ibuffer.el (ibuffer-cached-elide-long-columns):
>      Remove internal variable.
>      (ibuffer-compile-make-eliding-form, ibuffer-check-formats):
>      (ibuffer-mode): Remove support for ibuffer-elide-long-columns.
>      * lisp/cedet/semantic/sb.el (semantic-sb-token-jump):
>      Remove support for speedbar-line-path.
>      * lisp/emacs-lisp/unsafep.el (assoc-ignore-case):
>      Stop marking as side-effect-free.
>      * lisp/gnus/spam.el (spam-group-processor-p):
>      Remove support for spam-list-of-processors.
>      * lisp/progmodes/compile.el (define-compilation-mode)
>      (compilation-handle-exit):
>      Remove support for compilation-finish-function.
>      * lisp/progmodes/cperl-mode.el (cperl-mode):
>      Remove support for cperl-vc-header-alist.
>      ; * lisp/files.el: Comments.
>      ; * etc/NEWS: List removed items.
> ---
>   etc/NEWS                          | 35 +++++++++++++++
>   lisp/arc-mode.el                  |  2 -
>   lisp/bookmark.el                  |  2 -
>   lisp/calendar/icalendar.el        | 10 +----
>   lisp/cedet/semantic/sb.el         |  6 +--
>   lisp/comint.el                    |  3 --
>   lisp/cus-edit.el                  |  4 --
>   lisp/descr-text.el                |  2 -
>   lisp/desktop.el                   | 22 ----------
>   lisp/dired-x.el                   |  2 -
>   lisp/emacs-lisp/autoload.el       |  3 --
>   lisp/emacs-lisp/derived.el        | 13 ------
>   lisp/emacs-lisp/generic.el        |  2 -
>   lisp/emacs-lisp/timer.el          | 14 ------
>   lisp/emacs-lisp/unsafep.el        |  2 +-
>   lisp/files.el                     |  7 ++-
>   lisp/frame.el                     | 11 -----
>   lisp/generic-x.el                 | 25 ++---------
>   lisp/gnus/spam.el                 | 91 +++++++++++++--------------------------
>   lisp/help.el                      |  5 ---
>   lisp/hilit-chg.el                 |  3 --
>   lisp/ibuffer.el                   | 22 +---------
>   lisp/imenu.el                     | 12 +-----
>   lisp/international/latin1-disp.el |  4 --
>   lisp/isearch.el                   | 20 ---------
>   lisp/mail/rmail.el                |  6 ---
>   lisp/mwheel.el                    | 19 ++------
>   lisp/net/goto-addr.el             |  4 --
>   lisp/net/net-utils.el             |  5 ---
>   lisp/novice.el                    |  3 --
>   lisp/obsolete/iswitchb.el         |  2 -
>   lisp/play/dunnet.el               |  1 -
>   lisp/progmodes/compile.el         | 14 ------
>   lisp/progmodes/cperl-mode.el      | 12 +-----
>   lisp/progmodes/gud.el             |  8 ----
>   lisp/progmodes/pascal.el          |  1 -
>   lisp/progmodes/perl-mode.el       |  2 -
>   lisp/recentf.el                   |  4 --
>   lisp/savehist.el                  | 23 ----------
>   lisp/speedbar.el                  | 23 ----------
>   lisp/subr.el                      | 32 --------------
>   lisp/textmodes/nroff-mode.el      |  7 ---
>   lisp/vc/log-edit.el               | 10 -----
>   lisp/vc/pcvs-info.el              |  5 ---
>   lisp/vc/vc.el                     |  5 ---
>   45 files changed, 85 insertions(+), 423 deletions(-)
>
> diff --git a/etc/NEWS b/etc/NEWS
> index 8d69dc6..f35a513 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -290,6 +290,41 @@ This feature uses Tramp and works only on systems which support GVFS,
>   i.e. GNU/Linux, roughly spoken.  See the chapter "(tramp) Archive file
>   names" in the Tramp manual for full documentation of these facilities.
>  
> +** Some functions and variables obsolete since 22.1 have been removed:
> +archive-mouse-extract, assoc-ignore-case, assoc-ignore-representation,
> +backward-text-line, blink-cursor, bookmark-exit-hooks,
> +comint-use-prompt-regexp-instead-of-fields, compilation-finish-function,
> +count-text-lines, cperl-vc-header-alist, custom-face-save-command,
> +cvs-display-full-path, cvs-fileinfo->full-path, delete-frame-hook,
> +derived-mode-class, describe-char-after, describe-project,
> +desktop-basefilename, desktop-buffer-handlers,
> +desktop-buffer-misc-functions, desktop-buffer-modes-to-save,
> +desktop-enable, desktop-load-default, dired-omit-files-p,
> +disabled-command-hook, dungeon-mode-map, electric-nroff-mode,
> +electric-nroff-newline, electric-perl-terminator, forward-text-line,
> +generic-define-mswindows-modes, generic-define-unix-modes,
> +generic-font-lock-defaults, goto-address-at-mouse,
> +highlight-changes-colours, ibuffer-elide-long-columns, ibuffer-hooks,
> +ibuffer-mode-hooks, icalendar-convert-diary-to-ical,
> +icalendar-extract-ical-from-buffer, imenu-always-use-completion-buffer-p,
> +ipconfig-program, ipconfig-program-options, isearch-lazy-highlight-cleanup,
> +isearch-lazy-highlight-cleanup, isearch-lazy-highlight-initial-delay,
> +isearch-lazy-highlight-interval, isearch-lazy-highlight-max-at-a-time,
> +iswitchb-use-fonts, latin1-char-displayable-p, mouse-wheel-click-button,
> +mouse-wheel-down-button, mouse-wheel-up-button, new-frame, pascal-outline,
> +process-kill-without-query, recentf-menu-append-commands-p,
> +rmail-pop-password, rmail-pop-password-required, savehist-load,
> +set-default-font, spam-list-of-processors,
> +speedbar-add-ignored-path-regexp, speedbar-buffers-line-path,
> +speedbar-buffers-line-path, speedbar-ignored-path-expressions,
> +speedbar-ignored-path-regexp, speedbar-line-path, speedbar-path-line,
> +timer-set-time-with-usecs, tooltip-gud-display, tooltip-gud-modes,
> +tooltip-gud-toggle-dereference, update-autoloads-from-directories,
> +vc-comment-ring, vc-comment-ring-index, vc-comment-search-forward,
> +vc-comment-search-reverse, vc-comment-to-change-log, vc-diff-switches-list,
> +vc-next-comment, vc-previous-comment, view-todo, x-lost-selection-hooks,
> +x-sent-selection-hooks
> +
>  
>   * Incompatible Lisp Changes in Emacs 27.1
>  
> diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
> index ce3ec09..4ddb29d 100644
> --- a/lisp/arc-mode.el
> +++ b/lisp/arc-mode.el
> @@ -1010,8 +1010,6 @@ using `make-temp-file', and the generated name is returned."
>         (kill-local-variable 'buffer-file-coding-system)
>         (after-insert-file-set-coding (- (point-max) (point-min))))))
>  
> -(define-obsolete-function-alias 'archive-mouse-extract 'archive-extract "22.1")
> -
>   (defun archive-extract (&optional other-window-p event)
>     "In archive mode, extract this entry of the archive into its own buffer."
>     (interactive (list nil last-input-event))
> diff --git a/lisp/bookmark.el b/lisp/bookmark.el
> index 70b63a2..a454ccb 100644
> --- a/lisp/bookmark.el
> +++ b/lisp/bookmark.el
> @@ -2251,8 +2251,6 @@ strings returned are not."
>     "Hook run at the end of loading library `bookmark.el'.")
>  
>   ;; Exit Hook, called from kill-emacs-hook
> -(define-obsolete-variable-alias 'bookmark-exit-hooks
> -  'bookmark-exit-hook "22.1")
>   (defvar bookmark-exit-hook nil
>     "Hook run when Emacs exits.")
>  
> diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
> index ca3adfa..c1a3e0a 100644
> --- a/lisp/calendar/icalendar.el
> +++ b/lisp/calendar/icalendar.el
> @@ -43,13 +43,13 @@
>  
>   ;;  0.06:  (2004-10-06)
>   ;;  - Bugfixes regarding icalendar-import-format-*.
> -;;  - Fix in icalendar-convert-diary-to-ical -- thanks to Philipp Grau.
> +;;  - Fix in icalendar-export-file -- thanks to Philipp Grau.
>  
>   ;;  0.05: (2003-06-19)
>   ;;  - New import format scheme: Replaced icalendar-import-prefix-*,
>   ;;    icalendar-import-ignored-properties, and
>   ;;    icalendar-import-separator with icalendar-import-format(-*).
> -;;  - icalendar-import-file and icalendar-convert-diary-to-ical
> +;;  - icalendar-import-file and icalendar-export-file
>   ;;    have an extra parameter which should prevent them from
>   ;;    erasing their target files (untested!).
>   ;;  - Tested with Emacs 21.3.2
> @@ -996,9 +996,6 @@ Finto iCalendar file: ")
>       (set-buffer (find-file diary-filename))
>       (icalendar-export-region (point-min) (point-max) ical-filename)))
>  
> -(define-obsolete-function-alias 'icalendar-convert-diary-to-ical
> -  'icalendar-export-file "22.1")
> -
>   (defvar icalendar--uid-count 0
>     "Auxiliary counter for creating unique ids.")
>  
> @@ -2027,9 +2024,6 @@ buffer `*icalendar-errors*'."
>         ;; return nil, i.e. import did not work
>         nil)))
>  
> -(define-obsolete-function-alias 'icalendar-extract-ical-from-buffer
> -  'icalendar-import-buffer "22.1")
> -
>   (defun icalendar--format-ical-event (event)
>     "Create a string representation of an iCalendar EVENT."
>     (if (functionp icalendar-import-format)
> diff --git a/lisp/cedet/semantic/sb.el b/lisp/cedet/semantic/sb.el
> index 739f674..443c383 100644
> --- a/lisp/cedet/semantic/sb.el
> +++ b/lisp/cedet/semantic/sb.el
> @@ -298,11 +298,7 @@ TEXT TOKEN and INDENT are the details."
>     "Jump to the location specified in token.
>   TEXT TOKEN and INDENT are the details."
>     (let ((file
> - (or
> -  (cond ((fboundp 'speedbar-line-path)
> - (speedbar-line-directory indent))
> - ((fboundp 'speedbar-line-directory)
> - (speedbar-line-directory indent)))
> + (or (speedbar-line-directory indent)
>    ;; If speedbar cannot figure this out, extract the filename from
>    ;; the token.  True for Analysis mode.
>    (semantic-tag-file-name token)))
> diff --git a/lisp/comint.el b/lisp/comint.el
> index 838662a..3182cba 100644
> --- a/lisp/comint.el
> +++ b/lisp/comint.el
> @@ -429,9 +429,6 @@ See `comint-send-input'."
>     :type 'boolean
>     :group 'comint)
>  
> -(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
> -  'comint-use-prompt-regexp "22.1")
> -
>   ;; Note: If it is decided to purge comint-prompt-regexp from the source
>   ;; entirely, searching for uses of this variable will help to identify
>   ;; places that need attention.
> diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
> index 816c7f7..a12897e 100644
> --- a/lisp/cus-edit.el
> +++ b/lisp/cus-edit.el
> @@ -3790,10 +3790,6 @@ Optional EVENT is the location for the menu."
>     (custom-save-all)
>     (custom-face-state-set-and-redraw widget))
>  
> -;; For backward compatibility.
> -(define-obsolete-function-alias 'custom-face-save-command 'custom-face-save
> -  "22.1")
> -
>   (defun custom-face-reset-saved (widget)
>     "Restore WIDGET to the face's default attributes.
>   If there is a saved face, restore it; otherwise reset to the
> diff --git a/lisp/descr-text.el b/lisp/descr-text.el
> index ddd7d80..d8f8188 100644
> --- a/lisp/descr-text.el
> +++ b/lisp/descr-text.el
> @@ -835,8 +835,6 @@ relevant to POS."
>             (if text-props-desc (insert text-props-desc))
>             (setq buffer-read-only t))))))
>  
> -(define-obsolete-function-alias 'describe-char-after 'describe-char "22.1")
> -
>   ;;; Describe-Char-ElDoc
>  
>   (defun describe-char-eldoc--truncate (name width)
> diff --git a/lisp/desktop.el b/lisp/desktop.el
> index 8bd4465..0a1a4d5 100644
> --- a/lisp/desktop.el
> +++ b/lisp/desktop.el
> @@ -158,8 +158,6 @@ Used at desktop read to provide backward compatibility.")
>     "Save status of Emacs when you exit."
>     :group 'frames)
>  
> -;; Maintained for backward compatibility
> -(define-obsolete-variable-alias 'desktop-enable 'desktop-save-mode "22.1")
>   ;;;###autoload
>   (define-minor-mode desktop-save-mode
>     "Toggle desktop saving (Desktop Save mode).
> @@ -248,9 +246,6 @@ the normal hook `desktop-not-loaded-hook' is run."
>     :group 'desktop
>     :version "22.2")
>  
> -(define-obsolete-variable-alias 'desktop-basefilename
> -                                'desktop-base-file-name "22.1")
> -
>   (defcustom desktop-base-file-name
>     (convert-standard-filename ".emacs.desktop")
>     "Name of file for Emacs desktop, excluding the directory part."
> @@ -494,10 +489,6 @@ When file names are returned, they should be formatted using the call
>   Later, when `desktop-read' evaluates the desktop file, auxiliary information
>   is passed as the argument DESKTOP-BUFFER-MISC to functions in
>   `desktop-buffer-mode-handlers'.")
> -(make-obsolete-variable 'desktop-buffer-modes-to-save
> -                        'desktop-save-buffer "22.1")
> -(make-obsolete-variable 'desktop-buffer-misc-functions
> -                        'desktop-save-buffer "22.1")
>  
>   ;;;###autoload
>   (defvar desktop-buffer-mode-handlers nil
> @@ -541,8 +532,6 @@ can guess how to load the mode's definition.")
>  
>   ;;;###autoload
>   (put 'desktop-buffer-mode-handlers 'risky-local-variable t)
> -(make-obsolete-variable 'desktop-buffer-handlers
> -                        'desktop-buffer-mode-handlers "22.1")
>  
>   (defcustom desktop-minor-mode-table
>     '((auto-fill-function auto-fill-mode)
> @@ -1310,17 +1299,6 @@ Using it may cause conflicts.  Use it anyway? " owner)))))
>         nil)))
>  
>   ;; ----------------------------------------------------------------------------
> -;; Maintained for backward compatibility
> -;;;###autoload
> -(defun desktop-load-default ()
> -  "Load the `default' start-up library manually.
> -Also inhibit further loading of it."
> -  (declare (obsolete desktop-save-mode "22.1"))
> -  (unless inhibit-default-init        ; safety check
> -    (load "default" t t)
> -    (setq inhibit-default-init t)))
> -
> -;; ----------------------------------------------------------------------------
>   ;;;###autoload
>   (defun desktop-change-dir (dirname)
>     "Change to desktop saved in DIRNAME.
> diff --git a/lisp/dired-x.el b/lisp/dired-x.el
> index fa36083..a1c2f44 100644
> --- a/lisp/dired-x.el
> +++ b/lisp/dired-x.el
> @@ -137,8 +137,6 @@ folding to be used on case-insensitive filesystems only."
>         (file-name-case-insensitive-p dir)
>       dired-omit-case-fold))
>  
> -;; For backward compatibility
> -(define-obsolete-variable-alias 'dired-omit-files-p 'dired-omit-mode "22.1")
>   (define-minor-mode dired-omit-mode
>     "Toggle omission of uninteresting files in Dired (Dired-Omit mode).
>   With a prefix argument ARG, enable Dired-Omit mode if ARG is
> diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
> index 7b4a7d0..5274ec8 100644
> --- a/lisp/emacs-lisp/autoload.el
> +++ b/lisp/emacs-lisp/autoload.el
> @@ -1145,9 +1145,6 @@ write its autoloads into the specified file instead."
>         ;; file-local autoload-generated-file settings.
>         (autoload-save-buffers))))
>  
> -(define-obsolete-function-alias 'update-autoloads-from-directories
> -    'update-directory-autoloads "22.1")
> -
>   ;;;###autoload
>   (defun batch-update-autoloads ()
>     "Update loaddefs.el autoloads in batch mode.
> diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
> index 547f5cd..6b47ffe 100644
> --- a/lisp/emacs-lisp/derived.el
> +++ b/lisp/emacs-lisp/derived.el
> @@ -286,19 +286,6 @@ No problems result if this variable is not bound.
>   ;; Run the hooks (and delayed-after-hook-functions), if any.
>   (run-mode-hooks ',hook)))))
>  
> -;; PUBLIC: find the ultimate class of a derived mode.
> -
> -(defun derived-mode-class (mode)
> -  "Find the class of a major MODE.
> -A mode's class is the first ancestor which is NOT a derived mode.
> -Use the `derived-mode-parent' property of the symbol to trace backwards.
> -Since major-modes might all derive from `fundamental-mode', this function
> -is not very useful."
> -  (declare (obsolete derived-mode-p "22.1"))
> -  (while (get mode 'derived-mode-parent)
> -    (setq mode (get mode 'derived-mode-parent)))
> -  mode)
> -
>  
>   ;;; PRIVATE
>  
> diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el
> index e2009bf..194fa1e 100644
> --- a/lisp/emacs-lisp/generic.el
> +++ b/lisp/emacs-lisp/generic.el
> @@ -96,8 +96,6 @@
>   ;; Internal Variables
>   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>  
> -(define-obsolete-variable-alias 'generic-font-lock-defaults
> -  'generic-font-lock-keywords "22.1")
>   (defvar generic-font-lock-keywords nil
>     "Keywords for `font-lock-defaults' in a generic mode.")
>   (make-variable-buffer-local 'generic-font-lock-keywords)
> diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
> index b1e12b1..795554f 100644
> --- a/lisp/emacs-lisp/timer.el
> +++ b/lisp/emacs-lisp/timer.el
> @@ -141,20 +141,6 @@ omitted, they are treated as zero."
>     (setf (timer--time timer)
>           (timer-relative-time (timer--time timer) secs usecs psecs)))
>  
> -(defun timer-set-time-with-usecs (timer time usecs &optional delta)
> -  "Set the trigger time of TIMER to TIME plus USECS.
> -TIME must be in the internal format returned by, e.g., `current-time'.
> -The microsecond count from TIME is ignored, and USECS is used instead.
> -If optional fourth argument DELTA is a positive number, make the timer
> -fire repeatedly that many seconds apart."
> -  (declare (obsolete "use `timer-set-time' and `timer-inc-time' instead."
> -     "22.1"))
> -  (setf (timer--time timer) time)
> -  (setf (timer--usecs timer) usecs)
> -  (setf (timer--psecs timer) 0)
> -  (setf (timer--repeat-delay timer) (and (numberp delta) (> delta 0) delta))
> -  timer)
> -
>   (defun timer-set-function (timer function &optional args)
>     "Make TIMER call FUNCTION with optional ARGS when triggering."
>     (timer--check timer)
> diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el
> index f6b569b..03f22eb 100644
> --- a/lisp/emacs-lisp/unsafep.el
> +++ b/lisp/emacs-lisp/unsafep.el
> @@ -93,7 +93,7 @@ in the parse.")
>   (put 'unsafep-vars 'risky-local-variable t)
>  
>   ;;Side-effect-free functions from subr.el
> -(dolist (x '(assoc-default assoc-ignore-case butlast last match-string
> +(dolist (x '(assoc-default butlast last match-string
>       match-string-no-properties member-ignore-case remove remq))
>     (put x 'side-effect-free t))
>  
> diff --git a/lisp/files.el b/lisp/files.el
> index 4b67b02..b887a34 100644
> --- a/lisp/files.el
> +++ b/lisp/files.el
> @@ -473,7 +473,7 @@ location of point in the current buffer."
>     :group 'find-file)
>  
>   ;;;It is not useful to make this a local variable.
> -;;;(put 'find-file-not-found-hooks 'permanent-local t)
> +;;;(put 'find-file-not-found-functions 'permanent-local t)
>   (define-obsolete-variable-alias 'find-file-not-found-hooks
>       'find-file-not-found-functions "22.1")
>   (defvar find-file-not-found-functions nil
> @@ -483,7 +483,8 @@ Variable `buffer-file-name' is already set up.
>   The functions are called in the order given until one of them returns non-nil.")
>  
>   ;;;It is not useful to make this a local variable.
> -;;;(put 'find-file-hooks 'permanent-local t)
> +;;;(put 'find-file-hook 'permanent-local t)
> +;; I found some external files still using the obsolete form in 2018.
>   (define-obsolete-variable-alias 'find-file-hooks 'find-file-hook "22.1")
>   (defcustom find-file-hook nil
>     "List of functions to be called after a buffer is loaded from a file.
> @@ -494,6 +495,7 @@ functions are called."
>     :options '(auto-insert)
>     :version "22.1")
>  
> +;; I found some external files still using the obsolete form in 2018.
>   (define-obsolete-variable-alias 'write-file-hooks 'write-file-functions "22.1")
>   (defvar write-file-functions nil
>     "List of functions to be called before saving a buffer to a file.
> @@ -513,6 +515,7 @@ node `(elisp)Saving Buffers'.)  To perform various checks or
>   updates before the buffer is saved, use `before-save-hook'.")
>   (put 'write-file-functions 'permanent-local t)
>  
> +;; I found some files still using the obsolete form in 2018.
>   (defvar local-write-file-hooks nil)
>   (make-variable-buffer-local 'local-write-file-hooks)
>   (put 'local-write-file-hooks 'permanent-local t)
> diff --git a/lisp/frame.el b/lisp/frame.el
> index 0cf502d..fbf2f6e 100644
> --- a/lisp/frame.el
> +++ b/lisp/frame.el
> @@ -614,9 +614,6 @@ frame.")
>   (defvar after-setting-font-hook nil
>     "Functions to run after a frame's font has been changed.")
>  
> -;; Alias, kept temporarily.
> -(define-obsolete-function-alias 'new-frame 'make-frame "22.1")
> -
>   (defvar frame-inherited-parameters '()
>     "Parameters `make-frame' copies from the selected to the new frame.")
>  
> @@ -1147,8 +1144,6 @@ FRAME defaults to the selected frame."
>   (declare-function x-list-fonts "xfaces.c"
>                     (pattern &optional face frame maximum width))
>  
> -(define-obsolete-function-alias 'set-default-font 'set-frame-font "23.1")
> -
>   (defun set-frame-font (font &optional keep-size frames)
>     "Set the default font to FONT.
>   When called interactively, prompt for the name of a font, and use
> @@ -2113,10 +2108,6 @@ a live frame and defaults to the selected one."
>           (delete-frame this))
>         (setq this next))))
>  
> -;; miscellaneous obsolescence declarations
> -(define-obsolete-variable-alias 'delete-frame-hook
> -    'delete-frame-functions "22.1")
> -
>  
>   ;;; Window dividers.
>   (defgroup window-divider nil
> @@ -2352,8 +2343,6 @@ This is done when a frame gets focus.  Blink timers may be stopped by
>       (remove-hook 'post-command-hook 'blink-cursor-check)
>       (blink-cursor--start-idle-timer)))
>  
> -(define-obsolete-variable-alias 'blink-cursor 'blink-cursor-mode "22.1")
> -
>   (define-minor-mode blink-cursor-mode
>     "Toggle cursor blinking (Blink Cursor mode).
>   With a prefix argument ARG, enable Blink Cursor mode if ARG is
> diff --git a/lisp/generic-x.el b/lisp/generic-x.el
> index 3e3ddc5..d8a7fe3 100644
> --- a/lisp/generic-x.el
> +++ b/lisp/generic-x.el
> @@ -241,30 +241,11 @@ This hook will be installed if the variable
>       spice-generic-mode)
>     "List of generic modes that are not defined by default.")
>  
> -(defcustom generic-define-mswindows-modes
> -  (memq system-type '(windows-nt ms-dos))
> -  "Non-nil means the modes in `generic-mswindows-modes' will be defined.
> -This is a list of MS-Windows specific generic modes.  This variable
> -only affects the default value of `generic-extras-enable-list'."
> -  :group 'generic-x
> -  :type 'boolean
> -  :version "22.1")
> -(make-obsolete-variable 'generic-define-mswindows-modes 'generic-extras-enable-list "22.1")
> -
> -(defcustom generic-define-unix-modes
> -  (not (memq system-type '(windows-nt ms-dos)))
> -  "Non-nil means the modes in `generic-unix-modes' will be defined.
> -This is a list of Unix specific generic modes.  This variable only
> -affects the default value of `generic-extras-enable-list'."
> -  :group 'generic-x
> -  :type 'boolean
> -  :version "22.1")
> -(make-obsolete-variable 'generic-define-unix-modes 'generic-extras-enable-list "22.1")
> -
>   (defcustom generic-extras-enable-list
>     (append generic-default-modes
> -  (if generic-define-mswindows-modes generic-mswindows-modes)
> -  (if generic-define-unix-modes generic-unix-modes)
> +          (if (memq system-type '(windows-nt ms-dos))
> +              generic-mswindows-modes
> +            generic-unix-modes)
>    nil)
>     "List of generic modes to define.
>   Each entry in the list should be a symbol.  If you set this variable
> diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
> index 71a69cb..97e6340 100644
> --- a/lisp/gnus/spam.el
> +++ b/lisp/gnus/spam.el
> @@ -1244,73 +1244,40 @@ Will not return a nil score."
>           (setq found backend)))
>       found))
>  
> -(defvar spam-list-of-processors
> -  ;; note the nil processors are not defined in gnus.el
> -  '((gnus-group-spam-exit-processor-bogofilter   spam spam-use-bogofilter)
> -    (gnus-group-spam-exit-processor-bsfilter     spam spam-use-bsfilter)
> -    (gnus-group-spam-exit-processor-blacklist    spam spam-use-blacklist)
> -    (gnus-group-spam-exit-processor-ifile        spam spam-use-ifile)
> -    (gnus-group-spam-exit-processor-stat         spam spam-use-stat)
> -    (gnus-group-spam-exit-processor-spamoracle   spam spam-use-spamoracle)
> -    (gnus-group-spam-exit-processor-spamassassin spam spam-use-spamassassin)
> -    (gnus-group-spam-exit-processor-report-gmane spam spam-use-gmane) ;; Buggy?
> -    (gnus-group-ham-exit-processor-ifile         ham spam-use-ifile)
> -    (gnus-group-ham-exit-processor-bogofilter    ham spam-use-bogofilter)
> -    (gnus-group-ham-exit-processor-bsfilter      ham spam-use-bsfilter)
> -    (gnus-group-ham-exit-processor-stat          ham spam-use-stat)
> -    (gnus-group-ham-exit-processor-whitelist     ham spam-use-whitelist)
> -    (gnus-group-ham-exit-processor-BBDB          ham spam-use-BBDB)
> -    (gnus-group-ham-exit-processor-copy          ham spam-use-ham-copy)
> -    (gnus-group-ham-exit-processor-spamassassin  ham spam-use-spamassassin)
> -    (gnus-group-ham-exit-processor-spamoracle    ham spam-use-spamoracle))
> -  "The OBSOLETE `spam-list-of-processors' list.
> -This list contains pairs associating the obsolete ham/spam exit
> -processor variables with a classification and a spam-use-*
> -variable.  When the processor variable is nil, just the
> -classification and spam-use-* check variable are used.  This is
> -superseded by the new spam backend code, so it's only consulted
> -for backwards compatibility.")
> -(make-obsolete-variable 'spam-list-of-processors nil "22.1")
> -
>   (defun spam-group-processor-p (group backend &optional classification)
>     "Checks if GROUP has a BACKEND with CLASSIFICATION registered.
> -Also accepts the obsolete processors, which can be found in
> -gnus.el and in spam-list-of-processors.  In the case of mover
> -backends, checks the setting of `spam-summary-exit-behavior' in
> -addition to the set values for the group."
> +In the case of mover backends, checks the setting of
> +`spam-summary-exit-behavior' in addition to the set values for the group."
>     (if (and (stringp group)
>              (symbolp backend))
> -      (let ((old-style (assq backend spam-list-of-processors))
> -            (parameters (nth 0 (gnus-parameter-spam-process group)))
> +      (let ((parameters (nth 0 (gnus-parameter-spam-process group)))
>               found)
> -        (if old-style  ; old-style processor
> -            (spam-group-processor-p group (nth 2 old-style) (nth 1 old-style))
> -          ;; now search for the parameter
> -          (dolist (parameter parameters)
> -            (when (and (null found)
> -                       (listp parameter)
> -                       (eq classification (nth 0 parameter))
> -                       (eq backend (nth 1 parameter)))
> -              (setq found t)))
> -
> -          ;; now, if the parameter was not found, do the
> -          ;; spam-summary-exit-behavior-logic for mover backends
> -          (unless found
> -            (when (spam-backend-mover-p backend)
> -              (setq
> -               found
> -               (cond
> -                ((eq spam-summary-exit-behavior 'move-all) t)
> -                ((eq spam-summary-exit-behavior 'move-none) nil)
> -                ((eq spam-summary-exit-behavior 'default)
> -                 (or (eq classification 'spam) ;move spam out of all groups
> -                     ;; move ham out of spam groups
> -                     (and (eq classification 'ham)
> -                          (spam-group-spam-contents-p group))))
> -                (t (gnus-error 5 "Unknown spam-summary-exit-behavior: %s"
> -                               spam-summary-exit-behavior))))))
> -
> -          found))
> +        ;; now search for the parameter
> +        (dolist (parameter parameters)
> +          (when (and (null found)
> +                     (listp parameter)
> +                     (eq classification (nth 0 parameter))
> +                     (eq backend (nth 1 parameter)))
> +            (setq found t)))
> +
> +        ;; now, if the parameter was not found, do the
> +        ;; spam-summary-exit-behavior-logic for mover backends
> +        (unless found
> +          (when (spam-backend-mover-p backend)
> +            (setq
> +             found
> +             (cond
> +              ((eq spam-summary-exit-behavior 'move-all) t)
> +              ((eq spam-summary-exit-behavior 'move-none) nil)
> +              ((eq spam-summary-exit-behavior 'default)
> +               (or (eq classification 'spam) ;move spam out of all groups
> +                   ;; move ham out of spam groups
> +                   (and (eq classification 'ham)
> +                        (spam-group-spam-contents-p group))))
> +              (t (gnus-error 5 "Unknown spam-summary-exit-behavior: %s"
> +                             spam-summary-exit-behavior))))))
> +
> +        found)
>       nil))
>  
>   ;;}}}
> diff --git a/lisp/help.el b/lisp/help.el
> index e923546..0830dc5 100644
> --- a/lisp/help.el
> +++ b/lisp/help.el
> @@ -308,8 +308,6 @@ If that doesn't give a function, return nil."
>     (interactive)
>     (browse-url "https://www.gnu.org/gnu/thegnuproject.html"))
>  
> -(define-obsolete-function-alias 'describe-project 'describe-gnu-project "22.2")
> -
>   (defun describe-no-warranty ()
>     "Display info on all the kinds of warranty Emacs does NOT have."
>     (interactive)
> @@ -413,9 +411,6 @@ With argument, display info only for the selected version."
>     (interactive "P")
>     (view-help-file "TODO"))
>  
> -(define-obsolete-function-alias 'view-todo 'view-emacs-todo "22.2")
> -
> -
>   (defun view-echo-area-messages ()
>     "View the log of recent echo-area messages: the `*Messages*' buffer.
>   The number of messages retained in that buffer
> diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
> index de1ae0d..7c5294f 100644
> --- a/lisp/hilit-chg.el
> +++ b/lisp/hilit-chg.el
> @@ -204,9 +204,6 @@
>     :group 'highlight-changes)
>  
>   ;; A (not very good) default list of colors to rotate through.
> -(define-obsolete-variable-alias 'highlight-changes-colours
> -                                'highlight-changes-colors "22.1")
> -
>   (defcustom highlight-changes-colors
>     (if (eq (frame-parameter nil 'background-mode) 'light)
>         ;; defaults for light background:
> diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
> index 38fffcb..0fd2971 100644
> --- a/lisp/ibuffer.el
> +++ b/lisp/ibuffer.el
> @@ -224,14 +224,6 @@ view of the buffers."
>     :group 'ibuffer)
>   (defvar ibuffer-sorting-reversep nil)
>  
> -(defcustom ibuffer-elide-long-columns nil
> -  "If non-nil, then elide column entries which exceed their max length."
> -  :type 'boolean
> -  :group 'ibuffer)
> -(make-obsolete-variable 'ibuffer-elide-long-columns
> -                        "use the :elide argument of `ibuffer-formats'."
> -                        "22.1")
> -
>   (defcustom ibuffer-eliding-string "..."
>     "The string to use for eliding long columns."
>     :type 'string
> @@ -349,15 +341,11 @@ directory, like `default-directory'."
>     :type 'regexp
>     :group 'ibuffer)
>  
> -(define-obsolete-variable-alias 'ibuffer-hooks 'ibuffer-hook "22.1")
> -
>   (defcustom ibuffer-hook nil
>     "Hook run when `ibuffer' is called."
>     :type 'hook
>     :group 'ibuffer)
>  
> -(define-obsolete-variable-alias 'ibuffer-mode-hooks 'ibuffer-mode-hook "22.1")
> -
>   (defcustom ibuffer-mode-hook nil
>     "Hook run upon entry into `ibuffer-mode'."
>     :type 'hook
> @@ -952,7 +940,6 @@ directory, like `default-directory'."
>   (defvar ibuffer-compiled-formats nil)
>   (defvar ibuffer-cached-formats nil)
>   (defvar ibuffer-cached-eliding-string nil)
> -(defvar ibuffer-cached-elide-long-columns 0)
>  
>   (defvar ibuffer-sorting-functions-alist nil
>     "An alist of functions which describe how to sort buffers.
> @@ -1589,7 +1576,7 @@ If point is on a group name, this function operates on that group."
>  
>   (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p)
>     (let ((ellipsis (propertize ibuffer-eliding-string 'font-lock-face 'bold)))
> -    (if (or elide (with-no-warnings ibuffer-elide-long-columns))
> +    (if elide
>   `(if (> strlen 5)
>       ,(if from-end-p
>                     ;; FIXME: this should probably also be using
> @@ -1789,9 +1776,6 @@ If point is on a group name, this function operates on that group."
>        (not (eq ibuffer-cached-formats ibuffer-formats))
>        (null ibuffer-cached-eliding-string)
>        (not (equal ibuffer-cached-eliding-string ibuffer-eliding-string))
> -      (eql 0 ibuffer-cached-elide-long-columns)
> -      (not (eql ibuffer-cached-elide-long-columns
> - (with-no-warnings ibuffer-elide-long-columns)))
>        (and ext-loaded
>     (not (eq ibuffer-cached-filter-formats
>      ibuffer-filter-format-alist))
> @@ -1800,8 +1784,7 @@ If point is on a group name, this function operates on that group."
>         (message "Formats have changed, recompiling...")
>         (ibuffer-recompile-formats)
>         (setq ibuffer-cached-formats ibuffer-formats
> -    ibuffer-cached-eliding-string ibuffer-eliding-string
> -    ibuffer-cached-elide-long-columns (with-no-warnings ibuffer-elide-long-columns))
> +    ibuffer-cached-eliding-string ibuffer-eliding-string)
>         (when ext-loaded
>   (setq ibuffer-cached-filter-formats ibuffer-filter-format-alist))
>         (message "Formats have changed, recompiling...done"))))
> @@ -2746,7 +2729,6 @@ will be inserted before the group at point."
>     (set (make-local-variable 'ibuffer-compiled-formats) nil)
>     (set (make-local-variable 'ibuffer-cached-formats) nil)
>     (set (make-local-variable 'ibuffer-cached-eliding-string) nil)
> -  (set (make-local-variable 'ibuffer-cached-elide-long-columns) nil)
>     (set (make-local-variable 'ibuffer-current-format) nil)
>     (set (make-local-variable 'ibuffer-did-modification) nil)
>     (set (make-local-variable 'ibuffer-tmp-hide-regexps) nil)
> diff --git a/lisp/imenu.el b/lisp/imenu.el
> index f56e7b5..b4d7d90 100644
> --- a/lisp/imenu.el
> +++ b/lisp/imenu.el
> @@ -102,14 +102,7 @@ This variable is buffer-local."
>     :type 'integer
>     :group 'imenu)
>  
> -(defvar imenu-always-use-completion-buffer-p nil)
> -(make-obsolete-variable 'imenu-always-use-completion-buffer-p
> - 'imenu-use-popup-menu "22.1")
> -
> -(defcustom imenu-use-popup-menu
> -  (if imenu-always-use-completion-buffer-p
> -      (not (eq imenu-always-use-completion-buffer-p 'never))
> -    'on-mouse)
> +(defcustom imenu-use-popup-menu 'on-mouse
>     "Use a popup menu rather than a minibuffer prompt.
>   If nil, always use a minibuffer prompt.
>   If t, always use a popup menu,
> @@ -119,8 +112,7 @@ If `on-mouse' use a popup menu when `imenu' was invoked with the mouse."
>   (other :tag "Always" t))
>     :group 'imenu)
>  
> -(defcustom imenu-eager-completion-buffer
> -  (not (eq imenu-always-use-completion-buffer-p 'never))
> +(defcustom imenu-eager-completion-buffer t
>     "If non-nil, eagerly popup the completion buffer."
>     :type 'boolean
>     :group 'imenu
> diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el
> index 657f790..df2c1dc 100644
> --- a/lisp/international/latin1-disp.el
> +++ b/lisp/international/latin1-disp.el
> @@ -201,10 +201,6 @@ character set: `latin-2', `hebrew' etc."
>   (char (and info (decode-char (car (remq 'ascii info)) ?\ ))))
>       (and char (char-displayable-p char))))
>  
> -;; Backwards compatibility.
> -(define-obsolete-function-alias 'latin1-char-displayable-p
> -  'char-displayable-p "22.1")
> -
>   (defun latin1-display-setup (set &optional force)
>     "Set up Latin-1 display for characters in the given SET.
>   SET must be a member of `latin1-display-sets'.  Normally, check
> diff --git a/lisp/isearch.el b/lisp/isearch.el
> index 4f5f494..84b121a 100644
> --- a/lisp/isearch.el
> +++ b/lisp/isearch.el
> @@ -323,10 +323,6 @@ this variable is set to the symbol `all-windows'."
>     :group 'isearch
>     :group 'matching)
>  
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-cleanup
> -                                'lazy-highlight-cleanup
> -                                "22.1")
> -
>   (defcustom lazy-highlight-cleanup t
>     "Controls whether to remove extra highlighting after a search.
>   If this is nil, extra highlighting can be \"manually\" removed with
> @@ -334,28 +330,16 @@ If this is nil, extra highlighting can be \"manually\" removed with
>     :type 'boolean
>     :group 'lazy-highlight)
>  
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-initial-delay
> -                                'lazy-highlight-initial-delay
> -                                "22.1")
> -
>   (defcustom lazy-highlight-initial-delay 0.25
>     "Seconds to wait before beginning to lazily highlight all matches."
>     :type 'number
>     :group 'lazy-highlight)
>  
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-interval
> -                                'lazy-highlight-interval
> -                                "22.1")
> -
>   (defcustom lazy-highlight-interval 0 ; 0.0625
>     "Seconds between lazily highlighting successive matches."
>     :type 'number
>     :group 'lazy-highlight)
>  
> -(define-obsolete-variable-alias 'isearch-lazy-highlight-max-at-a-time
> -                                'lazy-highlight-max-at-a-time
> -                                "22.1")
> -
>   (defcustom lazy-highlight-max-at-a-time nil ; 20 (bug#25751)
>     "Maximum matches to highlight at a time (for `lazy-highlight').
>   Larger values may reduce Isearch's responsiveness to user input;
> @@ -3202,10 +3186,6 @@ This function is called when exiting an incremental search if
>       (cancel-timer isearch-lazy-highlight-timer)
>       (setq isearch-lazy-highlight-timer nil)))
>  
> -(define-obsolete-function-alias 'isearch-lazy-highlight-cleanup
> -                                'lazy-highlight-cleanup
> -                                "22.1")
> -
>   (defun isearch-lazy-highlight-new-loop (&optional beg end)
>     "Cleanup any previous `lazy-highlight' loop and begin a new one.
>   BEG and END specify the bounds within which highlighting should occur.
> diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
> index 4e5873c..f2fdcb6 100644
> --- a/lisp/mail/rmail.el
> +++ b/lisp/mail/rmail.el
> @@ -191,9 +191,6 @@ Its name should end with a slash."
>     :group 'rmail-retrieve
>     :type '(choice (const nil) string))
>  
> -(define-obsolete-variable-alias 'rmail-pop-password
> -  'rmail-remote-password "22.1")
> -
>   (defcustom rmail-remote-password nil
>     "Password to use when reading mail from a remote server.
>   This setting is ignored for mailboxes whose URL already contains a password."
> @@ -202,9 +199,6 @@ This setting is ignored for mailboxes whose URL already contains a password."
>     :group 'rmail-retrieve
>     :version "22.1")
>  
> -(define-obsolete-variable-alias 'rmail-pop-password-required
> -  'rmail-remote-password-required "22.1")
> -
>   (defcustom rmail-remote-password-required nil
>     "Non-nil if a password is required when reading mail from a remote server."
>     :type 'boolean
> diff --git a/lisp/mwheel.el b/lisp/mwheel.el
> index 44c4989..f055df9 100644
> --- a/lisp/mwheel.el
> +++ b/lisp/mwheel.el
> @@ -52,38 +52,25 @@
>     ;; Sync the bindings.
>     (when (bound-and-true-p mouse-wheel-mode) (mouse-wheel-mode 1)))
>  
> -(defvar mouse-wheel-down-button 4)
> -(make-obsolete-variable 'mouse-wheel-down-button
> -                        'mouse-wheel-down-event
> - "22.1")
>   (defcustom mouse-wheel-down-event
>     (if (or (featurep 'w32-win) (featurep 'ns-win))
>         'wheel-up
> -    (intern (format "mouse-%s" mouse-wheel-down-button)))
> +    'mouse-4)
>     "Event used for scrolling down."
>     :group 'mouse
>     :type 'symbol
>     :set 'mouse-wheel-change-button)
>  
> -(defvar mouse-wheel-up-button 5)
> -(make-obsolete-variable 'mouse-wheel-up-button
> -                        'mouse-wheel-up-event
> - "22.1")
>   (defcustom mouse-wheel-up-event
>     (if (or (featurep 'w32-win) (featurep 'ns-win))
>         'wheel-down
> -    (intern (format "mouse-%s" mouse-wheel-up-button)))
> +    'mouse-5)
>     "Event used for scrolling up."
>     :group 'mouse
>     :type 'symbol
>     :set 'mouse-wheel-change-button)
>  
> -(defvar mouse-wheel-click-button 2)
> -(make-obsolete-variable 'mouse-wheel-click-button
> -                        'mouse-wheel-click-event
> - "22.1")
> -(defcustom mouse-wheel-click-event
> -  (intern (format "mouse-%s" mouse-wheel-click-button))
> +(defcustom mouse-wheel-click-event 'mouse-2
>     "Event that should be temporarily inhibited after mouse scrolling.
>   The mouse wheel is typically on the mouse-2 button, so it may easily
>   happen that text is accidentally yanked into the buffer when
> diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el
> index ed615d1..cc1cdd1 100644
> --- a/lisp/net/goto-addr.el
> +++ b/lisp/net/goto-addr.el
> @@ -221,10 +221,6 @@ and `goto-address-fontify-p'."
>   ;; snarfed from browse-url.el
>  
>   ;;;###autoload
> -(define-obsolete-function-alias
> -  'goto-address-at-mouse 'goto-address-at-point "22.1")
> -
> -;;;###autoload
>   (defun goto-address-at-point (&optional event)
>     "Send to the e-mail address or load the URL at point.
>   Send mail to address at point.  See documentation for
> diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
> index 9edd42b..c9e8080 100644
> --- a/lisp/net/net-utils.el
> +++ b/lisp/net/net-utils.el
> @@ -86,8 +86,6 @@ These options can be used to limit how many ICMP packets are emitted."
>     :group 'net-utils
>     :type  '(repeat string))
>  
> -(define-obsolete-variable-alias 'ipconfig-program 'ifconfig-program "22.2")
> -
>   (defcustom ifconfig-program
>     (cond ((eq system-type 'windows-nt) "ipconfig")
>           ((executable-find "ifconfig") "ifconfig")
> @@ -99,9 +97,6 @@ These options can be used to limit how many ICMP packets are emitted."
>     :group 'net-utils
>     :type  'string)
>  
> -(define-obsolete-variable-alias 'ipconfig-program-options
> -  'ifconfig-program-options "22.2")
> -
>   (defcustom ifconfig-program-options
>     (cond ((string-match "ipconfig\\'" ifconfig-program) '("/all"))
>           ((string-match "ifconfig\\'" ifconfig-program) '("-a"))
> diff --git a/lisp/novice.el b/lisp/novice.el
> index b9cd568..aaad4fa 100644
> --- a/lisp/novice.el
> +++ b/lisp/novice.el
> @@ -35,9 +35,6 @@
>   ;; and the keys are returned by (this-command-keys).
>  
>   ;;;###autoload
> -(define-obsolete-variable-alias 'disabled-command-hook
> -  'disabled-command-function "22.1")
> -;;;###autoload
>   (defvar disabled-command-function 'disabled-command-function
>     "Function to call to handle disabled commands.
>   If nil, the feature is disabled, i.e., all commands work normally.")
> diff --git a/lisp/obsolete/iswitchb.el b/lisp/obsolete/iswitchb.el
> index 55e81d0..d03621d 100644
> --- a/lisp/obsolete/iswitchb.el
> +++ b/lisp/obsolete/iswitchb.el
> @@ -353,8 +353,6 @@ See also `iswitchb-newbuffer'."
>     :type 'boolean
>     :group 'iswitchb)
>  
> -(define-obsolete-variable-alias 'iswitchb-use-fonts 'iswitchb-use-faces "22.1")
> -
>   (defcustom iswitchb-use-faces t
>     "Non-nil means use font-lock faces for showing first match."
>     :type 'boolean
> diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el
> index f22cc24..2b8bd9d 100644
> --- a/lisp/play/dunnet.el
> +++ b/lisp/play/dunnet.el
> @@ -2349,7 +2349,6 @@ for a moment, then straighten yourself up.\n")
>   ;;;; This section sets up the keymaps for interactive and batch dunnet.
>   ;;;;
>  
> -(define-obsolete-variable-alias 'dungeon-mode-map 'dun-mode-map "22.1")
>   (define-key dun-mode-map "\r" 'dun-parse)
>   (defvar dungeon-batch-map (make-keymap))
>   (if (string= (substring emacs-version 0 2) "18")
> diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
> index 4229743..15503ee 100644
> --- a/lisp/progmodes/compile.el
> +++ b/lisp/progmodes/compile.el
> @@ -100,16 +100,6 @@ compilation buffer.  It should return a string.
>   If nil, compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
>  
>   ;;;###autoload
> -(defvar compilation-finish-function nil
> -  "Function to call when a compilation process finishes.
> -It is called with two arguments: the compilation buffer, and a string
> -describing how the process finished.")
> -
> -(make-obsolete-variable 'compilation-finish-function
> -  "use `compilation-finish-functions', but it works a little differently."
> -  "22.1")
> -
> -;;;###autoload
>   (defvar compilation-finish-functions nil
>     "Functions to call when a compilation process finishes.
>   Each function is called with two arguments: the compilation buffer,
> @@ -2101,7 +2091,6 @@ by replacing the first word, e.g., `compilation-scroll-output' from
>     compilation-error-regexp-alist
>     compilation-error-regexp-alist-alist
>     compilation-error-screen-columns
> -   compilation-finish-function
>     compilation-finish-functions
>     compilation-first-column
>     compilation-mode-font-lock-keywords
> @@ -2245,9 +2234,6 @@ commands of Compilation major mode are available.  See
>       (force-mode-line-update)
>       (if (and opoint (< opoint omax))
>   (goto-char opoint))
> -    (with-no-warnings
> -      (if compilation-finish-function
> -  (funcall compilation-finish-function cur-buffer msg)))
>       (run-hook-with-args 'compilation-finish-functions cur-buffer msg)))
>  
>   ;; Called when compilation process changes state.
> diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
> index 8c0682a..09a26dd 100644
> --- a/lisp/progmodes/cperl-mode.el
> +++ b/lisp/progmodes/cperl-mode.el
> @@ -390,13 +390,6 @@ Affects: `cperl-font-lock', `cperl-electric-lbrace-space',
>     :type '(repeat string)
>        :group 'cperl)
>  
> -;; This became obsolete...
> -(defvar cperl-vc-header-alist nil)
> -(make-obsolete-variable
> - 'cperl-vc-header-alist
> - "use cperl-vc-rcs-header or cperl-vc-sccs-header instead."
> - "22.1")
> -
>   ;; (defcustom cperl-clobber-mode-lists
>   ;;   (not
>   ;;    (and
> @@ -1727,9 +1720,8 @@ or as help on variables `cperl-tips', `cperl-problems',
>     (when (featurep 'xemacs)
>       ;; This one is obsolete...
>       (set (make-local-variable 'vc-header-alist)
> -         (or cperl-vc-header-alist      ; Avoid warning
> -     `((SCCS ,(car cperl-vc-sccs-header))
> -       (RCS ,(car cperl-vc-rcs-header))))))
> + `((SCCS ,(car cperl-vc-sccs-header))
> +   (RCS ,(car cperl-vc-rcs-header)))))
>     (cond ((boundp 'compilation-error-regexp-alist-alist);; xemacs 20.x
>   (set (make-local-variable 'compilation-error-regexp-alist-alist)
>        (cons (cons 'cperl (car cperl-compilation-error-regexp-alist))
> diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
> index 6aa9a7e..2664d03 100644
> --- a/lisp/progmodes/gud.el
> +++ b/lisp/progmodes/gud.el
> @@ -3397,9 +3397,6 @@ it if ARG is omitted or nil."
>   (kill-local-variable 'gdb-define-alist)
>   (remove-hook 'after-save-hook 'gdb-create-define-alist t))))
>  
> -(define-obsolete-variable-alias 'tooltip-gud-modes
> -                                'gud-tooltip-modes "22.1")
> -
>   (defcustom gud-tooltip-modes '(gud-mode c-mode c++-mode fortran-mode
>   python-mode)
>     "List of modes for which to enable GUD tooltips."
> @@ -3407,9 +3404,6 @@ it if ARG is omitted or nil."
>     :group 'gud
>     :group 'tooltip)
>  
> -(define-obsolete-variable-alias 'tooltip-gud-display
> -                                'gud-tooltip-display "22.1")
> -
>   (defcustom gud-tooltip-display
>     '((eq (tooltip-event-buffer gud-tooltip-event)
>   (marker-buffer gud-overlay-arrow-position)))
> @@ -3501,8 +3495,6 @@ With arg, dereference expr if ARG is positive, otherwise do not dereference."
>     (message "Dereferencing is now %s."
>     (if gud-tooltip-dereference "on" "off")))
>  
> -(define-obsolete-function-alias 'tooltip-gud-toggle-dereference
> -                                'gud-tooltip-dereference "22.1")
>   (defvar tooltip-use-echo-area)
>   (declare-function tooltip-show "tooltip" (text &optional use-echo-area))
>   (declare-function tooltip-strip-prompt "tooltip" (process output))
> diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
> index 737dd9e..58dc213 100644
> --- a/lisp/progmodes/pascal.el
> +++ b/lisp/progmodes/pascal.el
> @@ -1403,7 +1403,6 @@ The default is a name found in the buffer around point."
>       map)
>     "Keymap used in Pascal Outline mode.")
>  
> -(define-obsolete-function-alias 'pascal-outline 'pascal-outline-mode "22.1")
>   (define-minor-mode pascal-outline-mode
>     "Outline-line minor mode for Pascal mode.
>   With a prefix argument ARG, enable the mode if ARG is positive,
> diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
> index c1d94ac..e667a97 100644
> --- a/lisp/progmodes/perl-mode.el
> +++ b/lisp/progmodes/perl-mode.el
> @@ -745,8 +745,6 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'."
>         0 ;Existing comment at bol stays there.
>       comment-column))
>  
> -(define-obsolete-function-alias 'electric-perl-terminator
> -  'perl-electric-terminator "22.1")
>   (defun perl-electric-noindent-p (_char)
>     ;; To reproduce the old behavior, ;, {, }, and : are made electric, but
>     ;; we only want them to be electric at EOL.
> diff --git a/lisp/recentf.el b/lisp/recentf.el
> index b33f22d..c3c4e45 100644
> --- a/lisp/recentf.el
> +++ b/lisp/recentf.el
> @@ -228,10 +228,6 @@ This item will replace the \"More...\" item."
>     :group 'recentf
>     :type 'boolean)
>  
> -(define-obsolete-variable-alias 'recentf-menu-append-commands-p
> -                                'recentf-menu-append-commands-flag
> -                                "22.1")
> -
>   (defcustom recentf-menu-append-commands-flag t
>     "Non-nil means to append command items to the menu."
>     :group 'recentf
> diff --git a/lisp/savehist.el b/lisp/savehist.el
> index fbb5f53..0a261b0 100644
> --- a/lisp/savehist.el
> +++ b/lisp/savehist.el
> @@ -204,29 +204,6 @@ histories, which is probably undesirable."
>   (signal (car errvar) (cdr errvar)))))
>       (savehist-install)))
>  
> -(defun savehist-load ()
> -  "Load the variables stored in `savehist-file' and turn on Savehist mode.
> -If `savehist-file' is in the old format that doesn't record
> -the value of `savehist-minibuffer-history-variables', that
> -value is deducted from the contents of the file."
> -  (declare (obsolete savehist-mode "22.1"))
> -  (savehist-mode 1)
> -  ;; Old versions of savehist distributed with XEmacs didn't save
> -  ;; savehist-minibuffer-history-variables.  If that variable is nil
> -  ;; after loading the file, try to intuit the intended value.
> -  (when (null savehist-minibuffer-history-variables)
> -    (setq savehist-minibuffer-history-variables
> -          (with-temp-buffer
> -    (ignore-errors
> -      (insert-file-contents savehist-file))
> -            (let ((vars ()) form)
> -              (while (setq form (condition-case nil
> -    (read (current-buffer)) (error nil)))
> - ;; Each form read is of the form (setq VAR VALUE).
> - ;; Collect VAR, i.e. (nth form 1).
> -                (push (nth 1 form) vars))
> -              vars)))))
> -
>   (defun savehist-install ()
>     "Hook Savehist into Emacs.
>   Normally invoked by calling `savehist-mode' to set the minor mode.
> diff --git a/lisp/speedbar.el b/lisp/speedbar.el
> index 7915a52..a231163 100644
> --- a/lisp/speedbar.el
> +++ b/lisp/speedbar.el
> @@ -637,9 +637,6 @@ Created from `speedbar-ignored-directory-expressions' with the function
>   Use the function `speedbar-add-ignored-directory-regexp', or customize the
>   variable `speedbar-ignored-directory-expressions' to modify this variable.")
>  
> -(define-obsolete-variable-alias 'speedbar-ignored-path-expressions
> -  'speedbar-ignored-directory-expressions "22.1")
> -
>   (defcustom speedbar-ignored-directory-expressions
>     '("[/\\]logs?[/\\]\\'")
>     "List of regular expressions matching directories speedbar will ignore.
> @@ -4077,26 +4074,6 @@ TEXT is the buffer's name, TOKEN and INDENT are unused."
>   (setq font-lock-global-modes (delq 'speedbar-mode
>      font-lock-global-modes)))))
>  
> -;;; Obsolete variables and functions
> -
> -(define-obsolete-variable-alias
> -  'speedbar-ignored-path-regexp 'speedbar-ignored-directory-regexp "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-add-ignored-path-regexp
> -  'speedbar-add-ignored-directory-regexp "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-line-path
> -  'speedbar-line-directory "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-buffers-line-path
> -  'speedbar-buffers-line-directory "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-path-line
> -  'speedbar-directory-line "22.1")
> -
> -(define-obsolete-function-alias 'speedbar-buffers-line-path
> -  'speedbar-buffers-line-directory "22.1")
> -
>   (provide 'speedbar)
>  
>   ;; run load-time hooks
> diff --git a/lisp/subr.el b/lisp/subr.el
> index 056392a..b621042 100644
> --- a/lisp/subr.el
> +++ b/lisp/subr.el
> @@ -680,20 +680,6 @@ If TEST is omitted or nil, `equal' is used."
>         (setq tail (cdr tail)))
>       value))
>  
> -(defun assoc-ignore-case (key alist)
> -  "Like `assoc', but ignores differences in case and text representation.
> -KEY must be a string.  Upper-case and lower-case letters are treated as equal.
> -Unibyte strings are converted to multibyte for comparison."
> -  (declare (obsolete assoc-string "22.1"))
> -  (assoc-string key alist t))
> -
> -(defun assoc-ignore-representation (key alist)
> -  "Like `assoc', but ignores differences in text representation.
> -KEY must be a string.
> -Unibyte strings are converted to multibyte for comparison."
> -  (declare (obsolete assoc-string "22.1"))
> -  (assoc-string key alist nil))
> -
>   (defun member-ignore-case (elt list)
>     "Like `member', but ignore differences in case and text representation.
>   ELT must be a string.  Upper-case and lower-case letters are treated as equal.
> @@ -1491,11 +1477,6 @@ be a list of the form returned by `event-start' and `event-end'."
>   (make-obsolete-variable 'command-debug-status
>                           "expect it to be removed in a future version." "25.2")
>  
> -(define-obsolete-variable-alias 'x-lost-selection-hooks
> -  'x-lost-selection-functions "22.1")
> -(define-obsolete-variable-alias 'x-sent-selection-hooks
> -  'x-sent-selection-functions "22.1")
> -
>   ;; This was introduced in 21.4 for pre-unicode unification.  That
>   ;; usage was rendered obsolete in 23.1 which uses Unicode internally.
>   ;; Other uses are possible, so this variable is not _really_ obsolete,
> @@ -2173,19 +2154,6 @@ process."
>          (memq (process-status process)
>       '(run open listen connect stop))))
>  
> -;; compatibility
> -
> -(defun process-kill-without-query (process &optional _flag)
> -  "Say no query needed if PROCESS is running when Emacs is exited.
> -Optional second argument if non-nil says to require a query.
> -Value is t if a query was formerly required."
> -  (declare (obsolete
> -            "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'."
> -            "22.1"))
> -  (let ((old (process-query-on-exit-flag process)))
> -    (set-process-query-on-exit-flag process nil)
> -    old))
> -
>   (defun process-kill-buffer-query-function ()
>     "Ask before killing a buffer that has a running process."
>     (let ((process (get-buffer-process (current-buffer))))
> diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
> index 9c84629..6955ed2 100644
> --- a/lisp/textmodes/nroff-mode.el
> +++ b/lisp/textmodes/nroff-mode.el
> @@ -328,13 +328,6 @@ otherwise off."
>   (kill-buffer viewbuf))
>       (Man-getpage-in-background file)))
>  
> -;; Old names that were not namespace clean.
> -(define-obsolete-function-alias 'count-text-lines 'nroff-count-text-lines "22.1")
> -(define-obsolete-function-alias 'forward-text-line 'nroff-forward-text-line "22.1")
> -(define-obsolete-function-alias 'backward-text-line 'nroff-backward-text-line "22.1")
> -(define-obsolete-function-alias 'electric-nroff-newline 'nroff-electric-newline "22.1")
> -(define-obsolete-function-alias 'electric-nroff-mode 'nroff-electric-mode "22.1")
> -
>   (provide 'nroff-mode)
>  
>   ;;; nroff-mode.el ends here
> diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
> index 89b6201..6ff782a 100644
> --- a/lisp/vc/log-edit.el
> +++ b/lisp/vc/log-edit.el
> @@ -203,10 +203,7 @@ when this variable is set to nil.")
>  
>   (defconst log-edit-maximum-comment-ring-size 32
>     "Maximum number of saved comments in the comment ring.")
> -(define-obsolete-variable-alias 'vc-comment-ring 'log-edit-comment-ring "22.1")
>   (defvar log-edit-comment-ring (make-ring log-edit-maximum-comment-ring-size))
> -(define-obsolete-variable-alias 'vc-comment-ring-index
> -  'log-edit-comment-ring-index "22.1")
>   (defvar log-edit-comment-ring-index nil)
>   (defvar log-edit-last-comment-match "")
>  
> @@ -311,13 +308,6 @@ automatically."
>       (or (eobp) (looking-at "\n\n")
>   (insert "\n"))))
>  
> -;; Compatibility with old names.
> -(define-obsolete-function-alias 'vc-previous-comment 'log-edit-previous-comment "22.1")
> -(define-obsolete-function-alias 'vc-next-comment 'log-edit-next-comment "22.1")
> -(define-obsolete-function-alias 'vc-comment-search-reverse 'log-edit-comment-search-backward "22.1")
> -(define-obsolete-function-alias 'vc-comment-search-forward 'log-edit-comment-search-forward "22.1")
> -(define-obsolete-function-alias 'vc-comment-to-change-log 'log-edit-comment-to-change-log "22.1")
> -
>   ;;;
>   ;;; Actual code
>   ;;;
> diff --git a/lisp/vc/pcvs-info.el b/lisp/vc/pcvs-info.el
> index 7e72767..edcfc6e 100644
> --- a/lisp/vc/pcvs-info.el
> +++ b/lisp/vc/pcvs-info.el
> @@ -39,9 +39,6 @@
>   ;;;; config variables
>   ;;;;
>  
> -(define-obsolete-variable-alias 'cvs-display-full-path
> -    'cvs-display-full-name "22.1")
> -
>   (defcustom cvs-display-full-name t
>     "Specifies how the filenames should be displayed in the listing.
>   If non-nil, their full filename name will be displayed, else only the
> @@ -211,8 +208,6 @@ to confuse some users sometimes."
>         ;; Here, I use `concat' rather than `expand-file-name' because I want
>         ;; the resulting path to stay relative if `dir' is relative.
>         (concat dir (cvs-fileinfo->file fileinfo)))))
> -(define-obsolete-function-alias 'cvs-fileinfo->full-path
> -    'cvs-fileinfo->full-name "22.1")
>  
>   (defun cvs-fileinfo->pp-name (fi)
>     "Return the filename of FI as it should be displayed."
> diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
> index 01dc47e..7646af0 100644
> --- a/lisp/vc/vc.el
> +++ b/lisp/vc/vc.el
> @@ -1649,11 +1649,6 @@ to override the value of `vc-diff-switches' and `diff-switches'."
>         ;; any switches in diff-switches.
>         (when (listp switches) switches))))
>  
> -;; Old def for compatibility with Emacs-21.[123].
> -(defmacro vc-diff-switches-list (backend)
> -  (declare (obsolete vc-switches "22.1"))
> -  `(vc-switches ',backend 'diff))
> -
>   (defun vc-diff-finish (buffer messages)
>     ;; The empty sync output case has already been handled, so the only
>     ;; possibility of an empty output is for an async process.
>
> _______________________________________________
> Emacs-diffs mailing list
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/emacs-diffs
>

Reply | Threaded
Open this post in threaded view
|

iswitchb (was: [Emacs-diffs] master f1c48b0: Remove many items obsolete since Emacs 22.1)

Stefan Monnier
> I don't think iswitchb is obsolete.

The patch you quote doesn't seem relevant: it just removes
the iswitchb-use-fonts part of iswitchb, which was marked as obsolete in
Emacs-22.1.

For reference, iswitchb itself was declared obsolete in Emacs-24.4
(superseded by the default use of substring completion in C-x b,
combined with changes to icomplete-mode which provide commands
covering most of the featureset of iswitchb).


        Stefan


Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Robert Pluim
Stefan Monnier <[hidden email]> writes:

> (superseded by the default use of substring completion in C-x b,

If that's documented somewhere, I've not been able to find it in the
docstring for `switch-to-buffer'. etc/NEWS.24 just says:

*** New completion style `substring'.

*** Completion of buffer names uses `substring' completion by default.

without explaining what substring means. It certainly has surprising
behaviour (with emacs-26):

src/emacs -Q
C-x C-f src/xdisp.c
C-x b di
C-x b sc TAB => *scratch*
C-x b di TAB => di [sole completion] ; I expected xdisp.c as well.

Is the actual behaviour substring-unless-exact-match or something?

Robert

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Eli Zaretskii
On March 12, 2018 12:22:58 PM GMT+02:00, Robert Pluim <[hidden email]> wrote:

> Stefan Monnier <[hidden email]> writes:
>
> > (superseded by the default use of substring completion in C-x b,
>
> If that's documented somewhere, I've not been able to find it in the
> docstring for `switch-to-buffer'. etc/NEWS.24 just says:
>
> *** New completion style `substring'.
>
> *** Completion of buffer names uses `substring' completion by default.
>
> without explaining what substring means. It certainly has surprising
> behaviour (with emacs-26):
>
> src/emacs -Q
> C-x C-f src/xdisp.c
> C-x b di
> C-x b sc TAB => *scratch*
> C-x b di TAB => di [sole completion] ; I expected xdisp.c as well.
>
> Is the actual behaviour substring-unless-exact-match or something?
>
> Robert

The completion styles are documented in the Emacs user manual, node
"Completion Styles".

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Eli Zaretskii
On March 12, 2018 1:21:44 PM GMT+02:00, Eli Zaretskii <[hidden email]> wrote:

> On March 12, 2018 12:22:58 PM GMT+02:00, Robert Pluim
> <[hidden email]> wrote:
> > Stefan Monnier <[hidden email]> writes:
> >
> > > (superseded by the default use of substring completion in C-x b,
> >
> > If that's documented somewhere, I've not been able to find it in the
> > docstring for `switch-to-buffer'. etc/NEWS.24 just says:
> >
> > *** New completion style `substring'.
> >
> > *** Completion of buffer names uses `substring' completion by
> default.
> >
> > without explaining what substring means. It certainly has surprising
> > behaviour (with emacs-26):
> >
> > src/emacs -Q
> > C-x C-f src/xdisp.c
> > C-x b di
> > C-x b sc TAB => *scratch*
> > C-x b di TAB => di [sole completion] ; I expected xdisp.c as well.
> >
> > Is the actual behaviour substring-unless-exact-match or something?
> >
> > Robert
>
> The completion styles are documented in the Emacs user manual, node
> "Completion Styles".

Btw, completion of buffer names uses '(basic substring), which is why you see
what you see.  See minibuffer.el.

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Robert Pluim
Eli Zaretskii <[hidden email]> writes:

>>
>> The completion styles are documented in the Emacs user manual, node
>> "Completion Styles".

Ah, I'd missed the very last sentence of that node.

> Btw, completion of buffer names uses '(basic substring), which is why you see
> what you see.  See minibuffer.el.

I don't think I should have to read minibuffer.el to discover that. I
can get the information from the user manual, but the docstring of
switch-to-buffer doesn't help me get there. It says:

 See `read-buffer' for features related to input and completion
 of buffer names.

read-buffer's docstring then leads to completing-read, which in turn
points at the Emacs Lisp Reference Manual.[1]

In short: there's a missing link, and I'm not sure where to put it.

Robert

Footnotes:
[1]  Info-goto-node only works if you're in an *info* file.  Should it
be taught to work from *Help* buffers as well? Or perhaps
"(filename)Node name" strings should be clickable?

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Noam Postavsky
On Mon, Mar 12, 2018 at 9:57 AM, Robert Pluim <[hidden email]> wrote:

> [1]  Info-goto-node only works if you're in an *info* file.  Should it
> be taught to work from *Help* buffers as well? Or perhaps
> "(filename)Node name" strings should be clickable?

It works if you say "Info node `(filename) Node name'" (not if you say
"Info nodeS `(filename) Node name' etc"), so completing-read docstring
could be changed to

See also Info node `(elisp) Basic Completion' for the details
about completion, and Info node `(elisp) Programmed Completion'
for expectations from COLLECTION when it’s a function.

(The linking is done in help-make-xrefs.)

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Robert Pluim
Noam Postavsky <[hidden email]> writes:

> On Mon, Mar 12, 2018 at 9:57 AM, Robert Pluim <[hidden email]> wrote:
>
>> [1]  Info-goto-node only works if you're in an *info* file.  Should it
>> be taught to work from *Help* buffers as well? Or perhaps
>> "(filename)Node name" strings should be clickable?
>
> It works if you say "Info node `(filename) Node name'" (not if you say
> "Info nodeS `(filename) Node name' etc"), so completing-read docstring
> could be changed to
>
> See also Info node `(elisp) Basic Completion' for the details
> about completion, and Info node `(elisp) Programmed Completion'
> for expectations from COLLECTION when it’s a function.
Indeed, that works, as does

Info node `(elisp)Basic Completion'

(without the space after the right paren)

Patch for this and one other instance of the same issue attached. I've
also attached a proposed patch for hiding the 'Info node' and 'URL'
prefixes in *Help* buffers, since I find they just get in the way.

First one could go to either emacs-26 or master. Second one I think is
master-only (does it require a NEWS entry?).

Robert


From a59d3fc1a7059064518f3842140f0df2e19799a1 Mon Sep 17 00:00:00 2001
From: Robert Pluim <[hidden email]>
Date: Mon, 12 Mar 2018 17:43:23 +0100
Subject: [PATCH 1/2] Correct Info link markup

* lisp/gnus/gnus-agent.el (gnus-agent-auto-agentize-methods):
Correct markup for Info link.
* src/minibuf.c (Fcompleting_read): Likewise.
---
 lisp/gnus/gnus-agent.el | 2 +-
 src/minibuf.c           | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index ada148d20b..628c9430c9 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -172,7 +172,7 @@ gnus-agent-expire-unagentized-dirs
 (defcustom gnus-agent-auto-agentize-methods nil
   "Initially, all servers from these methods are agentized.
 The user may remove or add servers using the Server buffer.
-See Info nodes `(gnus)Server Buffer', `(gnus)Agent Variables'."
+See Info node `(gnus)Server Buffer' and Info node `(gnus)Agent Variables'."
   :version "22.1"
   :type '(repeat symbol)
   :group 'gnus-agent)
diff --git a/src/minibuf.c b/src/minibuf.c
index 95e62cedda..d4484efb04 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1626,8 +1626,8 @@ COLLECTION can also be a function to do the completion itself.
 PREDICATE limits completion to a subset of COLLECTION.
 See `try-completion', `all-completions', `test-completion',
 and `completion-boundaries', for more details on completion,
-COLLECTION, and PREDICATE.  See also Info nodes `(elisp)Basic Completion'
-for the details about completion, and `(elisp)Programmed Completion' for
+COLLECTION, and PREDICATE.  See also Info node `(elisp)Basic Completion'
+for the details about completion, and Info node `(elisp)Programmed Completion' for
 expectations from COLLECTION when it's a function.
 
 REQUIRE-MATCH can take the following values:
--
2.16.1.72.g5be1f00a9


From de6c4f2ba6defa8dca15e13d64c6371f3f23e6af Mon Sep 17 00:00:00 2001
From: Robert Pluim <[hidden email]>
Date: Mon, 12 Mar 2018 17:50:08 +0100
Subject: [PATCH 2/2] Hide URL and Info node markup in help buffers

* lisp/help-mode.el (help-make-xrefs): Make URL and Info node
markup invisible.
---
 lisp/help-mode.el | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 4fb3fb85c9..f64915e541 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -470,17 +470,23 @@ help-make-xrefs
                 ;; Info references
                 (save-excursion
                   (while (re-search-forward help-xref-info-regexp nil t)
-                    (let ((data (match-string 2)))
+                    (let ((data (match-string 2))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 2)))
                       (save-match-data
                         (unless (string-match "^([^)]+)" data)
                           (setq data (concat "(emacs)" data)))
  (setq data ;; possible newlines if para filled
-      (replace-regexp-in-string "[ \t\n]+" " " data t t)))
+      (replace-regexp-in-string "[ \t\n]+" " " data t t))
+                        (put-text-property beg end 'invisible t))
                       (help-xref-button 2 'help-info data))))
                 ;; URLs
                 (save-excursion
                   (while (re-search-forward help-xref-url-regexp nil t)
-                    (let ((data (match-string 1)))
+                    (let ((data (match-string 1))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 1)))
+                      (put-text-property beg end 'invisible t)
                       (help-xref-button 1 'help-url data))))
                 ;; Mule related keywords.  Do this before trying
                 ;; `help-xref-symbol-regexp' because some of Mule
--
2.16.1.72.g5be1f00a9

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Eli Zaretskii
> From: Robert Pluim <[hidden email]>
> Cc: Emacs developers <[hidden email]>,  Eli Zaretskii <[hidden email]>,  Stefan Monnier <[hidden email]>
> Date: Mon, 12 Mar 2018 17:56:59 +0100
>
> Patch for this and one other instance of the same issue attached. I've
> also attached a proposed patch for hiding the 'Info node' and 'URL'
> prefixes in *Help* buffers, since I find they just get in the way.
>
> First one could go to either emacs-26 or master.

Documentation changes should go to emacs-26.

> Second one I think is master-only (does it require a NEWS entry?).

Not unless you provide an option to get back old behavior (which I
think you should, if we accept this change).  Personally, I'm not so
sure it's a good idea to install that, as having Info called out
explicitly has its merits.

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Robert Pluim
Eli Zaretskii <[hidden email]> writes:

>> From: Robert Pluim <[hidden email]>
>> Cc: Emacs developers <[hidden email]>,  Eli Zaretskii <[hidden email]>,  Stefan Monnier <[hidden email]>
>> Date: Mon, 12 Mar 2018 17:56:59 +0100
>>
>> Patch for this and one other instance of the same issue attached. I've
>> also attached a proposed patch for hiding the 'Info node' and 'URL'
>> prefixes in *Help* buffers, since I find they just get in the way.
>>
>> First one could go to either emacs-26 or master.
>
> Documentation changes should go to emacs-26.
>

OK. That means someone has to install it on my behalf, since I don't
have commit privileges. Unless I could have those?

>> Second one I think is master-only (does it require a NEWS entry?).
>
> Not unless you provide an option to get back old behavior (which I
> think you should, if we accept this change).  Personally, I'm not so
> sure it's a good idea to install that, as having Info called out
> explicitly has its merits.

I just find it's visual noise, since I don't really care whether it's
an URL or an Info link that I'm looking at, but I appreciate some
people might not like the markup disappearing. Version with option +
NEWS update some time tomorrow.

Robert

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Robert Pluim
Robert Pluim <[hidden email]> writes:

>>
>> Not unless you provide an option to get back old behavior (which I
>> think you should, if we accept this change).  Personally, I'm not so
>> sure it's a good idea to install that, as having Info called out
>> explicitly has its merits.

Proposed patch attached. I've boldly defaulted the functionality to
enabled, but we can flip that if people feel strongly about it. I
documented it in the lisp reference manual, but we can put it in the
user manual as well.

Robert


From b374d99ae7e9d16a99ce6a178ab06ab3d5634044 Mon Sep 17 00:00:00 2001
From: Robert Pluim <[hidden email]>
Date: Tue, 13 Mar 2018 17:03:11 +0100
Subject: [PATCH] Hide URL and Info node markup in help buffers

* lisp/help-mode.el (help-mode-hide-markup): New custom variable.
(help-make-xrefs): Make URL and Info node markup invisible.
* etc/NEWS: Describe help markup hiding changes.
* doc/lispref/tips.texi (Documentation Tips): Document
  'help-mode-hide-markup'
---
 doc/lispref/tips.texi |  7 +++++++
 etc/NEWS              |  5 +++++
 lisp/help-mode.el     | 22 +++++++++++++++++++---
 3 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index c62cfcfa8f..3a623541e5 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -756,6 +756,13 @@ Documentation Tips
 `https://www.gnu.org/').
 @end smallexample
 
+@vindex help-mode-hide-markup
+By default, the prefixes that are used to indicate Info and URL
+hyperlinks (such as @samp{Info node} and @samp{URL}) are hidden when
+the documentation string is displayed.  This behavior can be changed
+by customizing  @code{help-mode-hide-markup} to
+@code{nil}.
+
 @item
 Don't write key sequences directly in documentation strings.  Instead,
 use the @samp{\\[@dots{}]} construct to stand for them.  For example,
diff --git a/etc/NEWS b/etc/NEWS
index 57236b52f0..bdefc0970c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -202,6 +202,11 @@ and commands in the same format as the edit buffer of
 the buffer generated by 'view-lossage' to the "*Edit Macro*" buffer
 created by 'edit-last-kbd-macro', and to save the macro by 'C-c C-c'.
 
++++
+*** New variable 'help-mode-hide-markup'.
+When non-nil, help-mode buffers will not display the 'Info node' and
+'URL' prefixes to hyperlinks.  Default is t.
+
 ** Ibuffer
 
 ---
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 4fb3fb85c9..bca160a7d2 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -98,6 +98,14 @@ help-mode-hook
   "Hook run by `help-mode'."
   :type 'hook
   :group 'help)
+
+(defcustom help-mode-hide-markup t
+  "If non-nil, hide markup used for Info and URL links.
+Otherwise, show explicit 'Info node' and 'URL' markup in help
+buffers."
+  :version "27.1"
+  :type 'boolean
+  :group 'help)
 
 ;; Button types used by help
 
@@ -470,17 +478,25 @@ help-make-xrefs
                 ;; Info references
                 (save-excursion
                   (while (re-search-forward help-xref-info-regexp nil t)
-                    (let ((data (match-string 2)))
+                    (let ((data (match-string 2))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 2)))
                       (save-match-data
                         (unless (string-match "^([^)]+)" data)
                           (setq data (concat "(emacs)" data)))
  (setq data ;; possible newlines if para filled
-      (replace-regexp-in-string "[ \t\n]+" " " data t t)))
+      (replace-regexp-in-string "[ \t\n]+" " " data t t))
+                        (when help-mode-hide-markup
+                          (put-text-property beg end 'invisible t)))
                       (help-xref-button 2 'help-info data))))
                 ;; URLs
                 (save-excursion
                   (while (re-search-forward help-xref-url-regexp nil t)
-                    (let ((data (match-string 1)))
+                    (let ((data (match-string 1))
+                          (beg (match-beginning 0))
+                          (end (match-beginning 1)))
+                      (when help-mode-hide-markup
+                        (put-text-property beg end 'invisible t))
                       (help-xref-button 1 'help-url data))))
                 ;; Mule related keywords.  Do this before trying
                 ;; `help-xref-symbol-regexp' because some of Mule
--
2.16.1.72.g5be1f00a9

Reply | Threaded
Open this post in threaded view
|

Re: iswitchb

Eli Zaretskii
> From: Robert Pluim <[hidden email]>
> Date: Tue, 13 Mar 2018 17:42:35 +0100
>
> Proposed patch attached. I've boldly defaulted the functionality to
> enabled, but we can flip that if people feel strongly about it. I
> documented it in the lisp reference manual, but we can put it in the
> user manual as well.

Thanks.  A few comments below:

> --- a/doc/lispref/tips.texi
> +++ b/doc/lispref/tips.texi
> @@ -756,6 +756,13 @@ Documentation Tips
>  `https://www.gnu.org/').
>  @end smallexample
>  
> +@vindex help-mode-hide-markup
> +By default, the prefixes that are used to indicate Info and URL
> +hyperlinks (such as @samp{Info node} and @samp{URL}) are hidden when
> +the documentation string is displayed.  This behavior can be changed
> +by customizing  @code{help-mode-hide-markup} to
> +@code{nil}.

I think this is the wrong place to put this text.  This is a user
option of no particular importance to Lisp programmers, so it should
be in the user manual, not in the ELisp manual.

> ++++
> +*** New variable 'help-mode-hide-markup'.
> +When non-nil, help-mode buffers will not display the 'Info node' and
> +'URL' prefixes to hyperlinks.  Default is t.

I think if we change the default behavior, this entry should be
reworded to describe the changed behavior.  Like this:

  *** The "Info node" and "URL" prefixes to hyperlinks are now hidden.
  Help mode buffers no longer display these prefixes when they show
  links to Info manuals and Web pages.  Customize 'help-mode-hide-markup'
  to nil to get previous behavior.

> +(defcustom help-mode-hide-markup t

I'd prefer a more specific name for the variable, like
help-mode-hide-info-and-url-prefix.  Yes, that's a mouthful, but if we
don't expect to many people changing that, I think it's OK.