diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-04-28 11:20:55 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-04-28 11:20:55 +0000 |
commit | a3cf03751aea772f1e0307c8899b5e4f751ff24c (patch) | |
tree | df1b5889770d2bd16e98569690dbe4b81e0aeb90 /Completion/User | |
parent | b577adea409e603018c632478fe563dfa5fdeb7f (diff) | |
download | zsh-a3cf03751aea772f1e0307c8899b5e4f751ff24c.tar.gz zsh-a3cf03751aea772f1e0307c8899b5e4f751ff24c.tar.xz zsh-a3cf03751aea772f1e0307c8899b5e4f751ff24c.zip |
Tanaka: printer-detection moved to new _printers; used by _enscript (11001)
Diffstat (limited to 'Completion/User')
-rw-r--r-- | Completion/User/.distfiles | 2 | ||||
-rw-r--r-- | Completion/User/_enscript | 6 | ||||
-rw-r--r-- | Completion/User/_lp | 55 | ||||
-rw-r--r-- | Completion/User/_printers | 58 |
4 files changed, 63 insertions, 58 deletions
diff --git a/Completion/User/.distfiles b/Completion/User/.distfiles index 9b1d74d20..1d84b8b0d 100644 --- a/Completion/User/.distfiles +++ b/Completion/User/.distfiles @@ -7,7 +7,7 @@ DISTFILES_SRC=' _mailboxes _make _man _mh _mount _mutt _my_accounts _mysql_utils _nedit _netscape _nslookup _other_accounts _pack _patch _pbm _pdf _perl _perl_basepods _perl_builtin_funcs _perl_modules _perldoc - _ports _prcs _prompt _ps _pspdf _psutils _rcs _rlogin _sh _socket + _ports _prcs _printers _prompt _ps _pspdf _psutils _rcs _rlogin _sh _socket _ssh _strip _stty _su _sudo _tar _tar_archive _telnet _tex _texi _tiff _tilde_files _uncompress _unpack _urls _use_lo _user_at_host _users _users_on _webbrowser _wget _whereis _whois _xargs _yodl _yp diff --git a/Completion/User/_enscript b/Completion/User/_enscript index 40e3d58cd..d73a79478 100644 --- a/Completion/User/_enscript +++ b/Completion/User/_enscript @@ -18,9 +18,9 @@ _arguments -s \ '(-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:' \ diff --git a/Completion/User/_lp b/Completion/User/_lp index 60cf8cfd0..844178169 100644 --- a/Completion/User/_lp +++ b/Completion/User/_lp @@ -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 diff --git a/Completion/User/_printers b/Completion/User/_printers new file mode 100644 index 000000000..a84a5e559 --- /dev/null +++ b/Completion/User/_printers @@ -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 |