Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: new sabcmd completion
- X-seq: zsh-workers 18890
- From: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- To: Zsh workers <zsh-workers@xxxxxxxxxx>
- Subject: PATCH: new sabcmd completion
- Date: Wed, 23 Jul 2003 13:05:55 +0200
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
New completion function for sabcmd (an xslt processor (like xsltproc)
from the sablotron package).
#compdef sabcmd
local curcontext="$curcontext" state mode line expl ret=1
typeset -A opt_args
local mopts='(-c -x -s -? -v --chain-xsl --batch-xml --batch-xsl --help --version)'
_arguments -C \
'(-b --base)'{-b,--base=}'[specify base URI]:URI' \
'(-)--debug-options[show help on debug options]' \
'(- *)'{-\?,--help}'[show help information]' \
'(-L --log-file)'{-L,--log-file=}'[specify log file, turn on logging]:log file:_files' \
'(-m --measure)'{-m,--measure}'[measure the processing time]' \
'(- *)'{-v,--version}'[display version information]' \
'--debugger[run the xslt debugger]' \
$mopts{-c,--chain-xsl}'[single input file, multiple chained stylesheets]' \
$mopts{-x,--batch-xml}'[single input file, multiple stylesheets]' \
$mopts{-s,--batch-xsl}'[multiple input files, single stylesheet]' \
'*: :->arguments' && ret=0
if [[ -n "$state" ]]; then
mode="${opt_args[(i)-c|--chain-xsl]:+chain}${opt_args[(i)-x|--batch-xml]:+batch-x}${opt_args[(i)-s|--batch-xsl]:+batch-s}"
[[ $mode = (chain|batch-[xs]) ]] || mode=default
_tags assignments files
while _tags; do
if _requested assignments; then
if [[ -prefix *= ]]; then
_message -e value value
else
_message -e parameter 'parameter name'
fi
fi
if _requested files; then
case $mode:${#words[1,CURRENT-1]:#(-*|*=*)}; in
default:1|chain:<3->|batch-x:2|batch-s:1)
_description files expl stylesheet
_files "$expl[@]" -g \*.xsl && ret=0
;;
default:2|chain:1|batch-x:1|batch-s:2)
_description files expl 'input file'
_files "$expl[@]" && ret=0
;;
default:3|chain:2|batch-x:<3->|batch-s:<3->)
_description files expl 'output file'
_files "$expl[@]" && ret=0
;;
esac
fi
(( ret )) || break
done
fi
return ret
________________________________________________________________________
This email has been scanned for all viruses by the MessageLabs Email
Security System. For more information on a proactive email security
service working around the clock, around the globe, visit
http://www.messagelabs.com
________________________________________________________________________
Messages sorted by:
Reverse Date,
Date,
Thread,
Author