diff options
author | Mark Whitley | 2001-03-13 00:40:19 +0000 |
---|---|---|
committer | Mark Whitley | 2001-03-13 00:40:19 +0000 |
commit | e0bf91d7c612619526772605890538f0c3e44c05 (patch) | |
tree | 468e0e8126f57b7be69f471ed3ac046a9f8fedb4 /coreutils | |
parent | 53737c5421b2356ead7659249000daac7c1aea21 (diff) | |
download | busybox-e0bf91d7c612619526772605890538f0c3e44c05.zip busybox-e0bf91d7c612619526772605890538f0c3e44c05.tar.gz |
Applied patch from Christophe Boyanique to add -i support to rm.
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/rm.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/coreutils/rm.c b/coreutils/rm.c index a841632..6d92b5d 100644 --- a/coreutils/rm.c +++ b/coreutils/rm.c @@ -33,11 +33,21 @@ static int recursiveFlag = FALSE; static int forceFlag = FALSE; +#ifdef BB_FEATURE_RM_INTERACTIVE + static int interactiveFlag = FALSE; +#endif static const char *srcName; static int fileAction(const char *fileName, struct stat *statbuf, void* junk) { +#ifdef BB_FEATURE_RM_INTERACTIVE + if (interactiveFlag == TRUE) { + printf("rm: remove `%s'? ", fileName); + if (ask_confirmation() == 0) + return (TRUE); + } +#endif if (unlink(fileName) < 0) { perror_msg("%s", fileName); return (FALSE); @@ -52,6 +62,13 @@ static int dirAction(const char *fileName, struct stat *statbuf, void* junk) perror_msg("%s", fileName); return (FALSE); } +#ifdef BB_FEATURE_RM_INTERACTIVE + if (interactiveFlag == TRUE) { + printf("rm: remove directory `%s'? ", fileName); + if (ask_confirmation() == 0) + return (TRUE); + } +#endif if (rmdir(fileName) < 0) { perror_msg("%s", fileName); return (FALSE); @@ -79,6 +96,14 @@ extern int rm_main(int argc, char **argv) break; case 'f': forceFlag = TRUE; +#ifdef BB_FEATURE_RM_INTERACTIVE + interactiveFlag = FALSE; +#endif + break; + case 'i': +#ifdef BB_FEATURE_RM_INTERACTIVE + interactiveFlag = TRUE; +#endif break; case '-': stopIt = TRUE; |