diff lisp/prim/obsolete.el @ 181:bfd6434d15b3 r20-3b17

Import from CVS: tag r20-3b17
author cvs
date Mon, 13 Aug 2007 09:53:19 +0200
parents 8eaf7971accc
children 489f57a838ef
line wrap: on
line diff
--- a/lisp/prim/obsolete.el	Mon Aug 13 09:52:21 2007 +0200
+++ b/lisp/prim/obsolete.el	Mon Aug 13 09:53:19 2007 +0200
@@ -48,9 +48,15 @@
 (defsubst define-obsolete-variable-alias (oldvar newvar)
   "Define OLDVAR as an obsolete alias for variable NEWVAR.
 This makes referencing or setting OLDVAR equivalent to referencing or
-setting NEWVAR and marks OLDVAR as obsolete."
-  (defvaralias oldvar newvar)
-  (make-obsolete-variable oldvar newvar))
+setting NEWVAR and marks OLDVAR as obsolete. 
+If OLDVAR was bound and NEWVAR was not, Set NEWVAR to OLDVAR.
+
+Note: Use this before any other references (defvar/defcustom) to NEWVAR"
+  (let ((needs-setting (and (boundp oldvar) (not (boundp newvar))))
+        (value (and (boundp oldvar) (symbol-value oldvar))))
+     (defvaralias oldvar newvar)
+     (make-obsolete-variable oldvar newvar)
+     (and needs-setting (set newvar value))))
 
 (defsubst define-compatible-variable-alias (oldvar newvar)
   "Define OLDVAR as a compatible alias for variable NEWVAR.