diff --git a/src/shared/metadata.c b/src/shared/metadata.c index d4a251e..80d50cb 100644 --- a/src/shared/metadata.c +++ b/src/shared/metadata.c @@ -43,6 +43,8 @@ bool metadata_mtime_matches(time_t left_sec, long left_nsec, time_t right_sec, l seconds--; nanoseconds += 1000000000LL; } + if (modify_window == 0) + return left == right; return seconds < modify_window || (seconds == modify_window && nanoseconds == 0); } diff --git a/tests/test_metadata.c b/tests/test_metadata.c index cf323f7..424d499 100644 --- a/tests/test_metadata.c +++ b/tests/test_metadata.c @@ -131,7 +131,7 @@ static void test_metadata_mtime_window() { EXPECT_FALSE(metadata_mtime_matches(100, 100000000, 102, 900000000, 2)); EXPECT_TRUE(metadata_mtime_matches(100, 900000000, 102, 900000000, 2)); EXPECT_FALSE(metadata_mtime_matches(100, 900000000, 101, 100000001, 0)); - EXPECT_FALSE(metadata_mtime_matches(100, 100000000, 100, 100000001, 0)); + EXPECT_TRUE(metadata_mtime_matches(100, 100000000, 100, 100000001, 0)); EXPECT_TRUE(metadata_mtime_matches(100, 100000000, 100, 100000000, 0)); }