diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/exec.c | 17 |
2 files changed, 17 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 30058dce3..f11321438 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-12-20 Daniel Shahaf <d.s@daniel.shahaf.name> + + * Stephane (rebased by Mikael): users/13148, workers/42060: + Src/exec.c: Abort the command line when replying "[n] No" to + the RM_STAR_SILENT prompt. + 2017-12-20 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp> * 42143: Completion/Unix/Type/_object_files: fix a pattern for diff --git a/Src/exec.c b/Src/exec.c index 664d79079..3678ef84a 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -3251,19 +3251,24 @@ execcmd_exec(Estate state, Execcmd_params eparams, next = nextnode(node); if (s[0] == Star && !s[1]) { - if (!checkrmall(pwd)) - uremnode(args, node); + if (!checkrmall(pwd)) { + errflag |= ERRFLAG_ERROR; + break; + } } else if (l >= 2 && s[l - 2] == '/' && s[l - 1] == Star) { char t = s[l - 2]; + int rmall; s[l - 2] = 0; - if (!checkrmall(*s ? s : "/")) - uremnode(args, node); + rmall = checkrmall(s); s[l - 2] = t; + + if (!rmall) { + errflag |= ERRFLAG_ERROR; + break; + } } } - if (!nextnode(firstnode(args))) - errflag |= ERRFLAG_ERROR; } if (type == WC_FUNCDEF) { |