(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TOOL_MODE) op:Equal rhs:{(diff)} spids:[19])] spids: [19] ) (C {(.)} {(git-mergetool--lib)}) (FuncDef name: should_prompt body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prompt_merge) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (C {(git)} {(config)} {(--bool)} {(mergetool.prompt)}) (C {(echo)} {(true)}) ] op_id: Op_DPipe ) ] ) left_token: <Left_CommandSub '$('> spids: [42 56] ) } spids: [41] ) ] spids: [41] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prompt) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (C {(git)} {(config)} {(--bool)} {(difftool.prompt)}) (C {(echo)} {($ VSub_Name '$prompt_merge')}) ] op_id: Op_DPipe ) ] ) left_token: <Left_CommandSub '$('> spids: [60 74] ) } spids: [59] ) ] spids: [59] ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name '$prompt'))} {(Lit_Other '=')} {(true)})] action: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_DIFFTOOL_NO_PROMPT'))})] spids: [-1 90] ) ] else_action: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$GIT_DIFFTOOL_PROMPT'))})] spids: [102 114] ) ] spids: [38] ) spids: [33 37] ) (FuncDef name: use_ext_cmd body: (BraceGroup children: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$GIT_DIFFTOOL_EXTCMD'))})] spids: [127] ) spids: [122 126] ) (FuncDef name: launch_merge_tool body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MERGED) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [165] ) ] spids: [165] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LOCAL) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [171] ) ] spids: [171] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REMOTE) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [177] ) ] spids: [177] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [183] ) ] spids: [183] ) (If arms: [ (if_arm cond: [(C {(should_prompt)})] action: [ (C {(printf)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ("Viewing (%s/%s): '%s'") (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ) } {(DQ ($ VSub_Name '$GIT_DIFF_PATH_COUNTER'))} {(DQ ($ VSub_Name '$GIT_DIFF_PATH_TOTAL'))} {(DQ ($ VSub_Name '$MERGED'))} ) (If arms: [ (if_arm cond: [(C {(use_ext_cmd)})] action: [ (C {(printf)} {(DQ ("Launch '%s' [Y/n]? "))} {(DQ ($ VSub_Name '$GIT_DIFFTOOL_EXTCMD'))} ) ] spids: [-1 234] ) ] else_action: [ (C {(printf)} {(DQ ("Launch '%s' [Y/n]? "))} {(DQ ($ VSub_Name '$merge_tool'))}) ] spids: [250 264] ) (AndOr children: [(C {(read)} {(ans)}) (ControlFlow token:<ControlFlow_Return return>)] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ ($ VSub_Name '$ans'))} {(Lit_Other '=')} {(n)})] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [-1 289] ) ] spids: [-1 295] ) ] spids: [-1 203] ) ] spids: [-1 298] ) (If arms: [ (if_arm cond: [(C {(use_ext_cmd)})] action: [ (C {(export)} {(BASE)}) (C {(eval)} {($ VSub_Name '$GIT_DIFFTOOL_EXTCMD')} {(SQ <'"$LOCAL"'>)} {(SQ <'"$REMOTE"'>)} ) ] spids: [-1 307] ) ] else_action: [(C {(run_merge_tool)} {(DQ ($ VSub_Name '$merge_tool'))})] spids: [328 338] ) ] spids: [146] ) spids: [141 145] ) (If arms: [ (if_arm cond: [(Pipeline children:[(C {(use_ext_cmd)})] negated:True)] action: [ (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$GIT_DIFF_TOOL'))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_tool) op: Equal rhs: {(DQ ($ VSub_Name '$GIT_DIFF_TOOL'))} spids: [366] ) ] spids: [366] ) ] spids: [-1 363] ) ] else_action: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:merge_tool) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(get_merge_tool)})]) left_token: <Left_CommandSub '$('> spids: [377 379] ) ) } spids: [375] ) ] spids: [375] ) (C {(exit)}) ] op_id: Op_DPipe ) ] spids: [372 387] ) ] spids: [-1 349] ) ] spids: [-1 389] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$GIT_DIFFTOOL_DIRDIFF'))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LOCAL) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [405] ) ] spids: [405] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REMOTE) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [411] ) ] spids: [411] ) (C {(run_merge_tool)} {(DQ ($ VSub_Name '$merge_tool'))} {(false)}) ] spids: [-1 402] ) ] else_action: [ (While cond: [(C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(6)})] body: (DoGroup children: [ (C {(launch_merge_tool)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))} {(DQ ($ VSub_Number '$5'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark '$?')} spids: [461] ) ] spids: [461] ) (If arms: [ (if_arm cond: [(C {(test)} {($ VSub_Name '$status')} {(-ge)} {(126)})] action: [(C {(exit)} {($ VSub_Name '$status')})] spids: [-1 476] ) ] spids: [-1 492] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name '$status'))} {(KW_Bang '!') (Lit_Other '=')} {(0)} ) (C {(test)} {(DQ ($ VSub_Name '$GIT_DIFFTOOL_TRUST_EXIT_CODE'))} {(Lit_Other '=')} {(true)} ) ] op_id: Op_DAmp ) ] action: [(C {(exit)} {($ VSub_Name '$status')})] spids: [-1 523] ) ] spids: [-1 531] ) (C {(shift)} {(7)}) ] spids: [443 539] ) ) ] spids: [425 541] ) (C {(exit)} {(0)}) ] )