Typo.
[jscl.git] / src / read.lisp
index c3cde1b..1cbe13e 100644 (file)
            ((string= cname "tab") #\tab)
            ((string= cname "newline") #\newline)
            (t (char cname 0)))))
-      ((char= ch #\+)
+      ((or (char= ch #\+)
+           (char= ch #\-))
        (let ((feature (let ((symbol (ls-read stream eof-error-p eof-value t)))
                         (unless (symbolp symbol)
                           (error "Invalid feature ~S" symbol))
                         (intern (string symbol) "KEYWORD"))))
-         (ecase feature
-           (:common-lisp
-              (ls-read stream)
-              (ls-read stream eof-error-p eof-value t))
-           (:jscl
-              (ls-read stream eof-error-p eof-value t))
-           (:nil
-              (ls-read stream)
-              (ls-read stream eof-error-p eof-value t)))))
+         (if (eql (char= ch #\+)
+                  (and (find feature *features*) t))
+              (ls-read stream eof-error-p eof-value t)
+              (prog2 (ls-read stream)
+                  (ls-read stream eof-error-p eof-value t)))))
       ((and ch (digit-char-p ch))
        (let ((id (digit-char-p ch)))
          (while (and (%peek-char stream)
       ;; No package prefix
       ((= index size)
        (setq name string)
-       (setq package *package*)
+       (setq package (package-name *package*))
        (setq internalp t))
       (t
        ;; Package prefix
          (incf index))
        (setq name (subseq string index))))
     ;; Canonalize symbol name and package
-    (setq name (if (equal package "JS")
+    (setq name (if (string= package "JS")
                    (setq name (unescape-token name))
                    (setq name (string-upcase-noescaped name))))
     (setq package (find-package package))