From: Clint Adams <clint@zsh.org>
To: zsh-workers@sunsite.dk
Cc: 271196-submitter@bugs.debian.org, 271196-forwarded@bugs.debian.org
Subject: Re: [joshk@triplehelix.org: Bug#271196: makefile completion catches some delayed expansions as targets]
Date: Sat, 11 Sep 2004 23:24:58 -0400 [thread overview]
Message-ID: <20040912032458.GA20842@scowler.net> (raw)
In-Reply-To: <20040911234745.GA17562@scowler.net>
> And only under certain locales.
This avoids what might be a gawk bug by not using awk. Should we move
toward 20277 instead?
Index: Completion/Unix/Command/_make
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_make,v
retrieving revision 1.8
diff -u -r1.8 _make
--- Completion/Unix/Command/_make 21 Aug 2004 03:07:01 -0000 1.8
+++ Completion/Unix/Command/_make 12 Sep 2004 03:17:25 -0000
@@ -1,6 +1,6 @@
#compdef make gmake pmake dmake
-local prev="$words[CURRENT-1]" file expl tmp is_gnu cmdargs useperl
+local prev="$words[CURRENT-1]" file expl tmp is_gnu useperl
zstyle -t ":completion:${curcontext}:" use-perl && useperl=1
_pick_variant -r is_gnu gnu=GNU unix -v -f
@@ -27,11 +27,10 @@
if [[ $is_gnu = gnu ]] &&
zstyle -t ":completion:${curcontext}:targets" call-command; then
if [[ -n $useperl ]]; then
- cmdargs=(perl -ne '/^([a-zA-Z0-9][^\/\t=]+):([^=]|$)/ && print "$1\n"')
+ tmp=( $(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null | perl -ne '/^([a-zA-Z0-9][^\/\t=]+):([^=]|$)/ && print "$1\n"') )
else
- cmdargs=(awk '/^[a-zA-Z0-9][^\/\t=]+:([^=]|$)/ {print $1}' FS=:)
+ tmp=(${${(M)${(f)"$(_call_program targets "$words[1]" -nsp --no-print-directory -f /tmp/rules .PHONY 2>/dev/null)"}:#[a-zA-Z0-9][^/\t=]##:([^=]*|(#e))}%:*})
fi
- tmp=( $(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null | $cmdargs) )
elif [[ -n $useperl ]]; then
tmp=(
$(perl -ne '/^([a-zA-Z0-9][^\/\t=]+):([^=]|$)/ and print "$1\n";
@@ -42,11 +41,9 @@
' $file)
)
else
- tmp=(
- $(awk '/^[a-zA-Z0-9][^\/\t=]+:([^=]|$)/ {print $1}
- /^\.include *<bsd\.port\.(subdir\.|pre\.)?mk>/ || /^\.include *".*mk\/bsd\.pkg\.(subdir\.)?mk"/ {
- print "fetch fetch-list extract patch configure build install reinstall deinstall package describe checkpatch checksum makesum" }' \
- FS=: $file)
+ tmp=( ${${(M)${(f)"$(<$file)"}:#[a-zA-Z0-9][^/\t=]##:([^=]*|(#e))}%:*}
+ $(grep -E '^\.include *(<bsd\.port\.(subdir\.|pre\.)?mk>|".*mk\/bsd\.pkg\.(subdir\.)?mk")' $file >/dev/null &&
+ print "fetch fetch-list extract patch configure build install reinstall deinstall package describe checkpatch checksum makesum" )
)
fi
_wanted targets expl 'make target' compadd -a tmp && return 0
next prev parent reply other threads:[~2004-09-12 3:26 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-11 23:16 Clint Adams
2004-09-11 23:32 ` Clint Adams
2004-09-11 23:47 ` Clint Adams
2004-09-12 3:24 ` Clint Adams [this message]
2004-09-29 22:39 ` Wayne Davison
2004-09-30 4:25 ` Bart Schaefer
2004-09-30 5:10 ` Bug#271196: makefile completion catches Geoff Wing
2004-09-30 9:44 ` [joshk@triplehelix.org: Bug#271196: makefile completion catches some delayed expansions as targets] Peter Stephenson
2004-10-01 17:39 ` Wayne Davison
2004-10-01 18:27 ` Peter Stephenson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040912032458.GA20842@scowler.net \
--to=clint@zsh.org \
--cc=271196-forwarded@bugs.debian.org \
--cc=271196-submitter@bugs.debian.org \
--cc=zsh-workers@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).