fix(history): add warning before deleting command history in history -c (#12472)

This commit is contained in:
Marc Cornellà 2024-06-12 11:04:05 +02:00
parent 59e8e028e1
commit 35a6725970
No known key found for this signature in database
GPG Key ID: 0314585E776A9C1B

View File

@ -1,14 +1,22 @@
## History wrapper ## History wrapper
function omz_history { function omz_history {
# parse arguments and remove from $@ # 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 zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp t:=stamp
if [[ -n "$clear" ]]; then if [[ -n "$clear" ]]; then
# if -c provided, clobber the history file # 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" fc -p "$HISTFILE"
echo >&2 History file deleted.
print -u2 History file deleted.
elif [[ $# -eq 0 ]]; then elif [[ $# -eq 0 ]]; then
# if no arguments provided, show full history starting from 1 # if no arguments provided, show full history starting from 1
builtin fc $stamp -l 1 builtin fc $stamp -l 1