Skip to content

Commit add188b

Browse files
마누엘jeremyd2019
authored andcommitted
path-conversion: Introduce ability to switch off conversion.
When calling windows native apps from MSYS2, the runtime tries to convert commandline arguments by a specific set of rules. This idea was inherited from the MSys/MinGW project (which is now seemingly stale, yet must be credited with championing this useful feature, see MinGW wiki https://web.archive.org/web/20201112005258/http://www.mingw.org/wiki/Posix_path_conversion). If the user does not want that behavior on a big scale, e.g. inside a Bash script, with the changes introduced in this commit, the user can now set the the environment variable `MSYS_NO_PATHCONV` when calling native windows commands. This is a feature that has been introduced in Git for Windows via git-for-windows#11 and it predates support for the `MSYS2_ENV_CONV_EXCL` and `MSYS2_ARG_CONV_EXCL` environment variables in the MSYS2 runtime; Many users find the simplicity of `MSYS_NO_PATHCONV` appealing. So let's teach MSYS2 proper this simple trick that still allows using the sophisticated `MSYS2_*_CONV_EXCL` facilities but also offers a convenient catch-all "just don't convert anything" knob. Signed-off-by: 마누엘 <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
1 parent f312ab1 commit add188b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

winsup/cygwin/msys2_path_conv.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,16 @@ path_type find_path_start_and_type(const char** src, int recurse, const char* en
341341

342342
if (*it == '\0' || it == end) return NONE;
343343

344+
/*
345+
* Skip path mangling when environment indicates it.
346+
*/
347+
const char *no_pathconv = getenv ("MSYS_NO_PATHCONV");
348+
349+
if (no_pathconv) {
350+
*src = end;
351+
return NONE;
352+
}
353+
344354
/* Let's not convert ~/.file to ~C:\msys64\.file */
345355
if (*it == '~') {
346356
skip_p2w:

0 commit comments

Comments
 (0)