(CommandList children: [ (FuncDef name: add_to_manpath body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$manpath'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (Lit_Other ':') ($ VSub_Number '$1')}] action: [ (C {(decho)} {(DQ (' Skipping duplicate manpath entry ') ($ VSub_Number '$1'))} {(2)} ) ] spids: [107 110 121 -1] ) (case_arm pat_list: [{($ VSub_Number '$1') (Lit_Other ':') (Lit_Other '*')}] action: [ (C {(decho)} {(DQ (' Skipping duplicate manpath entry ') ($ VSub_Number '$1'))} {(2)} ) ] spids: [124 127 138 -1] ) (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other ':') ($ VSub_Number '$1') (Lit_Other ':') (Lit_Other '*') } ] action: [ (C {(decho)} {(DQ (' Skipping duplicate manpath entry ') ($ VSub_Number '$1'))} {(2)} ) ] spids: [141 146 157 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ (' Adding ') ($ VSub_Number '$1') (' to manpath'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manpath) op: Equal rhs: {(DQ ($ VSub_Name '$manpath') (':') ($ VSub_Number '$1'))} spids: [188] ) ] spids: [188] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [-1 176] ) ] spids: [-1 201] ) ] spids: [160 161 204 -1] ) ] spids: [98 104 207] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [95] ) spids: [91 94] ) (FuncDef name: build_manlocales body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANLOCALES'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [-1 248] ) ] spids: [-1 254] ) (C {(parse_configs)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANLOCALES) op: Equal rhs: { (BracedVarSub token: <VSub_Name manlocales> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(':')}) spids: [267 271] ) } spids: [266] ) ] spids: [266] ) (C {(decho)} {(DQ ('Available manual locales: ') ($ VSub_Name '$MANLOCALES'))}) ] spids: [228] ) spids: [224 227] ) (FuncDef name: build_manpath body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal spids:[300])] spids: [298] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANPATH'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ ($ VSub_Name '$MANPATH'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (Lit_Other ':')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PREPEND_MANPATH) op: Equal rhs: {(${ VSub_Name MANPATH)} spids: [337] ) ] spids: [337] ) ] spids: [333 335 342 -1] ) (case_arm pat_list: [{(Lit_Other ':') (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:APPEND_MANPATH) op: Equal rhs: {(${ VSub_Name MANPATH)} spids: [349] ) ] spids: [349] ) ] spids: [345 347 354 -1] ) (case_arm pat_list: [{(Lit_Other '*') (Lit_Other ':') (Lit_Other ':') (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PREPEND_MANPATH) op: Equal rhs: { (BracedVarSub token: <VSub_Name MANPATH> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('::*')}) spids: [365 369] ) } spids: [364] ) ] spids: [364] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:APPEND_MANPATH) op: Equal rhs: { (BracedVarSub token: <VSub_Name MANPATH> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*::')}) spids: [373 377] ) } spids: [372] ) ] spids: [372] ) ] spids: [357 361 380 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [383 384 388 -1] ) ] spids: [324 330 391] ) ] spids: [-1 321] ) ] spids: [-1 394] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$PREPEND_MANPATH'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [414] ) ] spids: [414] ) (ForEach iter_name: path iter_words: [{($ VSub_Name '$PREPEND_MANPATH')}] do_arg_iter: False body: (DoGroup children: [(C {(add_to_manpath)} {(DQ ($ VSub_Name '$path'))})] spids: [427 437] ) spids: [423 425] ) (C {(unset)} {(IFS)}) ] spids: [-1 411] ) ] spids: [-1 445] ) (C {(search_path)}) (C {(decho)} {(DQ ('Adding default manpath entries'))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(Lit_Other ':')} spids:[460])] spids: [460] ) (ForEach iter_name: path iter_words: [{($ VSub_Name '$man_default_path')}] do_arg_iter: False body: (DoGroup children: [(C {(add_to_manpath)} {(DQ ($ VSub_Name '$path'))})] spids: [473 483] ) spids: [469 471] ) (C {(unset)} {(IFS)}) (C {(parse_configs)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$APPEND_MANPATH'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [512] ) ] spids: [512] ) (ForEach iter_name: path iter_words: [{($ VSub_Name '$APPEND_MANPATH')}] do_arg_iter: False body: (DoGroup children: [(C {(add_to_manpath)} {(DQ ($ VSub_Name '$path'))})] spids: [525 535] ) spids: [521 523] ) (C {(unset)} {(IFS)}) ] spids: [-1 509] ) ] spids: [-1 543] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANPATH) op: Equal rhs: { (BracedVarSub token: <VSub_Name manpath> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(':')}) spids: [551 555] ) } spids: [550] ) ] spids: [550] ) (C {(decho)} {(DQ ('Using manual path: ') ($ VSub_Name '$MANPATH'))}) ] spids: [295] ) spids: [291 294] ) (FuncDef name: check_cat body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(exists)} {(DQ ($ VSub_Number '$1'))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_cat) op: Equal rhs: {(yes)} spids: [594] ) ] spids: [594] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:catpage) op: Equal rhs: {($ VSub_Name '$found')} spids: [598] ) ] spids: [598] ) (C {(setup_cattool)} {($ VSub_Name '$catpage')}) (C {(decho)} {(DQ (' Found catpage ') ($ VSub_Name '$catpage'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [-1 591] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [620 628] ) ] spids: [579] ) spids: [575 578] ) (FuncDef name: check_man body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(exists)} {(DQ ($ VSub_Number '$1'))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manpage) op: Equal rhs: {($ VSub_Name '$found')} spids: [665] ) ] spids: [665] ) (C {(setup_cattool)} {($ VSub_Name '$manpage')}) (C {(decho)} {(DQ (' Found manpage ') ($ VSub_Name '$manpage'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name use_width))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(unset)} {(use_cat)}) (C {(decho)} {(DQ (' Skipping catpage: non-standard page width'))}) ] spids: [-1 698] ) (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(exists)} {(DQ ($ VSub_Number '$2'))}) (C {(is_newer)} {($ VSub_Name '$found')} {($ VSub_Name '$manpage')}) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_cat) op: Equal rhs: {(yes)} spids: [741] ) ] spids: [741] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:catpage) op: Equal rhs: {($ VSub_Name '$found')} spids: [745] ) ] spids: [745] ) (C {(setup_cattool)} {($ VSub_Name '$catpage')}) (C {(decho)} {(DQ (' Using catpage ') ($ VSub_Name '$catpage'))}) ] spids: [717 734] ) ] else_action: [ (C {(unset)} {(use_cat)}) (C {(decho)} {(DQ (' Skipping catpage: not found or old'))}) ] spids: [762 781] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [-1 658] ) ] spids: [-1 789] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [646] ) spids: [642 645] ) (FuncDef name: decho body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-ge)} { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)}) spids: [821 825] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('-- ') ($ VSub_Number '$1'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[840])] ) ] spids: [-1 830] ) ] spids: [-1 844] ) ] spids: [810] ) spids: [806 809] ) (FuncDef name: exists body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal spids:[864])] spids: [862] ) (C {(unset)} {(IFS)}) (C {(set)} {(Lit_Other '+') (f)}) (C {(set)} {(--)} {(DQ ($ VSub_Number '$1'))} {($ VSub_Number '$1')}) (C {(set)} {(-f)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(-a)} {(-r)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [938] ) ] spids: [938] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [-1 935] ) ] spids: [-1 949] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [859] ) spids: [855 858] ) (FuncDef name: find_file body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:manroot) op:Equal spids:[978]) (assign_pair lhs:(LhsName name:catroot) op:Equal spids:[980]) (assign_pair lhs:(LhsName name:mann) op:Equal spids:[982]) (assign_pair lhs:(LhsName name:man0) op:Equal spids:[984]) (assign_pair lhs:(LhsName name:catn) op:Equal spids:[986]) (assign_pair lhs:(LhsName name:cat0) op:Equal spids:[988]) ] spids: [976] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manroot) op: Equal rhs: {(DQ ($ VSub_Number '$1') (/man) ($ VSub_Number '$2'))} spids: [992] ) ] spids: [992] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:catroot) op: Equal rhs: {(DQ ($ VSub_Number '$1') (/cat) ($ VSub_Number '$2'))} spids: [1000] ) ] spids: [1000] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manroot) op: Equal rhs: {(DQ ($ VSub_Name '$manroot') (/) ($ VSub_Number '$3'))} spids: [1024] ) ] spids: [1024] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:catroot) op: Equal rhs: {(DQ ($ VSub_Name '$catroot') (/) ($ VSub_Number '$3'))} spids: [1032] ) ] spids: [1032] ) ] spids: [-1 1021] ) ] spids: [-1 1040] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$manroot'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [-1 1059] ) ] spids: [-1 1067] ) (C {(decho)} {(DQ (' Searching directory ') ($ VSub_Name '$manroot'))} {(2)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mann) op: Equal rhs: { (DQ ($ VSub_Name '$manroot') (/) ($ VSub_Number '$4') (.) ($ VSub_Number '$2') ('*')) } spids: [1081] ) ] spids: [1081] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man0) op: Equal rhs: {(DQ ($ VSub_Name '$manroot') (/) ($ VSub_Number '$4') ('.0*'))} spids: [1092] ) ] spids: [1092] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:catn) op: Equal rhs: { (DQ ($ VSub_Name '$catroot') (/) ($ VSub_Number '$4') (.) ($ VSub_Number '$2') ('*')) } spids: [1101] ) ] spids: [1101] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cat0) op: Equal rhs: {(DQ ($ VSub_Name '$catroot') (/) ($ VSub_Number '$4') ('.0*'))} spids: [1112] ) ] spids: [1112] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(check_man)} {(DQ ($ VSub_Name '$mann'))} {(DQ ($ VSub_Name '$catn'))}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 1143] ) (if_arm cond: [ (Sentence child: (C {(check_man)} {(DQ ($ VSub_Name '$man0'))} {(DQ ($ VSub_Name '$cat0'))}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [1151 1164] ) (if_arm cond: [ (Sentence child: (C {(check_cat)} {(DQ ($ VSub_Name '$catn'))}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [1172 1181] ) (if_arm cond: [ (Sentence child: (C {(check_cat)} {(DQ ($ VSub_Name '$cat0'))}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [1189 1198] ) ] spids: [-1 1206] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [973] ) spids: [969 972] ) (FuncDef name: is_newer body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(-ot)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} { (DQ (' mtime: ') ($ VSub_Number '$1') (' not older than ') ($ VSub_Number '$2') ) } {(3)} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [-1 1249] ) ] else_action: [ (C {(decho)} {(DQ (' mtime: ') ($ VSub_Number '$1') (' older than ') ($ VSub_Number '$2'))} {(3)} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1269 1289] ) ] spids: [1227] ) spids: [1223 1226] ) (FuncDef name: manpath_parse_args body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:cmd_arg) op:Equal spids:[1309])] spids: [1307] ) (While cond: [ (Sentence child: (C {(getopts)} {(SQ <Ldq>)} {(cmd_arg)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Name cmd_arg))} arms: [ (case_arm pat_list: [{(L)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:Lflag) op: Equal rhs: {(Lflag)} spids: [1341] ) ] spids: [1341] ) ] spids: [1338 1339 1344 -1] ) (case_arm pat_list: [{(d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:debug) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$debug')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1351 1360] ) } spids: [1350] ) ] spids: [1350] ) ] spids: [1347 1348 1362 -1] ) (case_arm pat_list: [{(q)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:qflag) op: Equal rhs: {(qflag)} spids: [1368] ) ] spids: [1368] ) ] spids: [1365 1366 1371 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(manpath_usage)})] spids: [1374 1375 1379 -1] ) ] spids: [1327 1335 1382] ) ] spids: [1324 1385] ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1387])] ) ] spids: [1304] ) spids: [1300 1303] ) (FuncDef name: manpath_usage body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(SQ <'usage: manpath [-Ldq]'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1412])] ) (C {(exit)} {(1)}) ] spids: [1403] ) spids: [1399 1402] ) (FuncDef name: manpath_warnings body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$Lflag'))} {(-a)} {(-n)} {(DQ ($ VSub_Name '$MANLOCALES'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('(Warning: MANLOCALES environment variable set)'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1466])] ) ] spids: [-1 1457] ) ] spids: [-1 1470] ) ] spids: [1433] ) spids: [1429 1432] ) (FuncDef name: man_check_for_so body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[1496]) (assign_pair lhs:(LhsName name:line) op:Equal spids:[1498]) (assign_pair lhs:(LhsName name:tstr) op:Equal spids:[1500]) ] spids: [1494] ) (C {(unset)} {(IFS)}) (While cond: [(C {(true)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:line) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name '$cattool')} {($ VSub_Name '$manpage')}) (C {(head)} {(-1)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1523 1533] ) } spids: [1522] ) ] spids: [1522] ) (Case to_match: {(DQ ($ VSub_Name '$line'))} arms: [ (case_arm pat_list: [{(.so) (Lit_Other '*')}] action: [ (C {(trim)} { (DQ (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.so)}) spids: [1552 1556] ) ) } ) (C {(decho)} {(DQ ($ VSub_Name '$manpage') (' includes ') ($ VSub_Name '$tstr'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(check_man)} { (DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$tstr') ('*') ) } {(DQ )} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ (' Unable to find ') ($ VSub_Name '$tstr'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [-1 1590] ) ] spids: [-1 1606] ) ] spids: [1545 1547 1609 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [1612 1613 1617 -1] ) ] spids: [1536 1542 1620] ) ] spids: [1519 1623] ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1491] ) spids: [1487 1490] ) (FuncDef name: man_display_page body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[1649]) (assign_pair lhs:(LhsName name:pipeline) op:Equal spids:[1651]) (assign_pair lhs:(LhsName name:testline) op:Equal spids:[1653]) ] spids: [1647] ) (C {(unset)} {(IFS)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$tflag'))} {(-a)} {(-n)} {(DQ ($ VSub_Name '$use_cat'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$wflag'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name '$catpage') (' (source: ') ($ VSub_Name '$manpage') (')') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {(0)} spids: [1729] ) ] spids: [1729] ) ] spids: [-1 1716] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-gt)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} { (DQ ('Command: ') ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$catpage') (' | ') ($ VSub_Name '$MANPAGER') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {(0)} spids: [1764] ) ] spids: [1764] ) ] spids: [-1 1749] ) ] else_action: [ (C {(eval)} { (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$catpage') (' | ') ($ VSub_Name '$MANPAGER') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1782] ) ] spids: [1782] ) ] spids: [1768 1786] ) ] spids: [1733 1789] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 1700] ) ] spids: [-1 1795] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$wflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$manpage'))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[1830])] spids: [1830] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 1820] ) ] spids: [-1 1837] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$use_width'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mandoc_args) op: Equal rhs: {(DQ ('-O width=') (${ VSub_Name use_width))} spids: [1857] ) ] spids: [1857] ) ] spids: [-1 1854] ) ] spids: [-1 1866] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:testline) op: Equal rhs: {(DQ ('mandoc -Tlint -Wunsupp >/dev/null 2>&1'))} spids: [1869] ) ] spids: [1869] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$tflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: {(DQ ('mandoc -Tps ') ($ VSub_Name '$mandoc_args'))} spids: [1891] ) ] spids: [1891] ) ] spids: [-1 1888] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ('mandoc ') ($ VSub_Name '$mandoc_args') (' | ') ($ VSub_Name '$MANPAGER')) } spids: [1901] ) ] spids: [1901] ) ] spids: [1898 1910] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(eval)} { (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') ($ VSub_Name '$testline') ) } ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(which)} {(-s)} {(groff)}) terminator: <Op_Semi ';'> ) ] action: [(C {(man_display_page_groff)})] spids: [-1 1941] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ('This manpage needs groff(1) to be rendered'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1956])] ) (SimpleCommand words: [{(echo)} {(DQ ('First install groff(1): '))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1966])] ) (SimpleCommand words: [{(echo)} {(DQ ('pkg install groff '))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1976])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {(1)} spids: [1980] ) ] spids: [1980] ) ] spids: [1947 1984] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 1929] ) ] spids: [-1 1990] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} { (DQ ('Command: ') ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') ($ VSub_Name '$pipeline') ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[2022])] spids: [2022] ) ] spids: [-1 2007] ) ] else_action: [ (C {(eval)} { (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') ($ VSub_Name '$pipeline') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {($ VSub_QMark '$?')} spids: [2040] ) ] spids: [2040] ) ] spids: [2026 2044] ) ] spids: [1644] ) spids: [1640 1643] ) (FuncDef name: man_display_page_groff body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:EQN) op:Equal spids:[2064]) (assign_pair lhs:(LhsName name:NROFF) op:Equal spids:[2066]) (assign_pair lhs:(LhsName name:PIC) op:Equal spids:[2068]) (assign_pair lhs:(LhsName name:TBL) op:Equal spids:[2070]) (assign_pair lhs:(LhsName name:TROFF) op:Equal spids:[2072]) (assign_pair lhs:(LhsName name:REFER) op:Equal spids:[2074]) (assign_pair lhs:(LhsName name:VGRIND) op:Equal spids:[2076]) ] spids: [2062] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[2081]) (assign_pair lhs:(LhsName name:l) op:Equal spids:[2083]) (assign_pair lhs:(LhsName name:nroff_dev) op:Equal spids:[2085]) (assign_pair lhs:(LhsName name:pipeline) op:Equal spids:[2087]) (assign_pair lhs:(LhsName name:preproc_arg) op:Equal spids:[2089]) (assign_pair lhs:(LhsName name:tool) op:Equal spids:[2091]) ] spids: [2079] ) (Case to_match: {(DQ (${ VSub_Name manpage))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (.) (${ VSub_Name man_charset) (/) (Lit_Other '*')}] action: [ (Case to_match: {(DQ ($ VSub_Name '$man_charset'))} arms: [ (case_arm pat_list: [{(KOI8-R)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nroff_dev) op: Equal rhs: {(DQ (koi8-r))} spids: [2157] ) ] spids: [2157] ) ] spids: [2154 2155 2162 -1] ) (case_arm pat_list: [{(ISO8859-1)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nroff_dev) op: Equal rhs: {(DQ (latin1))} spids: [2168] ) ] spids: [2168] ) ] spids: [2165 2166 2173 -1] ) (case_arm pat_list: [{(ISO8859-15)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nroff_dev) op: Equal rhs: {(DQ (latin1))} spids: [2179] ) ] spids: [2179] ) ] spids: [2176 2177 2184 -1] ) (case_arm pat_list: [{(UTF-8)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nroff_dev) op: Equal rhs: {(DQ (utf8))} spids: [2190] ) ] spids: [2190] ) ] spids: [2187 2188 2195 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nroff_dev) op: Equal rhs: {(DQ (ascii))} spids: [2201] ) ] spids: [2201] ) ] spids: [2198 2199 2206 -1] ) ] spids: [2145 2151 2209] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: {(DQ ($ VSub_Name '$NROFF') (' -T') ($ VSub_Name '$nroff_dev'))} spids: [2213] ) ] spids: [2213] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EQN) op: Equal rhs: {(DQ ($ VSub_Name '$EQN') (' -T') ($ VSub_Name '$nroff_dev'))} spids: [2221] ) ] spids: [2221] ) (Case to_match: {(DQ (${ VSub_Name manpage))} arms: [ (case_arm pat_list: [ {(Lit_Other '*') (/) (${ VSub_Name man_lang) (_) (${ VSub_Name man_country) (.) (${ VSub_Name man_charset) (/) (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: { (DQ ($ VSub_Name '$NROFF') (' -dlocale=') ($ VSub_Name '$man_lang') (.) ($ VSub_Name '$man_charset') ) } spids: [2267] ) ] spids: [2267] ) ] spids: [2249 2264 2277 -1] ) (case_arm pat_list: [ {(Lit_Other '*') (/) (${ VSub_Name man_lang) (.) (${ VSub_Name man_charset) (/) (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: { (DQ ($ VSub_Name '$NROFF') (' -dlocale=') ($ VSub_Name '$man_lang') (.) ($ VSub_Name '$man_charset') ) } spids: [2294] ) ] spids: [2294] ) ] spids: [2280 2291 2304 -1] ) ] spids: [2238 2246 2307] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:l) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$man_lang')}) (C {(tr)} {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']') } {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') (Lit_Other ']')} ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2320 2340] ) } spids: [2319] ) ] spids: [2319] ) (ForEach iter_name: tool iter_words: [{(EQN)} {(NROFF)} {(PIC)} {(TBL)} {(TROFF)} {(REFER)} {(VGRIND)}] do_arg_iter: False body: (DoGroup children: [ (C {(eval)} { (DQ ($ VSub_Name '$tool') ('=') (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) ('{') (${ VSub_Name tool) (_) ($ VSub_Name '$l') (':-') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ($ VSub_Name '$tool') ('}') ) } ) ] spids: [2364 2386] ) spids: [2348 2362] ) ] spids: [2127 2134 2389 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: {(DQ ($ VSub_Name '$NROFF') (' -Tascii'))} spids: [2395] ) ] spids: [2395] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EQN) op: Equal rhs: {(DQ ($ VSub_Name '$EQN') (' -Tascii'))} spids: [2402] ) ] spids: [2402] ) ] spids: [2392 2393 2409 -1] ) ] spids: [2116 2124 2412] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MANCOLOR'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: {(DQ ($ VSub_Name '$NROFF') (' -P-c'))} spids: [2432] ) ] spids: [2432] ) ] spids: [-1 2429] ) ] spids: [-1 2439] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name use_width))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: { (DQ ($ VSub_Name '$NROFF') (' -rLL=') (${ VSub_Name use_width) ('n -rLT=') (${ VSub_Name use_width) (n) ) } spids: [2461] ) ] spids: [2461] ) ] spids: [-1 2458] ) ] spids: [-1 2476] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANROFFSEQ'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(set)} {(--)} {(-) ($ VSub_Name '$MANROFFSEQ')}) (While cond: [ (Sentence child: (C {(getopts)} {(SQ <egprtv>)} {(preproc_arg)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Name preproc_arg))} arms: [ (case_arm pat_list: [{(e)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$EQN') ) } spids: [2532] ) ] spids: [2532] ) ] spids: [2529 2530 2539 -1] ) (case_arm pat_list: [{(g)}] spids: [2542 2543 2545 -1] ) (case_arm pat_list: [{(p)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$PIC') ) } spids: [2554] ) ] spids: [2554] ) ] spids: [2551 2552 2561 -1] ) (case_arm pat_list: [{(r)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$REFER') ) } spids: [2567] ) ] spids: [2567] ) ] spids: [2564 2565 2574 -1] ) (case_arm pat_list: [{(t)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$TBL') ) } spids: [2580] ) ] spids: [2580] ) ] spids: [2577 2578 2587 -1] ) (case_arm pat_list: [{(v)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$VGRIND') ) } spids: [2593] ) ] spids: [2593] ) ] spids: [2590 2591 2600 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(usage)})] spids: [2603 2604 2608 -1] ) ] spids: [2518 2526 2611] ) ] spids: [2515 2614] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name pipeline> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(DQ (' | '))}) spids: [2623 2629] ) ) } spids: [2621] ) ] spids: [2621] ) ] spids: [-1 2493] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: {(DQ ($ VSub_Name '$TBL'))} spids: [2636] ) ] spids: [2636] ) ] spids: [2633 2642] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$tflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: {(DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$TROFF'))} spids: [2662] ) ] spids: [2662] ) ] spids: [-1 2659] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pipeline) op: Equal rhs: { (DQ ($ VSub_Name '$pipeline') (' | ') ($ VSub_Name '$NROFF') (' | ') ($ VSub_Name '$MANPAGER') ) } spids: [2673] ) ] spids: [2673] ) ] spids: [2670 2683] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$debug')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} { (DQ ('Command: ') ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') ($ VSub_Name '$pipeline') ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[2715])] spids: [2715] ) ] spids: [-1 2700] ) ] else_action: [ (C {(eval)} { (DQ ($ VSub_Name '$cattool') (' ') ($ VSub_Name '$manpage') (' | ') ($ VSub_Name '$pipeline') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {($ VSub_QMark '$?')} spids: [2733] ) ] spids: [2733] ) ] spids: [2719 2737] ) ] spids: [2059] ) spids: [2055 2058] ) (FuncDef name: man_find_and_display body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:found_page) op:Equal spids:[2757]) (assign_pair lhs:(LhsName name:locpath) op:Equal spids:[2759]) (assign_pair lhs:(LhsName name:p) op:Equal spids:[2761]) (assign_pair lhs:(LhsName name:path) op:Equal spids:[2763]) (assign_pair lhs:(LhsName name:sect) op:Equal spids:[2765]) ] spids: [2755] ) (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/) (Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(-a)} {(-r)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ ('Found a usable page, displaying that'))}) (C {(unset)} {(use_cat)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manpage) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [2827] ) ] spids: [2827] ) (C {(setup_cattool)} {($ VSub_Name '$manpage')}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(man_check_for_so)} {($ VSub_Name '$manpage')} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {($ VSub_Name '$manpage')})] ) left_token: <Left_CommandSub '$('> spids: [2844 2848] ) } ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found_page) op: Equal rhs: {(yes)} spids: [2854] ) ] spids: [2854] ) (C {(man_display_page)}) ] spids: [-1 2851] ) ] spids: [-1 2861] ) (ControlFlow token: <ControlFlow_Return return> ) ] spids: [-1 2812] ) ] spids: [-1 2867] ) ] spids: [2786 2789 2870 -1] ) ] spids: [2777 2783 2873] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [2877] ) ] spids: [2877] ) (ForEach iter_name: sect iter_words: [{($ VSub_Name '$MANSECT')}] do_arg_iter: False body: (DoGroup children: [ (C {(decho)} {(DQ ('Searching section ') ($ VSub_Name '$sect'))} {(2)}) (ForEach iter_name: path iter_words: [{($ VSub_Name '$MANPATH')}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: locpath iter_words: [{($ VSub_Name '$locpaths')}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: {($ VSub_Name '$path') (/) ($ VSub_Name '$locpath')} spids: [2927] ) ] spids: [2927] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: { (BracedVarSub token: <VSub_Name p> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) (.)} ) spids: [2934 2939] ) } spids: [2933] ) ] spids: [2933] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(find_file)} {($ VSub_Name '$p')} {($ VSub_Name '$sect')} {($ VSub_Name '$MACHINE')} {(DQ ($ VSub_Number '$1'))} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(man_check_for_so)} {($ VSub_Name '$manpage')} {($ VSub_Name '$p')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found_page) op: Equal rhs: {(yes)} spids: [2980] ) ] spids: [2980] ) (C {(man_display_page)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$aflag'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) ] spids: [-1 3000] ) ] else_action: [ (ControlFlow token: <ControlFlow_Return return> ) ] spids: [3008 3014] ) ] spids: [-1 2977] ) ] spids: [-1 3017] ) ] spids: [-1 2965] ) ] spids: [-1 3020] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(find_file)} {($ VSub_Name '$p')} {($ VSub_Name '$sect')} {($ VSub_Name '$MACHINE_ARCH')} {(DQ ($ VSub_Number '$1'))} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(man_check_for_so)} {($ VSub_Name '$manpage')} {($ VSub_Name '$p')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found_page) op: Equal rhs: {(yes)} spids: [3062] ) ] spids: [3062] ) (C {(man_display_page)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$aflag'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) ] spids: [-1 3082] ) ] else_action: [ (ControlFlow token: <ControlFlow_Return return> ) ] spids: [3090 3096] ) ] spids: [-1 3059] ) ] spids: [-1 3099] ) ] spids: [-1 3047] ) ] spids: [-1 3102] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(find_file)} {($ VSub_Name '$p')} {($ VSub_Name '$sect')} {(SQ )} {(DQ ($ VSub_Number '$1'))} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(man_check_for_so)} {($ VSub_Name '$manpage')} {($ VSub_Name '$p')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found_page) op: Equal rhs: {(yes)} spids: [3141] ) ] spids: [3141] ) (C {(man_display_page)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$aflag'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) ] spids: [-1 3161] ) ] else_action: [ (ControlFlow token: <ControlFlow_Return return> ) ] spids: [3169 3175] ) ] spids: [-1 3138] ) ] spids: [-1 3178] ) ] spids: [-1 3126] ) ] spids: [-1 3181] ) ] spids: [2924 3184] ) spids: [2920 2922] ) ] spids: [2912 3187] ) spids: [2908 2910] ) ] spids: [2890 3190] ) spids: [2886 2888] ) (C {(unset)} {(IFS)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$found_page'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('No manual entry for ') ($ VSub_Number '$1'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3226])] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(1)} spids:[3230])] spids: [3230] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 3216] ) ] spids: [-1 3237] ) ] spids: [2752] ) spids: [2748 2751] ) (FuncDef name: man_parse_args body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[3257]) (assign_pair lhs:(LhsName name:cmd_arg) op:Equal spids:[3259]) ] spids: [3255] ) (While cond: [ (Sentence child: (C {(getopts)} {(SQ <'M:P:S:adfhkm:op:tw'>)} {(cmd_arg)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Name cmd_arg))} arms: [ (case_arm pat_list: [{(M)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANPATH) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [3291] ) ] spids: [3291] ) ] spids: [3288 3289 3294 -1] ) (case_arm pat_list: [{(P)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANPAGER) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [3300] ) ] spids: [3300] ) ] spids: [3297 3298 3303 -1] ) (case_arm pat_list: [{(S)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANSECT) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [3309] ) ] spids: [3309] ) ] spids: [3306 3307 3312 -1] ) (case_arm pat_list: [{(a)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aflag) op: Equal rhs: {(aflag)} spids: [3318] ) ] spids: [3318] ) ] spids: [3315 3316 3321 -1] ) (case_arm pat_list: [{(d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:debug) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$debug')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [3328 3337] ) } spids: [3327] ) ] spids: [3327] ) ] spids: [3324 3325 3339 -1] ) (case_arm pat_list: [{(f)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fflag) op: Equal rhs: {(fflag)} spids: [3345] ) ] spids: [3345] ) ] spids: [3342 3343 3348 -1] ) (case_arm pat_list: [{(h)}] action: [(C {(man_usage)} {(0)})] spids: [3351 3352 3358 -1] ) (case_arm pat_list: [{(k)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kflag) op: Equal rhs: {(kflag)} spids: [3364] ) ] spids: [3364] ) ] spids: [3361 3362 3367 -1] ) (case_arm pat_list: [{(m)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mflag) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [3373] ) ] spids: [3373] ) ] spids: [3370 3371 3376 -1] ) (case_arm pat_list: [{(o)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:oflag) op: Equal rhs: {(oflag)} spids: [3382] ) ] spids: [3382] ) ] spids: [3379 3380 3385 -1] ) (case_arm pat_list: [{(p)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANROFFSEQ) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [3391] ) ] spids: [3391] ) ] spids: [3388 3389 3394 -1] ) (case_arm pat_list: [{(t)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tflag) op: Equal rhs: {(tflag)} spids: [3400] ) ] spids: [3400] ) ] spids: [3397 3398 3403 -1] ) (case_arm pat_list: [{(w)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:wflag) op: Equal rhs: {(wflag)} spids: [3409] ) ] spids: [3409] ) ] spids: [3406 3407 3412 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(man_usage)})] spids: [3415 3416 3420 -1] ) ] spids: [3277 3285 3423] ) ] spids: [3274 3426] ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3428])] ) (C {(shift)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$OPTIND')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [3435 3444] ) } ) (Case to_match: { (DQ (${ VSub_Name fflag) (${ VSub_Name kflag) (${ VSub_Name tflag) (${ VSub_Name wflag) ) } arms: [ (case_arm pat_list: [{(fflagkflag) (Lit_Other '*')}] action: [ (Sentence child: (C {(echo)} {(DQ ('Incompatible options: -f and -k'))}) terminator: <Op_Semi ';'> ) (C {(man_usage)}) ] spids: [3472 3474 3485 -1] ) (case_arm pat_list: [{(fflag) (Lit_Other '*') (tflag) (Lit_Other '*')}] action: [ (Sentence child: (C {(echo)} {(DQ ('Incompatible options: -f and -t'))}) terminator: <Op_Semi ';'> ) (C {(man_usage)}) ] spids: [3488 3492 3503 -1] ) (case_arm pat_list: [{(fflag) (Lit_Other '*') (wflag)}] action: [ (Sentence child: (C {(echo)} {(DQ ('Incompatible options: -f and -w'))}) terminator: <Op_Semi ';'> ) (C {(man_usage)}) ] spids: [3506 3509 3520 -1] ) (case_arm pat_list: [{(Lit_Other '*') (kflagtflag) (Lit_Other '*')}] action: [ (Sentence child: (C {(echo)} {(DQ ('Incompatible options: -k and -t'))}) terminator: <Op_Semi ';'> ) (C {(man_usage)}) ] spids: [3523 3526 3537 -1] ) (case_arm pat_list: [{(Lit_Other '*') (kflag) (Lit_Other '*') (wflag)}] action: [ (Sentence child: (C {(echo)} {(DQ ('Incompatible options: -k and -w'))}) terminator: <Op_Semi ';'> ) (C {(man_usage)}) ] spids: [3540 3544 3555 -1] ) (case_arm pat_list: [{(Lit_Other '*') (tflagwflag)}] action: [ (Sentence child: (C {(echo)} {(DQ ('Incompatible options: -t and -w'))}) terminator: <Op_Semi ';'> ) (C {(man_usage)}) ] spids: [3558 3560 3571 -1] ) ] spids: [3452 3469 3574] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$fflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(do_whatis)} {(DQ ($ VSub_At '$@'))}) (C {(exit)})] spids: [-1 3595] ) ] spids: [-1 3608] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$kflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(do_apropos)} {(DQ ($ VSub_At '$@'))}) (C {(exit)})] spids: [-1 3625] ) ] spids: [-1 3638] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [3642] ) ] spids: [3642] ) (ForEach iter_name: sect iter_words: [{($ VSub_Name '$man_default_sections')}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$sect'))} {(Lit_Other '=')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ ('Detected manual section as first arg: ') ($ VSub_Number '$1'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANSECT) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [3686] ) ] spids: [3686] ) (C {(shift)}) (ControlFlow token:<ControlFlow_Break break>) ] spids: [-1 3675] ) ] spids: [-1 3698] ) ] spids: [3655 3701] ) spids: [3651 3653] ) (C {(unset)} {(IFS)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pages) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [3710] ) ] spids: [3710] ) ] spids: [3252] ) spids: [3248 3251] ) (FuncDef name: man_setup body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$mflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MACHINE_ARCH) op: Equal rhs: { (BracedVarSub token: <VSub_Name mflag> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(':*')}) spids: [3752 3756] ) } spids: [3751] ) ] spids: [3751] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MACHINE) op: Equal rhs: { (BracedVarSub token: <VSub_Name mflag> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*:')}) spids: [3760 3764] ) } spids: [3759] ) ] spids: [3759] ) ] spids: [-1 3748] ) ] spids: [-1 3767] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MACHINE_ARCH'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MACHINE_ARCH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {($ VSub_Name '$SYSCTL')} {(-n)} {(hw.machine_arch)})] ) left_token: <Left_CommandSub '$('> spids: [3787 3793] ) } spids: [3786] ) ] spids: [3786] ) ] spids: [-1 3783] ) ] spids: [-1 3796] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MACHINE'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MACHINE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {($ VSub_Name '$SYSCTL')} {(-n)} {(hw.machine)})] ) left_token: <Left_CommandSub '$('> spids: [3816 3822] ) } spids: [3815] ) ] spids: [3815] ) ] spids: [-1 3812] ) ] spids: [-1 3825] ) (C {(decho)} { (DQ ('Using architecture: ') ($ VSub_Name '$MACHINE_ARCH') (':') ($ VSub_Name '$MACHINE') ) } ) (C {(setup_pager)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MANSECT'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANSECT) op: Equal rhs: {($ VSub_Name '$man_default_sections')} spids: [3863] ) ] spids: [3863] ) ] spids: [-1 3860] ) ] spids: [-1 3867] ) (C {(decho)} {(DQ ('Using manual sections: ') ($ VSub_Name '$MANSECT'))}) (C {(build_manpath)}) (C {(man_setup_locale)}) (C {(man_setup_width)}) ] spids: [3728] ) spids: [3724 3727] ) (FuncDef name: man_setup_width body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:sizes) op:Equal spids:[3905])] spids: [3903] ) (C {(unset)} {(use_width)}) (Case to_match: {(DQ ($ VSub_Name '$MANWIDTH'))} arms: [ (case_arm pat_list: [{(Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [ {(Lit_Other '[')} {(DQ ($ VSub_Name '$MANWIDTH'))} {(-gt)} {(0)} {(Lit_Other ']')} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [3942] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_width) op: Equal rhs: {($ VSub_Name '$MANWIDTH')} spids: [3951] ) ] spids: [3951] ) ] spids: [-1 3948] ) ] spids: [-1 3955] ) ] spids: [3923 3927 3958 -1] ) (case_arm pat_list: [ {(Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Tt) (Lit_Other ']') (Lit_Other '[') (Yy) (Lit_Other ']') } ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sizes) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{($ VSub_Name '$STTY')} {(size)}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 0 arg_word: {(3)} spids: [3983] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [3986] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [3978 3988] ) } spids: [3977] ) ] spids: [3977] ) terminator: <Op_Semi ';'> ) ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [3993] ) ] spids: [3975] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(set)} {(--)} {($ VSub_Name '$sizes')}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Number '$2')} {(-gt)} {(80)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:use_width) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Number '$2')}) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [4024 4029] ) } spids: [4023] ) ] spids: [4023] ) ] spids: [-1 4020] ) ] spids: [-1 4032] ) ] spids: [-1 3997] ) ] spids: [-1 4035] ) ] spids: [3961 3970 4038 -1] ) ] spids: [3914 3920 4041] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$use_width'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ ('Using non-standard page width: ') (${ VSub_Name use_width))}) ] spids: [-1 4057] ) ] else_action: [(C {(decho)} {(SQ <'Using standard page width'>)})] spids: [4070 4080] ) ] spids: [3900] ) spids: [3896 3899] ) (FuncDef name: man_setup_locale body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:lang_cc) op:Equal spids:[4100])] spids: [4098] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:locpaths) op:Equal rhs:{(SQ <.>)} spids:[4104])] spids: [4104] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man_charset) op: Equal rhs: {(SQ <US-ASCII>)} spids: [4110] ) ] spids: [4110] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$oflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(decho)} {(SQ <'Using non-localized manpages'>)})] spids: [-1 4134] ) ] else_action: [ (C {(eval)} { (CommandSubPart command_list: (CommandList children:[(C {($ VSub_Name '$LOCALE')})]) left_token: <Left_CommandSub '$('> spids: [4153 4157] ) } ) (Case to_match: {(DQ ($ VSub_Name '$LC_CTYPE'))} arms: [ (case_arm pat_list:[{(C)}] spids:[417041714173-1]) (case_arm pat_list:[{(POSIX)}] spids:[417641774179-1]) (case_arm pat_list: [ {(Lit_Other '[') (a-z) (Lit_Other ']') (Lit_Other '[') (a-z) (Lit_Other ']') (_) (Lit_Other '[') (A-Z) (Lit_Other ']') (Lit_Other '[') (A-Z) (Lit_Other ']') (EscapedLiteralPart token:<Lit_EscapedChar '\\.'>) (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lang_cc) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name LC_CTYPE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('.*')}) spids: [4202 4206] ) ) } spids: [4200] ) ] spids: [4200] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man_lang) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name LC_CTYPE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('_*')}) spids: [4212 4216] ) ) } spids: [4210] ) ] spids: [4210] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man_country) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name lang_cc> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*_')}) spids: [4222 4226] ) ) } spids: [4220] ) ] spids: [4220] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man_charset) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name LC_CTYPE> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.')}) spids: [4232 4236] ) ) } spids: [4230] ) ] spids: [4230] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:locpaths) op: Equal rhs: {(DQ ($ VSub_Name '$LC_CTYPE'))} spids: [4240] ) ] spids: [4240] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:locpaths) op: Equal rhs: { (DQ ($ VSub_Name '$locpaths') (':') ($ VSub_Name '$man_lang') (.) ($ VSub_Name '$man_charset') ) } spids: [4246] ) ] spids: [4246] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$man_lang'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (en))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:locpaths) op: Equal rhs: { (DQ ($ VSub_Name '$locpaths') (':en.') ($ VSub_Name '$man_charset') ) } spids: [4277] ) ] spids: [4277] ) ] spids: [-1 4274] ) ] spids: [-1 4285] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:locpaths) op: Equal rhs: {(DQ ($ VSub_Name '$locpaths') (':.'))} spids: [4288] ) ] spids: [4288] ) ] spids: [4182 4197 4295 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (SimpleCommand words: [{(echo)} {(SQ <'Unknown locale, assuming C'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[4307])] ) ] spids: [4298 4299 4311 -1] ) ] spids: [4161 4167 4314] ) ] spids: [4144 4317] ) (C {(decho)} {(DQ ('Using locale paths: ') ($ VSub_Name '$locpaths'))}) ] spids: [4095] ) spids: [4091 4094] ) (FuncDef name: man_usage body: (BraceGroup children: [ (C {(echo)} {(SQ <'Usage:'>)}) (C {(echo)} {(SQ <' man [-adho] [-t | -w] [-M manpath] [-P pager] [-S mansect]'>)}) (C {(echo)} {(SQ <' [-m arch[:machine]] [-p [eprtv]] [mansect] page [...]'>)}) (C {(echo)} {(SQ <' man -f page [...] -- Emulates whatis(1)'>)}) (C {(echo)} {(SQ <' man -k page [...] -- Emulates apropos(1)'>)}) (C {(exit)} { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)}) spids: [4386 4390] ) } ) ] spids: [4341] ) spids: [4337 4340] ) (FuncDef name: parse_configs body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[4410]) (assign_pair lhs:(LhsName name:file) op:Equal spids:[4412]) (assign_pair lhs:(LhsName name:files) op:Equal spids:[4414]) ] spids: [4408] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$parsed_configs'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [-1 4431] ) ] spids: [-1 4437] ) (C {(unset)} {(IFS)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ ($ VSub_Name '$config_global'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(parse_file)} {(DQ ($ VSub_Name '$config_global'))})] spids: [-1 4468] ) ] spids: [-1 4478] ) (C {(set)} {(Lit_Other '+') (f)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:files) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(echo)} {($ VSub_Name '$config_local')})] ) left_token: <Left_CommandSub '$('> spids: [4493 4497] ) } spids: [4492] ) ] spids: [4492] ) (C {(set)} {(-f)}) (ForEach iter_name: file iter_words: [{($ VSub_Name '$files')}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ ($ VSub_Name '$file'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(parse_file)} {(DQ ($ VSub_Name '$file'))})] spids: [-1 4531] ) ] spids: [-1 4541] ) ] spids: [4515 4544] ) spids: [4511 4513] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:parsed_configs) op: Equal rhs: {(SQ <yes>)} spids: [4548] ) ] spids: [4548] ) ] spids: [4405] ) spids: [4401 4404] ) (FuncDef name: parse_file body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:file) op:Equal spids:[4571]) (assign_pair lhs:(LhsName name:line) op:Equal spids:[4573]) (assign_pair lhs:(LhsName name:tstr) op:Equal spids:[4575]) (assign_pair lhs:(LhsName name:var) op:Equal spids:[4577]) ] spids: [4569] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [4581] ) ] spids: [4581] ) (C {(decho)} {(DQ ('Parsing config file: ') ($ VSub_Name '$file'))}) (While cond: [(Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(decho)} {(DQ (' ') ($ VSub_Name '$line'))} {(2)}) (Case to_match: {(DQ ($ VSub_Name '$line'))} arms: [ (case_arm pat_list: [ {(EscapedLiteralPart token:<Lit_EscapedChar '\\#'>) (Lit_Other '*')} ] action: [(C {(decho)} {(DQ (' Comment'))} {(3)})] spids: [4624 4626 4637 -1] ) (case_arm pat_list: [{(MANPATH) (Lit_Other '*')}] action: [ (C {(decho)} {(DQ (' MANPATH'))} {(3)}) (C {(trim)} { (DQ (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(MANPATH)}) spids: [4656 4660] ) ) } ) (C {(add_to_manpath)} {(DQ ($ VSub_Name '$tstr'))}) ] spids: [4640 4642 4671 -1] ) (case_arm pat_list: [{(MANLOCALE) (Lit_Other '*')}] action: [ (C {(decho)} {(DQ (' MANLOCALE'))} {(3)}) (C {(trim)} { (DQ (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(MANLOCALE)}) spids: [4690 4694] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manlocales) op: Equal rhs: {(DQ ($ VSub_Name '$manlocales') (':') ($ VSub_Name '$tstr'))} spids: [4698] ) ] spids: [4698] ) ] spids: [4674 4676 4706 -1] ) (case_arm pat_list: [{(MANCONFIG) (Lit_Other '*')}] action: [ (C {(decho)} {(DQ (' MANCONFIG'))} {(3)}) (C {(trim)} { (DQ (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(MANCONFIG)}) spids: [4725 4729] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config_local) op: Equal rhs: {(DQ ($ VSub_Name '$tstr'))} spids: [4733] ) ] spids: [4733] ) ] spids: [4709 4711 4739 -1] ) (case_arm pat_list: [ {(Lit_Other '*') (_) (Lit_Other '*') (Lit_Other '[') (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (Lit_Other ']') (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:var) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {('[') (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (']*') } ) spids: [4758 4765] ) ) } spids: [4756] ) ] spids: [4756] ) (C {(trim)} { (DQ (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {($ VSub_Name '$var')} ) spids: [4772 4776] ) ) } ) (C {(eval)} { (DQ ($ VSub_Name '$var') ('=') (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Name '$tstr') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) (C {(decho)} {(DQ (' Parsed ') ($ VSub_Name '$var'))} {(3)}) ] spids: [4746 4754 4801 -1] ) ] spids: [4615 4621 4804] ) ] spids: [4602 4807] ) redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Name '$file'))} spids: [4809] ) ] ) ] spids: [4566] ) spids: [4562 4565] ) (FuncDef name: search_path body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[4833]) (assign_pair lhs:(LhsName name:p) op:Equal spids:[4835]) (assign_pair lhs:(LhsName name:path) op:Equal spids:[4837]) ] spids: [4831] ) (C {(decho)} {(DQ ('Searching PATH for man directories'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [4849] ) ] spids: [4849] ) (ForEach iter_name: path iter_words: [{($ VSub_Name '$PATH')}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$path'))} arms: [ (case_arm pat_list: [{(/bin)} {(/usr/bin)}] action: [(C {(add_to_manpath)} {(DQ (/usr/share/man))})] spids: [4882 4885 4893 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(add_to_manpath)} {(DQ ($ VSub_Name '$path') (/man))}) terminator: <Op_Semi ';'> ) ] action: [(C {(Lit_Other ':')})] spids: [-1 4909] ) (if_arm cond: [ (Sentence child: (C {(add_to_manpath)} {(DQ ($ VSub_Name '$path') (/MAN))}) terminator: <Op_Semi ';'> ) ] action: [(C {(Lit_Other ':')})] spids: [4915 4925] ) ] else_action: [ (Case to_match: {(DQ ($ VSub_Name '$path'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/bin)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name path> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) (bin)} ) spids: [4949 4954] ) (/man) ) } spids: [4947] ) ] spids: [4947] ) (C {(add_to_manpath)} {(DQ ($ VSub_Name '$p'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name path> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) (bin)} ) spids: [4968 4973] ) (/share/man) ) } spids: [4966] ) ] spids: [4966] ) (C {(add_to_manpath)} {(DQ ($ VSub_Name '$p'))}) ] spids: [4943 4945 4985 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] spids: [4988 4989 4991 -1] ) ] spids: [4934 4940 4994] ) ] spids: [4931 4997] ) ] spids: [4896 4897 5000 -1] ) ] spids: [4873 4879 5003] ) ] spids: [4862 5006] ) spids: [4858 4860] ) (C {(unset)} {(IFS)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$manpath'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(SQ <' Unable to find any manpaths, using default'>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:manpath) op: Equal rhs: {($ VSub_Name '$man_default_path')} spids: [5038] ) ] spids: [5038] ) ] spids: [-1 5028] ) ] spids: [-1 5042] ) ] spids: [4828] ) spids: [4824 4827] ) (FuncDef name: search_whatis body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:IFS) op:Equal spids:[5062]) (assign_pair lhs:(LhsName name:bad) op:Equal spids:[5064]) (assign_pair lhs:(LhsName name:cmd) op:Equal spids:[5066]) (assign_pair lhs:(LhsName name:f) op:Equal spids:[5068]) (assign_pair lhs:(LhsName name:good) op:Equal spids:[5070]) (assign_pair lhs:(LhsName name:key) op:Equal spids:[5072]) (assign_pair lhs:(LhsName name:keywords) op:Equal spids:[5074]) (assign_pair lhs:(LhsName name:loc) op:Equal spids:[5076]) (assign_pair lhs:(LhsName name:opt) op:Equal spids:[5078]) (assign_pair lhs:(LhsName name:out) op:Equal spids:[5080]) (assign_pair lhs:(LhsName name:path) op:Equal spids:[5082]) (assign_pair lhs:(LhsName name:rval) op:Equal spids:[5084]) (assign_pair lhs:(LhsName name:wlist) op:Equal spids:[5086]) ] spids: [5060] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [5090] ) ] spids: [5090] ) (C {(shift)}) (C {(whatis_parse_args)} {(DQ ($ VSub_At '$@'))}) (C {(build_manpath)}) (C {(build_manlocales)}) (C {(setup_pager)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$cmd'))} {(Lit_Other '=')} {(DQ (whatis))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:opt) op: Equal rhs: {(DQ (-w))} spids: [5138] ) ] spids: [5138] ) ] spids: [-1 5135] ) ] spids: [-1 5144] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:f) op:Equal rhs:{(SQ <whatis>)} spids:[5148])] spids: [5148] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other ':')} spids: [5155] ) ] spids: [5155] ) (ForEach iter_name: path iter_words: [{($ VSub_Name '$MANPATH')}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(EscapedLiteralPart token:<Lit_EscapedChar '\\!'>)} {(-d)} {(DQ ($ VSub_Name '$path'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ ('Skipping non-existent path: ') ($ VSub_Name '$path'))} {(2)} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [-1 5186] ) ] spids: [-1 5202] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$f'))} {(-a)} {(-r)} {(DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$f'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} {(DQ ('Found whatis: ') ($ VSub_Name '$path') (/) ($ VSub_Name '$f'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:wlist) op: Equal rhs: { (DQ ($ VSub_Name '$wlist') (' ') ($ VSub_Name '$path') (/) ($ VSub_Name '$f') ) } spids: [5244] ) ] spids: [5244] ) ] spids: [-1 5231] ) ] spids: [-1 5254] ) (ForEach iter_name: loc iter_words: [{($ VSub_Name '$MANLOCALES')}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$loc') (/) ($ VSub_Name '$f') ) } {(-a)} {(-r)} {(DQ ($ VSub_Name '$path') (/) ($ VSub_Name '$loc') (/) ($ VSub_Name '$f'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(decho)} { (DQ ('Found whatis: ') ($ VSub_Name '$path') (/) ($ VSub_Name '$loc') (/) ($ VSub_Name '$f') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:wlist) op: Equal rhs: { (DQ ($ VSub_Name '$wlist') (' ') ($ VSub_Name '$path') (/) ($ VSub_Name '$loc') (/) ($ VSub_Name '$f') ) } spids: [5314] ) ] spids: [5314] ) ] spids: [-1 5299] ) ] spids: [-1 5326] ) ] spids: [5267 5329] ) spids: [5263 5265] ) ] spids: [5168 5332] ) spids: [5164 5166] ) (C {(unset)} {(IFS)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$wlist'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ($ VSub_Name '$cmd') (': no whatis databases in ') ($ VSub_Name '$MANPATH') ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[5365])] ) (C {(exit)} {(1)}) ] spids: [-1 5354] ) ] spids: [-1 5374] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:rval) op:Equal rhs:{(0)} spids:[5378])] spids: [5378] ) (ForEach iter_name: key iter_words: [{($ VSub_Name '$keywords')}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:out) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-Ehi)} {($ VSub_Name '$opt')} {(--)} {(DQ ($ VSub_Name '$key'))} {($ VSub_Name '$wlist')} ) ] ) left_token: <Left_CommandSub '$('> spids: [5395 5409] ) } spids: [5394] ) ] spids: [5394] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$out'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:good) op: Equal rhs: { (DQ ($ VSub_Name '$good') (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) (n) ($ VSub_Name '$out') ) } spids: [5428] ) ] spids: [5428] ) ] spids: [-1 5425] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bad) op: Equal rhs: { (DQ ($ VSub_Name '$bad') (EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) (n) ($ VSub_Name '$key') (': nothing appropriate') ) } spids: [5440] ) ] spids: [5440] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rval) op: Equal rhs: {(1)} spids: [5450] ) ] spids: [5450] ) ] spids: [5437 5454] ) ] spids: [5391 5457] ) spids: [5387 5389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:good) op: Equal rhs: { (BracedVarSub token: <VSub_Name good> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n)} ) spids: [5466 5471] ) } spids: [5465] ) ] spids: [5465] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bad) op: Equal rhs: { (BracedVarSub token: <VSub_Name bad> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (n)} ) spids: [5475 5480] ) } spids: [5474] ) ] spids: [5474] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$good'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(echo)} {(-e)} {(DQ ($ VSub_Name '$good'))}) (C {($ VSub_Name '$MANPAGER')}) ] negated: False ) ] spids: [-1 5497] ) ] spids: [-1 5513] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$bad'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$bad'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[5541])] ) ] spids: [-1 5530] ) ] spids: [-1 5545] ) (C {(exit)} {($ VSub_Name '$rval')}) ] spids: [5057] ) spids: [5053 5056] ) (FuncDef name: setup_cattool body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (.bz)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ </usr/bin/bzcat>)} spids: [5582] ) ] spids: [5582] ) ] spids: [5578 5580 5587 -1] ) (case_arm pat_list: [{(Lit_Other '*') (.bz2)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ </usr/bin/bzcat>)} spids: [5594] ) ] spids: [5594] ) ] spids: [5590 5592 5599 -1] ) (case_arm pat_list: [{(Lit_Other '*') (.gz)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ </usr/bin/zcat>)} spids: [5606] ) ] spids: [5606] ) ] spids: [5602 5604 5611 -1] ) (case_arm pat_list: [{(Lit_Other '*') (.lzma)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ </usr/bin/lzcat>)} spids: [5618] ) ] spids: [5618] ) ] spids: [5614 5616 5623 -1] ) (case_arm pat_list: [{(Lit_Other '*') (.xz)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ </usr/bin/xzcat>)} spids: [5630] ) ] spids: [5630] ) ] spids: [5626 5628 5635 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ <'/usr/bin/zcat -f'>)} spids: [5641] ) ] spids: [5641] ) ] spids: [5638 5639 5646 -1] ) ] spids: [5569 5575 5649] ) ] spids: [5566] ) spids: [5562 5565] ) (FuncDef name: setup_pager body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$MANPAGER'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$MANCOLOR'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANPAGER) op: Equal rhs: {(DQ ('less -sR'))} spids: [5703] ) ] spids: [5703] ) ] spids: [-1 5700] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$PAGER'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANPAGER) op: Equal rhs: {(DQ ($ VSub_Name '$PAGER'))} spids: [5728] ) ] spids: [5728] ) ] spids: [-1 5725] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MANPAGER) op: Equal rhs: {(DQ ('more -s'))} spids: [5737] ) ] spids: [5737] ) ] spids: [5734 5743] ) ] spids: [5709 5746] ) ] spids: [-1 5684] ) ] spids: [-1 5749] ) (C {(decho)} {(DQ ('Using pager: ') ($ VSub_Name '$MANPAGER'))}) ] spids: [5664] ) spids: [5660 5663] ) (FuncDef name: trim body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tstr) op: Equal rhs: {($ VSub_Number '$1')} spids: [5775] ) ] spids: [5775] ) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$tstr'))} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (EscapedLiteralPart token: <Lit_EscapedChar '\\\t'> ) (Lit_Other ']') (Lit_Other '*') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tstr) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name tstr> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('[') (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (']') } ) spids: [5805 5812] ) ) } spids: [5803] ) ] spids: [5803] ) ] spids: [5796 5801 5815 -1] ) (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '[') (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (Lit_Other ']') } ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tstr) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name tstr> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {('[') (EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) (']') } ) spids: [5827 5834] ) ) } spids: [5825] ) ] spids: [5825] ) ] spids: [5818 5823 5837 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [5840 5841 5845 -1] ) ] spids: [5787 5793 5848] ) ] spids: [5784 5851] ) ) ] spids: [5772] ) spids: [5768 5771] ) (FuncDef name: whatis_parse_args body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:cmd_arg) op:Equal spids:[5871])] spids: [5869] ) (While cond: [(Sentence child:(C {(getopts)} {(SQ <d>)} {(cmd_arg)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Name cmd_arg))} arms: [ (case_arm pat_list: [{(d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:debug) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$debug')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [5903 5912] ) } spids: [5902] ) ] spids: [5902] ) ] spids: [5899 5900 5914 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(whatis_usage)})] spids: [5917 5918 5922 -1] ) ] spids: [5888 5896 5925] ) ] spids: [5885 5928] ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[5930])] ) (C {(shift)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$OPTIND')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [5937 5946] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keywords) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [5950] ) ] spids: [5950] ) ] spids: [5866] ) spids: [5862 5865] ) (FuncDef name: whatis_usage body: (BraceGroup children: [ (C {(echo)} {(DQ ('usage: ') ($ VSub_Name '$cmd') (' [-d] keyword [...]'))}) (C {(exit)} {(1)}) ] spids: [5968] ) spids: [5964 5967] ) (FuncDef name: do_apropos body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/man)})] ) left_token: <Left_CommandSub '$('> spids: [6001 6010] ) } {(-ne)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/apropos)})] ) left_token: <Left_CommandSub '$('> spids: [6014 6023] ) } {(Lit_Other ']')} ) (C {(exec)} {(apropos)} {(DQ ($ VSub_At '$@'))}) ] op_id: Op_DAmp ) (C {(search_whatis)} {(apropos)} {(DQ ($ VSub_At '$@'))}) ] spids: [5996] ) spids: [5992 5995] ) (FuncDef name: do_man body: (BraceGroup children: [ (C {(man_parse_args)} {(DQ ($ VSub_At '$@'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$pages'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(SQ <'What manual page do you want?'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[6087])] ) (C {(exit)} {(1)}) ] spids: [-1 6078] ) ] spids: [-1 6096] ) (C {(man_setup)}) (ForEach iter_name: page iter_words: [{($ VSub_Name '$pages')}] do_arg_iter: False body: (DoGroup children: [ (C {(decho)} {(DQ ('Searching for ') ($ VSub_Name '$page'))}) (C {(man_find_and_display)} {(DQ ($ VSub_Name '$page'))}) ] spids: [6112 6130] ) spids: [6108 6110] ) (C {(exit)} { (BracedVarSub token: <VSub_Name ret> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)}) spids: [6136 6140] ) } ) ] spids: [6055] ) spids: [6051 6054] ) (FuncDef name: do_manpath body: (BraceGroup children: [ (C {(manpath_parse_args)} {(DQ ($ VSub_At '$@'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$qflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(manpath_warnings)})] spids: [-1 6172] ) ] spids: [-1 6178] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$Lflag'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(build_manlocales)}) (C {(echo)} {($ VSub_Name '$MANLOCALES')})] spids: [-1 6194] ) ] else_action: [(C {(build_manpath)}) (C {(echo)} {($ VSub_Name '$MANPATH')})] spids: [6205 6216] ) (C {(exit)} {(0)}) ] spids: [6149] ) spids: [6145 6148] ) (FuncDef name: do_whatis body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/man)})] ) left_token: <Left_CommandSub '$('> spids: [6235 6244] ) } {(-ne)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(-f)} {(Lit_Other '%') (i)} {(/usr/bin/whatis)})] ) left_token: <Left_CommandSub '$('> spids: [6248 6257] ) } {(Lit_Other ']')} ) (C {(exec)} {(whatis)} {(DQ ($ VSub_At '$@'))}) ] op_id: Op_DAmp ) (C {(search_whatis)} {(whatis)} {(DQ ($ VSub_At '$@'))}) ] spids: [6230] ) spids: [6226 6229] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:EQN) op:Equal rhs:{(eqn)} spids:[6288])] spids: [6288] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NROFF) op: Equal rhs: {(SQ <'groff -S -P-h -Wall -mtty-char -man'>)} spids: [6291] ) ] spids: [6291] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PIC) op:Equal rhs:{(pic)} spids:[6296])] spids: [6296] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:REFER) op:Equal rhs:{(refer)} spids:[6299])] spids: [6299] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TBL) op:Equal rhs:{(tbl)} spids:[6302])] spids: [6302] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TROFF) op: Equal rhs: {(SQ <'groff -S -man'>)} spids: [6305] ) ] spids: [6305] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:VGRIND) op:Equal rhs:{(vgrind)} spids:[6310])] spids: [6310] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LOCALE) op:Equal rhs:{(/usr/bin/locale)} spids:[6314])] spids: [6314] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:STTY) op:Equal rhs:{(/bin/stty)} spids:[6317])] spids: [6317] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SYSCTL) op:Equal rhs:{(/sbin/sysctl)} spids:[6320])] spids: [6320] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:debug) op:Equal rhs:{(0)} spids:[6324])] spids: [6324] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man_default_sections) op: Equal rhs: {(SQ <'1:8:2:3:n:4:5:6:7:9:l'>)} spids: [6327] ) ] spids: [6327] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:man_default_path) op: Equal rhs: {(SQ <'/usr/share/man:/usr/share/openssl/man:/usr/local/man'>)} spids: [6332] ) ] spids: [6332] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cattool) op: Equal rhs: {(SQ <'/usr/bin/zcat -f'>)} spids: [6337] ) ] spids: [6337] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config_global) op: Equal rhs: {(SQ </etc/man.conf>)} spids: [6343] ) ] spids: [6343] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config_local) op: Equal rhs: {(SQ <'/usr/local/etc/man.d/*.conf'>)} spids: [6352] ) ] spids: [6352] ) (C {(set)} {(-f)}) (Case to_match: {(DQ ($ VSub_Number '$0'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (apropos)}] action: [(C {(do_apropos)} {(DQ ($ VSub_At '$@'))})] spids: [6374 6376 6384 -1] ) (case_arm pat_list: [{(Lit_Other '*') (manpath)}] action: [(C {(do_manpath)} {(DQ ($ VSub_At '$@'))})] spids: [6386 6388 6396 -1] ) (case_arm pat_list: [{(Lit_Other '*') (whatis)}] action: [(C {(do_whatis)} {(DQ ($ VSub_At '$@'))})] spids: [6398 6400 6408 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(do_man)} {(DQ ($ VSub_At '$@'))})] spids: [6410 6411 6419 -1] ) ] spids: [6366 6372 6421] ) ] )