/* * This program can either change modification time of the given * file(s) or just print it. The program does not change atime or * ctime (their values are explicitly preserved). * * The mtime can be changed to an absolute value: * * test-tool chmtime =<seconds> file... * * Relative to the current time as returned by time(3): * * test-tool chmtime =+<seconds> (or =-<seconds>) file... * * Or relative to the current mtime of the file: * * test-tool chmtime <seconds> file... * test-tool chmtime +<seconds> (or -<seconds>) file... * * Examples: * * To print the mtime and the file name use --verbose and set * the file mtime offset to 0: * * test-tool chmtime -v +0 file * * To print only the mtime use --get: * * test-tool chmtime --get file * * To set the mtime to current time: * * test-tool chmtime =+0 file * * To set the file mtime offset to +1 and print the new value: * * test-tool chmtime --get +1 file * */ #include "test-tool.h" #include "git-compat-util.h" #include <utime.h> static const char usage_str[] = …; static int timespec_arg(const char *arg, long int *set_time, int *set_eq) { … } int cmd__chmtime(int argc, const char **argv) { … }