/[cmucl]/src/code/filesys.lisp
ViewVC logotype

Diff of /src/code/filesys.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.91 by rtoy, Thu Sep 22 20:27:16 2005 UTC revision 1.92 by rtoy, Sun Sep 25 21:47:48 2005 UTC
# Line 180  Line 180 
180           ;; Look for something like "~*~" at the end of the           ;; Look for something like "~*~" at the end of the
181           ;; namestring, where * can be #\* or some digits.  This           ;; namestring, where * can be #\* or some digits.  This
182           ;; denotes a version.           ;; denotes a version.
183             ;;(format t "explicit-version ~S ~A ~A~%" namestr start end)
184           (cond ((or (< (- end start) 4)           (cond ((or (< (- end start) 4)
185                      (and (char/= (schar namestr (1- end)) #\~)                      (and (char/= (schar namestr (1- end)) #\~)
186                           (char/= (schar namestr (1- end)) #\*)))                           (char/= (schar namestr (1- end)) #\*)))
187                  ;; No explicit version given, so return NIL to                  ;; No explicit version given, so return NIL to
188                  ;; indicate we don't want file versions, unless                  ;; indicate we don't want file versions, unless
189                  ;; requested in other ways.                  ;; requested in other ways.
190                    ;;(format t "case 1: ~A ~A~%" nil end)
191                  (values nil end))                  (values nil end))
192                 ((and (not *ignore-wildcards*)                 ((and (not *ignore-wildcards*)
193                       (char= (schar namestr (- end 2)) #\*)                       (char= (schar namestr (- end 2)) #\*)
194                       (char= (schar namestr (- end 3)) #\~)                       (char= (schar namestr (- end 3)) #\~)
195                       (char= (schar namestr (- end 4)) #\.))                       (char= (schar namestr (- end 4)) #\.))
196                  ;; Found "~*~", so it's a wild version                  ;; Found "~*~", so it's a wild version
197                    ;;(format t "case 2: ~A ~A~%" :wild (- end 4))
198                  (values :wild (- end 4)))                  (values :wild (- end 4)))
199                 (t                 (t
200                  ;; Look for a version number.  Start at the end, just                  ;; Look for a version number.  Start at the end, just
# Line 200  Line 203 
203                  ;; get it.  If not, we didn't find a version number,                  ;; get it.  If not, we didn't find a version number,
204                  ;; so we call it :newest                  ;; so we call it :newest
205                  (do ((i (- end 2) (1- i)))                  (do ((i (- end 2) (1- i)))
206                      ((< i (+ start 1)) (values :newest end))                      ((< i (+ start 1))
207                         ;;(format t "case 3: ~A ~A~%" :newest end)
208                         (values :newest end))
209                    (let ((char (schar namestr i)))                    (let ((char (schar namestr i)))
210                      (when (eql char #\~)                      (when (eql char #\~)
211                        (return (if (char= (schar namestr (1- i)) #\.)                        (return (if (char= (schar namestr (1- i)) #\.)
# Line 209  Line 214 
214                                            (1- i))                                            (1- i))
215                                    (values :newest end))))                                    (values :newest end))))
216                      (unless (char<= #\0 char #\9)                      (unless (char<= #\0 char #\9)
217                        (return (values :newest end))))))))                        ;; It's not a digit.  Give up, and say the
218                          ;; version is NIL.
219                          ;;(format t "case 3 return: ~A ~A~%" nil end)
220                          (return (values nil end))))))))
221         (any-version (namestr start end)         (any-version (namestr start end)
222           ;; process end of string looking for a version candidate.           ;; process end of string looking for a version candidate.
223           (multiple-value-bind (version where)           (multiple-value-bind (version where)
# Line 510  Line 518 
518                   (prefix-len (length defaults-directory))                   (prefix-len (length defaults-directory))
519                   (result-dir                   (result-dir
520                    (cond ((null pathname-directory)                    (cond ((null pathname-directory)
521                           ;; No directory, so relative to default.                           ;; No directory, so relative to default.  But
522                           (list :relative))                           ;; if we're relative to default, NIL is as
523                             ;; good as '(:relative) and it results in a
524                             ;; shorter namestring.
525                             #+nil (list :relative)
526                             nil)
527                          ((eq (first pathname-directory) :relative)                          ((eq (first pathname-directory) :relative)
528                           ;; Relative directory so relative to default.                           ;; Relative directory so relative to default.
529                           pathname-directory)                           pathname-directory)

Legend:
Removed from v.1.91  
changed lines
  Added in v.1.92

  ViewVC Help
Powered by ViewVC 1.1.5