Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: _make: put body in _make() and don't redefine helpers every time
- X-seq: zsh-workers 29365
- From: Mikael Magnusson <mikachu@xxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: PATCH: _make: put body in _make() and don't redefine helpers every time
- Date: Tue, 24 May 2011 03:38:33 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:message-id:x-mailer :in-reply-to:references; bh=CPJSvOkWw0egzosYSwaPgNSHJoRMXi7NlpiQY5/0kk8=; b=Q8vMHAhzCQbUgILUto5LdQ93lO+zMPHT7FHx0YBRdgsmBru34hrFSWR2GBT40QB3l8 itsLP25YU2EhNBVWAlC74gZr+wSXn3P6cezDSHETF5PzSXTQ/OTk6YDnvglsSJqdoXPu 32/OtPx7NtqYvQaQakfRiGFAOGAbks+IIHRFs=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; b=ohYIzmsF1CQczPUfL0/CBG4UR7GQm5nWmAzPVFiasPF5vaz+upLyEZ4Y6O6KYQFB42 xQEtTkI5QwgXTI6txTMKrRcpBZ0d/LpYophChmqFHc/9JP7t43/DhdqxqG3k6osBCNj1 fp9+OhwFoNBPr1SPmQkVHfKx1BvDgPhFOOL14=
- In-reply-to: <BANLkTikky8dzzE9U_JOjyq__aU1JeCw3cw@mail.gmail.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <BANLkTikky8dzzE9U_JOjyq__aU1JeCw3cw@mail.gmail.com>
Here's the diff without reindent, full patch below.
+++ b/Completion/Unix/Command/_make
@@ -3,10 +3,6 @@
# TODO: Based on targets given on the command line, show only variables that
# are used in those targets and their dependencies.
-local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl match
-local -A TARGETS VARIABLES
-local ret=1
-
_make-expandVars() {
local open close var val front ret tmp=$1
@@ -149,6 +145,11 @@ _make-findBasedir () {
print -- $basedir
}
+_make () {
+ local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl match
+ local -A TARGETS VARIABLES
+ local ret=1
+
_pick_variant -r is_gnu gnu=GNU unix -v -f
if [[ $is_gnu == gnu ]]
@@ -223,3 +224,6 @@ else
fi
return ret
+}
+
+_make "$@"
---
Completion/Unix/Command/_make | 136 +++++++++++++++++++++--------------------
1 files changed, 70 insertions(+), 66 deletions(-)
diff --git a/Completion/Unix/Command/_make b/Completion/Unix/Command/_make
index 322414b..09f44a3 100644
--- a/Completion/Unix/Command/_make
+++ b/Completion/Unix/Command/_make
@@ -3,10 +3,6 @@
# TODO: Based on targets given on the command line, show only variables that
# are used in those targets and their dependencies.
-local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl match
-local -A TARGETS VARIABLES
-local ret=1
-
_make-expandVars() {
local open close var val front ret tmp=$1
@@ -149,77 +145,85 @@ _make-findBasedir () {
print -- $basedir
}
-_pick_variant -r is_gnu gnu=GNU unix -v -f
-
-if [[ $is_gnu == gnu ]]
-then
- incl="(-|)include"
-else
- incl=.include
-fi
-
-if [[ "$prev" == -[CI] ]]
-then
- _files -W ${(q)$(_make-findBasedir ${words[1,CURRENT-1]})} -/ && ret=0
-elif [[ "$prev" == -[foW] ]]
-then
- _files -W ${(q)$(_make-findBasedir $words)} && ret=0
-else
- file="$words[(I)-f]"
- if (( file ))
+_make () {
+ local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl match
+ local -A TARGETS VARIABLES
+ local ret=1
+
+ _pick_variant -r is_gnu gnu=GNU unix -v -f
+
+ if [[ $is_gnu == gnu ]]
then
- file=${~words[file+1]}
- [[ $file == [^/]* ]] && file=${(q)$(_make-findBasedir $words)}/$file
- [[ -r $file ]] || file=
+ incl="(-|)include"
else
- local basedir
- basedir=${(q)$(_make-findBasedir $words)}
- if [[ $is_gnu == gnu && -r $basedir/GNUmakefile ]]
- then
- file=$basedir/GNUmakefile
- elif [[ -r $basedir/makefile ]]
- then
- file=$basedir/makefile
- elif [[ -r $basedir/Makefile ]]
+ incl=.include
+ fi
+
+ if [[ "$prev" == -[CI] ]]
+ then
+ _files -W ${(q)$(_make-findBasedir ${words[1,CURRENT-1]})} -/ && ret=0
+ elif [[ "$prev" == -[foW] ]]
+ then
+ _files -W ${(q)$(_make-findBasedir $words)} && ret=0
+ else
+ file="$words[(I)-f]"
+ if (( file ))
then
- file=$basedir/Makefile
+ file=${~words[file+1]}
+ [[ $file == [^/]* ]] && file=${(q)$(_make-findBasedir $words)}/$file
+ [[ -r $file ]] || file=
else
- file=''
+ local basedir
+ basedir=${(q)$(_make-findBasedir $words)}
+ if [[ $is_gnu == gnu && -r $basedir/GNUmakefile ]]
+ then
+ file=$basedir/GNUmakefile
+ elif [[ -r $basedir/makefile ]]
+ then
+ file=$basedir/makefile
+ elif [[ -r $basedir/Makefile ]]
+ then
+ file=$basedir/Makefile
+ else
+ file=''
+ fi
fi
- fi
- if [[ -n "$file" ]]
- then
- if [[ $is_gnu == gnu ]] && zstyle -t ":completion:${curcontext}:targets" call-command
+ if [[ -n "$file" ]]
+ then
+ if [[ $is_gnu == gnu ]] && zstyle -t ":completion:${curcontext}:targets" call-command
+ then
+ _make-parseMakefile $PWD < <(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null)
+ else
+ case "$OSTYPE" in
+ freebsd*)
+ _make-parseMakefile $PWD < <(_call_program targets "$words[1]" -nsp -f "$file" .PHONY 2> /dev/null)
+ ;;
+ *)
+ _make-parseMakefile $PWD < $file
+ esac
+ fi
+ fi
+
+ if [[ $PREFIX == *'='* ]]
then
- _make-parseMakefile $PWD < <(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null)
+ # Complete make variable as if shell variable
+ compstate[parameter]="${PREFIX%%\=*}"
+ compset -P 1 '*='
+ _value "$@" && ret=0
else
- case "$OSTYPE" in
- freebsd*)
- _make-parseMakefile $PWD < <(_call_program targets "$words[1]" -nsp -f "$file" .PHONY 2> /dev/null)
- ;;
- *)
- _make-parseMakefile $PWD < $file
- esac
+ _tags targets variables
+ while _tags
+ do
+ _requested targets expl 'make targets' \
+ compadd -- ${(k)TARGETS} && ret=0
+ _requested variables expl 'make variables' \
+ compadd -S '=' -- ${(k)VARIABLES} && ret=0
+ done
fi
fi
- if [[ $PREFIX == *'='* ]]
- then
- # Complete make variable as if shell variable
- compstate[parameter]="${PREFIX%%\=*}"
- compset -P 1 '*='
- _value "$@" && ret=0
- else
- _tags targets variables
- while _tags
- do
- _requested targets expl 'make targets' \
- compadd -- ${(k)TARGETS} && ret=0
- _requested variables expl 'make variables' \
- compadd -S '=' -- ${(k)VARIABLES} && ret=0
- done
- fi
-fi
+ return ret
+}
-return ret
+_make "$@"
--
1.7.4-rc1
Messages sorted by:
Reverse Date,
Date,
Thread,
Author