lisp - CCL 突破文件/目录名称中的非法字符?

标签 lisp common-lisp ccl

考虑以下几点:

(directory (make-pathname :directory '(:absolute "Users" "gazonk" "foo" "*")
                          :name :wild))

这会中断,因为其中一个目录包含字符“;”。

如果删除上面的“*”,代码将返回一个目录列表,其中“;”被逃脱了。

似乎我不能让它继续往下走,因为有些目录包含“;”

有解决办法吗?

感谢任何和所有的表扬。谢谢。

最佳答案

确认。我在 Mac OS X 10.8 上看到与 ccl 1.9(64 位或 32 位)相同的行为。

我使用 mkdir 'a;b' 创建了一个空子目录,我看到了:

(make-pathname :directory '(:absolute "Users" "gazonk" "foo" "*") :name :wild))
> Error: Illegal directory string "/Users/gazonk/foo/a;b/"
> While executing: CCL::%DIRECTORY-STRING-LIST, in process listener(1).

更新:

根据 Rainer 的评论,这听起来像是一个 ccl 错误。

建议在#ccl irc channel 上提问或提交错误报告 here (需要注册)。

关于lisp - CCL 突破文件/目录名称中的非法字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640466/

相关文章:

macros - lisp 宏乘法在看到 0 时停止计算

用于 mapcar 的 lambda 中的 Lisp 操作顺序

lisp - 函数名在 Lisp 中作为字符串?

emacs - 如何编辑 quicklisp 的系统定义文件

configuration - 如何使用 Clozure Common Lisp 创建应用程序(在 Microsoft Windows 上)

json - ST-JSON JSO 对象的解构宏

lisp - 如何从流中读取以空格分隔的单词?

emacs - 为什么不让*默认让?

common-lisp - 关键字命名空间污染

CCL无法正常运行shell命令?