From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2418 invoked from network); 28 Apr 2000 09:49:22 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 28 Apr 2000 09:49:22 -0000 Received: (qmail 18966 invoked by alias); 28 Apr 2000 09:49:07 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11001 Received: (qmail 18947 invoked from network); 28 Apr 2000 09:49:05 -0000 To: zsh-workers@sunsite.auc.dk Subject: Re: PATCH: _enscript References: MIME-Version: 1.0 (generated by SEMI 1.13.7 - "Awazu") Content-Type: text/plain; charset=US-ASCII From: Tanaka Akira Date: 28 Apr 2000 18:49:26 +0900 In-Reply-To: (Tanaka Akira's message of "28 Apr 2000 00:47:50 +0900") Message-ID: User-Agent: T-gnus/6.14.1 (based on Gnus v5.8.3) (revision 16) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/20.6 (i686-pc-linux-gnu) MULE/4.0 (HANANOEN) In article , Tanaka Akira writes: > This is a completion function for GNU enscript. This patch separates a completion function _printers for printer names from _lp and modifies _enscript to complete printer names using _printers. Index: Completion/User/_enscript =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/User/_enscript,v retrieving revision 1.1 diff -u -r1.1 _enscript --- Completion/User/_enscript 2000/04/28 00:59:40 1.1 +++ Completion/User/_enscript 2000/04/28 09:36:07 @@ -18,9 +18,9 @@ '(-c)--truncate-lines' \ '(--line-numbers)-C-:start line:' \ '(-C)--line-numbers=-:start line:' \ - '(--printer -d )-P+:printer name:' \ - '(--printer -P)-d+:printer name:' \ - '( -d -P)--printer=:printer name:' \ + '(--printer -d )-P+:printer name: _printers' \ + '(--printer -P)-d+:printer name: _printers' \ + '( -d -P)--printer=:printer name: _printers' \ '*-D+:key\:value:' \ '*--setpagedevice=:key\:value:' \ '(--escapes)-e-:escape character:' \ Index: Completion/User/_lp =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/User/_lp,v retrieving revision 1.4 diff -u -r1.4 _lp --- Completion/User/_lp 2000/04/11 07:57:57 1.4 +++ Completion/User/_lp 2000/04/28 09:36:07 @@ -2,61 +2,8 @@ local expl ret=1 printer list disp strs shown -if (( ! $+_lp_cache )); then - local file entry names i - - file=( /etc/(printcap|printers.conf)(N) ) - - _lp_cache=() - _lp_alias_cache=() - - if (( $#file )); then - while read entry; do - if [[ "$entry" = [^[:blank:]\#\*_]*:* ]]; then - names=( "${(s:|:)entry%%:*}" ) - if [[ "$entry" = *:description=* ]]; then - disp="${${entry##*:description=}%%:*}" - elif [[ $#names -gt 1 && "$names[-1]" = *\ * ]] ;then - disp="$names[-1]" - else - disp='' - fi - if [[ -n "$disp" ]]; then - _lp_cache=( "$_lp_cache[@]" "${names[1]}:${disp}" ) - _lp_alias_cache=( "$_lp_alias_cache[@]" "${(@)^names[2,-1]:#*\ *}:${disp}" ) - else - _lp_cache=( "$_lp_cache[@]" "${names[1]}" ) - _lp_alias_cache=( "$_lp_alias_cache[@]" "${(@)names[2,-1]:#*\ *}" ) - fi - fi - done < $file[1] - fi - (( $#_lp_cache )) || _lp_cache=( 'lp0:Guessed default printer' ) - (( $#_lp_alias_cache )) || unset _lp_alias_cache -fi - if compset -P -P || [[ "$words[CURRENT-1]" = -P ]]; then - if zstyle -T ":completion:${curcontext}:printers" verbose; then - zformat -a list ' -- ' "$_lp_cache[@]" - disp=(-ld list) - else - disp=() - fi - _wanted printers expl printer \ - compadd "$disp[@]" - "${(@)_lp_cache%%:*}" && return 0 - - (( $+_lp_alias_cache )) || return 1 - - if zstyle -T ":completion:${curcontext}:printers" verbose; then - zformat -a list ' -- ' "$_lp_alias_cache[@]" - disp=(-ld list) - else - disp=() - fi - _wanted printers expl printer \ - compadd "$disp[@]" - "${(@)_lp_alias_cache%%:*}" && return 0 - - return 1 + _printers else if [[ "${words[1]:t}" = (lpq|lprm) ]]; then if [[ "$words" = *-P* ]]; then --- /dev/null Wed May 6 05:32:27 1998 +++ Completion/User/_printers Fri Apr 28 18:34:04 2000 @@ -0,0 +1,58 @@ +#autoload + +local expl ret=1 list disp + +if (( ! $+_lp_cache )); then + local file entry names i + + file=( /etc/(printcap|printers.conf)(N) ) + + _lp_cache=() + _lp_alias_cache=() + + if (( $#file )); then + while read entry; do + if [[ "$entry" = [^[:blank:]\#\*_]*:* ]]; then + names=( "${(s:|:)entry%%:*}" ) + if [[ "$entry" = *:description=* ]]; then + disp="${${entry##*:description=}%%:*}" + elif [[ $#names -gt 1 && "$names[-1]" = *\ * ]] ;then + disp="$names[-1]" + else + disp='' + fi + if [[ -n "$disp" ]]; then + _lp_cache=( "$_lp_cache[@]" "${names[1]}:${disp}" ) + _lp_alias_cache=( "$_lp_alias_cache[@]" "${(@)^names[2,-1]:#*\ *}:${disp}" ) + else + _lp_cache=( "$_lp_cache[@]" "${names[1]}" ) + _lp_alias_cache=( "$_lp_alias_cache[@]" "${(@)names[2,-1]:#*\ *}" ) + fi + fi + done < $file[1] + fi + (( $#_lp_cache )) || _lp_cache=( 'lp0:Guessed default printer' ) + (( $#_lp_alias_cache )) || unset _lp_alias_cache +fi + +if zstyle -T ":completion:${curcontext}:printers" verbose; then + zformat -a list ' -- ' "$_lp_cache[@]" + disp=(-ld list) +else + disp=() +fi +_wanted printers expl printer \ + compadd "$disp[@]" - "${(@)_lp_cache%%:*}" && return 0 + +(( $+_lp_alias_cache )) || return 1 + +if zstyle -T ":completion:${curcontext}:printers" verbose; then + zformat -a list ' -- ' "$_lp_alias_cache[@]" + disp=(-ld list) +else + disp=() +fi +_wanted printers expl printer \ + compadd "$disp[@]" - "${(@)_lp_alias_cache%%:*}" && return 0 + +return 1 -- Tanaka Akira