(AndOr OP_AND_IF (FunctionDef _usermod [] (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 -d]}, {[LIT_CHARS --home]}, {[LIT_CHARS -e]}, {[LIT_CHARS --expiredate]}, {[LIT_CHARS -f]}, {[LIT_CHARS --inactive]}, {[LIT_CHARS -h]}, {[LIT_CHARS --help]}, {[LIT_CHARS -l]}, {[LIT_CHARS --login]}, {[LIT_CHARS -p]}, {[LIT_CHARS --password]}, {[LIT_CHARS -u]}, {[LIT_CHARS --uid]}, {[LIT_CHARS -Z]}, {[LIT_CHARS --selinux-user]}], [{[LIT_CHARS -g]}, {[LIT_CHARS --gid]}], [{[LIT_CHARS -G]}, {[LIT_CHARS --groups]}], [{[LIT_CHARS -R]}, {[LIT_CHARS --root]}], [{[LIT_CHARS -s]}, {[LIT_CHARS --shell]}]] (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 _filedir]} {[LIT_CHARS -d]} ) (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]} ) ) ) (= scope= flags=0 words=[] bindings=[('COMPREPLY', {[Array {[ComSub (Com {[LIT_CHARS compgen]} {[LIT_CHARS -u]} {[LIT_CHARS --]} {[DQ [VarSub cur]]})]}]})]) ) ) (Com {[LIT_CHARS complete]} {[LIT_CHARS -F]} {[LIT_CHARS _usermod]} {[LIT_CHARS usermod]} ) )