From f4acfc7a4e065bab2f4e01f1c641d0b398deb8d7 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sun, 17 Nov 2019 14:33:30 +0530 Subject: [PATCH] Block nesting of nnn instances --- misc/quitcd/quitcd.bash | 6 ++++++ misc/quitcd/quitcd.csh | 2 +- misc/quitcd/quitcd.fish | 6 ++++++ misc/quitcd/quitcd.zsh | 6 ++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/misc/quitcd/quitcd.bash b/misc/quitcd/quitcd.bash index a26395db..95939a00 100644 --- a/misc/quitcd/quitcd.bash +++ b/misc/quitcd/quitcd.bash @@ -1,5 +1,11 @@ n() { + # Block nesting of nnn in subshells + if [ $(expr $NNNLVL + 0) -ge 1 ]; then + echo "nnn is already running" + return + fi + # The default behaviour is to cd on quit (nnn checks if NNN_TMPFILE is set) # To cd on quit only on ^G, export NNN_TMPFILE after the call to nnn export NNN_TMPFILE=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd diff --git a/misc/quitcd/quitcd.csh b/misc/quitcd/quitcd.csh index 206e620a..ef95fff3 100644 --- a/misc/quitcd/quitcd.csh +++ b/misc/quitcd/quitcd.csh @@ -4,4 +4,4 @@ # To cd on quit only on ^G, export NNN_TMPFILE after the call to nnn set NNN_TMPFILE=~/.config/nnn/.lastd -alias n 'nnn; source "$NNN_TMPFILE"; rm "$NNN_TMPFILE"' +alias n 'nnn; source "$NNN_TMPFILE"; rm -f "$NNN_TMPFILE"' diff --git a/misc/quitcd/quitcd.fish b/misc/quitcd/quitcd.fish index 4117cc51..12fccedb 100644 --- a/misc/quitcd/quitcd.fish +++ b/misc/quitcd/quitcd.fish @@ -3,6 +3,12 @@ # or, add the lines to the 'config.fish' file. function n --description 'support nnn quit and change directory' + # Block nesting of nnn in subshells + if [ (expr $NNNLVL + 0) -ge 1 ] + echo "nnn is already running" + return + end + # The default behaviour is to cd on quit (nnn checks if NNN_TMPFILE is set) # To cd on quit only on ^G, export NNN_TMPFILE after the call to nnn if test -n "$XDG_CONFIG_HOME" diff --git a/misc/quitcd/quitcd.zsh b/misc/quitcd/quitcd.zsh index 9259e4a6..20a613f9 100644 --- a/misc/quitcd/quitcd.zsh +++ b/misc/quitcd/quitcd.zsh @@ -1,5 +1,11 @@ n() { + # Block nesting of nnn in subshells + if [ $(expr $NNNLVL + 0) -ge 1 ]; then + echo "nnn is already running" + return + fi + # The default behaviour is to cd on quit (nnn checks if NNN_TMPFILE is set) # To cd on quit only on ^G, export NNN_TMPFILE after the call to nnn export NNN_TMPFILE=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd