summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2000-04-28 11:20:55 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2000-04-28 11:20:55 +0000
commita3cf03751aea772f1e0307c8899b5e4f751ff24c (patch)
treedf1b5889770d2bd16e98569690dbe4b81e0aeb90
parentb577adea409e603018c632478fe563dfa5fdeb7f (diff)
downloadzsh-a3cf03751aea772f1e0307c8899b5e4f751ff24c.tar.gz
zsh-a3cf03751aea772f1e0307c8899b5e4f751ff24c.zip
Tanaka: printer-detection moved to new _printers; used by _enscript (11001)
-rw-r--r--ChangeLog4
-rw-r--r--Completion/User/.distfiles2
-rw-r--r--Completion/User/_enscript6
-rw-r--r--Completion/User/_lp55
-rw-r--r--Completion/User/_printers58
5 files changed, 67 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index c1423eec5..76caab469 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2000-04-28 Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
+ * Tanaka: 11001: Completion/User/_enscript, Completion/User/_lp,
+ Completion/User/_printers: printer-detection moved to new
+ _printers; used by _enscript
+
* 11003: Src/Zle/computil.c: fix for reporting multiple actions in
comparguments, options with non-optional arguments
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