Ich habe nicht geprüft libgit2, aber weder git noch verschiedene $PATH
Benutzer - wie die Glibc - execvpe()
Funktion und verschiedene Schalen ( Bindestrich, bash ) - unterstützen jede Form der Flucht - wenn ein Verzeichnisname ein enthält :
, kann sie einfach nicht als Teil des Pfades verwendet werden, Umgebungsvariablen.
Unter Windows lautet das Pfadtrennzeichen ;
- Sie sollten in der Lage sein, PATH_SEP
den Wert mithilfe einer ähnlichen Konstante zu ermitteln - und erneut wird das Escaping nirgendwo unterstützt.
Wenn der Benutzer einen solchen Pfad /usr/foo:bar
angibt, erwarten Sie möglicherweise, dass der Pfad in zwei Verzeichnisse aufgeteilt wird.