
. ../include/common
. ../include/process


bash_jobspec_C="jobs |sed 's/^\[\([0-9]\+\)\]. \+[^ ]\+ \+\([^ ]\+\).*/%\1\\
%\2/'"
bash_rl_keyseq_C='bind -p | sed -n '\''/:/{;s/: .*//;s/\\/\\\\/g;s/"/\\"/g;p;}'\'

xpcomp_modes_go_W='long longonly short singledash'
xpcomp_modes_cmd_W="$xpcomp_modes_go_W getoptparse getoptstop"
xpcomp_modes_opt_W='file arg_required arg_optional arg_none suboptions'



cmd=bash

optcomplete -c  $cmd c
optcomplete  $cmd r
optcomplete  $cmd i
optcomplete  $cmd s
optcomplete  $cmd v
optcomplete  $cmd x
optcomplete  $cmd D
optcomplete  $cmd dump-po-strings
optcomplete  $cmd dump-strings
optcomplete  $cmd help
optcomplete  $cmd login
optcomplete  $cmd noediting
optcomplete  $cmd noprofile
optcomplete  $cmd norc
optcomplete  $cmd posix
optcomplete -f  $cmd rcfile
optcomplete  $cmd restricted
optcomplete  $cmd verbose
optcomplete  $cmd version
optcomplete -m long  $cmd

complete -F xpcompfunc $cmd


cmd=.

optcomplete -m cut -f -c  $cmd NONOPT1
optcomplete -m short,getoptparse  $cmd


cmd=source

optcomplete -m cut -f -c  $cmd NONOPT1
optcomplete -m short,getoptparse  $cmd


cmd=alias

optcomplete  $cmd p
optcomplete -m noappend -C 'if test -z "${XPC_PATTERN//[^=]/}"; then compgen -a -- "$XPC_PATTERN"; fi #'  $cmd NONOPT
optcomplete -m short  $cmd


cmd=bg

optcomplete -C "$bash_jobspec_C #"  $cmd NONOPT


cmd=bind

optcomplete -W 'emacs emacs-standard emacs-meta emacs-ctlx vi vi-command vi-insert'  $cmd m
optcomplete  $cmd l p P v V s S
optcomplete -f  $cmd f
optcomplete -A binding  $cmd q u
optcomplete -C "$bash_rl_keyseq_C #"  $cmd r
optcomplete -m noappend -C "
if test -z \"\${XPC_PATTERN//[^:]/}\"; 
then  
	$bash_rl_keyseq_C
fi #"  $cmd x


cmd=builtin

optcomplete  -b  $cmd NONOPT1


cmd=cd

optcomplete  $cmd L P
optcomplete -d  $cmd NONOPT


cmd=command

optcomplete  $cmd v p V
optcomplete -m cut -c  $cmd NONOPT1
optcomplete -m getoptparse  $cmd


for cmd in compgen complete optcomplete
do
	optcomplete -W 'alias arrayvar binding builtin command directory disabled enabled export file function helptopic hostname job keyword running setopt shopt signal stopped user variable'  $cmd A
	optcomplete  $cmd a b c d e f j k v u
	optcomplete -f  $cmd G
	optcomplete -m arg_required  $cmd W
	optcomplete -c  $cmd C
	optcomplete -A function  $cmd F
	optcomplete -m arg_required  $cmd X P S
done


cmd=complete

optcomplete  $cmd pr
optcomplete -c  $cmd NONOPT


for name in declare typeset local
do
	optcomplete -m plusopt  $cmd i r x a f F
	optcomplete  $cmd p
	optcomplete -m noappend -C 'if test -z "${XPC_PATTERN//[^=]/}"; then compgen -A function -v -- "$XPC_PATTERN"; fi #'  $cmd NONOPT
	optcomplete -m plusopt  $cmd
done 


cmd=dir

optcomplete  $cmd c l p v
optcomplete -m plusopt  $cmd n
optcomplete -m plusopt  $cmd


cmd=disown

optcomplete  $cmd a r h
optcomplete -C "$bash_jobspec_C #"  $cmd NONOPT


cmd=do

optcomplete -c -m cut  $cmd NONOPT


cmd=echo

optcomplete  $cmd n e E


cmd=enable

optcomplete  $cmd a d n p s
optcomplete -f  $cmd f
optcomplete -b  $cmd NONOPT


cmd=exec

optcomplete  $cmd c l
optcomplete -m arg_required  $cmd a
optcomplete -m cut -c  $cmd NONOPT1


cmd=export

optcomplete  $cmd p n f
optcomplete -m noappend -C 'if test -z "${XPC_PATTERN//[^=]/}"; then compgen -A function -v -- "$XPC_PATTERN"; fi #'  $cmd NONOPT


cmd=fc

optcomplete -c  $cmd e
optcomplete  $cmd l n r s
optcomplete -c  $cmd NONOPT


cmd=fg

optcomplete -C "$bash_jobspec_C #"  $cmd NONOPT


cmd=getopts

optcomplete -v  $cmd NONOPT2


cmd=hash

optcomplete  $cmd r
optcomplete -f  $cmd p


cmd=help

optcomplete  $cmd s
optcomplete -A helptopic  $cmd NONOPT


cmd=history

optcomplete  $cmd c a n r w p s
optcomplete -W "$xpc_digit_W" $cmd d


cmd=jobs

optcomplete  $cmd l n p r s
optcomplete -c -m cut  $cmd x
optcomplete -C "$bash_jobspec_C #"  $cmd NONOPT


cmd=kill

xpc_sig_names_W=$(kill -l |sed 's/[^S]*SIG\([^ 	]\+\)[ 	]*/SIG\1 \1 /g;')
xpc_sig_numbers_W=$(kill -l $xpc_sig_names_W |uniq )
xpc_sig_C="echo -e $(echo $xpc_sig_names_W |sed 's/\([^ ]\+\) /\1\\\\n/g');"

optcomplete -V sig -T '-z "${XPC_sig+x}${XPC_pid+x}"'  $cmd $xpc_sig_names_W
optcomplete -C "$xpc_sig_C #"  $cmd s
optcomplete -C "$xpc_sig_C #"  $cmd l
optcomplete -V pid -C " $bash_jobspec_C; $xpc_pids_C #"  $cmd NONOPT
optcomplete -m getoptparse,getoptstop,singledash  $cmd


cmd=popd

optcomplete  $cmd n


cmd=pushd

optcomplete  $cmd n
optcomplete -d  $cmd NONOPT1


cmd=pwd

optcomplete  $cmd P L


cmd=read

optcomplete  $cmd e r s
optcomplete -A arrayvar  $cmd a
optcomplete -m arg_required  $cmd d p
optcomplete -O0 -W "$xpc_digit_W"  $cmd n t
optcomplete -v  $cmd NONOPT


cmd=readonly

optcomplete  $cmd a p 
optcomplete -V f  $cmd f
optcomplete -C "if test -n \"\$XPC_f\"; then compgen -f -- \"\$XPC_PATTERN\"; else compgen -v -- \"\$XPC_PATTERN\"; fi #"  $cmd NONOPT


cmd=set

optcomplete -m plusopt  $cmd a b e f h k m n p t u v x B C H P
optcomplete  $cmd -
optcomplete -m plusopt -A setopt  $cmd o 
optcomplete -m plusopt,short  $cmd


cmd=shift

optcomplete -O0 -W "$xpc_digit_W"  $cmd NONOPT1
optcomplete -m arg_none  $cmd NONOPT


cmd=shopt

optcomplete -m plusopt $cmd p s u q
optcomplete -m plusopt -V o  $cmd o
optcomplete -C 'shopt ${XPC_o+-o} | awk '\''{print $1}'\'' #'  $cmd NONOPT
optcomplete -m plusopt,short,getoptparse  $cmd


cmd=suspend

optcomplete  $cmd f 
optcomplete -m arg_none  $cmd NONOPT


cmd=then

optcomplete -c -m cut  $cmd NONOPT


cmd=trap

optcomplete  $cmd l p
optcomplete -c -A signal  $cmd NONOPT1
optcomplete -A signal  $cmd NONOPT


cmd=type

optcomplete  $cmd a t p
optcomplete -c $cmd NONOPT


cmd=ulimit

optcomplete  $cmd a S H p
optcomplete -O0 -W "$xpc_digit_W"   $cmd c d f l m n s t u v


cmd=umask

optcomplete  $cmd p S
optcomplete -C "$xpc_mode_9_C"  $cmd NONOPT1


cmd=unalias

optcomplete  $cmd a
optcomplete -A alias  $cmd NONOPT


cmd=unset

optcomplete -V f  $cmd f
optcomplete  $cmd v
optcomplete -C "if test -n \"\$XPC_f\"; then compgen -f -- \"\$XPC_PATTERN\"; else compgen -v -- \"\$XPC_PATTERN\"; fi #"  $cmd NONOPT


cmd=wait

optcomplete -C "$bash_jobspec_C; $xpc_pids_C #"  $cmd NONOPT1
optcomplete -m arg_none  $cmd NONOPT



cmd=xpcomp

optcomplete  -f  $cmd u l w D
optcomplete  $cmd X

complete -F xpcompfunc $cmd


cmd=optcomplete

optcomplete -O, -W "$xpcomp_modes_opt_W $xpcomp_modes_cmd_W"  $cmd m
optcomplete -m arg_required  $cmd V T O
optcomplete  $cmd r p
optcomplete -c  $cmd NONOPT1
optcomplete -m short,getoptparse  $cmd 

complete -F xpcompfunc $cmd



cmd=man2xpcomp

optcomplete -W "$xpcomp_modes_go_W"  $cmd m  
optcomplete -V c -C 'whatis -w "$XPC_PATTERN"\* 2>&1 | grep -e "^[[:alnum:]][[:print:]]* ([168]" | cut -d\  -f1  #'  $cmd c
optcomplete -C "
if test -n \"\${XPC_c+x}\"; then
	man \"\$XPC_c\" 2>&1 | sed -n $'/^[A-Z][ A-Z\b]*$/{;s/.\b//g;s/ /\\\\\\\\ /;p;}'
fi #"  $cmd S
optcomplete -m short,getoptparse  $cmd

complete -F xpcompfunc $cmd


unset cmd ${!xpc_*} bash_jobspec_C bash_rl_keyseq_C ${!xpcomp_modes*}
