diff --git a/README b/README index e7309fa..86417df 100644 --- a/README +++ b/README @@ -43,6 +43,7 @@ NOTES Set $_Z_CMD in .bashrc/.zshrc to change the command (default z). Set $_Z_DATA to change the datafile (default $HOME/.z). Set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. + Set $_Z_NO_PROMPT_COMMAND if you're handling PROMPT_COMMAND yourself. (These settings should go before the lines below.) Put something like this in your $HOME/.bashrc: @@ -122,9 +123,12 @@ ENVIRONMENT to any existing PROMPT_COMMAND. zsh users need to manually set precmd() as described in the installation instructions. + The environment variable $_Z_NO_PROMPT_COMMAND can be set if you want + to handle PROMPT_COMMAND yourself. + FILES - Data is stored in $HOME/.z. This can be overridden by setting the + Data is stored in $HOME/.z. This can be overridden by setting the $_Z_DATA environment variable. A man page (z.1) is provided. diff --git a/z.1 b/z.1 index 651d511..00e7e93 100644 --- a/z.1 +++ b/z.1 @@ -45,6 +45,8 @@ Optionally: Set \fB$_Z_DATA\fR to change the datafile (default \fB$HOME/.z\fR). .br Set \fB$_Z_NO_RESOLVE_SYMLINKS\fR to prevent symlink resolution. +.br + Set \fB$_Z_NO_PROMPT_COMMAND\fR if you're handling \fBPROMPT_COMMAND\fR yourself. .br (These settings should go before the lines below.) .P @@ -126,8 +128,11 @@ its database. Specifically it prepends: .P \fB_z --add "$(pwd -P 2>/dev/null)" 2>/dev/null;\fR .P -to any existing \fbPROMPT_COMMAND\fR. zsh users need to manually set +to any existing \fBPROMPT_COMMAND\fR. zsh users need to manually set \fBprecmd()\fR as described in the installation instructions. +.P +The environment variable \fB$_Z_NO_PROMPT_COMMAND\fR can be set if you want to +handle \fRPROMPT_COMMAND\fR yourself. .SH FILES Data is stored in \fB$HOME/.z\fR. This can be overridden by setting the diff --git a/z.sh b/z.sh index 92af9bf..ff3645e 100755 --- a/z.sh +++ b/z.sh @@ -6,6 +6,8 @@ # * optionally: # set $_Z_CMD in .bashrc/.zshrc to change the command (default z). # set $_Z_DATA in .bashrc/.zshrc to change the datafile (default ~/.z). +# set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. +# set $_Z_NO_PROMPT_COMMAND if you're handling PROMPT_COMMAND yourself. # * put something like this in your .bashrc: # . /path/to/z.sh # * put something like this in your .zshrc: @@ -184,9 +186,11 @@ alias ${_Z_CMD:-z}='_z 2>&1' if complete &> /dev/null; then # bash tab completion complete -C '_z --complete "$COMP_LINE"' ${_Z_CMD:-z} - # populate directory list. avoid clobbering other PROMPT_COMMANDs. - echo $PROMPT_COMMAND | grep -q "_z --add" - [ $? -gt 0 ] && PROMPT_COMMAND='_z --add "$(pwd '$_Z_RESOLVE_SYMLINKS' 2>/dev/null)" 2>/dev/null;'"$PROMPT_COMMAND" + [ "$_Z_NO_PROMPT_COMMAND" ] || { + # populate directory list. avoid clobbering other PROMPT_COMMANDs. + echo $PROMPT_COMMAND | grep -q "_z --add" + [ $? -gt 0 ] && PROMPT_COMMAND='_z --add "$(pwd '$_Z_RESOLVE_SYMLINKS' 2>/dev/null)" 2>/dev/null;'"$PROMPT_COMMAND" + } elif compctl &> /dev/null; then # zsh tab completion _z_zsh_tab_completion() {