changeset 69082:31566461e709

(unsafep): Don't treat &rest or &optional as variables at all. (unsafep-variable): Rename arg; doc fix.
author Richard M. Stallman <rms@gnu.org>
date Tue, 21 Feb 2006 19:54:36 +0000
parents 4ef3c75869eb
children d148e515073b
files lisp/emacs-lisp/unsafep.el
diffstat 1 files changed, 8 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/unsafep.el	Tue Feb 21 19:53:15 2006 +0000
+++ b/lisp/emacs-lisp/unsafep.el	Tue Feb 21 19:54:36 2006 +0000
@@ -148,10 +148,10 @@
        ((eq fun 'lambda)
 	;;First arg is temporary bindings
 	(mapc #'(lambda (x)
-		  (let ((y (unsafep-variable x t)))
-		    (if y (throw 'unsafep y)))
 		  (or (memq x '(&optional &rest))
-		      (push x unsafep-vars)))
+		      (let ((y (unsafep-variable x t)))
+			(if y (throw 'unsafep y))
+			(push x unsafep-vars))))
 	      (cadr form))
 	(unsafep-progn (cddr form)))
        ((eq fun 'let)
@@ -247,17 +247,16 @@
     (if reason (throw 'unsafep reason))
     sym))
 
-(defun unsafep-variable (sym global-okay)
-  "Return nil if SYM is safe as a let-binding sym
-\(because it already has a temporary binding or is a non-risky buffer-local
-variable), otherwise a reason why it is unsafe.  Failing to be locally bound
-is okay if GLOBAL-OKAY is non-nil."
+(defun unsafep-variable (sym to-bind)
+  "Return nil if SYM is safe to set or bind, or a reason why not.
+If TO-BIND is nil, check whether SYM is safe to set.
+If TO-BIND is t, check whether SYM is safe to bind."
   (cond
    ((not (symbolp sym))
     `(variable ,sym))
    ((risky-local-variable-p sym nil)
     `(risky-local-variable ,sym))
-   ((not (or global-okay
+   ((not (or to-bind
 	     (memq sym unsafep-vars)
 	     (local-variable-p sym)))
     `(global-variable ,sym))))