(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)}) ] )