(define-obsolete-variable-alias): Doc fix.
Maybe copy some custom properties from old to new name. (Bug#4706)
This commit is contained in:
parent
f3ed9aca28
commit
850bfd0444
2 changed files with 23 additions and 14 deletions
|
@ -175,28 +175,32 @@ was first made obsolete, for example a date or a release number."
|
|||
(defmacro define-obsolete-variable-alias (obsolete-name current-name
|
||||
&optional when docstring)
|
||||
"Make OBSOLETE-NAME a variable alias for CURRENT-NAME and mark it obsolete.
|
||||
|
||||
\(define-obsolete-variable-alias 'old-var 'new-var \"22.1\" \"old-var's doc.\")
|
||||
|
||||
is equivalent to the following two lines of code:
|
||||
|
||||
\(defvaralias 'old-var 'new-var \"old-var's doc.\")
|
||||
\(make-obsolete-variable 'old-var 'new-var \"22.1\")
|
||||
This uses `defvaralias' and `make-obsolete-variable' (which see).
|
||||
See the Info node `(elisp)Variable Aliases' for more details.
|
||||
|
||||
If CURRENT-NAME is a defcustom (more generally, any variable
|
||||
where OBSOLETE-NAME may be set, e.g. in a .emacs file, before the
|
||||
alias is defined), then the define-obsolete-variable-alias
|
||||
statement should be placed before the defcustom. This is so that
|
||||
any user customizations are applied before the defcustom tries to
|
||||
initialize the variable (this is due to the way `defvaralias' works).
|
||||
Exceptions to this rule occur for define-obsolete-variable-alias
|
||||
statements that are autoloaded, or in files dumped with Emacs.
|
||||
statement should be evaluated before the defcustom, if user
|
||||
customizations are to be respected. The simplest way to achieve
|
||||
this is to place the alias statement before the defcustom (this
|
||||
is not necessary for aliases that are autoloaded, or in files
|
||||
dumped with Emacs). This is so that any user customizations are
|
||||
applied before the defcustom tries to initialize the
|
||||
variable (this is due to the way `defvaralias' works).
|
||||
|
||||
See the docstrings of `defvaralias' and `make-obsolete-variable' or
|
||||
Info node `(elisp)Variable Aliases' for more details."
|
||||
For the benefit of `custom-set-variables', if OBSOLETE-NAME has
|
||||
any of the following properties, they are copied to
|
||||
CURRENT-NAME, if it does not already have them:
|
||||
'saved-value, 'saved-variable-comment."
|
||||
(declare (doc-string 4))
|
||||
`(progn
|
||||
(defvaralias ,obsolete-name ,current-name ,docstring)
|
||||
;; See Bug#4706.
|
||||
(mapc (lambda (prop) (or (get ,current-name prop)
|
||||
(put ,current-name prop
|
||||
(get ,obsolete-name prop))))
|
||||
'(saved-value saved-variable-comment))
|
||||
(make-obsolete-variable ,obsolete-name ,current-name ,when)))
|
||||
(set-advertised-calling-convention
|
||||
;; New code should always provide the `when' argument.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue