r11408: handle sbcl's not allowing a #\. in pathname's name field
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 28 Dec 2006 21:11:26 +0000 (21:11 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 28 Dec 2006 21:11:26 +0000 (21:11 +0000)
parse-common.lisp

index 25d3ee3f11bc0dff11d8d1083dcb5a8bba3911ae..c9adcf740cd7d856a383723af8a99f55922cbf42 100644 (file)
 "Return pathname for a umls filename with an optional extension"
   (etypecase filename
     (string
+     (let* ((name-list (delimited-string-to-list filename #\.))
+            (name (if (second name-list)
+                      (first name-list)
+                      (concatenate 'string (first name-list) (or extension ""))))
+            (type (when (second name-list)
+                    (concatenate 'string (second name-list) (or extension "")))))
      (merge-pathnames
-      (make-pathname :name (concatenate 'string filename extension))
+      (make-pathname :name name :type type)
       (case (schar filename 0)
-       ((#\M #\m)
-        *meta-path*)
-       ((#\L #\l)
-        *lex-path*)
-       ((#\S #\s)
-        *net-path*)
-       (t
-        *umls-path*))))
+        ((#\M #\m)
+         *meta-path*)
+        ((#\L #\l)
+         *lex-path*)
+        ((#\S #\s)
+         *net-path*)
+        (t
+         *umls-path*)))))
     (pathname
      filename)))