diff options
Diffstat (limited to 'toys/posix')
-rw-r--r-- | toys/posix/cp.c | 8 | ||||
-rw-r--r-- | toys/posix/find.c | 6 | ||||
-rw-r--r-- | toys/posix/rm.c | 10 |
3 files changed, 12 insertions, 12 deletions
diff --git a/toys/posix/cp.c b/toys/posix/cp.c index 5a55f40b..2b032fe6 100644 --- a/toys/posix/cp.c +++ b/toys/posix/cp.c @@ -173,7 +173,7 @@ int cp_node(struct dirtree *try) fprintf(stderr, "%s: overwrite '%s'", toys.which->name, s = dirtree_path(try, 0)); free(s); - if (!yesno("", 1)) return 0; + if (!yesno(1)) return 0; } } @@ -348,11 +348,11 @@ void cp_main(void) // Try to interpret as letters, commas won't set anything this doesn't. for (s = TT.c.preserve; *s; s++) { for (i=0; i<ARRAY_LEN(preserve); i++) - if (*s == *preserve[i]) TT.pflags |= 1<<i; + if (*s == *preserve[i]) break; if (i == ARRAY_LEN(preserve)) { if (*s == 'a') TT.pflags = ~0; else break; - } + } else TT.pflags |= 1<<i; } if (*s) error_exit("bad --preserve=%s", pre); @@ -381,7 +381,7 @@ void cp_main(void) && ((toys.optflags & FLAG_i) || !(st.st_mode & 0222))) { fprintf(stderr, "%s: overwrite '%s'", toys.which->name, TT.destname); - if (!yesno("", 1)) rc = 0; + if (!yesno(1)) rc = 0; else unlink(TT.destname); } } diff --git a/toys/posix/find.c b/toys/posix/find.c index 99cf5e2f..10585294 100644 --- a/toys/posix/find.c +++ b/toys/posix/find.c @@ -421,10 +421,8 @@ static int do_find(struct dirtree *new) if (aa->dir) aa->prev = (void *)1; if (*s == 'o') { - char *prompt = xmprintf("[%s] %s", ss1, name); - test = yesno(prompt, 0); - free(prompt); - if (!test) { + fprintf(stderr, "[%s] %s", ss1, name); + if (!(test = yesno(0))) { free(name); goto cont; } diff --git a/toys/posix/rm.c b/toys/posix/rm.c index 5523a98c..f591c64d 100644 --- a/toys/posix/rm.c +++ b/toys/posix/rm.c @@ -39,9 +39,10 @@ static int do_rm(struct dirtree *try) && (!S_ISLNK(try->st.st_mode) && faccessat(fd, try->name, W_OK, 0))) or++; if (!(dir && try->again) && ((or && isatty(0)) || (flags & FLAG_i))) { char *s = dirtree_path(try, 0); - fprintf(stderr, "rm %s%s", or ? "ro " : "", dir ? "dir " : ""); - or = yesno(s, 0); + + fprintf(stderr, "rm %s%s%s", or ? "ro " : "", dir ? "dir " : "", s); free(s); + or = yesno(0); if (!or) goto nodelete; } @@ -57,10 +58,11 @@ static int do_rm(struct dirtree *try) if (try->symlink) goto skip; if (flags & FLAG_i) { char *s = dirtree_path(try, 0); + // This is the section 2(d) prompt. (Yes, posix says to prompt twice.) - fprintf(stderr, "rmdir "); - or = yesno(s, 0); + fprintf(stderr, "rmdir %s", s); free(s); + or = yesno(0); if (!or) goto nodelete; } } |