summaryrefslogtreecommitdiff
path: root/coreutils/shred.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-04-07 21:10:00 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-04-07 21:10:00 +0200
commit0f7f1ae094f4124303aca58f4efa69da4e2831a6 (patch)
tree8de39334ea5dacd81a400db25b170eb2590a98f7 /coreutils/shred.c
parent2f59bf39e2ea6fb4c3ed3e74ea113a521e1a3558 (diff)
downloadbusybox-0f7f1ae094f4124303aca58f4efa69da4e2831a6.tar.gz
shred: smaller code
function old new delta shred_main 361 356 -5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/shred.c')
-rw-r--r--coreutils/shred.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/coreutils/shred.c b/coreutils/shred.c
index 9cd39b79c..b3c009539 100644
--- a/coreutils/shred.c
+++ b/coreutils/shred.c
@@ -66,16 +66,21 @@ int shred_main(int argc UNUSED_PARAM, char **argv)
for (;;) {
struct stat sb;
+ const char *fname;
unsigned i;
- int fd = -1;
+ int fd;
+ fname = *argv++;
+ if (!fname)
+ break;
+ fd = -1;
if (opt & OPT_f) {
- fd = open(*argv, O_WRONLY);
+ fd = open(fname, O_WRONLY);
if (fd < 0)
- chmod(*argv, 0666);
+ chmod(fname, 0666);
}
if (fd < 0)
- fd = xopen(*argv, O_WRONLY);
+ fd = xopen(fname, O_WRONLY);
if (fstat(fd, &sb) == 0 && sb.st_size > 0) {
off_t size = sb.st_size;
@@ -91,13 +96,10 @@ int shred_main(int argc UNUSED_PARAM, char **argv)
}
if (opt & OPT_u) {
ftruncate(fd, 0);
- xunlink(*argv);
+ xunlink(fname);
}
xclose(fd);
}
- argv++;
- if (!*argv)
- break;
}
return EXIT_SUCCESS;