diff options
-rw-r--r-- | net:foret/Prompts.zsh | 2 | ||||
-rw-r--r-- | user:hugues/net:foret/KeyBindings.zsh | 12 |
2 files changed, 11 insertions, 3 deletions
diff --git a/net:foret/Prompts.zsh b/net:foret/Prompts.zsh index b0d331e..aabec41 100644 --- a/net:foret/Prompts.zsh +++ b/net:foret/Prompts.zsh @@ -43,6 +43,8 @@ __verbose_compilation () __nproc_compilation () { + NPROC=${NPROC:-$(echo $MAKEFLAGS | sed '/j[0-9]\+/!d;s/.*j\([0-9]\+\).*/\1/')} + [ -n "$NPROC" -a "$NPROC" -gt 0 ] || ( unset NPROC ; exit 0 ) echo -n $C_ export | grep -q '^NPROC=' && echo -n "1;" diff --git a/user:hugues/net:foret/KeyBindings.zsh b/user:hugues/net:foret/KeyBindings.zsh index 92824b0..5d88108 100644 --- a/user:hugues/net:foret/KeyBindings.zsh +++ b/user:hugues/net:foret/KeyBindings.zsh @@ -10,12 +10,18 @@ __nproc () { - echo $(( ${NPROC:-0} $@ > 0 ? ${NPROC:-0} $@ : 0 )) + NPROC=${${2:+"$(( $(echo $MAKEFLAGS | sed 's/.*j\([0-9]*\).*/\1/') $@))"}:-$1} + + export MAKEFLAGS="$(echo $MAKEFLAGS | sed 's/j[0-9]*//')" + [ "$NPROC" -ge 0 ] && MAKEFLAGS+="j" + [ "$NPROC" -gt 0 ] && MAKEFLAGS+=$NPROC + + true } for keymap in viins vicmd emacs do - bindkey -M $keymap -s '+' 'Q __up_up ; export NPROC=$(__nproc + 1)\n' - bindkey -M $keymap -s '-' 'Q __up_up ; export NPROC=$(__nproc - 1) ; [ "$NPROC" -gt 0 ] || unset NPROC\n' + bindkey -M $keymap -s '+' 'Q __up_up ; __nproc + 1\n' + bindkey -M $keymap -s '-' 'Q __up_up ; __nproc - 1\n' done |