Skip to content

Commit

Permalink
Use HISTFILE evironment variable directly rather than copying it
Browse files Browse the repository at this point in the history
Use the HISTFILE environment variable in place of copying it to
_per_directory_history_global so that users can change the environment variable
after sourcing per-directory-history and have the global variable set correctly
  • Loading branch information
jimhester committed Sep 21, 2012
1 parent baa187e commit cc83150
Showing 1 changed file with 4 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,14 @@ bindkey '^G' per-directory-history-toggle-history
# implementation details
#-------------------------------------------------------------------------------

_per_directory_history_global=$HISTFILE
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"

function _per-directory-history-change-directory() {
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
mkdir -p ${_per_directory_history_directory:h}
if [[ $_per_directory_history_is_global == false ]]; then
#save to the global history
fc -AI $_per_directory_history_global
fc -AI $HISTFILE
#save history to previous file
local prev="$HISTORY_BASE${OLDPWD:A}/history"
mkdir -p ${prev:h}
Expand All @@ -115,7 +114,7 @@ function _per-directory-history-addhistory() {

function _per-directory-history-set-directory-history() {
if [[ $_per_directory_history_is_global == true ]]; then
fc -AI $_per_directory_history_global
fc -AI $HISTFILE
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
Expand All @@ -131,8 +130,8 @@ function _per-directory-history-set-global-history() {
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$_per_directory_history_global" ]]; then
fc -R "$_per_directory_history_global"
if [[ -e "$HISTFILE" ]]; then
fc -R "$HISTFILE"
fi
fi
_per_directory_history_is_global=true
Expand Down

0 comments on commit cc83150

Please sign in to comment.