(List (= scope= flags=0 words=[] bindings=[('TOOL_MODE', {[LIT_CHARS diff]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-mergetool--lib]}) (FunctionDef should_prompt [] (List (= scope= flags=0 words=[] bindings=[('prompt_merge', {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS mergetool.prompt]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS true]}) )]})]) (= scope= flags=0 words=[] bindings=[('prompt', {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS difftool.prompt]}) (Com {[LIT_CHARS echo]} {[VarSub prompt_merge]}) )]})]) (If (Com {[LIT_CHARS test]} {[DQ [VarSub prompt]]} {[LIT_OTHER "="]} {[LIT_CHARS true]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_DIFFTOOL_NO_PROMPT]]}) (ElseTrue) (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_DIFFTOOL_PROMPT]]}) ) ) ) (FunctionDef use_ext_cmd [] (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_DIFFTOOL_EXTCMD]]}) ) (FunctionDef launch_merge_tool [] (List (= scope= flags=0 words=[] bindings=[('MERGED', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('LOCAL', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('REMOTE', {[DQ [VarSub 3]]})]) (= scope= flags=0 words=[] bindings=[('BASE', {[DQ [VarSub 1]]})]) (If (Com {[LIT_CHARS should_prompt]}) (List (Com {[LIT_CHARS printf]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "Viewing (%s/%s): '%s'"][\ LIT_ESCAPED_CHAR "\\n"]]} {[DQ [VarSub GIT_DIFF_PATH_COUNTER]]} {[DQ [VarSub GIT_DIFF_PATH_TOTAL]]} {[DQ [VarSub MERGED]]}) (If (Com {[LIT_CHARS use_ext_cmd]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Launch '%s' [Y/n]? "]]} {[DQ [VarSub GIT_DIFFTOOL_EXTCMD]]}) (ElseTrue) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Launch '%s' [Y/n]? "]]} {[DQ [VarSub merge_tool]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS read]} {[LIT_CHARS ans]}) (Com {[LIT_CHARS return]}) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub ans]]} {[LIT_OTHER "="]} {[LIT_CHARS n]}) (Com {[LIT_CHARS return]}) ) ) ) (If (Com {[LIT_CHARS use_ext_cmd]}) (List (= scope= flags=1 words=[{[LIT_CHARS BASE]}] bindings=[]) (Com {[LIT_CHARS eval]} {[VarSub GIT_DIFFTOOL_EXTCMD]} {[SQ ]} {[SQ ]}) ) (ElseTrue) (Com {[LIT_CHARS run_merge_tool]} {[DQ [VarSub merge_tool]]}) ) ) ) (If (Pipeline! (Com {[LIT_CHARS use_ext_cmd]}) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_DIFF_TOOL]]}) (= scope= flags=0 words=[] bindings=[('merge_tool', {[DQ [VarSub GIT_DIFF_TOOL]]})]) (ElseTrue) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('merge_tool', {[DQ [ComSub (Com {[LIT_CHARS get_merge_tool]})]]})]) (Com {[LIT_CHARS exit]}) ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub GIT_DIFFTOOL_DIRDIFF]]}) (List (= scope= flags=0 words=[] bindings=[('LOCAL', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('REMOTE', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS run_merge_tool]} {[DQ [VarSub merge_tool]]} {[LIT_CHARS false]}) ) (ElseTrue) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 6]}) (List (Com {[LIT_CHARS launch_merge_tool]} {[DQ [VarSub 1]]} {[DQ [VarSub 2]]} {[DQ [VarSub 5]]}) (= scope= flags=0 words=[] bindings=[('status', {[VarSub ?]})]) (If (Com {[LIT_CHARS test]} {[VarSub status]} {[LIT_CHARS -ge]} {[LIT_CHARS 126]}) (Com {[LIT_CHARS exit]} {[VarSub status]}) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub status]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS test]} {[DQ [VarSub GIT_DIFFTOOL_TRUST_EXIT_CODE]]} {[LIT_OTHER "="]} {[LIT_CHARS true]}) ) (Com {[LIT_CHARS exit]} {[VarSub status]}) ) (Com {[LIT_CHARS shift]} {[LIT_CHARS 7]}) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) )