(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_DBRACKET_LIKE "="]} {[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: '"][VarSub MERGED][LIT_CHARS "'"][\ LIT_ESCAPED_CHAR "\\n"]]} ) (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]]} ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS read]} {[LIT_CHARS ans]} ) (Com {[LIT_CHARS test]} {[DQ [VarSub ans]]} {[LIT_DBRACKET_LIKE "="]} {[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]]} ) (Com {[LIT_CHARS shift]} {[LIT_CHARS 7]} ) ) ) ) )