diff options
author | Frank Terbeck <ft@bewatermyfriend.org> | 2011-12-01 10:02:04 +0100 |
---|---|---|
committer | Frank Terbeck <ft@bewatermyfriend.org> | 2011-12-01 10:02:04 +0100 |
commit | d8da5ea2f2bc5f837d0b364fff2636ebdb2f90ca (patch) | |
tree | 9fd9a57486ac4702608d92088ffd91f52971244f /Completion/Unix/Command/_lp | |
parent | af2bb4fdb09414d21922d3fafe4e3a0ac1332f01 (diff) | |
parent | 9d71f4c207fb34e8d64af0443c83231b1cc3b494 (diff) | |
download | zsh-d8da5ea2f2bc5f837d0b364fff2636ebdb2f90ca.tar.gz zsh-d8da5ea2f2bc5f837d0b364fff2636ebdb2f90ca.zip |
Merge commit 'zsh-4.3.13' into debian
Diffstat (limited to 'Completion/Unix/Command/_lp')
-rw-r--r-- | Completion/Unix/Command/_lp | 101 |
1 files changed, 76 insertions, 25 deletions
diff --git a/Completion/Unix/Command/_lp b/Completion/Unix/Command/_lp index 5d46a75bb..e0654e711 100644 --- a/Completion/Unix/Command/_lp +++ b/Completion/Unix/Command/_lp @@ -1,9 +1,9 @@ -#compdef lp lpr lpq lprm lpoptions lpstat +#compdef lp lpr lpq lprm lpoptions lpstat lpinfo lpadmin _lp_get_printer() { - # No reason to call _lp_get_printer when service == lpstat. Others matched - # below. + # No reason to call _lp_get_printer when service == lpstat or lpinfo. Others + # matched below. case $service in (lpr|lpq|lprm) [[ "$words" == (#I)*-P* ]] && printer="${${words##*(#I)-P( |)}%% *}" @@ -11,6 +11,9 @@ _lp_get_printer() (lp) [[ "$words" == (#I)*-d* ]] && printer="${${words##*(#I)-d( |)}%% *}" ;; + (lpadmin) + [[ "$words" == (#I)*-p* ]] && printer="${${words##*(#I)-p( |)}%% *}" + ;; (lpoptions) [[ "$words" == (#I)*-(d|p)* ]] && \ printer="${${words##*(#I)-(d|p)( |)}%% *}" @@ -29,6 +32,13 @@ _lp_job_options() lopts_no_args=(fitplot landscape) + if [[ $service == 'lpadmin' ]]; then + # Extra options from lpadmin man page. + lopts_with_args+=(cupsIPPSupplies cupsSNMPSupplies job-k-limit + job-page-limit job-quota-period job-sheets-default name name-default + port-monitor printer-error-policy printer-is-shared printer-op-policy) + fi + _lp_get_printer [[ -n "$printer" ]] && printer=(-p $printer) @@ -53,6 +63,12 @@ _lp_job_options() (scaling|cpi|lpi|page-(bottom|left|right|top)) return 0; # Don't complete anything ;; + (cupsIPPSupplies|cupsSNMPSupplies|printer-is-shared) + compadd "$@" true false + ;; + (printer-error-policy) + compadd "$@" abort-job retry-job retry-current-job stop-printer + ;; (*) compadd "$@" \ $(_call_program list-printer-options lpoptions $printer -l | \ @@ -136,9 +152,9 @@ _lp() '-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]' \ + '(-a)-P+[Destination printer]:printers:_printers' \ + '(-P)-a[All printers]' \ + '-l[Long listing]' \ '*:poll interval (+seconds):' ;; @@ -147,7 +163,7 @@ _lp() '-E[Force encryption]' \ '-U:username (for connection to server):_users' \ '-h:alternate server:_hosts' \ - '-P+[destination printer]:printers:_printers' \ + '-P+[Destination printer]:printers:_printers' \ '*:job ids:_lp_list_jobs' ;; @@ -156,12 +172,12 @@ _lp() '-E[Force encryption]' \ '-U:username (for connection to server):_users' \ '-h:alternate server:_hosts' \ - '(-p -l -r -x)-d[set default printer]:printers:_printers' \ + '(-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 -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' + '(-d -l -r -o)-x+[Remove all options]:printers:_printers' ;; (lpstat) @@ -170,18 +186,18 @@ _lp() '-R[Shows print job ranking]' \ '-U:username (for connection to server):_users' \ '-W:which jobs:(completed not-completed)' \ - '-a[Show accepting state]:printers:_printers' \ + '-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' \ + '-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' + '-u[List jobs by users]:users:_users' \ + '-v+[Show devices]:printers:_printers' ;; (lpr) @@ -189,38 +205,73 @@ _lp() '-E[Force encryption]' \ '-H:hostname (alternate server):_hosts' \ '(-C -J -T)'-{C,J,T}':job name:' \ - '-P+[destination printer]:printers:_printers' \ + '-P+[Destination printer]:printers:_printers' \ '-U:username (for connection to server):_users' \ '-#[Copies]:copies (1--100):' \ '-h[Disables banner printing]' \ - '-l[raw file]' \ + '-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.]' \ + '-p[Format with shaded header incl. date, time etc.]' \ '-q[Hold job for printing.]' \ - '-r[delete files after printing]' \ + '-r[Delete files after printing]' \ '*:PS/PDF files:_pspdf' ;; (lp) _arguments \ '-E[Force encryption]' \ - '-U[username (for connection to server)]:username:_users' \ + '-U[Username (for connection to server)]:username:_users' \ '-c[(OBSOLETE) copy to spool dir before printing]' \ - '-d[destination printer]:printers:_printers' \ + '-d+[Destination printer]:printers:_printers' \ '-h:hostname (alternate server):_hosts' \ - '-i[job id to modify]:job id:' \ + '-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' \ + '-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' ;; + + (lpinfo) + _arguments \ + '-E[Force encryption]' \ + '-U[Username (for connection to server)]:username:_users' \ + '-h:hostname (alternate server):_hosts' \ + '-l[Shows a "long" listing of devices or drivers]' \ + {--exclude-schemes,--include-schemes}'[Device/PPD schemes to filter from results]:scheme-list:' \ + '(-v --timeout)--device-id[IEEE-1284 device ID to match]:device-id-string:' \ + '(-v --timeout)--language:locale:' \ + '(-v --timeout)--product[Product to match]:name:' \ + '(-v --timeout)--make-and-model[Make and model to match]:name:' \ + '(-v --timeout)-m[List available drivers]' \ + '(-m --device-id --language --make-and-model --product)--timeout[Timeout when listing devices with -v]:timeout (seconds):' \ + '(-m --device-id --language --make-and-model --product)-v[List available devices]' + ;; + + (lpadmin) + _arguments \ + '-E[Force encryption/Enable destination]' \ + '-U[Username (for connection to server)]:username:_users' \ + '-h:hostname (alternate server):_hosts' \ + '(-p -R -x -o)-d+[Default printer]:printers:_printers' \ + '(-d -x)-p+[Configure printer]:printers:_printers' \ + '(-p -R -d -o)-x+[Delete printer]:printers:_printers' \ + '(-x -d)-R[Name-default]:name-default:' \ + '-c:printer classes:' \ + '-m:model:' \ + '(-x -d)*-o:options:_lp_job_options' \ + '-r[Remove from class]:class:' \ + '-u[Access policy]:access policy:' \ + '-v[Device-uri of printer queue]:device-uri:' \ + '-D[Text description of destination]:info:' \ + '-L[Location of the printer]:location:' \ + '-P[PPD file to use]:PPD file:_files "*.(#i)ppd(-.)"' esac } |