From 35a6725970167278254ab11a996bf04d2186b009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 12 Jun 2024 11:04:05 +0200 Subject: [PATCH] fix(history): add warning before deleting command history in `history -c` (#12472) --- lib/history.zsh | 14 +++++++++++--- 1 file 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