From 6e95fc96020f9d32cae7e48b65c180b9a6263b6e Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sun, 16 Jan 2011 20:37:32 +0000 Subject: 28631: gi1242+zsh@gmail.com (as in 28633): completion updates --- Completion/Unix/Command/_lp | 196 +++++++++++++++++++++++--------------------- 1 file changed, 102 insertions(+), 94 deletions(-) (limited to 'Completion/Unix/Command/_lp') diff --git a/Completion/Unix/Command/_lp b/Completion/Unix/Command/_lp index e6bff64cc..5d46a75bb 100644 --- a/Completion/Unix/Command/_lp +++ b/Completion/Unix/Command/_lp @@ -1,7 +1,5 @@ #compdef lp lpr lpq lprm lpoptions lpstat -local expl ret=1 printer list disp strs shown - _lp_get_printer() { # No reason to call _lp_get_printer when service == lpstat. Others matched @@ -22,6 +20,7 @@ _lp_get_printer() _lp_job_options() { + local expl printer local -a lopts_with_args lopts_no_args # Generic options (from lp manual page) @@ -84,6 +83,9 @@ _lp_job_options() _lp_list_jobs() { + local ret=1 printer shown + local -a list disp strs + _lp_get_printer [[ -n "$printer" ]] && printer=(-P $printer) @@ -125,95 +127,101 @@ _lp_list_jobs() return 1 } -case $service in - (lpq) - _arguments \ - '-E[Force encryption]' \ - '-U:username (for connection to server):_users' \ - '-h:alternate server:_hosts' \ - '(-a)-P+[destination printer]:printers:_printers' \ - '(-P)-a[all printers]' \ - '-l[long listing]' \ - '*:poll interval (+seconds):' - ;; - - (lprm) - _arguments \ - '-E[Force encryption]' \ - '-U:username (for connection to server):_users' \ - '-h:alternate server:_hosts' \ - '-P+[destination printer]:printers:_printers' \ - '*:job ids:_lp_list_jobs' - ;; - - (lpoptions) - _arguments \ - '-E[Force encryption]' \ - '-U:username (for connection to server):_users' \ - '-h:alternate server:_hosts' \ - '(-p -l -r -x)-d[set default printer]:printers:_printers' \ - '(-l -x)*-o:job options:_lp_job_options' \ - '(-d -x)-p[destination printer for options]:printers:_printers' \ - '(-d -o -r -x)-l[list options]' \ - '(-d -l -x)*-r:remove option:_lp_job_options' \ - '(-d -l -r -o)-x[remove all options]:printers:_printers' - ;; - - (lpstat) - _arguments \ - '-E[Force encryption]' \ - '-R[Shows print job ranking]' \ - '-U:username (for connection to server):_users' \ - '-W:which jobs:(completed not-completed)' \ - '-a[Show accepting state]:printers:_printers' \ - '-c:printer classes:' \ - '-d[Show current default destination]' \ - '-h:hostname (alternate server):_hosts' \ - '-l[long listing]' \ - '-o[destinations]:printers:_printers' \ - '-p:printers:_printers' \ - '-r[CUPS server running status]' \ - '-s[Status summary]' \ - '-t[All status info]' \ - '-u[list jobs by users]:users:_users' \ - '-v[show devices]:printers:_printers' - ;; - - (lpr) - _arguments \ - '-E[Force encryption]' \ - '-H:hostname (alternate server):_hosts' \ - '(-C -J -T)'-{C,J,T}':job name:' \ - '-P+[destination printer]:printers:_printers' \ - '-U:username (for connection to server):_users' \ - '-#[Copies]:copies (1--100):' \ - '-h[Disables banner printing]' \ - '-l[raw file]' \ - '-m[Send an email on job completion]' \ - '*-o:print job options:_lp_job_options' \ - '-p[format with shaded header incl. date, time etc.]' \ - '-q[Hold job for printing.]' \ - '-r[delete files after printing]' \ - '*:PS/PDF files:_pspdf' - ;; - - (lp) - _arguments \ - '-E[Force encryption]' \ - '-U[username (for connection to server)]:username:_users' \ - '-c[(OBSOLETE) copy to spool dir before printing]' \ - '-d[destination printer]:printers:_printers' \ - '-h:hostname (alternate server):_hosts' \ - '-i[job id to modify]:job id:' \ - '-m[Send an email on job completion]' \ - '-n[Copies]:copies (1--100):' \ - '*-o:print job options:_lp_job_options' \ - '-q[Job priority -- 1 (lowest) to 100 (highest)]:priority:' \ - '-s[Dont report resulting job IDs]' \ - '-t[Sets the job name]:job name:' \ - '-u[job submission username]:username:_users' \ - '-H[Time to print]:print time (or enter hh\:mm):(hold immediate restart resume)' \ - '-P:page range list:' \ - '*:PS/PDF files:_pspdf' - ;; -esac + +_lp() +{ + case $service in + (lpq) + _arguments \ + '-E[Force encryption]' \ + '-U:username (for connection to server):_users' \ + '-h:alternate server:_hosts' \ + '(-a)-P+[destination printer]:printers:_printers' \ + '(-P)-a[all printers]' \ + '-l[long listing]' \ + '*:poll interval (+seconds):' + ;; + + (lprm) + _arguments \ + '-E[Force encryption]' \ + '-U:username (for connection to server):_users' \ + '-h:alternate server:_hosts' \ + '-P+[destination printer]:printers:_printers' \ + '*:job ids:_lp_list_jobs' + ;; + + (lpoptions) + _arguments \ + '-E[Force encryption]' \ + '-U:username (for connection to server):_users' \ + '-h:alternate server:_hosts' \ + '(-p -l -r -x)-d[set default printer]:printers:_printers' \ + '(-l -x)*-o:job options:_lp_job_options' \ + '(-d -x)-p[destination printer for options]:printers:_printers' \ + '(-d -o -r -x)-l[list options]' \ + '(-d -l -x)*-r:remove option:_lp_job_options' \ + '(-d -l -r -o)-x[remove all options]:printers:_printers' + ;; + + (lpstat) + _arguments \ + '-E[Force encryption]' \ + '-R[Shows print job ranking]' \ + '-U:username (for connection to server):_users' \ + '-W:which jobs:(completed not-completed)' \ + '-a[Show accepting state]:printers:_printers' \ + '-c:printer classes:' \ + '-d[Show current default destination]' \ + '-h:hostname (alternate server):_hosts' \ + '-l[long listing]' \ + '-o[destinations]:printers:_printers' \ + '-p:printers:_printers' \ + '-r[CUPS server running status]' \ + '-s[Status summary]' \ + '-t[All status info]' \ + '-u[list jobs by users]:users:_users' \ + '-v[show devices]:printers:_printers' + ;; + + (lpr) + _arguments \ + '-E[Force encryption]' \ + '-H:hostname (alternate server):_hosts' \ + '(-C -J -T)'-{C,J,T}':job name:' \ + '-P+[destination printer]:printers:_printers' \ + '-U:username (for connection to server):_users' \ + '-#[Copies]:copies (1--100):' \ + '-h[Disables banner printing]' \ + '-l[raw file]' \ + '-m[Send an email on job completion]' \ + '*-o:print job options:_lp_job_options' \ + '-p[format with shaded header incl. date, time etc.]' \ + '-q[Hold job for printing.]' \ + '-r[delete files after printing]' \ + '*:PS/PDF files:_pspdf' + ;; + + (lp) + _arguments \ + '-E[Force encryption]' \ + '-U[username (for connection to server)]:username:_users' \ + '-c[(OBSOLETE) copy to spool dir before printing]' \ + '-d[destination printer]:printers:_printers' \ + '-h:hostname (alternate server):_hosts' \ + '-i[job id to modify]:job id:' \ + '-m[Send an email on job completion]' \ + '-n[Copies]:copies (1--100):' \ + '*-o:print job options:_lp_job_options' \ + '-q[Job priority -- 1 (lowest) to 100 (highest)]:priority:' \ + '-s[Dont report resulting job IDs]' \ + '-t[Sets the job name]:job name:' \ + '-u[job submission username]:username:_users' \ + '-H[Time to print]:print time (or enter hh\:mm):(hold immediate restart resume)' \ + '-P:page range list:' \ + '*:PS/PDF files:_pspdf' + ;; + esac +} + +_lp "$@" -- cgit 1.4.1