emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 739e3dbe05: Remove many items obsolete since 24.1


From: Stefan Kangas
Subject: master 739e3dbe05: Remove many items obsolete since 24.1
Date: Fri, 8 Jul 2022 08:27:19 -0400 (EDT)

branch: master
commit 739e3dbe050468e1d9aa0a48bfc656ae20fd8f9d
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Remove many items obsolete since 24.1
    
    * lisp/allout.el (allout-abbreviate-flattened-numbering)
    (allout-mode-deactivate-hook):
    * lisp/ansi-color.el (ansi-color-unfontify-region):
    * lisp/auth-source.el (auth-source-hide-passwords)
    (auth-source-user-or-password)
    (auth-source-forget-user-or-password):
    * lisp/cedet/data-debug.el (data-debug-map):
    * lisp/cedet/semantic/grammar.el (semantic-grammar-syntax-table)
    (semantic-grammar-map):
    * lisp/chistory.el (command-history-map):
    * lisp/comint.el (comint-dynamic-complete)
    (comint-dynamic-complete-as-filename)
    (comint-dynamic-simple-complete):
    * lisp/dired-x.el (read-filename-at-point)
    (dired-x-submit-report):
    * lisp/dos-fns.el (register-name-alist, make-register)
    (register-value, set-register-value, intdos, mode25, mode4350):
    * lisp/emacs-lisp/bytecomp.el (byte-compile-disable-print-circle):
    * lisp/emacs-lisp/chart.el (chart-map):
    * lisp/emacs-lisp/package.el (package-menu-view-commentary):
    * lisp/emacs-lock.el (toggle-emacs-lock, emacs-lock-from-exiting):
    * lisp/erc/erc.el (erc-complete-word):
    * lisp/eshell/em-cmpl.el (eshell-cmpl-suffix-list):
    * lisp/eshell/esh-util.el (eshell-for):
    * lisp/files.el (inhibit-first-line-modes-regexps)
    (inhibit-first-line-modes-suffixes):
    * lisp/gnus/gnus-msg.el (gnus-outgoing-message-group)
    (gnus-debug-files, gnus-debug-exclude-variables):
    * lisp/gnus/gnus-registry.el (gnus-registry-user-format-function-M):
    * lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal):
    * lisp/gnus/nnimap.el (nnimap-split-rule):
    * lisp/iimage.el (turn-on-iimage-mode):
    * lisp/image.el (image-extension-data, image-library-alist):
    * lisp/mail/emacsbug.el (report-emacs-bug-pretest-address):
    * lisp/mail/mail-utils.el (rmail-dont-reply-to):
    * lisp/mail/mailalias.el (mail-complete-function)
    (mail-completion-at-point-function):
    * lisp/mail/rmail.el (rmail-dont-reply-to-names)
    (rmail-default-dont-reply-to-names):
    * lisp/mail/sendmail.el (mail-mailer-swallows-blank-line)
    (mail-sent-via):
    * lisp/menu-bar.el (menu-bar-kill-ring-save):
    * lisp/minibuffer.el (completion-annotate-function)
    (minibuffer-local-filename-must-match-map):
    * lisp/msb.el (msb-after-load-hooks):
    * lisp/obsolete/eieio-compat.el (eieio-defmethod)
    (eieio-defgeneric):
    * lisp/obsolete/info-edit.el (Info-edit-map):
    * lisp/obsolete/starttls.el (starttls-any-program-available):
    * lisp/progmodes/cfengine.el (cfengine-mode-abbrevs):
    * lisp/progmodes/cwarn.el (turn-on-cwarn-mode):
    * lisp/progmodes/make-mode.el (makefile-complete):
    * lisp/progmodes/meta-mode.el (meta-complete-symbol)
    (meta-mode-map):
    * lisp/progmodes/pascal.el (pascal-toggle-completions)
    (pascal-last-completions, pascal-show-completions):
    * lisp/progmodes/prolog.el (prolog-char-quote-workaround):
    * lisp/progmodes/which-func.el (which-func-mode): [FUNCTION]
    * lisp/simple.el (count-lines-region, minibuffer-completing-symbol):
    * lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map):
    * lisp/strokes.el (strokes-report-bug):
    * lisp/subr.el (condition-case-no-debug):
    * lisp/term/ns-win.el (ns-alternatives-map)
    (ns-store-cut-buffer-internal):
    * lisp/term/w32-win.el (w32-default-color-map):
    * lisp/term/x-win.el (x-cut-buffer-or-selection-value):
    * lisp/textmodes/bibtex.el (bibtex-complete)
    (bibtex-entry-field-alist):
    * lisp/textmodes/reftex-index.el (reftex-index-map)
    (reftex-index-phrases-map):
    * lisp/textmodes/reftex-sel.el (reftex-select-label-map)
    (reftex-select-bib-map):
    * lisp/textmodes/reftex-toc.el (reftex-toc-map):
    * lisp/textmodes/rst.el (rst-block-face, rst-external-face)
    (rst-definition-face, rst-directive-face, rst-comment-face)
    (rst-emphasis1-face, rst-emphasis2-face, rst-literal-face)
    (rst-reference-face):
    * lisp/vc/vc-hooks.el (vc-toggle-read-only):
    * lisp/view.el (view-return-to-alist)
    (view-return-to-alist-update): Remove many functions and variables
    obsolete since 24.1.
    
    * lisp/textmodes/bibtex.el (bibtex-entry-alist): Don't use above
    removed variable 'bibtex-entry-field-alist'.
    * lisp/cedet/data-debug.el (data-debug-edebug-expr)
    (data-debug-eval-expression):
    * lisp/emacs-lisp/trace.el (trace--read-args):
    * lisp/files-x.el (read-file-local-variable-value):
    * lisp/simple.el (read--expression): Don't use above removed variable
    'minibuffer-completing-symbol'.
    * lisp/textmodes/rst.el (rst-font-lock-keywords): Don't use above
    removed variables.
    * src/w32fns.c (Fw32_default_color_map): Delete obsolete function.
    (syms_of_w32fns): Delete defsubr for above defun.
    * src/keyboard.c (syms_of_keyboard) <Vdeferred_action_list>
    <Vdeferred_action_function>: Delete DEFVARs.
    <Qdeferred_action_function>: Delete DEFSYM.
    (syms_of_keyboard_for_pdumper): Adjust for above change.
    (command_loop_1): Don't run deferred-action-function hook.
    * lisp/subr.el (deferred-action-list, deferred-action-function):
    Delete obsoletion statements.
    * lisp/emacs-lisp/ert-x.el (ert-simulate-command): Don't run
    'deferred-action-list' hook.
    * doc/lispref/hooks.texi (Standard Hooks): Delete
    'deferred-action-function'.
    
    * lisp/emacs-lisp/lisp.el (field-complete):
    * lisp/eshell/em-cmpl.el (eshell-cmpl-initialize):
    * lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc):
    * lisp/gnus/nnmail.el (nnmail-fancy-expiry-target):
    * lisp/mail/mail-utils.el (mail-dont-reply-to):
    * lisp/mail/sendmail.el (sendmail-send-it):
    * lisp/mail/smtpmail.el (smtpmail-send-it):
    * lisp/minibuffer.el (minibuffer-completion-help):
    * lisp/progmodes/python.el: Don't use above removed items.
    * lisp/emacs-lisp/eieio-core.el:
    * lisp/mail/mailalias.el (mail-complete-alist): Doc fixes; don't refer
    to above removed items.
    ; * etc/NEWS: List removed items.
---
 doc/lispref/hooks.texi         |   1 -
 etc/NEWS                       |  47 +++++++++++++
 lisp/allout.el                 |   8 ---
 lisp/ansi-color.el             |   3 -
 lisp/auth-source.el            |  85 ------------------------
 lisp/cedet/data-debug.el       |  16 ++---
 lisp/cedet/semantic/grammar.el |   4 --
 lisp/chistory.el               |   2 -
 lisp/comint.el                 |  70 --------------------
 lisp/dired-x.el                |   7 --
 lisp/dos-fns.el                |  16 -----
 lisp/emacs-lisp/bytecomp.el    |  11 +---
 lisp/emacs-lisp/chart.el       |   1 -
 lisp/emacs-lisp/eieio-core.el  |   4 +-
 lisp/emacs-lisp/ert-x.el       |   3 -
 lisp/emacs-lisp/lisp.el        |   9 +--
 lisp/emacs-lisp/package.el     |   3 -
 lisp/emacs-lisp/trace.el       |   7 +-
 lisp/emacs-lock.el             |  11 ----
 lisp/erc/erc.el                |   2 -
 lisp/eshell/em-cmpl.el         |  11 ----
 lisp/eshell/esh-util.el        |   9 ---
 lisp/files-x.el                |   3 +-
 lisp/files.el                  |   6 --
 lisp/gnus/gnus-msg.el          |  44 +------------
 lisp/gnus/gnus-registry.el     |   3 -
 lisp/gnus/gnus.el              |  15 -----
 lisp/gnus/nnimap.el            |   3 -
 lisp/iimage.el                 |   3 -
 lisp/image.el                  |   9 ---
 lisp/mail/emacsbug.el          |   3 -
 lisp/mail/mail-utils.el        |  11 +---
 lisp/mail/mailalias.el         |  29 +--------
 lisp/mail/rmail.el             |  14 ----
 lisp/mail/sendmail.el          |  40 ------------
 lisp/mail/smtpmail.el          |   2 -
 lisp/menu-bar.el               |   3 -
 lisp/minibuffer.el             |  25 +------
 lisp/msb.el                    |   3 -
 lisp/obsolete/eieio-compat.el  |  15 -----
 lisp/obsolete/info-edit.el     |   1 -
 lisp/obsolete/starttls.el      |   3 -
 lisp/progmodes/cfengine.el     |   9 ---
 lisp/progmodes/cwarn.el        |   3 -
 lisp/progmodes/make-mode.el    |   1 -
 lisp/progmodes/meta-mode.el    |   3 -
 lisp/progmodes/pascal.el       |  15 -----
 lisp/progmodes/prolog.el       |  10 +--
 lisp/progmodes/python.el       |   1 -
 lisp/progmodes/which-func.el   |   3 -
 lisp/simple.el                 |  33 ++++------
 lisp/speedbar.el               |   4 --
 lisp/strokes.el                |   2 -
 lisp/subr.el                   |   5 --
 lisp/term/ns-win.el            |   6 --
 lisp/term/w32-win.el           |   1 -
 lisp/term/x-win.el             |   3 -
 lisp/textmodes/bibtex.el       |  11 ----
 lisp/textmodes/reftex-index.el |   4 --
 lisp/textmodes/reftex-sel.el   |   4 --
 lisp/textmodes/reftex-toc.el   |   1 -
 lisp/textmodes/rst.el          | 145 ++++++++++-------------------------------
 lisp/vc/vc-hooks.el            |   9 ---
 lisp/view.el                   |  46 -------------
 src/keyboard.c                 |  18 -----
 src/w32fns.c                   |   8 ---
 66 files changed, 114 insertions(+), 796 deletions(-)

diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi
index 107d036202..59b7930732 100644
--- a/doc/lispref/hooks.texi
+++ b/doc/lispref/hooks.texi
@@ -290,7 +290,6 @@ auto-fill-function
 command-error-function
 compose-chars-after-function
 composition-function-table
-deferred-action-function
 input-method-function
 load-read-function
 load-source-file-function
diff --git a/etc/NEWS b/etc/NEWS
index 226af8d7d6..1e6fb06bdc 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2247,6 +2247,53 @@ Use 'exif-parse-file' and 'exif-field' instead.
 ** 'insert-directory' alternatives should not change the free disk space line.
 This change is now applied in 'dired-insert-directory'.
 
+---
+** Some functions and variables obsolete since Emacs 24 have been removed:
+'Info-edit-map', 'allout-abbreviate-flattened-numbering',
+'allout-mode-deactivate-hook', 'ansi-color-unfontify-region',
+'auth-source-forget-user-or-password', 'auth-source-hide-passwords',
+'auth-source-user-or-password', 'bibtex-complete',
+'bibtex-entry-field-alist', 'byte-compile-disable-print-circle',
+'cfengine-mode-abbrevs', 'chart-map', 'comint-dynamic-complete',
+'comint-dynamic-complete-as-filename',
+'comint-dynamic-simple-complete', 'command-history-map',
+'completion-annotate-function', 'condition-case-no-debug',
+'count-lines-region', 'data-debug-map', 'deferred-action-list',
+'deferred-action-function', 'dired-x-submit-report',
+'eieio-defgeneric', 'eieio-defmethod', 'emacs-lock-from-exiting',
+'erc-complete-word', 'eshell-cmpl-suffix-list', 'eshell-for',
+'gnus-carpal', 'gnus-debug-exclude-variables', 'gnus-debug-files',
+'gnus-local-domain', 'gnus-outgoing-message-group',
+'gnus-registry-user-format-function-M', 'image-extension-data',
+'image-library-alist', 'inhibit-first-line-modes-regexps',
+'inhibit-first-line-modes-suffixes', 'intdos',
+'mail-complete-function', 'mail-completion-at-point-function',
+'mail-mailer-swallows-blank-line', 'mail-sent-via', 'make-register',
+'makefile-complete', 'menu-bar-kill-ring-save',
+'meta-complete-symbol', 'meta-mode-map',
+'minibuffer-completing-symbol',
+'minibuffer-local-filename-must-match-map', 'mode25', 'mode4350',
+'msb-after-load-hooks', 'nnimap-split-rule', 'ns-alternatives-map',
+'ns-store-cut-buffer-internal', 'package-menu-view-commentary',
+'pascal-last-completions', 'pascal-show-completions',
+'pascal-toggle-completions', 'prolog-char-quote-workaround',
+'read-filename-at-point', 'reftex-index-map',
+'reftex-index-phrases-map', 'reftex-select-bib-map',
+'reftex-select-label-map', 'reftex-toc-map', 'register-name-alist',
+'register-value', 'report-emacs-bug-pretest-address',
+'rmail-default-dont-reply-to-names', 'rmail-dont-reply-to',
+'rmail-dont-reply-to-names', 'rst-block-face', 'rst-comment-face',
+'rst-definition-face', 'rst-directive-face', 'rst-emphasis1-face',
+'rst-emphasis2-face', 'rst-external-face', 'rst-literal-face',
+'rst-reference-face', 'semantic-grammar-map',
+'semantic-grammar-syntax-table', 'set-register-value',
+'speedbar-key-map', 'speedbar-syntax-table',
+'starttls-any-program-available', 'strokes-report-bug',
+'toggle-emacs-lock', 'turn-on-cwarn-mode', 'turn-on-iimage-mode',
+'vc-toggle-read-only', 'view-return-to-alist',
+'view-return-to-alist-update', 'w32-default-color-map' (function),
+'which-func-mode' (function), 'x-cut-buffer-or-selection-value'.
+
 ---
 ** Some functions and variables obsolete since Emacs 23 have been removed:
 'find-emacs-lisp-shadows', 'newsticker-cache-filename',
diff --git a/lisp/allout.el b/lisp/allout.el
index de8ee85b39..e07bac4ef9 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -733,8 +733,6 @@ Set this var to the bullet you want to use for file 
cross-references."
 (put 'allout-presentation-padding 'safe-local-variable #'integerp)
 
 ;;;_  = allout-flattened-numbering-abbreviation
-(define-obsolete-variable-alias 'allout-abbreviate-flattened-numbering
-  'allout-flattened-numbering-abbreviation "24.1")
 (defcustom allout-flattened-numbering-abbreviation nil
   "If non-nil, `allout-flatten-exposed-to-buffer' abbreviates topic
 numbers to minimal amount with some context.  Otherwise, entire
@@ -1350,11 +1348,6 @@ their settings before `allout-mode' was started."
 ;;;_   = allout-mode-hook
 (defvar allout-mode-hook nil
   "Hook run when allout mode starts.")
-;;;_   = allout-mode-deactivate-hook
-(define-obsolete-variable-alias 'allout-mode-deactivate-hook
-  'allout-mode-off-hook "24.1")
-(defvar allout-mode-deactivate-hook nil
-  "Hook run when allout mode ends.")
 ;;;_   = allout-exposure-category
 (defvar allout-exposure-category nil
   "Symbol for use as allout invisible-text overlay category.")
@@ -1779,7 +1772,6 @@ hooks, by which independent code can cooperate with allout
 without changes to the allout core.  Here are key ones:
 
 `allout-mode-hook'
-`allout-mode-deactivate-hook' (deprecated)
 `allout-mode-off-hook'
 `allout-exposure-change-functions'
 `allout-structure-added-functions'
diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index d5db9ecfed..6f1c270c23 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -456,9 +456,6 @@ variable, and is meant to be used in 
`compilation-filter-hook'."
       (_
        (ansi-color-apply-on-region compilation-filter-start (point))))))
 
-(define-obsolete-function-alias 'ansi-color-unfontify-region
-  'font-lock-default-unfontify-region "24.1")
-
 ;; Working with strings
 (defvar-local ansi-color-context nil
   "Context saved between two calls to `ansi-color-apply'.
diff --git a/lisp/auth-source.el b/lisp/auth-source.el
index fc62e36dfc..12da2c3d73 100644
--- a/lisp/auth-source.el
+++ b/lisp/auth-source.el
@@ -164,8 +164,6 @@ Overrides `password-cache-expiry' through a let-binding."
 (defvar auth-source-creation-prompts nil
   "Default prompts for token values.  Usually let-bound.")
 
-(make-obsolete 'auth-source-hide-passwords nil "24.1")
-
 (defcustom auth-source-save-behavior 'ask
   "If set, auth-source will respect it for save behavior."
   :version "23.2" ;; No Gnus
@@ -2325,89 +2323,6 @@ See `auth-source-search' for details on SPEC."
         (push item all)))
     (nreverse all)))
 
-;;; older API
-
-;; (auth-source-user-or-password '("login" "password") "imap.myhost.com" t 
"tzz")
-
-;; deprecate the old interface
-(make-obsolete 'auth-source-user-or-password
-               'auth-source-search "24.1")
-(make-obsolete 'auth-source-forget-user-or-password
-               'auth-source-forget "24.1")
-
-(defun auth-source-user-or-password
-  (mode host port &optional username create-missing delete-existing)
-  "Find MODE (string or list of strings) matching HOST and PORT.
-
-DEPRECATED in favor of `auth-source-search'!
-
-USERNAME is optional and will be used as \"login\" in a search
-across the Secret Service API (see secrets.el) if the resulting
-items don't have a username.  This means that if you search for
-username \"joe\" and it matches an item but the item doesn't have
-a :user attribute, the username \"joe\" will be returned.
-
-A non-nil DELETE-EXISTING means deleting any matching password
-entry in the respective sources.  This is useful only when
-CREATE-MISSING is non-nil as well; the intended use case is to
-remove wrong password entries.
-
-If no matching entry is found, and CREATE-MISSING is non-nil,
-the password will be retrieved interactively, and it will be
-stored in the password database which matches best (see
-`auth-sources').
-
-MODE can be \"login\" or \"password\"."
-  (auth-source-do-debug
-   "auth-source-user-or-password: DEPRECATED get %s for %s (%s) + user=%s"
-   mode host port username)
-
-  (let* ((listy (listp mode))
-         (mode (if listy mode (list mode)))
-         ;; (cname (if username
-         ;;            (format "%s %s:%s %s" mode host port username)
-         ;;          (format "%s %s:%s" mode host port)))
-         (search (list :host host :port port))
-         (search (if username (append search (list :user username)) search))
-         (search (if create-missing
-                     (append search (list :create t))
-                   search))
-         (search (if delete-existing
-                     (append search (list :delete t))
-                   search))
-         ;; (found (if (not delete-existing)
-         ;;            (gethash cname auth-source-cache)
-         ;;          (remhash cname auth-source-cache)
-         ;;          nil)))
-         (found nil))
-    (if found
-        (progn
-          (auth-source-do-debug
-           "auth-source-user-or-password: DEPRECATED cached %s=%s for %s (%s) 
+ %s"
-           mode
-           ;; don't show the password
-           (if (and (member "password" mode) t)
-               "SECRET"
-             found)
-           host port username)
-          found)                        ; return the found data
-      ;; else, if not found, search with a max of 1
-      (let ((choice (nth 0 (apply #'auth-source-search
-                                  (append '(:max 1) search)))))
-        (when choice
-          (dolist (m mode)
-            (cond
-             ((equal "password" m)
-              (push (if (plist-get choice :secret)
-                        (funcall (plist-get choice :secret))
-                      nil) found))
-             ((equal "login" m)
-              (push (plist-get choice :user) found)))))
-        (setq found (nreverse found))
-        (setq found (if listy found (car-safe found)))))
-
-    found))
-
 (defun auth-source-user-and-password (host &optional user)
   (let* ((auth-info (car
                      (if user
diff --git a/lisp/cedet/data-debug.el b/lisp/cedet/data-debug.el
index 0edc853edd..e7635c0aec 100644
--- a/lisp/cedet/data-debug.el
+++ b/lisp/cedet/data-debug.el
@@ -854,7 +854,6 @@ If PARENT is non-nil, it is somehow related as a parent to 
thing."
     table)
   "Syntax table used in data-debug macro buffers.")
 
-(define-obsolete-variable-alias 'data-debug-map 'data-debug-mode-map "24.1")
 (defvar data-debug-mode-map
   (let ((km (make-sparse-keymap)))
     (suppress-keymap km)
@@ -1028,11 +1027,9 @@ Do nothing if already contracted."
 (defun data-debug-edebug-expr (expr)
   "Dump out the contents of some expression EXPR in edebug with ddebug."
   (interactive
-   (list (let ((minibuffer-completing-symbol t))
-          (read-from-minibuffer "Eval: "
-                                nil read-expression-map t
-                                'read-expression-history))
-        ))
+   (list (read-from-minibuffer "Eval: "
+                               nil read-expression-map t
+                               'read-expression-history)))
   (let ((v (eval expr t)))
     (if (not v)
        (message "Expression %s is nil." expr)
@@ -1043,10 +1040,9 @@ Do nothing if already contracted."
 If the result is something simple, show it in the echo area.
 If the result is a list or vector, then use the data debugger to display it."
   (interactive
-   (list (let ((minibuffer-completing-symbol t))
-          (read-from-minibuffer "Eval: "
-                                nil read-expression-map t
-                                'read-expression-history))))
+   (list (read-from-minibuffer "Eval: "
+                               nil read-expression-map t
+                               'read-expression-history)))
 
   (let (result)
     (if (null eval-expression-debug-on-error)
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 74d4a229fa..97456265ea 100644
--- a/lisp/cedet/semantic/grammar.el
+++ b/lisp/cedet/semantic/grammar.el
@@ -1123,8 +1123,6 @@ END is the limit of the search."
 ;;;; Define major mode
 ;;;;
 
-(define-obsolete-variable-alias 'semantic-grammar-syntax-table
-  'semantic-grammar-mode-syntax-table "24.1")
 (defvar semantic-grammar-mode-syntax-table
   (let ((table (make-syntax-table (standard-syntax-table))))
     (modify-syntax-entry ?\: "."     table) ;; COLON
@@ -1197,8 +1195,6 @@ END is the limit of the search."
   semantic-grammar-mode-keywords-1
   "Font Lock keywords used to highlight Semantic grammar buffers.")
 
-(define-obsolete-variable-alias 'semantic-grammar-map
-  'semantic-grammar-mode-map "24.1")
 (defvar semantic-grammar-mode-map
   (let ((km (make-sparse-keymap)))
 
diff --git a/lisp/chistory.el b/lisp/chistory.el
index 33b2142211..9dce60a19f 100644
--- a/lisp/chistory.el
+++ b/lisp/chistory.el
@@ -119,8 +119,6 @@ The buffer is left in Command History mode."
          (error "No command history")
        (command-history-mode)))))
 
-(define-obsolete-variable-alias 'command-history-map
-  'command-history-mode-map "24.1")
 (defvar command-history-mode-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map (make-composed-keymap lisp-mode-shared-map
diff --git a/lisp/comint.el b/lisp/comint.el
index 7e22aa78fc..d52623c00a 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -3299,10 +3299,6 @@ Magic characters are those in 
`comint-file-name-quote-list'."
 (defun comint-completion-at-point ()
   (run-hook-with-args-until-success 'comint-dynamic-complete-functions))
 
-(define-obsolete-function-alias
-  'comint-dynamic-complete
-  'completion-at-point "24.1")
-
 (defun comint-dynamic-complete-filename ()
   "Dynamically complete the filename at point.
 Completes if after a filename.
@@ -3383,13 +3379,6 @@ See `completion-table-with-quoting' and 
`comint-unquote-function'.")
                      (goto-char (match-end 0))
                    (insert filesuffix)))))))))
 
-(defun comint-dynamic-complete-as-filename ()
-  "Dynamically complete at point as a filename.
-See `comint-dynamic-complete-filename'.  Returns t if successful."
-  (declare (obsolete comint-filename-completion "24.1"))
-  (let ((data (comint--complete-file-name-data)))
-    (completion-in-region (nth 0 data) (nth 1 data) (nth 2 data))))
-
 (defun comint-replace-by-expanded-filename ()
   "Dynamically expand and complete the filename at point.
 Replace the filename with an expanded, canonicalized and
@@ -3404,65 +3393,6 @@ filename absolute.  For expansion see `expand-file-name' 
and
       (replace-match (expand-file-name filename) t t)
       (comint-dynamic-complete-filename))))
 
-
-(defun comint-dynamic-simple-complete (stub candidates)
-  "Dynamically complete STUB from CANDIDATES list.
-This function inserts completion characters at point by
-completing STUB from the strings in CANDIDATES.  If completion is
-ambiguous, possibly show a completions listing in a separate
-buffer.
-
-Return nil if no completion was inserted.
-Return `sole' if completed with the only completion match.
-Return `shortest' if completed with the shortest match.
-Return `partial' if completed as far as possible.
-Return `listed' if a completion listing was shown.
-
-See also `comint-dynamic-complete-filename'."
-  (declare (obsolete completion-in-region "24.1"))
-  (let* ((completion-ignore-case (memq system-type '(ms-dos windows-nt 
cygwin)))
-        (minibuffer-p (window-minibuffer-p))
-        (suffix (cond ((not comint-completion-addsuffix) "")
-                      ((not (consp comint-completion-addsuffix)) " ")
-                      (t (cdr comint-completion-addsuffix))))
-        (completions (all-completions stub candidates)))
-    (cond ((null completions)
-          (if minibuffer-p
-              (minibuffer-message "No completions of %s" stub)
-            (message "No completions of %s" stub))
-          nil)
-         ((= 1 (length completions))   ; Gotcha!
-          (let ((completion (car completions)))
-            (if (string-equal completion stub)
-                (unless minibuffer-p
-                  (message "Sole completion"))
-              (insert (substring completion (length stub)))
-              (unless minibuffer-p
-                (message "Completed")))
-            (insert suffix)
-            'sole))
-         (t                            ; There's no unique completion.
-          (let ((completion (try-completion stub candidates)))
-            ;; Insert the longest substring.
-            (insert (substring completion (length stub)))
-            (cond ((and comint-completion-recexact comint-completion-addsuffix
-                        (string-equal stub completion)
-                        (member completion completions))
-                   ;; It's not unique, but user wants shortest match.
-                   (insert suffix)
-                   (unless minibuffer-p
-                     (message "Completed shortest"))
-                   'shortest)
-                  ((or comint-completion-autolist
-                       (string-equal stub completion))
-                   ;; It's not unique, list possible completions.
-                   (comint-dynamic-list-completions completions stub)
-                   'listed)
-                  (t
-                   (unless minibuffer-p
-                     (message "Partially completed"))
-                   'partial)))))))
-
 (defun comint-dynamic-list-filename-completions ()
   "Display a list of possible completions for the filename at point."
   (interactive)
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index db5a93b60c..1e1bf9efd6 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -1531,13 +1531,6 @@ If `current-prefix-arg' is non-nil, uses name at point 
as guess."
                         nil (file-name-nondirectory guess)))
     (read-file-name prompt default-directory)))
 
-(define-obsolete-function-alias 'read-filename-at-point
-  'dired-x-read-filename-at-point "24.1") ; is this even needed?
-
-
-;;; Epilog
-
-(define-obsolete-function-alias 'dired-x-submit-report 'report-emacs-bug 
"24.1")
 (define-obsolete-function-alias 'dired-man #'dired-do-man "29.1")
 (define-obsolete-function-alias 'dired-info #'dired-do-info "29.1")
 
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el
index ea54eea603..edbe9e494f 100644
--- a/lisp/dos-fns.el
+++ b/lisp/dos-fns.el
@@ -231,9 +231,6 @@ returned unaltered."
 
 (add-hook 'before-init-hook 'dos-reevaluate-defcustoms)
 
-(define-obsolete-variable-alias
-  'register-name-alist 'dos-register-name-alist "24.1")
-
 (defvar dos-register-name-alist
   '((ax . 0) (bx . 1) (cx . 2) (dx . 3) (si . 4) (di . 5)
     (cflag . 6) (flags . 7)
@@ -243,8 +240,6 @@ returned unaltered."
 (defun dos-make-register ()
   (make-vector 8 0))
 
-(define-obsolete-function-alias 'make-register 'dos-make-register "24.1")
-
 (defun dos-register-value (regs name)
   (let ((where (cdr (assoc name dos-register-name-alist))))
     (cond ((consp where)
@@ -256,8 +251,6 @@ returned unaltered."
           (aref regs where))
          (t nil))))
 
-(define-obsolete-function-alias 'register-value 'dos-register-value "24.1")
-
 (defun dos-set-register-value (regs name value)
   (and (numberp value)
        (>= value 0)
@@ -274,9 +267,6 @@ returned unaltered."
                (aset regs where (logand value 65535))))))
   regs)
 
-(define-obsolete-function-alias
-  'set-register-value 'dos-set-register-value "24.1")
-
 (defsubst dos-intdos (regs)
   "Issue the DOS Int 21h with registers REGS.
 
@@ -284,8 +274,6 @@ REGS should be a vector produced by `dos-make-register'
 and `dos-set-register-value', which see."
   (int86 33 regs))
 
-(define-obsolete-function-alias 'intdos 'dos-intdos "24.1")
-
 ;; Backward compatibility for obsolescent functions which
 ;; set screen size.
 
@@ -294,8 +282,6 @@ and `dos-set-register-value', which see."
   (interactive)
   (set-frame-size (selected-frame) 80 25))
 
-(define-obsolete-function-alias 'mode25 'dos-mode25 "24.1")
-
 (defun dos-mode4350 ()
   "Change the number of rows to 43 or 50.
 Emacs always tries to set the screen height to 50 rows first.
@@ -307,8 +293,6 @@ that your video hardware might not support 50-line mode."
       nil  ; the original built-in function returned nil
     (set-frame-size (selected-frame) 80 43)))
 
-(define-obsolete-function-alias 'mode4350 'dos-mode4350 "24.1")
-
 (provide 'dos-fns)
 
 ;;; dos-fns.el ends here
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 5ef517d7e3..8df4133b6b 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -244,11 +244,6 @@ the functions you loaded will not be able to run.")
 (make-obsolete-variable 'byte-compile-dynamic "not worthwhile any more." 
"27.1")
 ;;;###autoload(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
 
-(defvar byte-compile-disable-print-circle nil
-  "If non-nil, disable `print-circle' on printing a byte-compiled code.")
-(make-obsolete-variable 'byte-compile-disable-print-circle nil "24.1")
-;;;###autoload(put 'byte-compile-disable-print-circle 'safe-local-variable 
'booleanp)
-
 (defcustom byte-compile-dynamic-docstrings t
   "If non-nil, compile doc strings for lazy access.
 We bury the doc strings of functions and variables inside comments in
@@ -2423,8 +2418,7 @@ Call from the source buffer."
         (print-level nil)
         (print-quoted t)
         (print-gensym t)
-        (print-circle                   ; Handle circular data structures.
-         (not byte-compile-disable-print-circle)))
+        (print-circle t))               ; Handle circular data structures.
     (if (and (memq (car-safe form) '(defvar defvaralias defconst
                                       autoload custom-declare-variable))
              (stringp (nth 3 form)))
@@ -2482,8 +2476,7 @@ list that represents a doc string reference.
               (print-level nil)
               (print-quoted t)
               (print-gensym t)
-              (print-circle             ; Handle circular data structures.
-               (not byte-compile-disable-print-circle)))
+              (print-circle t))         ; Handle circular data structures.
           (if preface
               (progn
                 ;; FIXME: We don't handle uninterned names correctly.
diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
index 29fbcce773..716b236d3a 100644
--- a/lisp/emacs-lisp/chart.el
+++ b/lisp/emacs-lisp/chart.el
@@ -63,7 +63,6 @@
 (eval-when-compile (require 'cl-generic))
 
 ;;; Code:
-(define-obsolete-variable-alias 'chart-map 'chart-mode-map "24.1")
 (defvar chart-mode-map (make-sparse-keymap) "Keymap used in chart mode.")
 
 (defvar-local chart-local-object nil
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index d9864e6965..25f2dd4098 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -24,8 +24,8 @@
 ;;; Commentary:
 ;;
 ;; The "core" part of EIEIO is the implementation for the object
-;; system (such as eieio-defclass, or eieio-defmethod) but not the
-;; base classes for the object system, which are defined in EIEIO.
+;; system (such as eieio-defclass-internal, or cl-defmethod) but not
+;; the base classes for the object system, which are defined in EIEIO.
 ;;
 ;; See the commentary for eieio.el for more about EIEIO itself.
 
diff --git a/lisp/emacs-lisp/ert-x.el b/lisp/emacs-lisp/ert-x.el
index de18adff5b..ae72a47c2f 100644
--- a/lisp/emacs-lisp/ert-x.el
+++ b/lisp/emacs-lisp/ert-x.el
@@ -158,9 +158,6 @@ test for `called-interactively' in the command will fail."
     (run-hooks 'pre-command-hook)
     (setq return-value (apply (car command) (cdr command)))
     (run-hooks 'post-command-hook)
-    (and (boundp 'deferred-action-list)
-         deferred-action-list
-         (run-hooks 'deferred-action-function))
     (setq real-last-command (car command)
           last-command this-command)
     (when (boundp 'last-repeatable-command)
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 641ce0d5c0..4b85414943 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -943,14 +943,7 @@ character."
 (defun field-complete (table &optional predicate)
   (declare (obsolete completion-in-region "24.4"))
   (let ((minibuffer-completion-table table)
-        (minibuffer-completion-predicate predicate)
-        ;; This made sense for lisp-complete-symbol, but for
-        ;; field-complete, this is out of place.  --Stef
-        ;; (completion-annotate-function
-        ;;  (unless (eq predicate 'fboundp)
-        ;;    (lambda (str)
-        ;;      (if (fboundp (intern-soft str)) " <f>"))))
-        )
+        (minibuffer-completion-predicate predicate))
     (call-interactively 'minibuffer-complete)))
 
 (defun lisp-complete-symbol (&optional _predicate)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index c8b6667597..8d0d5d57a2 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -3520,9 +3520,6 @@ The full list of keys can be viewed with 
\\[describe-mode]."
   (message (mapconcat #'package--prettify-quick-help-key
                       package--quick-help-keys "\n")))
 
-(define-obsolete-function-alias
-  'package-menu-view-commentary 'package-menu-describe-package "24.1")
-
 (defun package-menu-get-status ()
   "Return status text of package at point in Package Menu."
   (package--ensure-package-menu-mode)
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index 7377ac9403..c2f6c16226 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -275,10 +275,9 @@ If `current-prefix-arg' is non-nil, also read a buffer and 
a \"context\"
      (list
       (read-buffer "Output to buffer" trace-buffer)
       (let ((exp
-             (let ((minibuffer-completing-symbol t))
-               (read-from-minibuffer "Context expression: "
-                                     nil read-expression-map t
-                                     'read-expression-history))))
+             (read-from-minibuffer "Context expression: "
+                                   nil read-expression-map t
+                                   'read-expression-history)))
         (lambda ()
           (let ((print-circle t)
                 (print-escape-newlines t))
diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el
index 3d2eda99a9..1818e22a92 100644
--- a/lisp/emacs-lock.el
+++ b/lisp/emacs-lock.el
@@ -88,9 +88,6 @@ The functions get one argument, the first locked buffer 
found."
   :group 'emacs-lock
   :version "24.3")
 
-(define-obsolete-variable-alias 'emacs-lock-from-exiting
-  'emacs-lock-mode "24.1")
-
 (defvar-local emacs-lock-mode nil
   "If non-nil, the current buffer is locked.
 It can be one of the following values:
@@ -247,14 +244,6 @@ some major modes from being locked under some 
circumstances."
     ;; continue standard unloading
     nil))
 
-;;; Compatibility
-
-(defun toggle-emacs-lock ()
-  "Toggle `emacs-lock-from-exiting' for the current buffer."
-  (declare (obsolete emacs-lock-mode "24.1"))
-  (interactive)
-  (call-interactively 'emacs-lock-mode))
-
 (provide 'emacs-lock)
 
 ;;; emacs-lock.el ends here
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 239d8ebdcb..0a16831fba 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -4566,8 +4566,6 @@ This places `point' just after the prompt, or at the 
beginning of the line."
 (defun erc-complete-word-at-point ()
   (run-hook-with-args-until-success 'erc-complete-functions))
 
-(define-obsolete-function-alias 'erc-complete-word #'completion-at-point 
"24.1")
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;;                        IRC SERVER INPUT HANDLING
diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el
index f4c1302629..822cc94149 100644
--- a/lisp/eshell/em-cmpl.el
+++ b/lisp/eshell/em-cmpl.el
@@ -158,14 +158,6 @@ to writing a completion function."
   (eshell-cmpl--custom-variable-docstring 'pcomplete-autolist)
   :type (get 'pcomplete-autolist 'custom-type))
 
-(defcustom eshell-cmpl-suffix-list (list ?/ ?:)
-  (eshell-cmpl--custom-variable-docstring 'pcomplete-suffix-list)
-  :type (get 'pcomplete-suffix-list 'custom-type)
-  :group 'pcomplete)
-;; Only labeled obsolete in 26.1, but all it does it set
-;; pcomplete-suffix-list, which is itself obsolete since 24.1.
-(make-obsolete-variable 'eshell-cmpl-suffix-list nil "24.1")
-
 (defcustom eshell-cmpl-recexact nil
   (eshell-cmpl--custom-variable-docstring 'pcomplete-recexact)
   :type (get 'pcomplete-recexact 'custom-type))
@@ -262,9 +254,6 @@ to writing a completion function."
               eshell-cmpl-ignore-case)
   (setq-local pcomplete-autolist
               eshell-cmpl-autolist)
-  (if (boundp 'pcomplete-suffix-list)
-      (setq-local pcomplete-suffix-list
-                  eshell-cmpl-suffix-list))
   (setq-local pcomplete-recexact
               eshell-cmpl-recexact)
   (setq-local pcomplete-man-function
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index 6b86498399..5144e30512 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -301,15 +301,6 @@ Prepend remote identification of `default-directory', if 
any."
       (setq text (replace-match " " t t text)))
     text))
 
-(defmacro eshell-for (for-var for-list &rest forms)
-  "Iterate through a list."
-  (declare (obsolete dolist "24.1") (indent 2))
-  `(let ((list-iter ,for-list))
-     (while list-iter
-       (let ((,for-var (car list-iter)))
-        ,@forms)
-       (setq list-iter (cdr list-iter)))))
-
 (define-obsolete-function-alias 'eshell-flatten-list #'flatten-tree "27.1")
 
 (defun eshell-stringify (object)
diff --git a/lisp/files-x.el b/lisp/files-x.el
index 8224a57450..da1e44e250 100644
--- a/lisp/files-x.el
+++ b/lisp/files-x.el
@@ -81,8 +81,7 @@ Intended to be used in the `interactive' spec of
     (let ((default (format "%S"
                            (cond ((eq variable 'unibyte) t)
                                  ((boundp variable)
-                                  (symbol-value variable)))))
-          (minibuffer-completing-symbol t))
+                                  (symbol-value variable))))))
       (read-from-minibuffer (format "Add %s with value: " variable)
                             nil read-expression-map t
                             'set-variable-value-history
diff --git a/lisp/files.el b/lisp/files.el
index 992f987943..2ea9d1e467 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -3161,9 +3161,6 @@ major mode MODE.
 
 See also `auto-mode-alist'.")
 
-(define-obsolete-variable-alias 'inhibit-first-line-modes-regexps
-  'inhibit-file-local-variables-regexps "24.1")
-
 ;; TODO really this should be a list of modes (eg tar-mode), not regexps,
 ;; because we are duplicating info from auto-mode-alist.
 ;; TODO many elements of this list are also in auto-coding-alist.
@@ -3184,9 +3181,6 @@ member files with their own local variable sections, 
which are
 not appropriate for the containing file.
 The function `inhibit-local-variables-p' uses this.")
 
-(define-obsolete-variable-alias 'inhibit-first-line-modes-suffixes
-  'inhibit-local-variables-suffixes "24.1")
-
 (defvar inhibit-local-variables-suffixes nil
   "List of regexps matching suffixes to remove from file names.
 The function `inhibit-local-variables-p' uses this: when checking
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 17a87134be..3fc5ce2408 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -52,24 +52,6 @@ method to use when posting."
                 (const current)
                 (sexp :tag "Methods" ,gnus-select-method)))
 
-(defcustom gnus-outgoing-message-group nil
-  "All outgoing messages will be put in this group.
-If you want to store all your outgoing mail and articles in the group
-\"nnml:archive\", you set this variable to that value.  This variable
-can also be a list of group names.
-
-If you want to have greater control over what group to put each
-message in, you can set this variable to a function that checks the
-current newsgroup name and then returns a suitable group name (or list
-of names)."
-  :group 'gnus-message
-  :type '(choice (const nil)
-                (function)
-                (string :tag "Group")
-                (repeat :tag "List of groups" (string :tag "Group"))))
-
-(make-obsolete-variable 'gnus-outgoing-message-group 
'gnus-message-archive-group "24.1")
-
 (defcustom gnus-mailing-list-groups nil
   "If non-nil a regexp matching groups that are really mailing lists.
 This is useful when you're reading a mailing list that has been
@@ -215,30 +197,6 @@ use this option with care."
  :parameter-document       "\
 List of charsets that are permitted to be unencoded.")
 
-(defcustom gnus-debug-files
-  '("gnus.el" "gnus-sum.el" "gnus-group.el"
-    "gnus-art.el" "gnus-start.el" "gnus-async.el"
-    "gnus-msg.el" "gnus-score.el" "gnus-win.el" "gnus-topic.el"
-    "gnus-agent.el" "gnus-cache.el" "gnus-srvr.el"
-    "mm-util.el" "mm-decode.el" "nnmail.el" "message.el")
-  "Files whose variables will be reported in `gnus-bug'."
-  :version "22.1"
-  :group 'gnus-message
-  :type '(repeat file))
-
-(make-obsolete-variable 'gnus-debug-files "it is no longer used." "24.1")
-
-(defcustom gnus-debug-exclude-variables
-  '(mm-mime-mule-charset-alist
-    nnmail-split-fancy message-minibuffer-local-map)
-  "Variables that should not be reported in `gnus-bug'."
-  :version "22.1"
-  :group 'gnus-message
-  :type '(repeat variable))
-
-(make-obsolete-variable
- 'gnus-debug-exclude-variables "it is no longer used." "24.1")
-
 (defcustom gnus-discouraged-post-methods
   '(nndraft nnml nnimap nnmaildir nnmh nnfolder nndir)
   "A list of back ends that are not used in \"real\" newsgroups.
@@ -1665,7 +1623,7 @@ this is a reply."
 (defun gnus-inews-insert-gcc (&optional group)
   "Insert the Gcc to say where the article is to be archived."
   (let* ((group (or group gnus-newsgroup-name))
-         (var (or gnus-outgoing-message-group gnus-message-archive-group))
+         (var gnus-message-archive-group)
         (gcc-self-val
          (and group (not (gnus-virtual-group-p group))
               (gnus-group-find-parameter group 'gcc-self t)))
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 8cefb09b66..ceeb184854 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -1004,9 +1004,6 @@ Uses `gnus-registry-marks' to find what shortcuts to 
install."
                nil
                (cons "Registry Marks" gnus-registry-misc-menus)))))
 
-(define-obsolete-function-alias 'gnus-registry-user-format-function-M
-  #'gnus-registry-article-marks-to-chars "24.1")
-
 ;; use like this:
 ;; (defalias 'gnus-user-format-function-M 
#'gnus-registry-article-marks-to-chars)
 (defun gnus-registry-article-marks-to-chars (headers)
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 2119e68509..7eea08f174 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -1130,16 +1130,6 @@ you could set this variable:
   :group 'gnus-server
   :type '(repeat gnus-select-method))
 
-(defcustom gnus-local-domain nil
-  "Local domain name without a host name.
-The DOMAINNAME environment variable is used instead if it is defined.
-If the function `system-name' returns the full Internet name, there is
-no need to set this variable."
-  :group 'gnus-message
-  :type '(choice (const :tag "default" nil)
-                string))
-(make-obsolete-variable 'gnus-local-domain nil "24.1")
-
 ;; Customization variables
 
 (defcustom gnus-refer-article-method 'current
@@ -2316,11 +2306,6 @@ automatically cache the article in the agent cache."
 (defvar gnus-server-method-cache nil)
 (defvar gnus-extended-servers nil)
 
-;; The carpal mode has been removed, but define the variable for
-;; backwards compatibility.
-(defvar gnus-carpal nil)
-(make-obsolete-variable 'gnus-carpal nil "24.1")
-
 (defvar gnus-agent-fetching nil
   "Whether Gnus agent is in fetching mode.")
 
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index c629cb85d9..746109f26f 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -95,9 +95,6 @@ Uses the same syntax as `nnmail-split-methods'.")
 (defvoo nnimap-unsplittable-articles '(%Deleted %Seen)
   "Articles with the flags in the list will not be considered when splitting.")
 
-(make-obsolete-variable 'nnimap-split-rule "see `nnimap-split-methods'."
-                        "24.1")
-
 (defvoo nnimap-authenticator nil
   "How nnimap authenticate itself to the server.
 Possible choices are nil (use default methods), `anonymous',
diff --git a/lisp/iimage.el b/lisp/iimage.el
index 8a765d5e5d..baeb4bb6a7 100644
--- a/lisp/iimage.el
+++ b/lisp/iimage.el
@@ -87,9 +87,6 @@ Examples of image filename patterns to match:
   (iimage-mode-buffer t)
   (recenter-top-bottom arg))
 
-;;;###autoload
-(define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1")
-
 (defun turn-off-iimage-mode ()
   "Unconditionally turn off iimage mode."
   (interactive)
diff --git a/lisp/image.el b/lisp/image.el
index e90cccaa09..bdaaec608e 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -446,15 +446,6 @@ type if we can't otherwise guess it."
     (error "Invalid image type `%s'" type))
   type)
 
-
-(if (fboundp 'image-metadata)           ; eg not --without-x
-    (define-obsolete-function-alias 'image-extension-data
-      'image-metadata "24.1"))
-
-(define-obsolete-variable-alias
-    'image-library-alist
-    'dynamic-library-alist "24.1")
-
 ;;;###autoload
 (defun image-type-available-p (type)
   "Return t if image type TYPE is available.
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index 9d2e20ae04..d743802ead 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -42,9 +42,6 @@
   :group 'maint
   :group 'mail)
 
-(define-obsolete-variable-alias 'report-emacs-bug-pretest-address
-  'report-emacs-bug-address "24.1")
-
 (defcustom report-emacs-bug-no-confirmation nil
   "If non-nil, suppress the confirmations asked for the sake of novice users."
   :type 'boolean)
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 952970d07c..9ea2cc92e9 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -239,12 +239,8 @@ comma-separated list, and return the pruned list."
   ;; Or just set the default directly in the defcustom.
   (if (null mail-dont-reply-to-names)
       (setq mail-dont-reply-to-names
-            ;; `rmail-default-dont-reply-to-names' is obsolete.
-           (let ((a (bound-and-true-p rmail-default-dont-reply-to-names))
-                 (b (if (> (length user-mail-address) 0)
-                        (concat "\\`" (regexp-quote user-mail-address) 
"\\'"))))
-             (cond ((and a b) (concat a "\\|" b))
-                   ((or a b))))))
+            (if (> (length user-mail-address) 0)
+                (concat "\\`" (regexp-quote user-mail-address) "\\'"))))
   ;; Split up DESTINATIONS and match each element separately.
   (let ((start-pos 0) (cur-pos 0)
        (case-fold-search t))
@@ -281,9 +277,6 @@ comma-separated list, and return the pruned list."
       (substring destinations (match-end 0))
     destinations))
 
-;; Legacy name
-(define-obsolete-function-alias 'rmail-dont-reply-to #'mail-dont-reply-to 
"24.1")
-
 
 ;;;###autoload
 (defun mail-fetch-field (field-name &optional last all list delete)
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index ba7cf58d38..c97786190c 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -72,8 +72,7 @@ When t this still needs to be initialized.")
     )
   "Alist of header field and expression to return alist for completion.
 The expression may reference the variable `pattern'
-which will hold the string being completed.
-If not on matching header, `mail-complete-function' gets called instead."
+which will hold the string being completed."
   :type 'alist
   :group 'mailalias)
 (put 'mail-complete-alist 'risky-local-variable t)
@@ -90,13 +89,6 @@ If `angles', they look like:
   :type '(choice (const angles) (const parens) (const nil))
   :group 'mailalias)
 
-(defcustom mail-complete-function 'ispell-complete-word
-  "Function to call when completing outside `mail-complete-alist'-header."
-  :type '(choice function (const nil))
-  :group 'mailalias)
-(make-obsolete-variable 'mail-complete-function
-                        'completion-at-point-functions "24.1")
-
 (defcustom mail-directory-function nil
   "Function to get completions from directory service or nil for none.
 See `mail-directory-requery'."
@@ -433,25 +425,6 @@ For use on `completion-at-point-functions'."
                          (let ((pattern prefix)) (eval list-exp))))))
           (list beg end table)))))
 
-;;;###autoload
-(defun mail-complete (arg)
-  "Perform completion on header field or word preceding point.
-Completable headers are according to `mail-complete-alist'.  If none matches
-current header, calls `mail-complete-function' and passes prefix ARG if any."
-  (declare (obsolete mail-completion-at-point-function "24.1"))
-  (interactive "P")
-  ;; Read the defaults first, if we have not done so.
-  (sendmail-sync-aliases)
-  (if (eq mail-aliases t)
-      (progn
-       (setq mail-aliases nil)
-       (if (file-exists-p mail-personal-alias-file)
-           (build-mail-aliases))))
-  (let ((data (mail-completion-at-point-function)))
-    (if data
-        (apply #'completion-in-region data)
-      (funcall mail-complete-function arg))))
-
 (defun mail-completion-expand (table)
   "Build new completion table that expands aliases.
 Completes like TABLE except that if the completion is a valid alias,
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index b2b21b88ef..467375dbe1 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -314,20 +314,6 @@ Setting this variable has an effect only before reading a 
mail."
   :group 'rmail-retrieve
   :version "21.1")
 
-;;;###autoload
-(define-obsolete-variable-alias 'rmail-dont-reply-to-names
-  'mail-dont-reply-to-names "24.1")
-
-;; Prior to 24.1, this used to contain "\\`info-".
-;;;###autoload
-(defvar rmail-default-dont-reply-to-names nil
-  "Regexp specifying part of the default value of `mail-dont-reply-to-names'.
-This is used when the user does not set `mail-dont-reply-to-names'
-explicitly.")
-;;;###autoload
-(make-obsolete-variable 'rmail-default-dont-reply-to-names
-                        'mail-dont-reply-to-names "24.1")
-
 ;;;###autoload
 (defcustom rmail-ignored-headers
   (purecopy
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index c55cdc8412..6afadca6bb 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -430,20 +430,6 @@ support Delivery Status Notification."
                        (const :tag "Success" success)))
   :version "22.1")
 
-;; Note: could use /usr/ucb/mail instead of sendmail;
-;; options -t, and -v if not interactive.
-(defvar mail-mailer-swallows-blank-line nil
-  "Set this non-nil if the system's mailer runs the header and body together.
-The actual value should be an expression to evaluate that returns
-non-nil if the problem will actually occur.
-\(As far as we know, this is not an issue on any system still supported
-by Emacs.)")
-
-(put 'mail-mailer-swallows-blank-line 'risky-local-variable t) ; gets evalled
-(make-obsolete-variable 'mail-mailer-swallows-blank-line
-                       "no need to set this on any modern system."
-                        "24.1" 'set)
-
 (defvar mail-mode-syntax-table
   ;; define-derived-mode will make it inherit from text-mode-syntax-table.
   (let ((st (make-syntax-table)))
@@ -1309,8 +1295,6 @@ external program defined by `sendmail-program'."
            ;; Insert an extra newline if we need it to work around
            ;; Sun's bug that swallows newlines.
            (goto-char (1+ delimline))
-           (if (eval mail-mailer-swallows-blank-line)
-               (newline))
            ;; Find and handle any Fcc fields.
            (goto-char (point-min))
            (if (re-search-forward "^Fcc:" delimline t)
@@ -1495,28 +1479,6 @@ just append to the file, in Babyl format if necessary."
                 (with-current-buffer buffer
                   (set-visited-file-modtime)))))))))
 
-(defun mail-sent-via ()
-  "Make a Sent-via header line from each To or Cc header line."
-  (declare (obsolete "nobody can remember what it is for." "24.1"))
-  (interactive)
-  (save-excursion
-    ;; put a marker at the end of the header
-    (let ((end (copy-marker (mail-header-end)))
-         (case-fold-search t))
-      (goto-char (point-min))
-      ;; search for the To: lines and make Sent-via: lines from them
-      ;; search for the next To: line
-      (while (re-search-forward "^\\(to\\|cc\\):" end t)
-       ;; Grab this line plus all its continuations, sans the `to:'.
-       (let ((to-line
-              (buffer-substring (point)
-                                (progn
-                                  (if (re-search-forward "^[^ \t\n]" end t)
-                                      (backward-char 1)
-                                    (goto-char end))
-                                  (point)))))
-         ;; Insert a copy, with altered header field name.
-         (insert-before-markers "Sent-via:" to-line))))))
 
 (defun mail-to ()
   "Move point to end of To field, creating it if necessary."
@@ -1839,8 +1801,6 @@ If the current line has `mail-yank-prefix', insert it on 
the new line."
       (or (bolp) (newline))
       (goto-char start))))
 
-(define-obsolete-function-alias 'mail-attach-file #'mail-insert-file "24.1")
-
 (declare-function mml-attach-file "mml"
                  (file &optional type description disposition))
 
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index da786dec00..8cba2b14e1 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -342,8 +342,6 @@ for `smtpmail-try-auth-method'.")
            ;; Insert an extra newline if we need it to work around
            ;; Sun's bug that swallows newlines.
            (goto-char (1+ delimline))
-           (if (eval mail-mailer-swallows-blank-line t)
-               (newline))
            ;; Find and handle any Fcc fields.
            (goto-char (point-min))
            (if (re-search-forward "^Fcc:" delimline t)
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index a134654a02..12a0b4d328 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -584,9 +584,6 @@
 
     menu))
 
-(define-obsolete-function-alias
-  'menu-bar-kill-ring-save 'kill-ring-save "24.1")
-
 ;; These are alternative definitions for the cut, paste and copy
 ;; menu items.  Use them if your system expects these to use the clipboard.
 
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index e029dfe414..9d2abbd118 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -2225,25 +2225,6 @@ These include:
      `exact'    - text is a valid completion but may be further
                   completed.")
 
-(defvar completion-annotate-function
-  nil
-  ;; Note: there's a lot of scope as for when to add annotations and
-  ;; what annotations to add.  E.g. completing-help.el allowed adding
-  ;; the first line of docstrings to M-x completion.  But there's
-  ;; a tension, since such annotations, while useful at times, can
-  ;; actually drown the useful information.
-  ;; So completion-annotate-function should be used parsimoniously, or
-  ;; else only used upon a user's request (e.g. we could add a command
-  ;; to completion-list-mode to add annotations to the current
-  ;; completions).
-  "Function to add annotations in the *Completions* buffer.
-The function takes a completion and should either return nil, or a string that
-will be displayed next to the completion.  The function can access the
-completion table and predicates via `minibuffer-completion-table' and related
-variables.")
-(make-obsolete-variable 'completion-annotate-function
-                        'completion-extra-properties "24.1")
-
 (defun completion--done (string &optional finished message)
   (let* ((exit-fun (plist-get completion-extra-properties :exit-function))
          (pre-msg (and exit-fun (current-message))))
@@ -2314,8 +2295,7 @@ variables.")
                                            minibuffer-completion-predicate))
              (ann-fun (or (completion-metadata-get all-md 'annotation-function)
                           (plist-get completion-extra-properties
-                                     :annotation-function)
-                          completion-annotate-function))
+                                     :annotation-function)))
              (aff-fun (or (completion-metadata-get all-md 'affixation-function)
                           (plist-get completion-extra-properties
                                      :affixation-function)))
@@ -2790,9 +2770,6 @@ Gets combined either with 
`minibuffer-local-completion-map' or
 with `minibuffer-local-must-match-map'."
   "SPC" nil)
 
-(defvar minibuffer-local-filename-must-match-map (make-sparse-keymap))
-(make-obsolete-variable 'minibuffer-local-filename-must-match-map nil "24.1")
-
 (defvar-keymap minibuffer-local-ns-map
   :doc "Local keymap for the minibuffer when spaces are not allowed."
   :parent minibuffer-local-map
diff --git a/lisp/msb.el b/lisp/msb.el
index 616799f067..19f0afed73 100644
--- a/lisp/msb.el
+++ b/lisp/msb.el
@@ -353,9 +353,6 @@ This is instead of the groups in `msb-menu-cond'."
   :type 'boolean
   :set #'msb-custom-set)
 
-(define-obsolete-variable-alias 'msb-after-load-hooks
-  'msb-after-load-hook "24.1")
-
 (defcustom msb-after-load-hook nil
   "Hook run after the msb package has been loaded."
   :type 'hook
diff --git a/lisp/obsolete/eieio-compat.el b/lisp/obsolete/eieio-compat.el
index b31bde4efb..2ac75293fc 100644
--- a/lisp/obsolete/eieio-compat.el
+++ b/lisp/obsolete/eieio-compat.el
@@ -248,21 +248,6 @@ Summary:
   (message "next-method-p called outside of a primary or around method")
   nil)
 
-;;;###autoload
-(defun eieio-defmethod (method args)
-  "Obsolete work part of an old version of the `defmethod' macro."
-  (declare (obsolete cl-defmethod "24.1"))
-  (eval `(defmethod ,method ,@args))
-  method)
-
-;;;###autoload
-(defun eieio-defgeneric (method doc-string)
-  "Obsolete work part of an old version of the `defgeneric' macro."
-  (declare (obsolete cl-defgeneric "24.1"))
-  (eval `(defgeneric ,method (x) ,@(if doc-string `(,doc-string))))
-  ;; Return the method
-  'method)
-
 ;;;###autoload
 (defun eieio-defclass (cname superclasses slots options)
   (declare (obsolete eieio-defclass-internal "25.1"))
diff --git a/lisp/obsolete/info-edit.el b/lisp/obsolete/info-edit.el
index 6c1be1078f..6c4c10ca6c 100644
--- a/lisp/obsolete/info-edit.el
+++ b/lisp/obsolete/info-edit.el
@@ -33,7 +33,6 @@
 (make-obsolete-variable 'Info-edit-mode-hook
                        "editing Info nodes by hand is not recommended." "24.4")
 
-(define-obsolete-variable-alias 'Info-edit-map 'Info-edit-mode-map "24.1")
 (defvar Info-edit-mode-map (let ((map (make-sparse-keymap)))
                              (set-keymap-parent map text-mode-map)
                              (define-key map "\C-c\C-c" #'Info-cease-edit)
diff --git a/lisp/obsolete/starttls.el b/lisp/obsolete/starttls.el
index 6f0685d3dd..2f1f0e9773 100644
--- a/lisp/obsolete/starttls.el
+++ b/lisp/obsolete/starttls.el
@@ -287,9 +287,6 @@ GnuTLS requires a port number."
                            starttls-gnutls-program
                          starttls-program))))
 
-(define-obsolete-function-alias 'starttls-any-program-available
-  #'starttls-available-p "24.1")
-
 (provide 'starttls)
 
 ;;; starttls.el ends here
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 00348ac0bb..32031d1946 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -793,14 +793,6 @@ bundle agent rcfiles
                       (cdr (assq 'functions cfengine3-fallback-syntax)))
               'symbols))
 
-(defcustom cfengine-mode-abbrevs nil
-  "Abbrevs for CFEngine2 mode."
-  :type '(repeat (list (string :tag "Name")
-                      (string :tag "Expansion")
-                      (choice  :tag "Hook" (const nil) function))))
-
-(make-obsolete-variable 'cfengine-mode-abbrevs 'edit-abbrevs "24.1")
-
 ;; Taken from the doc for pre-release 2.1.
 (eval-and-compile
   (defconst cfengine2-actions
@@ -1409,7 +1401,6 @@ to the action header."
   (setq-local outline-regexp "[ \t]*\\(\\sw\\|\\s_\\)+:+")
   (setq-local outline-level #'cfengine2-outline-level)
   (setq-local fill-paragraph-function #'cfengine-fill-paragraph)
-  (define-abbrev-table 'cfengine2-mode-abbrev-table cfengine-mode-abbrevs)
   (setq font-lock-defaults
         '(cfengine2-font-lock-keywords nil nil nil beginning-of-line))
   ;; Fixme: set the args of functions in evaluated classes to string
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 971e3f6174..03469b9f55 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -180,9 +180,6 @@ C++ modes are included."
   (cwarn-font-lock-keywords cwarn-mode)
   (font-lock-flush))
 
-;;;###autoload
-(define-obsolete-function-alias 'turn-on-cwarn-mode 'cwarn-mode "24.1")
-
 ;;}}}
 ;;{{{ Help functions
 
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 91307f6c09..bd01786e08 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -1170,7 +1170,6 @@ and adds all qualifying names to the list of known 
targets."
                       (goto-char (match-end 0))
                     (insert suffix))))))))
 
-(define-obsolete-function-alias 'makefile-complete 'completion-at-point "24.1")
 
 
 ;; Backslashification.  Stolen from cc-mode.el.
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index 34288e0e4f..f0fd23f3bc 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -438,8 +438,6 @@ If the list was changed, sort the list and remove 
duplicates first."
                    (insert close)))))))
       (nth 1 entry))))
 
-(define-obsolete-function-alias 'meta-complete-symbol
-  'completion-at-point "24.1")
 
 ;;; Indentation.
 
@@ -803,7 +801,6 @@ The environment marked is the one that contains point or 
follows point."
     st)
   "Syntax table used in Metafont or MetaPost mode.")
 
-(define-obsolete-variable-alias 'meta-mode-map 'meta-common-mode-map "24.1")
 (defvar meta-common-mode-map
   (let ((map (make-sparse-keymap)))
     ;; Comment Paragraphs:
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index 351ea6e3a9..8d3194e6a4 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -239,14 +239,6 @@ will do all lineups."
              (const :tag "Declarations" declaration)
               (const :tag "Case statements" case)))
 
-(defvar pascal-toggle-completions nil
-  "If non-nil, `pascal-complete-word' tries all possible completions.
-Repeated use of \\[pascal-complete-word] then shows all
-completions in turn, instead of displaying a list of all possible
-completions.")
-(make-obsolete-variable 'pascal-toggle-completions
-                        'completion-cycle-threshold "24.1")
-
 (defcustom pascal-type-keywords
   '("array" "file" "packed" "char" "integer" "real" "string" "record")
   "Keywords for types used when completing a word in a declaration or parmlist.
@@ -1297,13 +1289,6 @@ indent of the current line in parameterlist."
     (when (> e b)
       (list b e #'pascal-completion))))
 
-(define-obsolete-function-alias 'pascal-complete-word
-  'completion-at-point "24.1")
-
-(define-obsolete-function-alias 'pascal-show-completions
-  'completion-help-at-point "24.1")
-
-
 (defun pascal-get-default-symbol ()
   "Return symbol around current point as a string."
   (save-excursion
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 9598209f5e..5aba95d4c7 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -742,14 +742,6 @@ Relevant only when `prolog-imenu-flag' is non-nil."
   :group 'prolog-other
   :type 'boolean)
 
-(defcustom prolog-char-quote-workaround nil
-  "If non-nil, declare 0 as a quote character to handle 0'<char>.
-This is really kludgy, and unneeded (i.e. obsolete) in Emacs>=24."
-  :version "24.1"
-  :group 'prolog-other
-  :type 'boolean)
-(make-obsolete-variable 'prolog-char-quote-workaround nil "24.1")
-
 
 ;;-------------------------------------------------------------------
 ;; Internal variables
@@ -1303,7 +1295,7 @@ To find out what version of Prolog mode you are running, 
enter
         (t t)))
 
 ;; This statement was missing in Emacs 24.1, 24.2, 24.3.
-(define-obsolete-function-alias 'switch-to-prolog 'run-prolog "24.1")
+(define-obsolete-function-alias 'switch-to-prolog 'run-prolog "24.1") ; "24.4" 
; for grep
 ;;;###autoload
 (defun run-prolog (arg)
   "Run an inferior Prolog process, input and output via buffer *prolog*.
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index f1191b8faa..1c99937c4b 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -248,7 +248,6 @@
 (eval-when-compile (require 'subr-x))   ;For `string-empty-p'.
 
 ;; Avoid compiler warnings
-(defvar view-return-to-alist)
 (defvar compilation-error-regexp-alist)
 (defvar outline-heading-end-regexp)
 
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 3c8d4f43db..2e8e8d2319 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -234,9 +234,6 @@ It creates the Imenu index for the buffer, if necessary."
         (setq which-func-mode nil)
         (error "Error in which-func-update: %S" info))))))
 
-;;;###autoload
-(define-obsolete-function-alias 'which-func-mode 'which-function-mode "24.1")
-
 (defvar which-func-update-timer nil)
 
 (unless (or (assq 'which-func-mode mode-line-misc-info)
diff --git a/lisp/simple.el b/lisp/simple.el
index 66640916a2..1d251dbf5e 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1732,8 +1732,6 @@ from Lisp."
             words (if (= words 1) "" "s")
             chars (if (= chars 1) "" "s"))))
 
-(define-obsolete-function-alias 'count-lines-region 'count-words-region "24.1")
-
 (defun what-line ()
   "Print the current buffer line number and narrowed line number of point."
   (interactive)
@@ -1951,10 +1949,6 @@ Such arguments are used as in `read-from-minibuffer'.)"
   ;; Used for interactive spec `X'.
   (eval (read--expression prompt initial-contents)))
 
-(defvar minibuffer-completing-symbol nil
-  "Non-nil means completing a Lisp symbol in the minibuffer.")
-(make-obsolete-variable 'minibuffer-completing-symbol nil "24.1" 'get)
-
 (defvar minibuffer-default nil
   "The current default value or list of default values in the minibuffer.
 The functions `read-from-minibuffer' and `completing-read' bind
@@ -2015,20 +2009,19 @@ display the result of expression evaluation."
 
 PROMPT and optional argument INITIAL-CONTENTS do the same as in
 function `read-from-minibuffer'."
-  (let ((minibuffer-completing-symbol t))
-    (minibuffer-with-setup-hook
-        (lambda ()
-          ;; FIXME: instead of just applying the syntax table, maybe
-          ;; use a special major mode tailored to reading Lisp
-          ;; expressions from the minibuffer? (`emacs-lisp-mode'
-          ;; doesn't preserve the necessary keybindings.)
-          (set-syntax-table emacs-lisp-mode-syntax-table)
-          (add-hook 'completion-at-point-functions
-                    #'elisp-completion-at-point nil t)
-          (run-hooks 'eval-expression-minibuffer-setup-hook))
-      (read-from-minibuffer prompt initial-contents
-                            read-expression-map t
-                            'read-expression-history))))
+  (minibuffer-with-setup-hook
+      (lambda ()
+        ;; FIXME: instead of just applying the syntax table, maybe
+        ;; use a special major mode tailored to reading Lisp
+        ;; expressions from the minibuffer? (`emacs-lisp-mode'
+        ;; doesn't preserve the necessary keybindings.)
+        (set-syntax-table emacs-lisp-mode-syntax-table)
+        (add-hook 'completion-at-point-functions
+                  #'elisp-completion-at-point nil t)
+        (run-hooks 'eval-expression-minibuffer-setup-hook))
+    (read-from-minibuffer prompt initial-contents
+                          read-expression-map t
+                          'read-expression-history)))
 
 (defun read--expression-try-read ()
   "Try to read an Emacs Lisp expression in the minibuffer.
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index da85d54863..9184d6c525 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -703,8 +703,6 @@ If you want to change this while speedbar is active, either 
use
 (defvar speedbar-update-flag-disable nil
   "Permanently disable changing of the update flag.")
 
-(define-obsolete-variable-alias
-  'speedbar-syntax-table 'speedbar-mode-syntax-table "24.1")
 (defvar speedbar-mode-syntax-table
   (let ((st (make-syntax-table)))
     ;; Turn off paren matching around here.
@@ -719,8 +717,6 @@ If you want to change this while speedbar is active, either 
use
     st)
   "Syntax-table used on the speedbar.")
 
-
-(define-obsolete-variable-alias 'speedbar-key-map 'speedbar-mode-map "24.1")
 (defvar speedbar-mode-map
   (let ((map (make-keymap)))
     (suppress-keymap map t)
diff --git a/lisp/strokes.el b/lisp/strokes.el
index 376cbc0cfe..d7a9539316 100644
--- a/lisp/strokes.el
+++ b/lisp/strokes.el
@@ -1031,8 +1031,6 @@ o Strokes are a bit computer-dependent in that they 
depend somewhat on
     (help-mode)
     (help-print-return-message)))
 
-(define-obsolete-function-alias 'strokes-report-bug #'report-emacs-bug "24.1")
-
 (defun strokes-window-configuration-changed-p ()
   "Non-nil if the `strokes-window-configuration' frame properties changed.
 This is based on the last time `strokes-window-configuration' was updated."
diff --git a/lisp/subr.el b/lisp/subr.el
index 6bf12fd757..f8b386e563 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1856,8 +1856,6 @@ be a list of the form returned by `event-start' and 
`event-end'."
 ;;;; Obsolescence declarations for variables, and aliases.
 
 (make-obsolete-variable 'redisplay-end-trigger-functions 'jit-lock-register 
"23.1")
-(make-obsolete-variable 'deferred-action-list 'post-command-hook "24.1")
-(make-obsolete-variable 'deferred-action-function 'post-command-hook "24.1")
 (make-obsolete-variable 'redisplay-dont-pause nil "24.5")
 (make-obsolete 'window-redisplay-end-trigger nil "23.1")
 (make-obsolete 'set-window-redisplay-end-trigger nil "23.1")
@@ -4707,9 +4705,6 @@ even if this catches the signal."
                    ,@(cdr handler)))
                handlers)))
 
-(define-obsolete-function-alias 'condition-case-no-debug
-  'condition-case-unless-debug "24.1")
-
 (defmacro with-demoted-errors (format &rest body)
   "Run BODY and demote any errors to simple messages.
 FORMAT is a string passed to `message' to format any error message.
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index 84c5b087b9..e26191b33b 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -97,8 +97,6 @@ The properties returned may include `top', `left', `height', 
and `width'."
 
 ;;;; Keyboard mapping.
 
-(define-obsolete-variable-alias 'ns-alternatives-map 'x-alternatives-map 
"24.1")
-
 ;; Here are some Nextstep-like bindings for command key sequences.
 (define-key global-map [?\s-,] 'customize)
 (define-key global-map [?\s-'] 'next-window-any-frame)
@@ -682,10 +680,6 @@ See the documentation of 
`create-fontset-from-fontset-spec' for the format.")
 
 ;;;; Pasteboard support.
 
-(define-obsolete-function-alias 'ns-store-cut-buffer-internal
-  'gui-set-selection "24.1")
-
-
 (defun ns-copy-including-secondary ()
   (interactive)
   (call-interactively 'kill-ring-save)
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index 7eaa604776..993f1d4320 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -81,7 +81,6 @@
                   (&optional frame exclude-proportional))
 
 (defvar w32-color-map) ;; defined in w32fns.c
-(make-obsolete 'w32-default-color-map nil "24.1")
 
 (declare-function w32-send-sys-command "w32fns.c")
 (declare-function set-message-beep "w32fns.c")
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 7c88c85cef..3a0bd65f29 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -1171,9 +1171,6 @@ as returned by `x-server-vendor'."
 
 ;;;; Selections
 
-(define-obsolete-function-alias 'x-cut-buffer-or-selection-value
-  'x-selection-value "24.1")
-
 ;; Arrange for the kill and yank functions to set and check the clipboard.
 
 (defun x-clipboard-yank ()
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 544e0da827..6763da046f 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -316,8 +316,6 @@ If parsing fails, try to set this variable to nil."
                                        (option (choice :tag "Alternative" 
:value nil
                                                        (const nil) 
integer)))))))
 
-(define-obsolete-variable-alias 'bibtex-entry-field-alist
-  'bibtex-BibTeX-entry-alist "24.1")
 (defcustom bibtex-BibTeX-entry-alist
   '(("Article" "Article in Journal"
      (("author")
@@ -3673,14 +3671,6 @@ if that value is non-nil.
     (if (not (consp (nth 1 (car entry-alist))))
         ;; new format
         entry-alist
-      ;; Convert old format of `bibtex-entry-field-alist'
-      (unless (get var 'entry-list-format)
-        (put var 'entry-list-format "pre-24")
-        (message "Old format of `%s' (pre GNU Emacs 24).
-Please convert to the new format."
-                 (if (eq (indirect-variable 'bibtex-entry-field-alist) var)
-                     'bibtex-entry-field-alist var))
-        (sit-for 3))
       (let (lst)
         (dolist (entry entry-alist)
           (let ((fl (nth 1 entry)) req xref opt)
@@ -5318,7 +5308,6 @@ entries from minibuffer."
     (goto-char (point-max))
     (message "Buffer is now parsable.  Please save it.")))
 
-(define-obsolete-function-alias 'bibtex-complete #'completion-at-point "24.1")
 (defun bibtex-completion-at-point-function ()
   (let ((pnt (point))
         (case-fold-search t)
diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el
index aeae389da6..b517cc1663 100644
--- a/lisp/textmodes/reftex-index.el
+++ b/lisp/textmodes/reftex-index.el
@@ -269,8 +269,6 @@ will prompt for other arguments."
     (and newtag (cdr cell) (not (member newtag (cdr cell)))
          (push newtag (cdr cell)))))
 
-(define-obsolete-variable-alias
-  'reftex-index-map 'reftex-index-mode-map "24.1")
 (defvar reftex-index-mode-map
   (let ((map (make-sparse-keymap)))
     ;; Index map
@@ -1198,8 +1196,6 @@ This gets refreshed in every phrases command.")
   '((reftex-index-phrases-font-lock-keywords)
     nil t nil beginning-of-line)
   "Font lock defaults for `reftex-index-phrases-mode'.")
-(define-obsolete-variable-alias
-  'reftex-index-phrases-map 'reftex-index-phrases-mode-map "24.1")
 (defvar reftex-index-phrases-mode-map
   (let ((map (make-sparse-keymap)))
     ;; Keybindings and Menu for phrases buffer
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el
index d77411483f..5942801a8a 100644
--- a/lisp/textmodes/reftex-sel.el
+++ b/lisp/textmodes/reftex-sel.el
@@ -59,8 +59,6 @@
     (define-key map [follow-link] 'mouse-face)
     map))
 
-(define-obsolete-variable-alias
-  'reftex-select-label-map 'reftex-select-label-mode-map "24.1")
 (defvar reftex-select-label-mode-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map reftex-select-shared-map)
@@ -109,8 +107,6 @@ During a selection process, these are the local bindings.
   ;; We do not set a local map - reftex-select-item does this.
   )
 
-(define-obsolete-variable-alias
-  'reftex-select-bib-map 'reftex-select-bib-mode-map "24.1")
 (defvar reftex-select-bib-mode-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map reftex-select-shared-map)
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index 89c734a0d7..5599eaee02 100644
--- a/lisp/textmodes/reftex-toc.el
+++ b/lisp/textmodes/reftex-toc.el
@@ -28,7 +28,6 @@
 (require 'reftex)
 ;;;
 
-(define-obsolete-variable-alias 'reftex-toc-map 'reftex-toc-mode-map "24.1")
 (defvar reftex-toc-mode-map
   (let ((map (make-sparse-keymap)))
 
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index 964baed03c..f6bbda02e6 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -3584,125 +3584,46 @@ Region is from BEG to END.  With WITH-EMPTY prefix 
empty lines too."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-block-face 'rst-block
-  "All syntax marking up a special block."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-block-face
-                        "customize the face `rst-block' instead."
-                        "24.1")
-
 (defface rst-external '((t :inherit font-lock-type-face))
   "Face used for field names and interpreted text."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-external-face 'rst-external
-  "Field names and interpreted text."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-external-face
-                        "customize the face `rst-external' instead."
-                        "24.1")
-
 (defface rst-definition '((t :inherit font-lock-function-name-face))
   "Face used for all other defining constructs."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-definition-face 'rst-definition
-  "All other defining constructs."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-definition-face
-                        "customize the face `rst-definition' instead."
-                        "24.1")
-
 (defface rst-directive '((t :inherit font-lock-builtin-face))
   "Face used for directives and roles."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-directive-face 'rst-directive
-  "Directives and roles."
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-directive-face
-                        "customize the face `rst-directive' instead."
-                        "24.1")
-
 (defface rst-comment '((t :inherit font-lock-comment-face))
   "Face used for comments."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-comment-face 'rst-comment
-  "Comments."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-comment-face
-                        "customize the face `rst-comment' instead."
-                        "24.1")
-
 (defface rst-emphasis1 '((t :inherit italic))
   "Face used for simple emphasis."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-emphasis1-face 'rst-emphasis1
-  "Simple emphasis."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-emphasis1-face
-                        "customize the face `rst-emphasis1' instead."
-                        "24.1")
-
 (defface rst-emphasis2 '((t :inherit bold))
   "Face used for double emphasis."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-emphasis2-face 'rst-emphasis2
-  "Double emphasis."
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-emphasis2-face
-                        "customize the face `rst-emphasis2' instead."
-                        "24.1")
-
 (defface rst-literal '((t :inherit font-lock-string-face))
   "Face used for literal text."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-literal-face 'rst-literal
-  "Literal text."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-literal-face
-                        "customize the face `rst-literal' instead."
-                        "24.1")
-
 (defface rst-reference '((t :inherit font-lock-variable-name-face))
   "Face used for references to a definition."
   :version "24.1"
   :group 'rst-faces)
 
-(defcustom rst-reference-face 'rst-reference
-  "References to a definition."
-  :version "24.1"
-  :group 'rst-faces
-  :type '(face))
-(make-obsolete-variable 'rst-reference-face
-                        "customize the face `rst-reference' instead."
-                        "24.1")
-
 (defface rst-transition '((t :inherit font-lock-keyword-face))
   "Face used for a transition."
   :package-version '(rst . "1.3.0")
@@ -3794,23 +3715,23 @@ of your own."
     ;; `Bullet Lists`_
     ;; FIXME: A bullet directly after a field name is not recognized.
     (,(rst-re 'lin-beg '(:grp bul-sta))
-     1 rst-block-face)
+     1 'rst-block)
     ;; `Enumerated Lists`_
     (,(rst-re 'lin-beg '(:grp enmany-sta))
-     1 rst-block-face)
+     1 'rst-block)
     ;; `Definition Lists`_
     ;; FIXME: missing.
     ;; `Field Lists`_
     (,(rst-re 'lin-beg '(:grp fld-tag) 'bli-sfx)
-     1 rst-external-face)
+     1 'rst-external)
     ;; `Option Lists`_
     (,(rst-re 'lin-beg '(:grp opt-tag (:shy optsep-tag opt-tag) "*")
              '(:alt "$" (:seq hws-prt "\\{2\\}")))
-     1 rst-block-face)
+     1 'rst-block)
     ;; `Line Blocks`_
     ;; Only for lines containing no more bar - to distinguish from tables.
     (,(rst-re 'lin-beg '(:grp "|" bli-sfx) "[^|\n]*$")
-     1 rst-block-face)
+     1 'rst-block)
 
     ;; `Tables`_
     ;; FIXME: missing
@@ -3818,22 +3739,22 @@ of your own."
     ;; All the `Explicit Markup Blocks`_
     ;; `Footnotes`_ / `Citations`_
     (,(rst-re 'lin-beg 'fnc-sta-2)
-     (1 rst-definition-face)
-     (2 rst-definition-face))
+     (1 'rst-definition)
+     (2 'rst-definition))
     ;; `Directives`_ / `Substitution Definitions`_
     (,(rst-re 'lin-beg 'dir-sta-3)
-     (1 rst-directive-face)
-     (2 rst-definition-face)
-     (3 rst-directive-face))
+     (1 'rst-directive)
+     (2 'rst-definition)
+     (3 'rst-directive))
     ;; `Hyperlink Targets`_
     (,(rst-re 'lin-beg
              '(:grp exm-sta "_" (:alt
                                  (:seq "`" ilcbkqdef-tag "`")
                                  (:seq (:alt "[^:\\\n]" "\\\\.") "+")) ":")
              'bli-sfx)
-     1 rst-definition-face)
+     1 'rst-definition)
     (,(rst-re 'lin-beg '(:grp "__") 'bli-sfx)
-     1 rst-definition-face)
+     1 'rst-definition)
 
     ;; All `Inline Markup`_
     ;; Most of them may be multiline though this is uninteresting.
@@ -3841,16 +3762,16 @@ of your own."
     ;; FIXME: Condition 5 preventing fontification of e.g. "*" not implemented
     ;;        `Strong Emphasis`_.
     (,(rst-re 'ilm-pfx '(:grp "\\*\\*" ilcast-tag "\\*\\*") 'ilm-sfx)
-     1 rst-emphasis2-face)
+     1 'rst-emphasis2)
     ;; `Emphasis`_
     (,(rst-re 'ilm-pfx '(:grp "\\*" ilcast-tag "\\*") 'ilm-sfx)
-     1 rst-emphasis1-face)
+     1 'rst-emphasis1)
     ;; `Inline Literals`_
     (,(rst-re 'ilm-pfx '(:grp "``" ilcbkq-tag "``") 'ilm-sfx)
-     1 rst-literal-face)
+     1 'rst-literal)
     ;; `Inline Internal Targets`_
     (,(rst-re 'ilm-pfx '(:grp "_`" ilcbkq-tag "`") 'ilm-sfx)
-     1 rst-definition-face)
+     1 'rst-definition)
     ;; `Hyperlink References`_
     ;; FIXME: `Embedded URIs and Aliases`_ not considered.
     ;; FIXME: Directly adjacent marked up words are not fontified correctly
@@ -3858,28 +3779,28 @@ of your own."
     (,(rst-re 'ilm-pfx '(:grp (:alt (:seq "`" ilcbkq-tag "`")
                                    (:seq "\\sw" (:alt "\\sw" "-") "+\\sw"))
                              "__?") 'ilm-sfx)
-     1 rst-reference-face)
+     1 'rst-reference)
     ;; `Interpreted Text`_
     (,(rst-re 'ilm-pfx '(:grp (:shy ":" sym-tag ":") "?")
              '(:grp "`" ilcbkq-tag "`")
              '(:grp (:shy ":" sym-tag ":") "?") 'ilm-sfx)
-     (1 rst-directive-face)
-     (2 rst-external-face)
-     (3 rst-directive-face))
+     (1 'rst-directive)
+     (2 'rst-external)
+     (3 'rst-directive))
     ;; `Footnote References`_ / `Citation References`_
     (,(rst-re 'ilm-pfx '(:grp fnc-tag "_") 'ilm-sfx)
-     1 rst-reference-face)
+     1 'rst-reference)
     ;; `Substitution References`_
     ;; FIXME: References substitutions like |this|_ or |this|__ are not
     ;;        fontified correctly.
     (,(rst-re 'ilm-pfx '(:grp sub-tag) 'ilm-sfx)
-     1 rst-reference-face)
+     1 'rst-reference)
     ;; `Standalone Hyperlinks`_
     ;; FIXME: This takes it easy by using a whitespace as delimiter.
     (,(rst-re 'ilm-pfx '(:grp uri-tag ":\\S +") 'ilm-sfx)
-     1 rst-definition-face)
+     1 'rst-definition)
     (,(rst-re 'ilm-pfx '(:grp sym-tag "@" sym-tag ) 'ilm-sfx)
-     1 rst-definition-face)
+     1 'rst-definition)
 
     ;; Do all block fontification as late as possible so 'append works.
 
@@ -3906,18 +3827,18 @@ of your own."
     ;; `Comments`_
     ;; This is multiline.
     (,(rst-re 'lin-beg 'cmt-sta-1)
-     (1 rst-comment-face)
+     (1 'rst-comment)
      (rst-font-lock-find-unindented-line-match
       (rst-font-lock-find-unindented-line-limit (match-end 1))
       nil
-      (0 rst-comment-face append)))
+      (0 'rst-comment append)))
     (,(rst-re 'lin-beg '(:grp exm-tag) '(:grp hws-tag) "$")
-     (1 rst-comment-face)
-     (2 rst-comment-face)
+     (1'rst-comment)
+     (2'rst-comment)
      (rst-font-lock-find-unindented-line-match
       (rst-font-lock-find-unindented-line-limit 'next)
       nil
-      (0 rst-comment-face append)))
+      (0 'rst-comment append)))
 
     ;; FIXME: This is not rendered as comment::
     ;;        .. .. list-table::
@@ -3941,11 +3862,11 @@ of your own."
     ;; `Indented Literal Blocks`_
     ;; This is multiline.
     (,(rst-re 'lin-beg 'lit-sta-2)
-     (2 rst-block-face)
+     (2 'rst-block)
      (rst-font-lock-find-unindented-line-match
       (rst-font-lock-find-unindented-line-limit t)
       nil
-      (0 rst-literal-face append)))
+      (0 'rst-literal append)))
 
     ;; FIXME: `Quoted Literal Blocks`_ missing.
     ;; This is multiline.
@@ -3972,8 +3893,8 @@ of your own."
     ;;
     ;;   Indentation is not required for doctest blocks.
     (,(rst-re 'lin-beg '(:grp (:alt ">>>" ell-tag)) '(:grp ".+"))
-     (1 rst-block-face)
-     (2 rst-literal-face)))
+     (1 'rst-block)
+     (2 'rst-literal)))
   "Keywords to highlight in rst mode.")
 
 (defvar font-lock-beg)
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index 46e40f29c0..80508570f3 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -556,15 +556,6 @@ this function."
        templates))))
 
 
-;; toggle-read-only is obsolete since 24.3, but since vc-t-r-o was made
-;; obsolete earlier, it is ok for the latter to be an alias to the former,
-;; since the latter will be removed first.  We can't just make it
-;; an alias for read-only-mode, since that is not 100% the same.
-(defalias 'vc-toggle-read-only 'toggle-read-only)
-(make-obsolete 'vc-toggle-read-only
-               "use `read-only-mode' instead (or `toggle-read-only' in older 
versions of Emacs)."
-               "24.1")
-
 (defun vc-default-make-version-backups-p (_backend _file)
   "Return non-nil if unmodified versions should be backed up locally.
 The default is to switch off this feature."
diff --git a/lisp/view.el b/lisp/view.el
index 17bc46d4c4..287112f2d4 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -112,18 +112,6 @@ If nil that means use half the window size.")
 
 (defvar-local view-last-regexp nil) ; Global is better???
 
-(defvar-local view-return-to-alist nil
-  "What to do with used windows and where to go when finished viewing buffer.
-This is local in each buffer being viewed.
-It is added to by `view-mode-enter' when starting to view a buffer and
-subtracted from by `view-mode-exit' when finished viewing the buffer.
-
-See RETURN-TO-ALIST argument of function `view-mode-exit' for the format of
-`view-return-to-alist'.")
-(make-obsolete-variable
- 'view-return-to-alist "this variable is no longer used." "24.1")
-(put 'view-return-to-alist 'permanent-local t)
-
 (defvar-local view-exit-action nil
   "If non-nil, a function called when finished viewing.
 The function should take one argument (a buffer).
@@ -476,40 +464,6 @@ Entry to view-mode runs the normal hook `view-mode-hook'."
   (if buffer-read-only
       (setq buffer-read-only view-old-buffer-read-only)))
 
-;;;###autoload
-(defun view-return-to-alist-update (buffer &optional item)
-  "Update `view-return-to-alist' of buffer BUFFER.
-Remove from `view-return-to-alist' all entries referencing dead
-windows.  Optional argument ITEM non-nil means add ITEM to
-`view-return-to-alist' after purging.  For a description of items
-that can be added see the RETURN-TO-ALIST argument of the
-function `view-mode-exit'.  If `view-return-to-alist' contains an
-entry for the selected window, purge that entry from
-`view-return-to-alist' before adding ITEM."
-  (declare (obsolete "this function has no effect." "24.1"))
-  (with-current-buffer buffer
-    (when view-return-to-alist
-      (let* ((list view-return-to-alist)
-            entry entry-window last)
-       (while list
-         (setq entry (car list))
-         (setq entry-window (car entry))
-         (if (and (windowp entry-window)
-                  (or (and item (eq entry-window (selected-window)))
-                      (not (window-live-p entry-window))))
-             ;; Remove that entry.
-             (if last
-                 (setcdr last (cdr list))
-               (setq view-return-to-alist
-                     (cdr view-return-to-alist)))
-           ;; Leave entry alone.
-           (setq last entry))
-         (setq list (cdr list)))))
-    ;; Add ITEM.
-    (when item
-      (setq view-return-to-alist
-           (cons item view-return-to-alist)))))
-
 ;;;###autoload
 (defun view-mode-enter (&optional quit-restore exit-action)
   "Enter View mode and set up exit from view mode depending on optional 
arguments.
diff --git a/src/keyboard.c b/src/keyboard.c
index 84a7a0a38a..a520e53397 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1305,9 +1305,6 @@ command_loop_1 (void)
       /* If there are warnings waiting, process them.  */
       if (!NILP (Vdelayed_warnings_list))
         safe_run_hooks (Qdelayed_warnings_hook);
-
-      if (!NILP (Vdeferred_action_list))
-       safe_run_hooks (Qdeferred_action_function);
     }
 
   /* Do this after running Vpost_command_hook, for consistency.  */
@@ -1537,8 +1534,6 @@ command_loop_1 (void)
       if (!NILP (Vdelayed_warnings_list))
         safe_run_hooks (Qdelayed_warnings_hook);
 
-      safe_run_hooks (Qdeferred_action_function);
-
       kset_last_command (current_kboard, Vthis_command);
       kset_real_last_command (current_kboard, Vreal_this_command);
       if (!CONSP (last_command_event))
@@ -12089,7 +12084,6 @@ syms_of_keyboard (void)
   DEFSYM (Qundo_auto__undoably_changed_buffers,
           "undo-auto--undoably-changed-buffers");
 
-  DEFSYM (Qdeferred_action_function, "deferred-action-function");
   DEFSYM (Qdelayed_warnings_hook, "delayed-warnings-hook");
   DEFSYM (Qfunction_key, "function-key");
 
@@ -12807,17 +12801,6 @@ This keymap works like `input-decode-map', but comes 
after `function-key-map'.
 Another difference is that it is global rather than terminal-local.  */);
   Vkey_translation_map = Fmake_sparse_keymap (Qnil);
 
-  DEFVAR_LISP ("deferred-action-list", Vdeferred_action_list,
-              doc: /* List of deferred actions to be performed at a later time.
-The precise format isn't relevant here; we just check whether it is nil.  */);
-  Vdeferred_action_list = Qnil;
-
-  DEFVAR_LISP ("deferred-action-function", Vdeferred_action_function,
-              doc: /* Function to call to handle deferred actions, after each 
command.
-This function is called with no arguments after each command
-whenever `deferred-action-list' is non-nil.  */);
-  Vdeferred_action_function = Qnil;
-
   DEFVAR_LISP ("delayed-warnings-list", Vdelayed_warnings_list,
                doc: /* List of warnings to be displayed after this command.
 Each element must be a list (TYPE MESSAGE [LEVEL [BUFFER-NAME]]),
@@ -13072,7 +13055,6 @@ syms_of_keyboard_for_pdumper (void)
   PDUMPER_RESET (num_input_keys, 0);
   PDUMPER_RESET (num_nonmacro_input_events, 0);
   PDUMPER_RESET_LV (Vlast_event_frame, Qnil);
-  PDUMPER_RESET_LV (Vdeferred_action_list, Qnil);
   PDUMPER_RESET_LV (Vdelayed_warnings_list, Qnil);
 
   /* Create the initial keyboard.  Qt means 'unset'.  */
diff --git a/src/w32fns.c b/src/w32fns.c
index 468073c917..51540e1880 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -797,13 +797,6 @@ w32_default_color_map (void)
   return (cmap);
 }
 
-DEFUN ("w32-default-color-map", Fw32_default_color_map, Sw32_default_color_map,
-       0, 0, 0, doc: /* Return the default color map.  */)
-  (void)
-{
-  return w32_default_color_map ();
-}
-
 static Lisp_Object
 w32_color_map_lookup (const char *colorname)
 {
@@ -10879,7 +10872,6 @@ keys when IME input is received.  */);
   /* W32 specific functions */
 
   defsubr (&Sw32_define_rgb_color);
-  defsubr (&Sw32_default_color_map);
   defsubr (&Sw32_display_monitor_attributes_list);
   defsubr (&Sw32_send_sys_command);
   defsubr (&Sw32_shell_execute);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]