Author: mhenoch Date: Tue Apr 1 17:00:17 2008 New Revision: 184 Modified: cl-darcs/trunk/upath.lisp Log: Add TRUENAME argument to MAKE-UPATH Modified: cl-darcs/trunk/upath.lisp ============================================================================== --- cl-darcs/trunk/upath.lisp (original) +++ cl-darcs/trunk/upath.lisp Tue Apr 1 17:00:17 2008 @@ -20,14 +20,18 @@ ;; file. For local files, just use pathnames. For remote files, use ;; the PURI library. (Or the real thing, if we're using ACL) -(defun make-upath (path) +(defun make-upath (path &key truename) "Turn PATH into a \"universal pathname\". If PATH is a pathname or URI, return it unchanged. If PATH starts with \"http://\" or \"https://\", return a URI. -Else, return a pathname." +Else, return a pathname. + +If TRUENAME is provided and true, give an absolute path." (ctypecase path (pathname - path) + (if truename + (truename path) + path)) (net.uri:uri path) (string @@ -36,7 +40,9 @@ (and (>= (length path) 8) (string= path "https://" :end1 8))) (net.uri:parse-uri path) - (pathname path))))) + (if truename + (truename (pathname path)) + (pathname path)))))) (defun upath-subdir (base subdirs &optional filename) "From BASE, descend into SUBDIRS and FILENAME.
participants (1)
-
mhenoch@common-lisp.net