diff options
| author | Marc Cornellà <marc@mcornella.com> | 2024-06-12 11:04:05 +0200 |
|---|---|---|
| committer | Marc Cornellà <marc@mcornella.com> | 2024-06-12 11:04:05 +0200 |
| commit | 35a6725970167278254ab11a996bf04d2186b009 (patch) | |
| tree | a5800bf33d532c5f2c5b0a95bf7f31e4a26d5bf0 /lib/history.zsh | |
| parent | 59e8e028e179fc126d46254900946953072048e7 (diff) | |
| download | zsh-35a6725970167278254ab11a996bf04d2186b009.tar.gz zsh-35a6725970167278254ab11a996bf04d2186b009.tar.bz2 zsh-35a6725970167278254ab11a996bf04d2186b009.zip | |
fix(history): add warning before deleting command history in `history -c` (#12472)
Diffstat (limited to 'lib/history.zsh')
| -rw-r--r-- | lib/history.zsh | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/history.zsh b/lib/history.zsh index a8431fd5a..b13e1807f 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,14 +1,22 @@ ## History wrapper function omz_history { # parse arguments and remove from $@ - local clear list stamp + local clear list stamp REPLY zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp t:=stamp if [[ -n "$clear" ]]; then # if -c provided, clobber the history file - echo -n >| "$HISTFILE" + + # confirm action before deleting history + print -nu2 "This action will irreversibly delete your command history. Are you sure? [y/N] " + builtin read -k1 + [[ "$REPLY" = $'\n' ]] || print -u2 + [[ "$REPLY" != ([nN]|$'\n') ]] || return 0 + + print -nu2 >| "$HISTFILE" fc -p "$HISTFILE" - echo >&2 History file deleted. + + print -u2 History file deleted. elif [[ $# -eq 0 ]]; then # if no arguments provided, show full history starting from 1 builtin fc $stamp -l 1 |
