[Openmcl-devel] Fwd: [Bug 636506] Re: (truename #P"ccl:") fails when *default-pathname-defaults* is not empty

Ron Garret ron at flownet.com
Sun Sep 12 22:39:59 PDT 2010


On Sep 12, 2010, at 7:21 PM, Gary Byers wrote:

> 
> 
> On Sun, 12 Sep 2010, Ron Garret wrote:
>>      From: Faré <636506 at bugs.launchpad.net>
>> Date: September 12, 2010 12:54:41 PM PDT
>> To: ron at flownet.com
>> Subject: [Bug 636506] Re: (truename #P"ccl:") fails when *default-pathname-defaults* is not empty
>> Reply-To: Bug 636506 <636506 at bugs.launchpad.net>
>> Ouch. Committed 2.129 as a fix. I hope I won't be the one to release
>> 2.009, though. I don't know what CCL does, but it's probably a CCL bug,
>> too.
>> 
> 
> I think that the bug is that (PATHNAME-DIRECTORY "ccl:") returns NIL
> (rather than (:ABSOLUTE)), and this in turn leads to the unfortunate
> MERGE-PATHNAMES result.  The bug's in the namestring parsing code,
> so another workaround would be
> 
> (truename (make-pathname :defaults #p"ccl:"))
> 

I think this may be the problem:

(defun pathname-directory-sstr (sstr start end host)
  (if (and (eq host :unspecific)
           (> end start)
           (eql (schar sstr start) #\~))
    (setq sstr (tilde-expand (subseq sstr start end))
          start 0
          end (length sstr)))
  (let ((pos (%path-mem-last (if (eq host :unspecific) "/" ";") sstr start end)))
    (if pos
      (values 
       (%directory-string-list sstr start (setq pos (%i+ pos 1)) host)
       pos)
      (values (and (neq host :unspecific)
=======>	  (neq start end)
		   '(:absolute))
	      start))))

Commenting out the indicated line seems to fix the problem, though I have not tested it thoroughly.

rg




More information about the Openmcl-devel mailing list