diff --git a/src/cp.c b/src/cp.c index 8dd3a44..549974c 100644 --- a/src/cp.c +++ b/src/cp.c @@ -144,8 +144,6 @@ static int cptree(const char *src, const char *dst) { free(src_path); free(dst_path); - if (ret) - break; } closedir(dir); diff --git a/src/rm.c b/src/rm.c index f362a0c..d700145 100644 --- a/src/rm.c +++ b/src/rm.c @@ -12,10 +12,11 @@ static char *f_flag = "rm"; static char r_flag; +static char i_flag; static char v_flag; static int verbose(const char *path) { - if (v_flag) { + if (i_flag) { fprintf(stderr, "rm: remove %s? [y/n] ", path); fflush(stderr); @@ -30,6 +31,9 @@ static int verbose(const char *path) { return key; } + else if (v_flag && f_flag) + fprintf(stderr, "rm: removing %s\n", path); + return 1; } @@ -62,7 +66,7 @@ static int rmd(const char *path, void *p) { int main(int argc, char **argv) { int opt; - while ((opt = getopt(argc, argv, "frRi")) != -1) { + while ((opt = getopt(argc, argv, "friv")) != -1) { switch (opt) { case 'f': f_flag = NULL; @@ -73,11 +77,15 @@ int main(int argc, char **argv) { break; case 'i': + i_flag = 1; + break; + + case 'v': v_flag = 1; break; default: - puts("rm [rif] [file1 file2...]\n\t-f Never prompt\n\t-r Recursive\n\t-i Print prompt before remove"); + puts("rm [friv] [file1 file2/dir...]\n\t-f Never prompt\n\t-r Recursive\n\t-i Print prompt before remove\n\t-v Verbose"); return 0; } }