From: Paul Eggert Date: Fri, 17 Sep 2010 21:23:24 +0000 (-0700) Subject: tar: switch to gnulib fdutimensat module X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=098ad10c71e87f8003227aa10ad8c88ae43dce12;p=chaz%2Ftar tar: switch to gnulib fdutimensat module * gnulib.modules: Add fdutimensat. * src/common.h (fd_utimensat): Remove decl. * src/extract.c (set_stat): Call fdutimensat, not fd_utimensat. * src/misc.c (set_file_atime): Likewise. (fd_utimensat): Remove. --- diff --git a/gnulib.modules b/gnulib.modules index c6ded15..957d065 100644 --- a/gnulib.modules +++ b/gnulib.modules @@ -13,6 +13,7 @@ error exclude exitfail fdopendir +fdutimensat fileblocks fnmatch-gnu fseeko diff --git a/src/common.h b/src/common.h index d0e3484..2bc1d71 100644 --- a/src/common.h +++ b/src/common.h @@ -612,8 +612,6 @@ bool maybe_backup_file (const char *file_name, bool this_is_the_archive); void undo_last_backup (void); int deref_stat (bool deref, char const *name, struct stat *buf); -int fd_utimensat (int fd, int parentfd, char const *file, - struct timespec const ts[2], int atflag); extern int chdir_current; int chdir_arg (char const *dir); diff --git a/src/extract.c b/src/extract.c index 46ee678..29967e4 100644 --- a/src/extract.c +++ b/src/extract.c @@ -324,7 +324,7 @@ set_stat (char const *file_name, ts[0].tv_nsec = UTIME_OMIT; ts[1] = st->mtime; - if (fd_utimensat (fd, AT_FDCWD, file_name, ts, atflag) == 0) + if (fdutimensat (fd, AT_FDCWD, file_name, ts, atflag) == 0) { if (incremental_option) check_time (file_name, ts[0]); diff --git a/src/misc.c b/src/misc.c index f1ebdd4..ca2921b 100644 --- a/src/misc.c +++ b/src/misc.c @@ -613,21 +613,6 @@ deref_stat (bool deref, char const *name, struct stat *buf) return deref ? stat (name, buf) : lstat (name, buf); } -/* Use futimens if possible, utimensat otherwise. */ -int -fd_utimensat (int fd, int parentfd, char const *file, - struct timespec const ts[2], int atflag) -{ - if (0 <= fd) - { - int result = futimens (fd, ts); - if (! (result < 0 && errno == ENOSYS)) - return result; - } - - return utimensat (parentfd, file, ts, atflag); -} - /* Set FD's (i.e., assuming the working directory is PARENTFD, FILE's) access time to ATIME. ATFLAG controls symbolic-link following, in the style of openat. */ @@ -638,7 +623,7 @@ set_file_atime (int fd, int parentfd, char const *file, struct timespec atime, struct timespec ts[2]; ts[0] = atime; ts[1].tv_nsec = UTIME_OMIT; - return fd_utimensat (fd, parentfd, file, ts, atflag); + return fdutimensat (fd, parentfd, file, ts, atflag); } /* A description of a working directory. */