(AndOr OP_AND_IF (FunctionDef _useradd [] (List (= scope= flags=0 words=[{[LIT_CHARS cur]}, {[LIT_CHARS prev]}, {[LIT_CHARS words]}, {[LIT_CHARS cword]}, {[LIT_CHARS split]}] bindings=[]) (AndOr OP_OR_IF (Com {[LIT_CHARS _init_completion]} {[LIT_CHARS -s]} ) (Com {[LIT_CHARS return]} ) ) (Case to_match={[VarSub prev]}, pat_word_list=[[{[LIT_CHARS -c]}, {[LIT_CHARS --comment]}, {[LIT_CHARS -h]}, {[LIT_CHARS --help]}, {[LIT_CHARS -e]}, {[LIT_CHARS --expiredate]}, {[LIT_CHARS -f]}, {[LIT_CHARS --inactive]}, {[LIT_CHARS -K]}, {[LIT_CHARS --key]}, {[LIT_CHARS -p]}, {[LIT_CHARS --password]}, {[LIT_CHARS -u]}, {[LIT_CHARS --uid]}, {[LIT_CHARS -Z]}, {[LIT_CHARS --selinux-user]}], [{[LIT_CHARS -b]}, {[LIT_CHARS --base-dir]}, {[LIT_CHARS -d]}, {[LIT_CHARS --home-dir]}, {[LIT_CHARS -k]}, {[LIT_CHARS --skel]}, {[LIT_CHARS -R]}, {[LIT_CHARS --root]}], [{[LIT_CHARS -g]}, {[LIT_CHARS --gid]}], [{[LIT_CHARS -G]}, {[LIT_CHARS --groups]}], [{[LIT_CHARS -s]}, {[LIT_CHARS --shell]}]] (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) (List (Com {[LIT_CHARS _filedir]} {[LIT_CHARS -d]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS _gids]} ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (= scope= flags=0 words=[] bindings=[('prefix', {[SQ ]})]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub cur]} {[LIT_OTHER "*"] [LIT_COMMA ","] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [VarSub cur transform_ops=[VS_UNARY_PERCENT {[LIT_CHARS ",*"]}]][LIT_CHARS ","]]})]) ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -P]} {[DQ [VarSub prefix]]} {[LIT_CHARS -g]} {[LIT_CHARS --]} {[DQ [VarSub cur transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*,"]}]]]})]}]})]) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS _shells]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (AndOr OP_AND_IF (Com {[VarSub split]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub cur]]} {[LIT_CHARS -] [LIT_OTHER "*"]}}) (List (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -W]} {[SQ ]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) ) ) (Com {[LIT_CHARS complete]} {[LIT_CHARS -F]} {[LIT_CHARS _useradd]} {[LIT_CHARS useradd]} ) )