diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2021-07-21 17:36:02 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2021-07-21 17:36:02 +0000 |
commit | 403149d7de4dbe4cc4b1fd9cb3a164e51dbccc15 (patch) | |
tree | 3d17aedc0c1da86ccb20db16a8be28bf4ac97029 /sys/src/cmd/bzip2 | |
parent | 28057f67a04fc9e666cdb698d811c9d26c94f28c (diff) |
gzip, bzip2: add -n flag to suppress modification timestamp
Diffstat (limited to 'sys/src/cmd/bzip2')
-rw-r--r-- | sys/src/cmd/bzip2/bzip2.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/src/cmd/bzip2/bzip2.c b/sys/src/cmd/bzip2/bzip2.c index 17c2d06da..72630f04f 100644 --- a/sys/src/cmd/bzip2/bzip2.c +++ b/sys/src/cmd/bzip2/bzip2.c @@ -3,7 +3,7 @@ #include <bio.h> #include "bzlib.h" -static int bzipf(char*, int); +static int bzipf(char*, int, int); static int bzip(char*, long, int, Biobuf*); static Biobuf bout; @@ -15,7 +15,7 @@ static int verbose; static void usage(void) { - fprint(2, "usage: bzip2 [-vcD] [-1-9] [file ...]\n"); + fprint(2, "usage: bzip2 [-vcnD] [-1-9] [file ...]\n"); exits("usage"); } @@ -23,9 +23,11 @@ void main(int argc, char **argv) { int i, ok, stdout; + long mtime; level = 6; stdout = 0; + mtime = time(nil); ARGBEGIN{ case 'D': debug++; @@ -36,6 +38,9 @@ main(int argc, char **argv) case 'c': stdout++; break; + case 'n': + mtime = 0; + break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': level = ARGC() - '0'; @@ -47,18 +52,18 @@ main(int argc, char **argv) if(argc == 0){ Binit(&bout, 1, OWRITE); - ok = bzip(nil, time(0), 0, &bout); + ok = bzip(nil, mtime, 0, &bout); Bterm(&bout); }else{ ok = 1; for(i = 0; i < argc; i++) - ok &= bzipf(argv[i], stdout); + ok &= bzipf(argv[i], !mtime, stdout); } exits(ok ? nil: "errors"); } static int -bzipf(char *file, int stdout) +bzipf(char *file, int nomtime, int stdout) { Dir *dir; char ofile[128], *f, *s; @@ -110,7 +115,7 @@ bzipf(char *file, int stdout) fprint(2, "compressing %s to %s\n", file, ofile); Binit(&bout, ofd, OWRITE); - ok = bzip(file, dir->mtime, ifd, &bout); + ok = bzip(file, nomtime ? 0 : dir->mtime, ifd, &bout); if(!ok || Bflush(&bout) < 0){ fprint(2, "bzip2: error writing %s: %r\n", ofile); if(!stdout) |