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