Junio C Hamano: > Jeff King <peff@xxxxxxxx> 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 <peff@xxxxxxxx> wrote: >>> > On Tue, Jul 03, 2012 at 12:43:42AM +0200, Andreas Schwab wrote: >>> > >>> >> Jeff King <peff@xxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html