for piece = (subseq namestring start end)
collect (if (and (string= piece "..") rest)
:up
- piece)))
+ piece)))
(name-and-type
(let* ((end (first (last components)))
(dot (position #\. end :from-end t)))
(unless directory (go :done))
:subdir
(let ((piece (pop directory)))
- (typecase piece
+ (typecase piece
((member :up) (write-string ".." s))
(string (write-string piece s))
(t (error "ungood piece in NATIVE-NAMESTRING: ~S" piece)))
(cond ((null pathname-directory) '(:relative))
((eq (car pathname-directory) :relative)
pathname-directory)
- ((and (> prefix-len 1)
+ ((and (> prefix-len 0)
(>= (length pathname-directory) prefix-len)
(compare-component (subseq pathname-directory
0 prefix-len)
(t
(setf dots nil)
(setf (schar dst dst-len) char)
- (incf dst-len)))))
+ (incf dst-len)))))
;; ...finish off
(when (and last-slash (not (zerop last-slash)))
(case dots