From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12082 invoked from network); 5 Jun 2000 23:11:02 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 5 Jun 2000 23:11:02 -0000 Received: (qmail 19668 invoked by alias); 5 Jun 2000 23:10:43 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11756 Received: (qmail 19660 invoked from network); 5 Jun 2000 23:10:43 -0000 Sender: opk Message-ID: <393C2510.5F7D3880@u.genie.co.uk> Date: Mon, 05 Jun 2000 23:09:20 +0100 From: Oliver Kiddle X-Mailer: Mozilla 4.61 [en] (X11; I; Linux 2.2.15 i586) X-Accept-Language: en MIME-Version: 1.0 To: Zsh workers Subject: PATCH: _urls and _rpm Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I've changed _urls so that it now takes any -g option it is passed and passes it on to _files. It would be useful if zparseopts returned 0 only if it found the option specified so I didn't need to use (( $#glob )) but we'd have to decide how it would act with more than one option specified. I'm not convinced by what Bart said earlier about _urls not handling IPREFIX properly (isn't it supposed to be ignored) but I haven't got easy access to his e-mail here to check what he said again. I've also changed _rpm to now use _urls in that one place. Why does [[ -prefix (f|ht)tp:// ]] give me an error message about the first bracket? Is that a bug. I got around it by putting a 1 before the pattern. Oliver Kiddle Index: Completion/Linux/_rpm =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Linux/_rpm,v retrieving revision 1.13 diff -u -u -r1.13 _rpm --- Completion/Linux/_rpm 2000/06/05 02:23:53 1.13 +++ Completion/Linux/_rpm 2000/06/05 23:08:24 @@ -211,12 +211,14 @@ _files -g \*.spec && ret=0 ;; package_file) - if compset -P '(f|ht)tp://'; then - _hosts -S/ && ret=0 + _wanted files expl 'RPM package file' \ + _files -g '*.(#i)rpm' && ret=0 + if [[ -prefix 1 (f|ht)tp:// ]]; then + _wanted urls expl 'URL of RPM package file' \ + _urls -f -g '*.(#i)rpm' "${expl[@]}" && ret=0 else - _alternative \ - 'files:RPM package file:_files -g \*.\(\#i\)rpm' \ - 'prefixes:URL prefix:compadd ftp:// http://' && ret=0 + _wanted urls expl 'URL of RPM package file' \ + compadd -S '' "${expl[@]}" ftp:// http:// && ret=0 fi ;; package_src) Index: Completion/User/_urls =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/User/_urls,v retrieving revision 1.10 diff -u -u -r1.10 _urls --- Completion/User/_urls 2000/05/31 09:38:26 1.10 +++ Completion/User/_urls 2000/06/05 23:08:24 @@ -38,7 +38,7 @@ # E.g.: # zstyle ':completion:*:urls' local www /usr/local/apache/htdocs public_html -local ipre scheme host user uhosts ret=1 expl match +local ipre scheme host user uhosts ret=1 expl match glob local urls_path localhttp zstyle -s ":completion:${curcontext}:urls" path urls_path || urls_path="${ZDOTDIR:-$HOME}/.zsh/urls" @@ -52,6 +52,9 @@ _wanted -C -f files expl file _files "$@" && return 0 fi +zparseopts -D -E 'g:=glob' +(( $#glob )) || glob=( -g '*(^/)' ) + ipre="$IPREFIX" if ! compset -P '(#b)([-+.a-z0-9]#):'; then @@ -82,7 +85,7 @@ while _tags; do while _next_label files expl 'local file'; do if [[ -prefix / ]]; then - _path_files "$expl[@]" -S '' -g '*(^/)' && ret=0 + _path_files "$expl[@]" -S '' "${glob[@]}" && ret=0 _path_files "$expl[@]" -S/ -r '/' -/ && ret=0 elif [[ -z "$PREFIX" ]]; then compadd -S '/' -r '/' "$expl[@]" "$@" - "${PWD%/}" && ret=0 @@ -103,7 +106,7 @@ _tags -C bookmark files while _tags; do while _next_label files expl 'bookmark'; do - _path_files -W "$urls_path/$scheme" "$expl[@]" -S '' -g '*(^/)' && + _path_files -W "$urls_path/$scheme" "$expl[@]" -S '' "${glob[@]}" && ret=0 _path_files -W "$urls_path/$scheme" -S/ -r '/' "$expl[@]" -/ && ret=0 done @@ -145,7 +148,7 @@ user="$match[1]" while _tags; do while _next_label files expl 'local file'; do - _path_files "$expl[@]" "$@" -W ~$user/$localhttp_userdir -g '*(^/)' && ret=0 + _path_files "$expl[@]" "$@" -W ~$user/$localhttp_userdir "${glob[@]}" && ret=0 _path_files -S/ -r '/' "$expl[@]" -W ~$user/$localhttp_userdir-/ && ret=0 done (( ret )) || return 0 @@ -153,7 +156,7 @@ else while _tags; do while _next_label files expl 'local file'; do - _path_files "$expl[@]" "$@" -W $localhttp_documentroot -g '*(^/)' && ret=0 + _path_files "$expl[@]" "$@" -W $localhttp_documentroot "${glob[@]}" && ret=0 _path_files -S/ -r '/' "$expl[@]" -W $localhttp_documentroot -/ && ret=0 done (( ret )) || return 0 @@ -162,7 +165,7 @@ else while _tags; do while _next_label files expl 'local file'; do - _path_files "$expl[@]" "$@" -W $urls_path/$scheme/$host -g '*(^/)' && ret=0 + _path_files "$expl[@]" "$@" -W $urls_path/$scheme/$host "${glob[@]}" && ret=0 _path_files -S/ -r '/' "$expl[@]" -W $urls_path/$scheme/$host -/ && ret=0 done (( ret )) || return 0