From a8f7f9f707ca5fb9ac7bedb088748b09db2fd3bd Mon Sep 17 00:00:00 2001 From: MoAlkhateeb <110918029+MoAlkhateeb@users.noreply.github.com> Date: Tue, 9 Apr 2024 09:07:57 +0300 Subject: fix(history)!: fix arg passing to `fc` for `history` command (#12338) BREAKING CHANGE: we have fixed a bug in the `history` wrapper for OMZ which means that running just history will now not show all the history since the 1st command, but only recent ones. To get the previous behavior, you can run `history 1` to get all the command history, or other commands such as `history -30` to get the last 30 commands. --- lib/history.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index 794076904..c39c8c866 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -12,8 +12,8 @@ function omz_history { # if -l provided, run as if calling `fc' directly builtin fc "$@" else - # unless a number is provided, show all history events (starting from 1) - [[ ${@[-1]-} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1 + # otherwise, run `fc -l` with a custom format + builtin fc -l "$@" fi } -- cgit v1.2.3-70-g09d2 From 605d76616aa47b2e5abe25eb26c4c9c1554f93d5 Mon Sep 17 00:00:00 2001 From: MoAlkhateeb <110918029+MoAlkhateeb@users.noreply.github.com> Date: Tue, 9 Apr 2024 19:09:26 +0300 Subject: fix(history): revert to old behavior when no args passed (#12341) * Fixed a bug in *omz_history* where it would automatically create a file when run with the -p flag * Reverted old history behaviour while fixing parsing bug --- lib/history.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index c39c8c866..56dda2462 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -3,7 +3,10 @@ function omz_history { local clear list zparseopts -E c=clear l=list - if [[ -n "$clear" ]]; then + if [[ $# -eq 0 ]]; then + # if no arguments provided, show full history starting from 1 + builtin fc -l 1 + elif [[ -n "$clear" ]]; then # if -c provided, clobber the history file echo -n >| "$HISTFILE" fc -p "$HISTFILE" -- cgit v1.2.3-70-g09d2 From efa8de0b52dda6b51bded60c0b26b6dce2dfa354 Mon Sep 17 00:00:00 2001 From: Martin Hans Date: Tue, 16 Apr 2024 19:38:58 +0200 Subject: fix(history): fix edge cases introduced in #12341 (#12357) --- lib/history.zsh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index 56dda2462..ec89bc15e 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,22 +1,20 @@ ## History wrapper function omz_history { - local clear list - zparseopts -E c=clear l=list + # parse arguments and remove from $@ + local clear list stamp + zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp if [[ $# -eq 0 ]]; then # if no arguments provided, show full history starting from 1 - builtin fc -l 1 + builtin fc $stamp -l 1 elif [[ -n "$clear" ]]; then # if -c provided, clobber the history file echo -n >| "$HISTFILE" fc -p "$HISTFILE" echo >&2 History file deleted. - elif [[ -n "$list" ]]; then - # if -l provided, run as if calling `fc' directly - builtin fc "$@" else # otherwise, run `fc -l` with a custom format - builtin fc -l "$@" + builtin fc $stamp -l "$@" fi } -- cgit v1.2.3-70-g09d2 From eafa78217d836115a99f80bddfcd0a8901a15f77 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Thu, 18 Apr 2024 07:12:32 +0200 Subject: fix(history): fix `history -c` (#12362) Fixes #12362 --- lib/history.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index ec89bc15e..aace78aa1 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -4,14 +4,14 @@ function omz_history { local clear list stamp zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp - if [[ $# -eq 0 ]]; then - # if no arguments provided, show full history starting from 1 - builtin fc $stamp -l 1 - elif [[ -n "$clear" ]]; then + if [[ -n "$clear" ]]; then # if -c provided, clobber the history file echo -n >| "$HISTFILE" fc -p "$HISTFILE" echo >&2 History file deleted. + elif [[ $# -eq 0 ]]; then + # if no arguments provided, show full history starting from 1 + builtin fc $stamp -l 1 else # otherwise, run `fc -l` with a custom format builtin fc $stamp -l "$@" -- cgit v1.2.3-70-g09d2 From d17ca487a4357923d8b8681b9e40c2bb2d2fadea Mon Sep 17 00:00:00 2001 From: Martin Hans Date: Thu, 18 Apr 2024 10:49:34 +0200 Subject: fix(history): add `t` option to history wrapper (#12365) The `t` option takes a strftime format specification as argument. This fixes cases in which $HIST_STAMPS is set to a value other than `mm/dd/yyyy|dd.mm.yyyy|yyyy-mm-dd`. --- lib/history.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index aace78aa1..a8431fd5a 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -2,7 +2,7 @@ function omz_history { # parse arguments and remove from $@ local clear list stamp - zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp + 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 -- cgit v1.2.3-70-g09d2 From 35a6725970167278254ab11a996bf04d2186b009 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 12 Jun 2024 11:04:05 +0200 Subject: fix(history): add warning before deleting command history in `history -c` (#12472) --- lib/history.zsh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib/history.zsh') 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 -- cgit v1.2.3-70-g09d2 From 8908e6d7207223d876b9a74f0be0f0ebb01b361f Mon Sep 17 00:00:00 2001 From: Nick Glenn <78454343+Sargates@users.noreply.github.com> Date: Thu, 13 Jun 2024 02:26:17 -0500 Subject: fix(history): fix logic error in prompt for `history -c` (#12500) Logic error in `history -c` when prompting for confirmation caused history to be deleted when typing anything but explicitly `n`, `N`, or sending `\n`. New logic prevents deletion by pressing wrong key and only deletes history when sending `y` or `Y`. Co-authored-by: Sargates --- lib/history.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index b13e1807f..1093ea80f 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -11,7 +11,7 @@ function omz_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 + [[ "$REPLY" != ([yY]) ]] && return 0 print -nu2 >| "$HISTFILE" fc -p "$HISTFILE" -- cgit v1.2.3-70-g09d2 From c83ca51b1b2fce89c5eae0b0bc9600ee4df28e08 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 18 Jun 2024 07:26:38 +0200 Subject: fix(history): fix confirmation prompt to allow bypass See https://github.com/ohmyzsh/ohmyzsh/issues/12472#issuecomment-2171461005 --- lib/history.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index 1093ea80f..fa3db927e 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -9,9 +9,8 @@ function omz_history { # 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" != ([yY]) ]] && return 0 + builtin read + [[ "$REPLY" = [yY] ]] || return 0 print -nu2 >| "$HISTFILE" fc -p "$HISTFILE" -- cgit v1.2.3-70-g09d2 From f2769acdfa283c663bb1bf2b98890766622e410c Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 18 Jun 2024 13:32:22 +0200 Subject: chore(history): show input in confirmation prompt Fixes https://github.com/ohmyzsh/ohmyzsh/issues/12472#issuecomment-2175868971 --- lib/history.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index fa3db927e..35da57de2 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -9,7 +9,7 @@ function omz_history { # confirm action before deleting history print -nu2 "This action will irreversibly delete your command history. Are you sure? [y/N] " - builtin read + builtin read -E [[ "$REPLY" = [yY] ]] || return 0 print -nu2 >| "$HISTFILE" -- cgit v1.2.3-70-g09d2 From 40c2a72e03b1df100b3937dd44a9754f17c06c6d Mon Sep 17 00:00:00 2001 From: Kirill Fedorov Date: Thu, 22 May 2025 12:23:50 +0300 Subject: fix(history): handle HIST_STAMPS with whitespace in timestamp format (#13099) Co-authored-by: Kirill Fedorov --- lib/history.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/history.zsh') diff --git a/lib/history.zsh b/lib/history.zsh index 35da57de2..781a0e9de 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -18,10 +18,10 @@ function omz_history { print -u2 History file deleted. elif [[ $# -eq 0 ]]; then # if no arguments provided, show full history starting from 1 - builtin fc $stamp -l 1 + builtin fc "${stamp[@]}" -l 1 else # otherwise, run `fc -l` with a custom format - builtin fc $stamp -l "$@" + builtin fc "${stamp[@]}" -l "$@" fi } -- cgit v1.2.3-70-g09d2