Re: [PATCH 2/3] mingw: replace MSVCRT's fstat() with a Win32-based implementation
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Oct 24, 2018, 02:20 UTC
- Message-ID
- <20181024022024.GE6119@genre.crustytoothpaste.net>
- In-Reply-To
- <f2ce9bdc01892b514f75c6c25c3393765593b1ca.1540290197.git.gitgitgadget@gmail.com>
On Tue, Oct 23, 2018 at 03:23:21AM -0700, Karsten Blees via GitGitGadget wrote:
Show 13 quoted lines
> - if (!get_file_info_by_handle(fh, buf))
> + case FILE_TYPE_CHAR:
> + case FILE_TYPE_PIPE:
> + /* initialize stat fields */
> + memset(buf, 0, sizeof(*buf));
> + buf->st_nlink = 1;
> +
> + if (type == FILE_TYPE_CHAR) {
> + buf->st_mode = _S_IFCHR;
> + } else {
> + buf->st_mode = _S_IFIFO;
> + if (PeekNamedPipe(fh, NULL, 0, NULL, &avail, NULL))
> + buf->st_size = avail;These lines strike me as a bit odd. As far as I'm aware, Unix systems don't return anything useful in this field when calling fstat on a pipe. Is there a reason we fill this in on Windows? If so, could the commit message explain what that is?
-- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204