On 6/30/2022 11:45 AM, Ken Brown wrote:
On 6/27/2022 8:44 AM, Takashi Yano wrote:
- With this patch, the empty path (empty element in PATH or PATH is
   absent) is treated as the current directory as Linux does.
Addresses: https://cygwin.com/pipermail/cygwin/2022-June/251730.html

It might be a good idea to include a comment in the code and the commit message that this feature is being added for Linux compatibility but that it is deprecated.  According to https://man7.org/linux/man-pages/man7/environ.7.html,

               As a legacy feature, a zero-length prefix (specified as
               two adjacent colons, or an initial or terminating colon)
               is interpreted to mean the current working directory.
               However, use of this feature is deprecated, and POSIX
               notes that a conforming application shall use an explicit
               pathname (e.g., .)  to specify the current working
               directory.

Alternatively, maybe this is a case where we should prefer POSIX compliance to Linux compatibility.  Corinna, WDYT?

I withdraw my suggestion. There's already a comment in the code saying, "An empty path or '.' means the current directory", so it's clear that the intention was to support that feature, and the code was simply buggy.

I've now read through the patch, and it looks good to me. This was pretty tricky to get right.

Ken

Reply via email to