From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26500 invoked by alias); 2 Nov 2016 20:13:20 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39810 Received: (qmail 276 invoked from network); 2 Nov 2016 20:13:20 -0000 X-Qmail-Scanner-Diagnostics: from rcpt-mqugw.biglobe.ne.jp by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(133.208.100.1):SA:0(-2.3/5.0):. Processed in 0.381399 secs); 02 Nov 2016 20:13:20 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RP_MATCHES_RCVD,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: takimoto-j@kba.biglobe.ne.jp X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at spf01.biglobe.ne.jp designates 133.208.100.1 as permitted sender) X-Biglobe-Sender: From: "Jun T." Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: [PATCH] new completion for jot Message-Id: Date: Thu, 3 Nov 2016 04:23:09 +0900 To: zsh-workers@zsh.org Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) X-Mailer: Apple Mail (2.1878.6) X-Biglobe-Spnum: 53450 A new completion for jot command (BSD and macOS). diff --git a/Completion/BSD/Command/_jot b/Completion/BSD/Command/_jot new file mode 100644 index 0000000..67116d3 --- /dev/null +++ b/Completion/BSD/Command/_jot @@ -0,0 +1,80 @@ +#compdef jot + +local curcontext=3D"$curcontext" state state_descr line ret=3D1 +local -A opt_args + +_arguments -s -C : \ + '(-b)-r[generate random data instead of the default sequential data]' = \ + '(-c -p -r -w)-b+[just print the specified word repeatedly]:word:' \ + '(-b -c -p)-w+[specify output format as in printf]:output = format:->format' \ + '(-b -p -w)-c[same as -w %c]' \ + '-s+[separate the data by the specified string instead of = newline]:string:' \ + '-n[do not print the final newline]' \ + '(-b -c -w)-p+[specify number of digits after decimal = point]:precision:' \ + '(-)1: :_guard "^-*" "number of data"' \ + '2::lower bound:' \ + '3::upper bound:' \ + '4:: :->lastarg' && ret=3D0 + +case $state in + (format) + local -a flags digits conversions + flags=3D( + '#:alternative form' + ' :leave a blank before a positive number' + '+:always place a sign before a number' + '-:left adjust' + ) + digits=3D(0 1 2 3 4 5 6 7 8 9 .) + conversions=3D( + {d,i}':signed decimal' + 'o:unsigned octal' + 'u:unsigned decimal' + {x,X}':unsigned hexadecimal' + 'l'{d,i}':long signed decimal' + 'lo:long unsigned octal' + 'lu:long unsigned decimal' + 'l'{x,X}':long unsigned hexadecimal' + 'f:double number' + {e,E}':double number in scientific notation' + {g,G}':use %f or %e, whichever is more appropriate' + 'c:character' + ) + + if compset -P '[^%]#%'; then + # flags: (|\#)(| )(|+|-) + compset -P '(\#|\\\#)' && flags=3D( ${(@)flags:#\#*} ) + compset -P '( |\\ )' && flags=3D( ${(@)flags:#(\#| )*} ) + compset -P '(+|-)' || compset -P '[0-9]##' && flags=3D() + # width.precision: [0-9]#(|.[0-9]#) + if compset -P '.'; then + flags=3D() + digits=3D( ${(@)digits:#.} ) + fi + compset -P '[0-9]#' + # conversion specifier: ((|l)[diouxX]|[feEgGc]) + if compset -P '((|l)[diouxX]|[feEgGc])'; then + _message -e format-rest 'rest of the format' && ret=3D0 + else + (( $#flags )) && _describe -t flags 'flag' flags -S '' && ret=3D0 + _describe -t width-precision 'width.precision' digits -S '' && = ret=3D0 + _describe -t conversion-specifiers 'conversion specifier' \ + conversions -S '' && ret=3D0 + fi + else + local expl + compset -P '*' + _wanted start-specification expl 'start specification' \ + compadd -S '' % && ret=3D0 + fi + ;; + (lastarg) + if (( $+opt_args[-r] )); then + _message -e seeds 'random number seed' && ret=3D0 + else + _message -e steps 'step size' && ret=3D0 + fi + ;; +esac + +return ret