break;
}
if (strcmp(key, "time") == 0) {
+ time_t m;
+ long ns;
+
*parsed_kws |= MTREE_HAS_MTIME;
- archive_entry_set_mtime(entry, mtree_atol10(&val), 0);
+ m = (time_t)mtree_atol10(&val);
+ if (*val == '.') {
+ ++val;
+ ns = (long)mtree_atol10(&val);
+ } else
+ ns = 0;
+ archive_entry_set_mtime(entry, m, ns);
break;
}
if (strcmp(key, "type") == 0) {
mtree_quote(mtree, name);
}
if ((mtree->keys & F_TIME) != 0)
- archive_string_sprintf(&mtree->buf, " time=%jd",
- (intmax_t)archive_entry_mtime(entry));
+ archive_string_sprintf(&mtree->buf, " time=%jd.%jd",
+ (intmax_t)archive_entry_mtime(entry),
+ (intmax_t)archive_entry_mtime_nsec(entry));
if ((mtree->keys & F_MODE) != 0)
archive_string_sprintf(&mtree->buf, " mode=%o",
archive_entry_mode(entry) & 07777);