0.6.12.49:
[sbcl.git] / src / code / extensions.lisp
index 7dd9b95..1ea0c92 100644 (file)
@@ -98,7 +98,7 @@
         (do ((y x (safe-cddr y))
              (started-p nil t)
              (z x (cdr z)))
-            ((or (not z) (not y)) nil)
+            ((not (and (consp z) (consp y))) nil)
           (when (and started-p (eq y z))
             (return t))))))
 
        (t
         (error "not legal as a function name: ~S" function-name))))
 
+(defun looks-like-name-of-special-var-p (x)
+  (and (symbolp x)
+       (let ((name (symbol-name x)))
+        (and (> (length name) 2) ; to exclude '* and '**
+             (char= #\* (aref name 0))
+             (char= #\* (aref name (1- (length name))))))))
+
 ;;; ANSI guarantees that some symbols are self-evaluating. This
 ;;; function is to be called just before a change which would affect
 ;;; that. (We don't absolutely have to call this function before such