From 18e1124c3dd7a1f5564607340629ba660cfc7da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=A1=E9=A3=8E?= <1795771535y@gmail.com> Date: Sun, 14 Jun 2026 10:21:19 +0800 Subject: [PATCH] fix(per-directory-history): move fc -p out of zshaddhistory hook Calling fc -p inside the zshaddhistory hook on every command corrupts the preexec hook mechanism, causing preexec_functions to receive an empty $1. Move fc -p to set-directory-history and set-global-history initialization functions where they execute once per toggle. Fixes #12926 --- plugins/per-directory-history/per-directory-history.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index 926373ae0..38534f0b9 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -128,7 +128,6 @@ function _per-directory-history-addhistory() { fc -AI $HISTFILE fc -AI $_per_directory_history_directory fi - fc -p $_per_directory_history_directory fi } @@ -153,6 +152,7 @@ function _per-directory-history-set-directory-history() { HISTSIZE=$original_histsize if [[ -e "$_per_directory_history_directory" ]]; then fc -R "$_per_directory_history_directory" + fc -p "$_per_directory_history_directory" fi } @@ -163,6 +163,7 @@ function _per-directory-history-set-global-history() { HISTSIZE=$original_histsize if [[ -e "$HISTFILE" ]]; then fc -R "$HISTFILE" + fc -p "$HISTFILE" fi }