(CommandList children: [ (C {(_Dbg_help_add)} {(untrace)} { (SQ <'untrace FUNCTION\n'> <'\n'> <'Untrace previously-traced function FUNCTION. See also "trace".'> ) } ) (FuncDef name: _Dbg_do_untrace body: (BraceGroup children: [ (Assignment keyword: Assign_Typeset pairs: [ (assign_pair lhs: (LhsName name:fn) op: Equal rhs: {($ VSub_Number '$1')} spids: [82] ) ] spids: [80] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$fn')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_errmsg)} {(DQ ('untrace: missing or invalid function name.'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(2)}) ] spids: [16777215 98] ) ] spids: [16777215 113] ) (AndOr children: [ (C {(_Dbg_is_function)} {(DQ ($ VSub_Name '$fn'))} {($ VSub_Name '$_Dbg_set_debug')}) (BraceGroup children: [ (C {(_Dbg_errmsg)} { (DQ ('untrace: function ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$fn') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is not a function.') ) } ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(3)}) ] spids: [126] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(_Dbg_is_function)} {(DQ (old_) ($ VSub_Name '$fn'))}) (BraceGroup children: [ (C {(_Dbg_errmsg)} { (DQ ('untrace: old function old_') ($ VSub_Name '$fn') (' not seen - nothing done.') ) } ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(4)}) ] spids: [157] ) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(Assign_Declare declare)} {(-f)} {(--)} {(DQ (old_) ($ VSub_Name '$fn'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [180 191] ) } spids: [179] ) ] spids: [179] ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$cmd')} right: {(SQ <'^function old_'>)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: { (DQ ('function ') (BracedVarSub token: <VSub_Name cmd> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 13)})) spids: [221 225] ) ) } spids: [218] ) ] spids: [218] ) ] spids: [16777215 215] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: { (BracedVarSub token: <VSub_Name cmd> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(old_)}) spids: [233 237] ) } spids: [232] ) ] spids: [232] ) ] spids: [229 240] ) (AndOr children: [ (DParen child:(ArithVarRef name:_Dbg_debug_debugger)) (C {(echo)} {($ VSub_Name '$cmd')}) ] op_id: Op_DAmp ) (AndOr children: [ (C {(eval)} {(DQ ($ VSub_Name '$cmd'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(6)} ) ] op_id: Op_DPipe ) (C {(_Dbg_msg)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$fn') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' restored from ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (old_) (${ VSub_Name fn) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (.) ) } ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 195] ) ] else_action: [ (C {(_Dbg_errmsg)} { (DQ ("Can't find function definition for ") (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$fn') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (.) ) } ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(5)}) ] spids: [291 310] ) ] spids: [77] ) spids: [73 76] ) ] )