1

Я разрабатываю оболочку для LibGit2, библиотеки Git.
И у меня возникает проблема:

Многие функции GIT принимают списки путей, то есть строку
состоит из ряда путей, разделенных токеном,
что LibGit2 делает доступным для меня. В моем Linux, это двоеточие :

Проблема появляется, когда я спрашиваю меня:
что если путь содержит этот токен?

Можно ли как-нибудь избежать этого? \: или так?
Будет ли он поддерживаться в Windows?

Я знаю, что нередко иметь каталог, содержащий : в его
имя, но как обертка я должен быть готов к этому делу.

1 ответ1

1

Я не проверял libgit2, но ни git, ни различные пользователи $PATH - такие как функция Glibc execvpe() и различные оболочки (dash, bash) - не поддерживают любую форму экранирования - если имя каталога содержит : оно просто не может использоваться как часть переменных окружения, связанных с путями.

В Windows разделитель пути ; - вы должны иметь возможность использовать PATH_SEP или аналогичную константу, чтобы найти значение - и опять же, экранирование нигде не поддерживается.

Если пользователь указывает путь типа /usr/foo:bar , то он может ожидать, что он будет разделен на две директории, поэтому просто сделайте это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .