shred: smaller code

function                                             old     new   delta
shred_main                                           361     356      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-04-07 21:10:00 +02:00
parent 2f59bf39e2
commit 0f7f1ae094
1 changed files with 10 additions and 8 deletions

View File

@ -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;