summaryrefslogtreecommitdiff
path: root/lib/stat-time.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-06-16 18:22:50 +0200
committerAndy Wingo <wingo@pobox.com>2011-06-16 19:47:25 +0200
commit3d458a81c64e4696157b23c7c4c4c150aa4a93b8 (patch)
tree1478fb3a9faaf203f517a8776f54d00884efdef6 /lib/stat-time.h
parent0b77014f0c7d53b8bdbc7059c92f526560e1cacd (diff)
downloadguile-3d458a81c64e4696157b23c7c4c4c150aa4a93b8.tar.gz
gnulib update
Added pipe2 and open modules, to get O_CLOEXEC. * libguile/Makefile.am (guile_filter_doc_snarfage$(EXEEXT)): Add gnulib here, in the native build case, for rpl_fflush if needed. foo
Diffstat (limited to 'lib/stat-time.h')
-rw-r--r--lib/stat-time.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/stat-time.h b/lib/stat-time.h
index 47a288a7e..2d0191096 100644
--- a/lib/stat-time.h
+++ b/lib/stat-time.h
@@ -142,7 +142,7 @@ get_stat_mtime (struct stat const *st)
}
/* Return *ST's birth time, if available; otherwise return a value
- with negative tv_nsec. */
+ with tv_sec and tv_nsec both equal to -1. */
static inline struct timespec
get_stat_birthtime (struct stat const *st)
{
@@ -161,7 +161,7 @@ get_stat_birthtime (struct stat const *st)
t.tv_sec = st->st_ctime;
t.tv_nsec = 0;
#else
- /* Birth time is not supported. Set tv_sec to avoid undefined behavior. */
+ /* Birth time is not supported. */
t.tv_sec = -1;
t.tv_nsec = -1;
/* Avoid a "parameter unused" warning. */
@@ -175,10 +175,12 @@ get_stat_birthtime (struct stat const *st)
using zero. Attempt to work around this problem. Alas, this can
report failure even for valid time stamps. Also, NetBSD
sometimes returns junk in the birth time fields; work around this
- bug if it is detected. There's no need to detect negative
- tv_nsec junk as negative tv_nsec already indicates an error. */
- if (t.tv_sec == 0 || 1000000000 <= t.tv_nsec)
- t.tv_nsec = -1;
+ bug if it is detected. */
+ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
+ {
+ t.tv_sec = -1;
+ t.tv_nsec = -1;
+ }
#endif
return t;