Issue 15 (fixed)

Summary

Cygwin rewrites some env vars like PATH.

Description

Cygwin translates the contents of some environment variables like PATH and TEMP. Pathnames are translated to POSIX syntax, and PATH is converted from semicolon to colon separation. The variables are passed in this converted state to spawned processes. Windows programs will not understand the translated variables.

Further, another serious issue arises in Cygnal due to the interaction between the existing changes and the PATH translation. Because drive letters are no longer expanded to /cygdrive syntax, a path that is originally C:\foo;C:\bar becomes C:/foo:C:/bar. Cygnal's code>execvp function treats the search path as colon-separated, and so the drive letters are not properly taken into account. Searching appears to work if all the search places are on the C drive, and the current drive is C. If the current drive is not C, running programs via exec or spawn doesn't work, unless absolute paths are used.

Cygnal must leave the environment unmodified, and treat PATH as semicolon-separated.

Target Release: 2.8.99.98

Git Commits

5bb41d641c4658b44e9a8a7047498a028cdc8bb1