> DPATH and LPATH are blank-separated lists -- only the first directory
> was changed to Windows format

MSYS2 converts POSIX path to Windows/DOS one.  Unescaped space
character is not a part of a POSIX path, it's not a path list separator
either, therefore conversion of the `DPATH` and `LPATH` ends on space,
resulting in what you see (everything after the space is copied as is).

> MANPATH and ORIGINAL_PATH are colon-separated lists -- all directories
> correctly changed to Windows format

These are variables set in the /etc/profile, which define correctly
defined path list, where paths are delimited by colons.  Therefore,
MSYS2 runtime is able to convert the lists (each path of the lists) from
POSIX format to DOS one.

> IPATH is a semicolon-separated list -- not changed, all directories
> left in MSYS format

This is incorrect path list, having DOS-like delimiter (semicolon), but
POSIX path components.  Because for MSYS2 runtime this is not a valid
path list, and it does nothing with that string.

> PATH is a colon-separated list -- not changed, all directories left in
> MSYS format

I believe, the `PATH` environment variable is a special case for the
runtime.  There's the `env_PATH_to_posix` function in Cygwin part of
runtime, which avoids conversion of the paths within the variable.  But
I need to view the source code more closely.

In any case, you use UNIX-targeting tools under CMD:

> C:\msys64\home\rhmcc>env | sort | grep PATH

But if you'll call there DOS builtin `set`, you will see your `PATH` in
DOS style.  Therefore, I believe your native Windows programs will be
found by the system in the `PATH` if you'll try to run them without
specifying full path.


_______________________________________________
Msys2-users mailing list
Msys2-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/msys2-users

Reply via email to