diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2015-09-01 16:47:29 +0200 |
---|---|---|
committer | Christian Neukirchen <chneukirchen@gmail.com> | 2015-09-01 16:47:29 +0200 |
commit | 4de1ce83e1d45bb3206770895dc84b26aaf76f18 (patch) | |
tree | f6ae800130c770b281bd3bc85ad2c3a3906a1e08 | |
parent | 58c2bd8df65d3704b2a6cdde0bf347d58036685f (diff) | |
download | redo-c-4de1ce83e1d45bb3206770895dc84b26aaf76f18.tar.gz redo-c-4de1ce83e1d45bb3206770895dc84b26aaf76f18.tar.xz redo-c-4de1ce83e1d45bb3206770895dc84b26aaf76f18.zip |
Skip over nonexisting files in record_deps
-rw-r--r-- | redo.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/redo.c b/redo.c index 08dbbb4..5dc8064 100644 --- a/redo.c +++ b/redo.c @@ -700,14 +700,18 @@ static void record_deps(int targetc, char *targetv[]) { int targeti = 0; + int fd; dep_fd = envfd("REDO_DEP_FD"); + if (dep_fd < 0) + return; for (targeti = 0; targeti < targetc; targeti++) { - int fd = open(targetv[targeti], O_RDONLY); - char *hash = hashfile(fd); + fd = open(targetv[targeti], O_RDONLY); + if (fd < 0) + continue; // here, we write out the unmodified target name! - dprintf(dep_fd, "=%s!%s\n", hash, targetv[targeti]); + dprintf(dep_fd, "=%s!%s\n", hashfile(fd), targetv[targeti]); close(fd); } } |