about summary refs log tree commit diff
path: root/Completion/User
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/User')
-rw-r--r--Completion/User/.distfiles2
-rw-r--r--Completion/User/_enscript6
-rw-r--r--Completion/User/_lp55
-rw-r--r--Completion/User/_printers58
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