mirror of
https://github.com/mirror/make.git
synced 2024-12-27 13:20:34 +08:00
Fix bug #2846.
This commit is contained in:
parent
955899ef77
commit
276d0c7c64
@ -1,3 +1,11 @@
|
|||||||
|
2003-03-24 Paul D. Smith <psmith@gnu.org>
|
||||||
|
|
||||||
|
* remake.c (notice_finished_file):
|
||||||
|
|
||||||
|
* make.h (ENULLLOOP): Set errno = 0 before invoking the command;
|
||||||
|
some calls (like readdir()) return NULL in valid situations
|
||||||
|
without resetting errno. Fixes bug #2846.
|
||||||
|
|
||||||
2003-02-25 Paul D. Smith <psmith@gnu.org>
|
2003-02-25 Paul D. Smith <psmith@gnu.org>
|
||||||
|
|
||||||
Port to OS/2 (__EMX__) by Andreas Buening <andreas.buening@nexgo.de>.
|
Port to OS/2 (__EMX__) by Andreas Buening <andreas.buening@nexgo.de>.
|
||||||
|
11
make.h
11
make.h
@ -581,4 +581,13 @@ extern int handling_fatal_signal;
|
|||||||
|
|
||||||
#define EINTRLOOP(_v,_c) while (((_v)=_c)==-1 && errno==EINTR)
|
#define EINTRLOOP(_v,_c) while (((_v)=_c)==-1 && errno==EINTR)
|
||||||
|
|
||||||
#define ENULLLOOP(_v,_c) while (((_v)=_c)==0 && errno==EINTR)
|
/* While system calls that return integers are pretty consistent about
|
||||||
|
returning -1 on failure and setting errno in that case, functions that
|
||||||
|
return pointers are not always so well behaved. Sometimes they return
|
||||||
|
NULL for expected behavior: one good example is readdir() which returns
|
||||||
|
NULL at the end of the directory--and _doesn't_ reset errno. So, we have
|
||||||
|
to do it ourselves here. */
|
||||||
|
|
||||||
|
#define ENULLLOOP(_v,_c) do{ errno = 0; \
|
||||||
|
while (((_v)=_c)==0 && errno==EINTR); }while(0)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user