(command.CommandList children: [ (command.ShFunction name: getopts_long body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub token: <Id.VSub_Name ZSH_VERSION> suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{<z>}) ) ) } {<Id.Lit_RBracket ']'>} ) (C {<emulate>} {<-L>} {<sh>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<unset>} {<OPTLERR>} {<OPTLARG>}) (C {<Id.Lit_Colon ':'>})] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTLIND'))} arms: [ (case_arm pat_list: [ {(DQ )} {<0>} {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: {<1>} spids: [683] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [687] ) ] ) ] spids: [661 676 690 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Pound '$#'))} {<-lt>} {<2>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Simple words: [{<printf>} {(SQ <'getopts_long: not enough arguments\\n'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [697 712] ) ] ) (command.Simple words: [ {<command>} {<eval>} { (SQ <'\n'> <' case "$2" in\n'> <' *[!a-zA-Z_0-9]*|""|[0-9]*)\n'> <'\tprintf >&2 "getopts_long: invalid variable name: \\`%s'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) (SQ <'\\n" "$2"\n'> <'\treturn 1\n'> <'\t;;\n'> <' esac'>) } ] more_env: [(env_pair name:LC_ALL val:{<C>} spids:[738])] do_fork: T ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [ {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>} {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>} ] action: [ (command.Simple words: [ {<printf>} { (DQ <'getopts_long: invalid option specification: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <'%s\''> <Id.Lit_Other '\\'> <n> ) } {(DQ ($ Id.VSub_Number '$1'))} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [774 787 813 -1] ) ] ) (C {<Id.KW_Set set>} {<4>} {(DQ ($ Id.VSub_At '$@'))}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<-gt>} {(DQ ($ Id.VSub_Pound '$#'))} {<Id.Lit_RBracket ']'>} ) (BraceGroup children: [ (C {<eval>} {(SQ <'set -- "${'>) (DQ ($ Id.VSub_Number '$1')) (SQ <'}" "$@"'>) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) (C {<Id.Lit_LBracket '['>} { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$2')} right: {<Id.Lit_Digits 2>} ) ) ) } {<-gt>} {(DQ ($ Id.VSub_Pound '$#'))} {<Id.Lit_RBracket ']'>} ) ] ) ] ) ] action: [ (command.Simple words: [ {<printf>} { (DQ < 'getopts_long: long option specifications must end in an empty argument' > <Id.Lit_Other '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [851 926] ) ] ) (C {<eval>} {(SQ <'set -- "${'>) (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$2')} right: {<Id.Lit_Digits 2>} ) ) ) (SQ <'}" "$@"'>) } ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$2'))} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} { (DQ <'getopts_long: invalid long option name: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <'%s\''> <Id.Lit_Other '\\'> <n> ) } {(DQ ($ Id.VSub_Number '$2'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [982 985 1011 -1] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<0>} {<no_argument>}] spids: [1026 1031 1033 -1] ) (case_arm pat_list: [{<1>} {<required_argument>}] spids: [1036 1041 1043 -1] ) (case_arm pat_list: [{<2>} {<optional_argument>}] spids: [1046 1051 1053 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} { (DQ <'getopts_long: invalid long option type: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <'%s\''> <Id.Lit_Other '\\'> <n> ) } {(DQ ($ Id.VSub_Number '$1'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1056 1057 1083 -1] ) ] ) (C {<eval>} { (DQ <'shift 3; set '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$3')} right: {<Id.Lit_Digits 2>} ) ) ) (SQ <' "$@"'>) } ) ] ) ) (C {<shift>}) (C {<eval>} { (DQ <'shift; set '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$1')} right: {($ Id.VSub_DollarName '$OPTLIND')} ) ) ) (SQ <' "$@"'>) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<-le>} {(DQ ($ Id.VSub_Pound '$#'))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<eval>} {(SQ <'set -- "${'>) (DQ ($ Id.VSub_Number '$1')) (SQ <'}" "$@"'>)}) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<-->}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [1206] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1202 1203 1222 -1] ) (case_arm pat_list: [{<--> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [1230] ) ] ) ] spids: [1225 1227 1241 -1] ) (case_arm pat_list: [{<-> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {<->} ) ) ) } spids: [1250] ) ] ) (C {<shift>}) ] spids: [1244 1247 1263 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [1266 1267 1275 -1] ) ] ) ] spids: [1142 1155] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name OPTLPENDING> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: { (DQ (braced_var_sub token: <Id.VSub_Name OPTLPENDING> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {<'?'>} ) ) ) } ) ) } spids: [1305] ) ] ) (C {<Id.KW_Set set>} {<-->} {(DQ ($ Id.VSub_DollarName '$OPTLARG'))} {(DQ ($ Id.VSub_At '$@'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name OPTLPENDING> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'?'>}) ) ) } spids: [1332] ) ] ) (C {<unset>} {<OPTLARG>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [1366] ) ] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'bad option: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <-> ($ Id.VSub_Number '$1') <'\''> ) } spids: [1394] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$3'))} arms: [ (case_arm pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$4') <'=:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1426] ) ] ) ] spids: [1413 1415 1432 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$4') <'=\'?\''>)}) ] spids: [1435 1436 1461 -1] ) ] ) ] spids: [1387 1391 1467 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$3'))} arms: [ (case_arm pat_list: [ {<Id.Lit_Star '*'> (DQ ($ Id.VSub_Number '$1')) <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] action: [ (C {<eval>} { (DQ ($ Id.VSub_Number '$4') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <1> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} spids: [1529] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [1535] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [1538] ) ] ) ] spids: [1509 1522] ) ] ) ] spids: [1484 1491 1552 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> (DQ ($ Id.VSub_Number '$1')) <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} spids: [1588] ) ] ) (C {<eval>} { (DQ ($ Id.VSub_Number '$4') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <1> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [1606] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [1609] ) ] ) ] spids: [1568 1581] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$2')} right: {<Id.Lit_Digits 2>} ) ) ) } {<-gt>} {(DQ ($ Id.VSub_Pound '$#'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'option '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <-> ($ Id.VSub_Number '$1') <'\' requires an argument'> ) } spids: [1654] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$3'))} arms: [ (case_arm pat_list: [ {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>} ] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$4') <'=:'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1686] ) ] ) ] spids: [1673 1675 1692 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$4') <'=\'?\''>)} ) ] spids: [1695 1696 1721 -1] ) ] ) ] spids: [1627 1651] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [1730] ) ] ) (C {<eval>} { (DQ <'OPTLARG='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$2')} right: {<Id.Lit_Digits 2>} ) ) <'}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) (C {<eval>} { (DQ ($ Id.VSub_Number '$4') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <1> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) ] ) ] ) ] spids: [1556 1562 1779 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> (DQ ($ Id.VSub_Number '$1')) <Id.Lit_Star '*'>} ] action: [ (C {<eval>} { (DQ ($ Id.VSub_Number '$4') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <1> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) ] spids: [1783 1788 1806 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'bad option: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <-> ($ Id.VSub_Number '$1') <'\''> ) } spids: [1813] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$3'))} arms: [ (case_arm pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$4') <'=:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1845] ) ] ) ] spids: [1832 1834 1851 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$4') <'=\'?\''>)}) ] spids: [1854 1855 1880 -1] ) ] ) ] spids: [1809 1810 1886 -1] ) ] ) ] spids: [1471 1472 1892 -1] ) ] ) ] spids: [1285 1298] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1909] ) ] ) (C {<shift>}) (C {<Id.KW_Set set>} {<6>} { (DQ (braced_var_sub token: <Id.VSub_Name OPTLPENDING> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<-->}) ) ) } {(DQ ($ Id.VSub_At '$@'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [1935] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (C {<eval>} {(SQ <'set -- "${'>) (DQ ($ Id.VSub_Number '$1')) (SQ <'}" "$@"'>)}) (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) ] body: (command.DoGroup children: [ (command.Case to_match: { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPercent arg_word:{<'=*'>}) ) ) } arms: [ (case_arm pat_list: [{(DQ ($ Id.VSub_Number '$1'))}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: {<EXACT>} spids: [1993] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [1987 1990 1998 -1] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [ { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {<'=*'>} ) ) ) <Id.Lit_Star '*'> } ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} {<Id.Lit_Equals '='>} {<AMBIGUOUS>} {<Id.Lit_RBracket ']'>} ) (C {<eval>} {(SQ <'[ "${'>) (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLPENDING')} right: {<Id.Lit_Digits 1>} ) ) ) (SQ <'}" = "$1" ]'>) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: {<AMBIGUOUS>} spids: [2081] ) ] ) ] ) ] spids: [2029 2042] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [2104] ) ] ) ] ) ] spids: [2018 2026 2113 -1] ) ] ) (C {<eval>} { (DQ <'shift 2; set '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$2')} right: {<Id.Lit_Digits 2>} ) ) <' '> ) (SQ <'"$@"'>) } ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTLPENDING'))} arms: [ (case_arm pat_list: [{<AMBIGUOUS>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'option '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <--> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {<'=*'>} ) ) <'\' is ambiguous'> ) } spids: [2155] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$5'))} arms: [ (case_arm pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$6') <'=:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {<'=*'>} ) ) ) } spids: [2191] ) ] ) ] spids: [2178 2180 2201 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$6') <'=\'?\''>)}) ] spids: [2204 2205 2230 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [2236] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2151 2152 2244 -1] ) (case_arm pat_list: [{<EXACT>}] action: [ (C {<eval>} {(SQ <'set "${'>) (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$2')} right: {<Id.Lit_Digits 2>} ) ) ) (SQ <'}" "$@"'>) } ) ] spids: [2247 2248 2271 -1] ) (case_arm pat_list: [{(DQ )}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'bad option: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <--> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {<'=*'>} ) ) <'\''> ) } spids: [2279] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$5'))} arms: [ (case_arm pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$6') <'=:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {<'=*'>} ) ) ) } spids: [2315] ) ] ) ] spids: [2302 2304 2325 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$6') <'=\'?\''>)}) ] spids: [2328 2329 2354 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [2360] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [2274 2276 2368 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<shift>}) (C {<eval>} {(SQ <'set "${'>) (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLPENDING')} right: {<Id.Lit_Digits 1>} ) ) ) (SQ <'}" "${'>) (DQ ($ Id.VSub_DollarName '$OPTLPENDING')) (SQ <'}" "$@"'>) } ) ] spids: [2371 2372 2408 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLPENDING) op: assign_op.Equal rhs: (word.Empty) spids: [2415] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$4'))} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<1>} {<required_argument>} {<2>} {<optional_argument>}] action: [ (C {<eval>} { (DQ ($ Id.VSub_Number '$7') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <2> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 4> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {<'*='>} ) ) ) } spids: [2480] ) ] ) ] spids: [2452 2465 2490 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'option '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <--> ($ Id.VSub_Number '$2') <'\' doesn\'t allow an argument'> ) } spids: [2497] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$6'))} arms: [ (case_arm pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$7') <'=:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [2529] ) ] ) ] spids: [2516 2518 2535 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$7') <'=\'?\''>)}) ] spids: [2538 2539 2564 -1] ) ] ) ] spids: [2493 2494 2570 -1] ) ] ) ] spids: [2437 2440 2576 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<1>} {<required_argument>}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$5')} right: {<Id.Lit_Digits 5>} ) ) ) } {<-gt>} {(DQ ($ Id.VSub_Pound '$#'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLERR) op: assign_op.Equal rhs: { (DQ <'option '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <--> ($ Id.VSub_Number '$2') <'\' requires an argument'> ) } spids: [2628] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$6'))} arms: [ (case_arm pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<eval>} {(DQ ($ Id.VSub_Number '$7') <'=:'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLARG) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [2660] ) ] ) ] spids: [2647 2649 2666 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$OPTLERR'))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<eval>} {(DQ ($ Id.VSub_Number '$7') <'=\'?\''>)}) ] spids: [2669 2670 2695 -1] ) ] ) ] spids: [2601 2625] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$OPTLIND')} right: {<Id.Lit_Digits 1>} ) ) } spids: [2704] ) ] ) (C {<eval>} { (DQ <'OPTLARG='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_Number '$5')} right: {<Id.Lit_Digits 5>} ) ) <'}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) (C {<eval>} { (DQ ($ Id.VSub_Number '$7') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <2> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) ] ) ] spids: [2593 2598 2750 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<eval>} { (DQ ($ Id.VSub_Number '$7') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <2> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) ] spids: [2753 2754 2777 -1] ) ] ) ] spids: [2580 2581 2783 -1] ) ] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$test_getopts_long'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShFunction name: test_getopts_long body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:expected) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [2824] ) (assign_pair lhs: (sh_lhs_expr.Name name:had) op: assign_op.Equal rhs: (word.Empty) spids: [2829] ) ] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTLIND) op: assign_op.Equal rhs: {<1>} spids: [2835] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:err) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<Id.KW_Set set>} {<Id.Lit_Other '+'> <x>}) terminator: <Id.Op_Semi _> ) (command.Simple words: [{<getopts_long>} {(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) ) } spids: [2842] ) ] ) (command.Sentence child: (command.Simple words: [{<getopts_long>} {(DQ ($ Id.VSub_At '$@'))}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (C {<eval>} { (DQ <'opt='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:had) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$had') <'|'> ($ Id.VSub_DollarName '$opt') <'@'> (braced_var_sub token: <Id.VSub_Name OPTLARG> suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: {<unset>} ) ) <'@'> (braced_var_sub token: <Id.VSub_Name OPTLIND> suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: {<unset>} ) ) <'@'> (braced_var_sub token: <Id.VSub_Name OPTLERR> suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: {<unset>} ) ) <'@'> ($ Id.VSub_DollarName '$err') ) } spids: [2891] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:had) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$had') <'|'> (braced_var_sub token: <Id.VSub_Name OPTLIND> suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<unset>}) ) <'|'> ($ Id.VSub_DollarName '$err') ) } spids: [2922] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$had'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$expected'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<echo>} {<PASS>})] spids: [2937 2954] ) ] else_action: [ (C {<echo>} {<FAIL>}) (C {<printf>} {(SQ <'Expected: %s\\n Got: %s\\n'>)} {(DQ ($ Id.VSub_DollarName '$expected'))} {(DQ ($ Id.VSub_DollarName '$had'))} ) ] ) ] ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<read>} {<-r>} {<c>}] more_env: [(env_pair name:IFS val:(word.Empty) spids:[2991])] do_fork: T ) (command.Simple words: [{<read>} {<-r>} {<e>}] more_env: [(env_pair name:IFS val:(word.Empty) spids:[3001])] do_fork: T ) ] ) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (C {<printf>} {(SQ <'+ %-72s '>)} {(DQ ($ Id.VSub_DollarName '$c'))}) (C {<eval>} { (DQ <'test_getopts_long '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <e> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <' '> ($ Id.VSub_DollarName '$c') ) } ) ] ) redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'>) <OF>} here_end_span_id: 3233 stdin_parts: [ <': a\n'> < '|1|getopts_long: long option specifications must end in an empty argument\n' > <':a opt "" -a\n'> <'|a@unset@2@unset@|2|\n'> <':a opt "" -a b\n'> <'|a@unset@2@unset@|2|\n'> <':a opt "" -a -a\n'> <'|a@unset@2@unset@|a@unset@3@unset@|3|\n'> <':a opt "" -ab\n'> <'|a@unset@1@unset@|:@b@2@bad option: `-b\'@|2|\n'> <':a: opt "" -ab\n'> <'|a@b@2@unset@|2|\n'> <':a: opt "" -a b\n'> <'|a@b@3@unset@|3|\n'> <':a: opt "" -a -a\n'> <'|a@-a@3@unset@|3|\n'> <':a: opt "" -a\n'> <'|:@a@2@option `-a\' requires an argument@|2|\n'> <':a:: opt "" -a\n'> <'|a@unset@2@unset@|2|\n'> <':a:: opt "" -ab\n'> <'|a@b@2@unset@|2|\n'> <':a:: opt "" -a b\n'> <'|a@unset@2@unset@|2|\n'> <':ab: opt "" -ab c\n'> <'|a@unset@1@unset@|b@c@3@unset@|3|\n'> <':a:: opt "" -a -a\n'> <'|a@unset@2@unset@|a@unset@3@unset@|3|\n'> <':a:: opt "" -:a:\n'> <'|:@:@1@bad option: `-:\'@|a@:@2@unset@|2|\n'> <':= opt ""\n'> <'|1|\n'> <':: opt ""\n'> <'|1|getopts_long: invalid option specification: `::\'\n'> <': opt ""\n'> <'|1|\n'> <':a:a opt "" -a\n'> <'|:@a@2@option `-a\' requires an argument@|2|\n'> <':a::a opt "" -a\n'> <'|a@unset@2@unset@|2|\n'> <':ab:c:: opt "" -abc -cba -bac\n'> <'|a@unset@1@unset@|b@c@2@unset@|c@ba@3@unset@|b@ac@4@unset@|4|\n'> <': opt abc 0 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc no_argument "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc no_argument "" --abc=foo\n'> <'|:@abc@2@option `--abc\' doesn\'t allow an argument@|2|\n'> <': opt abc no_argument "" --abc foo\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc 1 "" --abc=foo\n'> <'|abc@foo@2@unset@|2|\n'> <': opt abc required_argument "" --abc foo\n'> <'|abc@foo@3@unset@|3|\n'> <': opt abc required_argument "" --abc=\n'> <'|abc@@2@unset@|2|\n'> <': opt abc required_argument "" --abc\n'> <'|:@abc@2@option `--abc\' requires an argument@|2|\n'> <': opt abc 2 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc optional_argument "" --abc=\n'> <'|abc@@2@unset@|2|\n'> <': opt abc optional_argument "" --abc=foo\n'> <'|abc@foo@2@unset@|2|\n'> <': opt abc optional_argument "" --abc --abc\n'> <'|abc@unset@2@unset@|abc@unset@3@unset@|3|\n'> <': opt abc 0 abcd 0 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc 0 abd 0 "" --ab\n'> <'|:@ab@2@option `--ab\' is ambiguous@|2|\n'> <': opt abc 0 abcd 0 "" --ab\n'> <'|:@ab@2@option `--ab\' is ambiguous@|2|\n'> <': opt abc 0 abc 1 "" --ab\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc 0 abc 1 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc 0 abc 1 "" --ab\n'> <'|abc@unset@2@unset@|2|\n'> <': opt abc 0 acd 0 "" --ab\n'> <'|abc@unset@2@unset@|2|\n'> < ':abc:d:e::f:: opt ab 0 ac 1 bc 2 cd 1 cde 2 "" -abcdef -a -f -c --a --a= --b=foo -fg\n' > < '|a@unset@1@unset@|b@unset@1@unset@|c@def@2@unset@|a@unset@3@unset@|f@unset@4@unset@|c@--a@6@unset@|:@a@7@option `--a\' is ambiguous@|bc@foo@8@unset@|f@g@9@unset@|9|\n' > <'a opt "" -a\n'> <'|a@unset@2@unset@|2|\n'> <'a opt "" -a b\n'> <'|a@unset@2@unset@|2|\n'> <'a opt "" -a -a\n'> <'|a@unset@2@unset@|a@unset@3@unset@|3|\n'> <'a opt "" -ab\n'> <'|a@unset@1@unset@|?@unset@2@bad option: `-b\'@bad option: `-b\'|2|\n'> <'a: opt "" -ab\n'> <'|a@b@2@unset@|2|\n'> <'a: opt "" -a b\n'> <'|a@b@3@unset@|3|\n'> <'a: opt "" -a -a\n'> <'|a@-a@3@unset@|3|\n'> <'a: opt "" -a\n'> < '|?@unset@2@option `-a\' requires an argument@option `-a\' requires an argument|2|\n' > <'a:: opt "" -a\n'> <'|a@unset@2@unset@|2|\n'> <'a:: opt "" -ab\n'> <'|a@b@2@unset@|2|\n'> <'a:: opt "" -a b\n'> <'|a@unset@2@unset@|2|\n'> <'a:: opt "" -a -a\n'> <'|a@unset@2@unset@|a@unset@3@unset@|3|\n'> <'a:: opt "" -:a:\n'> <'|?@unset@1@bad option: `-:\'@bad option: `-:\'|a@:@2@unset@|2|\n'> <'= opt ""\n'> <'|1|\n'> <': opt ""\n'> <'|1|\n'> <'\'\' opt ""\n'> <'|1|\n'> <'a:a opt "" -a\n'> < '|?@unset@2@option `-a\' requires an argument@option `-a\' requires an argument|2|\n' > <'a::a opt "" -a\n'> <'|a@unset@2@unset@|2|\n'> <'ab:c:: opt "" -abc -cba -bac\n'> <'|a@unset@1@unset@|b@c@2@unset@|c@ba@3@unset@|b@ac@4@unset@|4|\n'> <'\'\' opt abc 0 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc no_argument "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc no_argument "" --abc=foo\n'> < '|?@unset@2@option `--abc\' doesn\'t allow an argument@option `--abc\' doesn\'t allow an argument|2|\n' > <'\'\' opt abc no_argument "" --abc foo\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc 1 "" --abc=foo\n'> <'|abc@foo@2@unset@|2|\n'> <'\'\' opt abc required_argument "" --abc foo\n'> <'|abc@foo@3@unset@|3|\n'> <'\'\' opt abc required_argument "" --abc=\n'> <'|abc@@2@unset@|2|\n'> <'\'\' opt abc required_argument "" --abc\n'> < '|?@unset@2@option `--abc\' requires an argument@option `--abc\' requires an argument|2|\n' > <'\'\' opt abc 2 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc optional_argument "" --abc=\n'> <'|abc@@2@unset@|2|\n'> <'\'\' opt abc optional_argument "" --abc=foo\n'> <'|abc@foo@2@unset@|2|\n'> <'\'\' opt abc optional_argument "" --abc --abc\n'> <'|abc@unset@2@unset@|abc@unset@3@unset@|3|\n'> <'\'\' opt abc 0 abcd 0 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc 0 abd 0 "" --ab\n'> <'|?@unset@2@option `--ab\' is ambiguous@option `--ab\' is ambiguous|2|\n'> <'\'\' opt abc 0 abcd 0 "" --ab\n'> <'|?@unset@2@option `--ab\' is ambiguous@option `--ab\' is ambiguous|2|\n'> <'\'\' opt abc 0 abc 1 "" --ab\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc 0 abc 1 "" --abc\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc 0 abc 1 "" --ab\n'> <'|abc@unset@2@unset@|2|\n'> <'\'\' opt abc 0 acd 0 "" --ab\n'> <'|abc@unset@2@unset@|2|\n'> < 'abc:d:e::f:: opt ab 0 ac 1 bc 2 cd 1 cde 2 "" -abcdef -a -f -c --a --a= --b=foo -fg\n' > < '|a@unset@1@unset@|b@unset@1@unset@|c@def@2@unset@|a@unset@3@unset@|f@unset@4@unset@|c@--a@6@unset@|?@unset@7@option `--a\' is ambiguous@option `--a\' is ambiguous|bc@foo@8@unset@|f@g@9@unset@|9|\n' > <': \'\' \'\' a\n'> <'|1|getopts_long: invalid variable name: `\'\n'> <': 1a \'\'\n'> <'|1|getopts_long: invalid variable name: `1a\'\n'> <'- a\n'> <'|1|getopts_long: invalid option specification: `-\'\n'> <':a::a:abcd o ab 1 abc 1 abd 1 abe 1 abc 2 \'\' -aa --ab 1 --abc\n'> < '|a@a@2@unset@|ab@1@4@unset@|:@abc@5@option `--abc\' requires an argument@|5|\n' > <':\n'> <'|1|getopts_long: not enough arguments\n'> < '\'\\[$\' o -- 0 \' \' 1 \'#\' required_argument \'\' \'-\\\\\\[$\' --\\ =a --\\#=\\$\\$\n' > < '|\\@unset@1@unset@|\\@unset@1@unset@|\\@unset@1@unset@|[@unset@1@unset@|$@unset@2@unset@| @a@3@unset@|#@$$@4@unset@|4|\n' > <': o a 1 b 2 c\n'> < '|1|getopts_long: long option specifications must end in an empty argument\n' > <': o a 1 b 2\n'> < '|1|getopts_long: long option specifications must end in an empty argument\n' > <': o a 1 b 2 c 3 \'\' --c\n'> <'|1|getopts_long: invalid long option type: `3\'\n'> <'": " o " " 1 \'\' "- " "-- =1"\n'> <'| @unset@1@unset@| @unset@2@unset@| @1@3@unset@|3|\n'> <': o a 1 \'\' --c\n'> <'|:@c@2@bad option: `--c\'@|2|\n'> <': o a 1 \'\' --c=foo\n'> <'|:@c@2@bad option: `--c\'@|2|\n'> <': o ab 1 ac 1 ad 1 a 1 \'\' --a=1\n'> <'|a@1@2@unset@|2|\n'> ] ) ) ] ) ] spids: [2802 2815] ) ] ) ] )