cmd=cvs

. ../include/common

cvs_repository_W='${XPC_repo-${CVSROOT-$(if test -r CVS/Repository; then cat CVS/Repository; fi)}}'

cvs_return_if_not_local_C="if test ! -d \"$cvs_repository_W\";then return;fi"

cvs_kflag_W='kv kvl k v o b'

cvs_rev_C="$cvs_return_if_not_local_C; cvs -Q log \"\${XPC_files[@]}\" 2>&1 | sed -n '/^symbolic names/, /^keyword substitiution:/s/^	\([^:]*\).*/\1/p;/^description/,\$s/^revision \([0-9.]\)/\1/p' #"

cvs_tag_C="$cvs_return_if_not_local_C; cvs -Q status -l -v \"\${XPC_files[@]}\" 2>&1 | sed -n '/Existing Tags:/,/===/{;/No Tags Exist/d;s/^	\([^ ]*\).*/\1/p;}'|sort -u; #"

cvs_modules_C="$cvs_return_if_not_local_C; cvs -l -Q rdiff -r BASE CVSROOT/modules 2>&1 | sed '/^+.#/d;/^[^+]/d;s/^..//;/^ *$/d;s/ \\+.*//' #"

cvs_states_C="$cvs_return_if_not_local_C; cvs -Q log \"\${XPC_files[@]}\" 2>&1 | sed -n 's/.*state: \([^;]\+\);.*/\1/p'; #"

cvs_user_C="$cvs_return_if_not_local_C; compgen -u -- \"\$XPC_PATTERN\"; #" 


optcomplete  $cmd help-commands help-options help-synonyms
optcomplete -d  $cmd allow-root
optcomplete -d -V repo  $cmd d 
optcomplete -c  $cmd e
optcomplete  $cmd a f H help l n q Q r t v version w x
optcomplete -W '1 2 3 4 5 6 7 8 9'  $cmd z
optcomplete -m arg_required  $cmd s
optcomplete -d  $cmd T
optcomplete -W "$cvs_kflag_W"  $cmd k
optcomplete -m subcommand,cut -W 'add admin annotate checkout commit diff edit editors export history import init log login logout rdiff release remove rtag status tag unedit update watch watchers'  $cmd NONOPT1
optcomplete -m getoptparse,long,getoptstop  $cmd

complete -F xpcompfunc cvs


cmd=cvs:admin

optcomplete -O, -C "$cvs_user_C"  $cmd a
optcomplete -f  $cmd A
optcomplete -m glued -C "$cvs_tag_C"  $cmd b
optcomplete -D 'comment leader (unused in cvs)'  $cmd c
optcomplete -m glued -O, -C "$cvs_user_C"  $cmd e
optcomplete  $cmd I
optcomplete  $cmd i
optcomplete -m glued -W "$cvs_kflag_W"  $cmd k
optcomplete -m glued -C "$cvs_rev_C"  $cmd l u
optcomplete  $cmd L
optcomplete -m rlhint -C "
case \"\$XPC_PATTERN\" in
*:*)	echo -e '\edescription_only=cvs checkin message' ;;
*)	$cvs_rev_C
	;;
esac #"  $cmd m
optcomplete -m rlhint -C "
case \"\$XPC_PATTERN\" in
*:*)	$cvs_rev_C 
	;;
*)	echo -e '\edescription_only=symbolic revision name' ;;
esac #"  $cmd n N
optcomplete -m rlhint -C "
case \"\$XPC_PATTERN\" in
*::*)	pref=\"\${XPC_PATTERN%%::*}\":: ;;
*:*)	pref=\"\${XPC_PATTERN%%:*}\": ;;
*)	$cvs_rev_C
	return ;;
esac
echo -e \"\eprefix=\$pref\"
$cvs_rev_C"  $cmd o
optcomplete  $cmd q
optcomplete -m rlhint -C "
case \"\$XPC_PATTERN\" in
*:*)	echo -e \"\eprefix=\${XPC_PATTERN%%:*}:\"
	$cvs_rev_C 
	;;
*)	echo -e 'Exp\nStab\nRel'
	;;
esac #"  $cmd s
optcomplete -m rlhint -C "
case \"\$XPC_PATTERN\" in
-*)	echo -e '\edescription_only=file description' ;;
	;;
*)	optcomplete -f -- \"\$XPC_PATTERN\"
	;;
esac #"  $cmd t
optcomplete  $cmd U
optcomplete -m short  $cmd

cmd=cvs:annotate

optcomplete -m arg_required  $cmd D
optcomplete  $cmd f
optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:checkout

optcomplete  $cmd A
optcomplete  $cmd c
optcomplete -m arg_required  $cmd D
optcomplete -d  $cmd d
optcomplete  $cmd f
optcomplete -C "$cvs_rev_C" $cmd j
optcomplete -W "$cvs_kflag_W" $cmd k
optcomplete  $cmd l
optcomplete  $cmd N
optcomplete  $cmd n
optcomplete  $cmd P
optcomplete  $cmd p
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -C "$cvs_modules_C"  $cmd NONOPT
optcomplete  $cmd s
optcomplete -m short  $cmd


cmd='cvs:commit'

optcomplete -f  $cmd F
optcomplete  $cmd f
optcomplete  $cmd l
optcomplete -m arg_required  $cmd m
optcomplete  $cmd n
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd='cvs:diff'

optcomplete -m arg_required $cmd D
optcomplete  $cmd l
optcomplete  $cmd N
optcomplete  $cmd R
optcomplete -C "$cvs_rev_C" $cmd r
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd='cvs:edit'

optcomplete -W 'edit unedit commit all none'  $cmd a
optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -f  $cmd NONOPT1
optcomplete -m short  $cmd


cmd='cvs:editors'

optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -f  $cmd NONOPT1
optcomplete -m short  $cmd


cmd=cvs:export

optcomplete -m arg_required  $cmd D
optcomplete -d  $cmd d
optcomplete  $cmd f
optcomplete -W "$cvs_kflag_W" $cmd k
optcomplete  $cmd l
optcomplete  $cmd N
optcomplete  $cmd n
optcomplete  $cmd P
optcomplete  $cmd p
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -C "$cvs_modules_C"  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:history

optcomplete  $cmd a
optcomplete -m arg_required $cmd b
optcomplete  $cmd c
optcomplete -m arg_required  $cmd D
optcomplete  $cmd e
optcomplete  $cmd l
optcomplete -C "$cvs_modules_C"  $cmd m
optcomplete -C "$cvs_modules_C"  $cmd n
optcomplete  $cmd o
optcomplete -C "$cvs_rev_C"  $cmd r
optcomplete  $cmd T
optcomplete -C "$cvs_tag_C"  $cmd t
optcomplete -C "$cvs_user_C"  $cmd u
optcomplete  $cmd w
optcomplete -O0 -W 'TOEFWUCGMAR'  $cmd x
optcomplete -m arg_required  $cmd z
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:import

optcomplete -m noappend -W '1.1.'  $cmd b
optcomplete  $cmd d
optcomplete -C "$cvs_kflag_W"  $cmd k
optcomplete -f  $cmd I
optcomplete -f  $cmd W
optcomplete -m short  $cmd


cmd='cvs:log'

optcomplete  $cmd b
optcomplete -m arg_required $cmd D
optcomplete  $cmd h
optcomplete  $cmd N
optcomplete  $cmd R
optcomplete -m glued -C "$cvs_rev_C" $cmd r
optcomplete -C "$cvs_states_C" $cmd s
optcomplete -m arg_optional,glued -C "$cvs_user_C" $cmd w
optcomplete -f  $cmd NONOPT1
optcomplete -m short  $cmd


cmd=cvs:rdiff

optcomplete  $cmd c
optcomplete -m arg_required  $cmd D
optcomplete  $cmd f
optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete  $cmd s
optcomplete  $cmd t
optcomplete  $cmd u
optcomplete -C "$cvs_modules_C"  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:release

optcomplete  $cmd d
optcomplete -m short  $cmd
optcomplete -d  $cmd NONOPT1


cmd=cvs:remove

optcomplete  $cmd f
optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:rtag

optcomplete  $cmd a
optcomplete  $cmd b
optcomplete -m arg_required  $cmd D
optcomplete  $cmd d
optcomplete  $cmd F
optcomplete  $cmd f
optcomplete  $cmd l
optcomplete  $cmd n
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -C "$cvs_modules_C"  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:status

optcomplete  $cmd l
optcomplete  $cmd R
optcomplete  $cmd V
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:tag

optcomplete  $cmd b
optcomplete  $cmd c
optcomplete -m arg_required  $cmd D
optcomplete  $cmd d
optcomplete  $cmd F
optcomplete  $cmd f
optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -f -m array -V files  $cmd NONOPT
optcomplete -m short,getoptparse  $cmd


cmd=cvs:unedit

optcomplete -W 'edit unedit commit all none'  $cmd a
optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:update

optcomplete  $cmd A
optcomplete  $cmd C
optcomplete -m arg_required  $cmd D
optcomplete  $cmd d
optcomplete  $cmd f
optcomplete -f  $cmd I
optcomplete -C "$cvs_rev_C" $cmd j
optcomplete -W "$cvs_kflag_W" $cmd k
optcomplete  $cmd l
optcomplete  $cmd P
optcomplete  $cmd p
optcomplete  $cmd R
optcomplete -C "$cvs_tag_C"  $cmd r
optcomplete -f  $cmd W
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:watch

optcomplete -T '-n "$XPC_switch"' -W 'edit unedit commit all none'  $cmd a
optcomplete -T '-n "$XPC_switch"' $cmd l
optcomplete -T '-n "$XPC_switch"' $cmd R
optcomplete -W 'on off add remove' -Vswitch  $cmd NONOPT1
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


cmd=cvs:watchers

optcomplete  $cmd l
optcomplete  $cmd R
optcomplete -f  $cmd NONOPT
optcomplete -m short  $cmd


unset cmd ${!cvs_*} ${!xpc_*}