DIRECTORY appears not to match filenames lacking extensions against wild pathnames having :WILD for the type:
(progn
(assert (nth-value 1 (ensure-directories-exist "/tmp/test/"))) ;fresh directory
(close (open "/tmp/test/file" :direction :output))
(close (open "/tmp/test/file.txt" :direction :output))
(directory (make-pathname :name :wild :type :wild :version :wild
:defaults #P"/tmp/test/")))
(#P"/private/tmp/test/file.txt")
I expected to see an entry for /tmp/test/file as well, for two reasons:
19.2.2.2.2 says "If :WILD is the value of a pathname component, that component is
considered to be a wildcard, which matches anything", and I interpret NIL to be one kind of anything.
PATHNAME-MATCH-P does match the pathname with NIL for the type, and PATHNAME-MATCH-P "should be consistent with DIRECTORY".
(pathname-match-p "/tmp/test/file"
(make-pathname :name :wild :type :wild :version :wild
:defaults #P"/tmp/test/"))
T
Environment and compilation information:
$ uname -a
Darwin m5.localdomain 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
$ clisp
i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
[1]> (software-version)
"GNU C 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)"
[2]> (software-type)
"/usr/bin/clang -m64 -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.8 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -O -falign-functions=4 -DUNIX_BINARY_DISTRIB -DENABLE_UNICODE -DDYNAMIC_MODULES -DNO_GETTEXT -I. -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.8 -L/usr/local/opt/readline/lib -L/usr/local/lib -lreadline -lncurses -liconv -L/usr/local/lib -lsigsegv -R/usr/local/lib libgnu_cl.a -L/usr/X11/lib -R/usr/X11/lib
SAFETY=0 HEAPCODES STANDARD_HEAPCODES WIDE_HARD GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY
libsigsegv 2.10
libiconv 1.11
libreadline 6.2"
[3]> (machine-type)
"X86_64"
[4]> *features*
(:REGEXP :SYSCALLS :I18N :LOOP :COMPILER :CLOS :MOP :CLISP :ANSI-CL :COMMON-LISP
:LISP=CL :INTERPRETER :SOCKETS :GENERIC-STREAMS :LOGICAL-PATHNAMES :SCREEN
:UNICODE :BASE-CHAR=CHARACTER :WORD-SIZE=64 :UNIX :MACOS)
[5]>
Bye.
test case: