On Mon, Sep 25, 2017 at 08:09:13PM -0400, Jeff King wrote: > On Mon, Sep 25, 2017 at 05:06:58PM -0700, Stefan Beller wrote: >> After reading this discussion from the sideline, maybe >> >> ENODATA No message is available on the STREAM head read >> queue (POSIX.1) >> >> is not too bad after all. Or >> >> ESPIPE Invalid seek (POSIX.1) >> >> Technically we do not seek, but one could imagine we'd seek there >> to read? > > ENODATA is not too bad. On my glibc system it yields "No data available" > from strerror(), which is at least comprehensible. > > We're still left with the question of whether it is defined everywhere > (and what to fallback to when it isn't). So, #ifndef EUNDERFLOW #ifdef ENODATA #define ENODATA EUNDERFLOW #else #define ENODATA ESPIPE #endif #endif ? Windows has ESPIPE, and I'm not sure what other non-POSIX platform we need to worry about. Thanks, Jonathan