Fixed typo
[clg] / tools / config.lisp
index 04276fe..472d02a 100644 (file)
 
 (defun |#?-reader| (stream subchar arg)
   (declare (ignore subchar arg))
-  (let ((not-p (when (char= (peek-char nil stream) #\-)
-                (read-char stream)))
-       (conditional (read stream t nil t)))
+  (let* ((not-p (when (char= (peek-char nil stream) #\-)
+                 (read-char stream)))
+        (conditional (read stream t nil t)))
     (cond
      (*read-suppress* (read stream t nil t))
      ((not *read-eval*)
     (values-list
      (loop
       repeat 4
-      for part in (split-string (lisp-implementation-version) :delimiter #\.)
+      ;; We use . and - as delimiters because some Linux
+      ;; distributions tend to patch SBCL and add a distro-specific
+      ;; version tag (like 1.0.19-gentoo).
+      for part in (split-string (lisp-implementation-version) :delimiter '(#\. #\-))
       while (every #'digit-char-p part)
       collect (parse-integer part))))
   (defun sbcl>= (major minor micro &optional patch)
       (or 
        (> %major major)
        (and (= %major major) (> %minor minor))
-       (and (= %major major) (= %minor minor) (>= %micro micro))
-       (and (= %major major) (= %minor minor) (>= %micro micro))
+       (and (= %major major) (= %minor minor) (> %micro micro))
        (and 
        (= %major major) (= %minor minor) (= %micro micro)
        (>= (or %patch 0) (or patch 0))))))