Files
RedBear-OS/recipes/shells/zsh/source/Functions/Chpwd/chpwd_recent_dirs
T
vasilito ff4ff35918 feat: track all source trees in git — full fork offline-first model
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.

Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.

127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00

45 lines
1.6 KiB
Plaintext

# Save the current directory in the stack of most recently used directories.
emulate -L zsh
setopt extendedglob
local -aU reply
integer changed
autoload -Uz chpwd_recent_filehandler chpwd_recent_add
# Don't save if this is not interactive, or is in a subshell.
# Don't save if this is not being called directly from the top level
# of the shell via a straightforward sequence of shell functions.
# So this is called
# - on any straightforward cd or pushd (including AUTO_CD)
# - any time cd or pushd is called from a function invoked directly
# or indirectly from the command line, e.g. if pushd is a function
# fixing the order of directories that got broken years ago
# but it is not called any time
# - the shell is not interactive
# - we forked
# - we are being eval'd, including for some special purpose such
# as a style
# - we are not called from the top-level command loop, for example
# we are in a completion function (which is called from zle
# when the main top-level command interpreter isn't running)
# - obviously, when cd -q is in use (that's what the option is for).
#
# For compatibility with older shells, skip this test if $ZSH_EVAL_CONTEXT
# isn't set. This will never be the case inside a shell function when
# the variable is implemented.
if [[ ! -o interactive || $ZSH_SUBSHELL -ne 0 || \
( -n $ZSH_EVAL_CONTEXT && \
$ZSH_EVAL_CONTEXT != toplevel(:[a-z]#func|)# ) ]]; then
return
fi
chpwd_recent_filehandler
if [[ $reply[1] != $PWD ]]; then
chpwd_recent_add $PWD && changed=1
(( changed )) && chpwd_recent_filehandler $reply
fi