Mercurial > emacs
changeset 105632:127b35cd2de7
(define-obsolete-variable-alias): Doc fix.
Maybe copy some custom properties from old to new name. (Bug#4706)
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Fri, 16 Oct 2009 06:48:24 +0000 |
parents | 7cea65998c1f |
children | 411fa34ae614 |
files | lisp/ChangeLog lisp/emacs-lisp/byte-run.el |
diffstat | 2 files changed, 23 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Oct 16 05:03:56 2009 +0000 +++ b/lisp/ChangeLog Fri Oct 16 06:48:24 2009 +0000 @@ -1,3 +1,8 @@ +2009-10-16 Glenn Morris <rgm@gnu.org> + + * emacs-lisp/byte-run.el (define-obsolete-variable-alias): Doc fix. + Maybe copy some custom properties from old to new name. (Bug#4706) + 2009-10-16 Juanma Barranquero <lekktu@gmail.com> * subr.el (error, sit-for, start-process-shell-command)
--- a/lisp/emacs-lisp/byte-run.el Fri Oct 16 05:03:56 2009 +0000 +++ b/lisp/emacs-lisp/byte-run.el Fri Oct 16 06:48:24 2009 +0000 @@ -175,28 +175,32 @@ (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.