我正在开发 Git 库 LibGit2 的包装器。
但我遇到了一个问题:
许多 GIT 函数接受路径列表
,即由 LibGit2 向我提供的
一系列由标记分隔的路径组成的字符串。在我的 Linux 中,它是一个冒号 ( )。:
当我问我时,问题出现了:
如果路径包含这个标记怎么办?
能不能通过某种方式将其转义?\:
或者类似方法?
Windows 会立即支持它吗?
:
我知道以他的名字命名的目录并不常见
,但作为包装者,我必须为这种情况做好准备。
答案1
我还没检查libgit2,但都不是git也不是各种$PATH
用户 – 例如 Glibcexecvpe()
函数和各种 shell(短跑,狂欢) – 支持任何形式的转义 – 如果目录名称包含:
,则它不能用作路径相关环境变量的一部分。
在 Windows 上,路径分隔符是;
– 您应该能够使用PATH_SEP
或类似的常量来查找值 – 并且再次,任何地方都不支持转义。
如果用户给你一个像这样的路径/usr/foo:bar
,那么他们可能会期待它被分成两个目录,所以就这么做吧。