#452: Pathname functions do the wrong thing when faced with actual filename with embedded asterisk ----------------------+---------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: Component: (A)MOP | Version: Keywords: | Parent Tickets: ----------------------+---------------------- From https://github.com/armedbear/abcl/issues/63
In a shell:
{{{ touch /tmp/*
(probe-file "/tmp/") ; Evaluation aborted on #<FILE-ERROR {7DF4B809}>. CL-USER> (probe-file "/tmp/") ; Evaluation aborted on #<FILE-ERROR {4D5E9779}>. CL-USER> (probe-file "/tmp/%2A") nil CL-USER> (probe-file "file:///tmp/%2A") ; Evaluation aborted on #<FILE-ERROR {7DF4B809}>. }}}
The error is: Bad place for a wild pathname.
I had a quick look to see how this could be repaired, but wasn't sure what the right approach is. This stackoverflow answer suggests using "" as a quote, which is probably the best solution, and would be compatible with what Clozure CL, SBCL and LispWorks do. I also think the percent escaped character should be made to work.
The specific screw case I had was that there was an accidentally created file with a "*" in a directory that was being scanned for ASDF's system registry, which crapped out because the directory function returned the "*" pathname, and subsequently did a probe on the file.
-- Ticket URL: http://abcl.org/trac/ticket/452 armedbear http://abcl.org armedbear