From 7361c48852ef8f85937e6841181e1cd7e55359d6 Mon Sep 17 00:00:00 2001 From: toy <toy> Date: Fri, 14 Feb 2003 19:47:12 +0000 Subject: [PATCH] UNPARSE-UNIX-ENOUGH: If the PATHNAME has no directory component or has a relative directory component, it is taken as relative to DEFAULTS instead of signaling an error that it can't be represented relative to DEFAULTS. --- code/filesys.lisp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/code/filesys.lisp b/code/filesys.lisp index a9e8bb700..fbe35c8b9 100644 --- a/code/filesys.lisp +++ b/code/filesys.lisp @@ -6,7 +6,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/filesys.lisp,v 1.71 2002/11/15 15:08:11 toy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/filesys.lisp,v 1.72 2003/02/14 19:47:12 toy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -456,11 +456,17 @@ (defaults-directory (%pathname-directory defaults)) (prefix-len (length defaults-directory)) (result-dir - (cond ((and (> prefix-len 1) - (>= (length pathname-directory) prefix-len) - (compare-component (subseq pathname-directory - 0 prefix-len) - defaults-directory)) + (cond ((null pathname-directory) + ;; No directory, so relative to default. + (list :relative)) + ((eq (first pathname-directory) :relative) + ;; Relative directory so relative to default. + pathname-directory) + ((and (> prefix-len 1) + (>= (length pathname-directory) prefix-len) + (compare-component (subseq pathname-directory + 0 prefix-len) + defaults-directory)) ;; Pathname starts with a prefix of default. So just ;; use a relative directory from then on out. (cons :relative (nthcdr prefix-len pathname-directory))) -- GitLab