Opened 3 years ago

Last modified 7 months ago

#371 new defect

Problems with CL:WILD-PATHNAME-P

Reported by: mevenson Owned by:
Priority: major Milestone: 1.5.0
Component: interpreter Version: 1.4.0-dev
Keywords: ansi-compliance Cc:
Parent Tickets:

Description

Pascal notes on armedbear-devel@ :

Why do we have?

   (wild-pathname-p  #P"*-blah") -> T
   (wild-pathname-p  #P"*-blah" :name) -> NIL

This is inconsistent (and non-conforming). 
Actually wild-pathname-p returns NIL for all fields:

(mapcar (lambda (field) (wild-pathname-p  #P"*-blah" field))
       (list :host :device :directory :name :type :version))'
--> (NIL NIL NIL NIL NIL NIL)

If that was true, then (wild-pathname-p #P"*-blah" nil) should return
NIL, not true.


   If field-key is not supplied or nil, wild-pathname-p returns true if
   pathname has any wildcard components, nil if pathname has none. If
   field-key is non-nil, wild-pathname-p returns true if the indicated
   component of pathname is a wildcard, nil if the component is not a
   wildcard.

So we should have:

  (defun wild-pathname-p (path &optional field-key)
    (if (null field-key)
        (some (lambda (field-key)
                (wild-pathname-p path field-key))
              '(:host :device :directory :name :type :version))
        …))

Subtickets (add)

Change History (2)

comment:1 Changed 3 years ago by mevenson

The implementation of WILD-PATHNAME-P turns out to be in Java at <http://abcl.org/trac/browser/trunk/abcl/src/org/armedbear/lisp/Pathname.java#L1889>

comment:2 Changed 7 months ago by mevenson

  • Milestone changed from 1.4.0 to 1.5.0

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.