LINUX.ORG.RU

sbcl: что-то не так с символом '[' в именовании файлов

 ,


0

2

Это баг такой?

CL-USER> (format nil "~A ~A"
                 (lisp-implementation-type)
                 (lisp-implementation-version))
"SBCL 1.4.10"
CL-USER> (directory "*.*")
NIL
CL-USER> (uiop/run-program:run-program '("touch" "q[r].file"))
NIL
NIL
0
CL-USER> (uiop/run-program:run-program '("ls")
                                       :output :string)
"q[r].file
"
NIL
0
CL-USER> (uiop/run-program:run-program '("ls" "q[r].file")
                                       :output :string)
"q[r].file
"
NIL
0
CL-USER> (probe-file #P"q[r].file")
; Evaluation aborted on #<SB-INT:SIMPLE-FILE-ERROR "~@<~?~@[: ~2I~_~A~]~:>" {1003C5C4C3}>.
CL-USER> (directory "*.*")
(#P"/home/redarch13/Desktop/bug03/q\\[r].file")
CL-USER> (defparameter *p* (first *))
*P*
CL-USER> *p*
#P"/home/redarch13/Desktop/bug03/q\\[r].file"
CL-USER> (probe-file *p*)
#P"/home/redarch13/Desktop/bug03/q\\[r].file"
CL-USER> (uiop/run-program:run-program (list "ls" (namestring *p*))
                                       :output :string)
; Evaluation aborted on #<UIOP/RUN-PROGRAM:SUBPROCESS-ERROR {1004640263}>.
CL-USER> (delete-file *p*)
T
CL-USER> (probe-file *p*)
NIL
CL-USER> 
★★★★★

Это фича. В CL есть такое понятие, как wild pathname --- маска, под которую может попадать множество файлов. См. слово wild в словаре и функцию wild-pathname-p

Jini ★★ ()