Junio C Hamano:
Jeff King p...@peff.net writes:
On Tue, Jul 03, 2012 at 11:25:16AM +0700, Nguyen Thai Ngoc Duy wrote:
On Tue, Jul 3, 2012 at 10:45 AM, Jeff King p...@peff.net wrote:
On Tue, Jul 03, 2012 at 12:43:42AM +0200, Andreas Schwab wrote:
Jeff King p...@peff.net writes:
It's very odd for pread to report ENOENT (since it is always operating
on an already-opened file descriptor).
It doesn't, but gettext will clobber errno:
n = pread(pack_fd, inbuf, n, from);
if (n 0)
die_errno(_(cannot pread pack file));
There is nothing that saves errno. This isn't limited to i18n though,
any function call in the arguments may potentially clobber errno.
That's horribly lame of gettext. I don't expect arbitrary functions to
save errno, but when the entire purpose of a function is to be a
non-intrusive wrapper to massage messages to the user, it seems kind of
evil to overwrite errno. Isn't the whole point of calling it _ that
you don't want to or have to notice it?
Agreed.
Hmm. According to gettext(3):
ERRORS
errno is not modified.
And googling for gettext and errno reveals several bugfixes in GNU
gettext to make sure that gettext preserves errno. I wonder if there are
systems where that is not the case, though; I don't know what non-GNU
gettext implementations are in common use these days. I'd still be
curious to hear what platform the server is for this bug report.
Hrm, has this ever been resolved?
Thank you for asking.
My local git version is 1.7.5.4, the server version that I actually
ended up pushing the files to was however still some 1.6.x.
So it was a false alarm. Sorry about that.
As far as I can follow, there is no non-GNU gettext involved. Thanks
for digging that deep into the problem, but it was my fault, probably
not something about lost errno.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html