summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/bytecomp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/bytecomp.el')
-rw-r--r--lisp/emacs-lisp/bytecomp.el25
1 files changed, 11 insertions, 14 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index bdcb17cfa76..c58038ba2bb 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -10,7 +10,7 @@
;;; This version incorporates changes up to version 2.10 of the
;;; Zawinski-Furuseth compiler.
-(defconst byte-compile-version "$Revision: 2.73 $")
+(defconst byte-compile-version "$Revision: 1.1 $")
;; This file is part of GNU Emacs.
@@ -3220,19 +3220,16 @@ If FORM is a lambda or a macro, byte-compile it as a function."
(setq byte-compile-bound-variables
(cons var byte-compile-bound-variables)))
(byte-compile-body-do-effect
- (list (if (cdr (cdr form))
- (if (eq (car form) 'defconst)
- (list 'setq var value)
- (list 'or (list 'boundp (list 'quote var))
- (list 'setq var value))))
- ;; Put the defined variable in this library's load-history entry
- ;; just as a real defvar would.
- (list 'setq 'current-load-list
- (list 'cons (list 'quote var)
- 'current-load-list))
- (if string
- (list 'put (list 'quote var) ''variable-documentation string))
- (list 'quote var)))))
+ (list
+ ;; Just as a real defvar would, but only in top-level forms.
+ (when (null byte-compile-current-form)
+ `(push ',var current-load-list))
+ (when (and string (null byte-compile-current-form))
+ `(put ',var 'variable-documentation ,string))
+ (if (cdr (cdr form))
+ (if (eq (car form) 'defconst)
+ `(setq ,var ,value)
+ `(if (boundp ',var) ',var (setq ,var ,value))))))))
(defun byte-compile-autoload (form)
(and (byte-compile-constp (nth 1 form))