$ PATH benzeri bir listede bir dizinden kaçmak


1

Git kütüphanesi LibGit2 için bir ambalaj geliştiriyorum.
Ve bir sorunla çıktım:

Birçok GIT işlevi , yol listelerini kabul eder ; yani,
bir belirteçle ayrılmış,
LibGit2'nin bana sağladığı bir dizi yoldan oluşan bir dize . Linux'umda bu bir kolondur ( :).

Bana sorduğumda sorun ortaya çıkıyor:
ya yol bu belirteci içeriyorsa?

Bir şekilde kaçabilir mi? \:ya da öylesine?
Windows'ta kullanıma hazır mı?

Bunun içeren bir dizin olması yaygın değil biliyorum :onun içinde
isim, ama bir sarmalayıcı bu durum için hazırlıklı olmalısınız.

Yanıtlar:


1

Libgit2'yi kontrol etmedim , fakat ne git, ne de $PATHGlibc execvpe()fonksiyonu ve çeşitli mermiler ( tire , bash ) gibi çeşitli kullanıcılar , herhangi bir kaçış biçimini desteklemez - bir dizin adı a içeriyorsa :, yolun bir parçası olarak kullanılamaz. ile ilgili çevre değişkenleri.

Windows'ta yol ayırıcı ;- PATH_SEPdeğeri bulmak için kullanabilmeniz veya benzeri bir sabit kullanmanız gerekir - ve yine, kaçış hiçbir yerde desteklenmez.

Kullanıcı size böyle bir yol verirse /usr/foo:bar, iki dizine bölünmesini bekliyor olabilir , o yüzden bunu yapın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.