|  | diff_cmd () { | 
|  | "$merge_tool_path" "$LOCAL" "$REMOTE" | 
|  | } | 
|  |  | 
|  | merge_cmd () { | 
|  | if test -z "${meld_has_output_option:+set}" | 
|  | then | 
|  | check_meld_for_output_version | 
|  | fi | 
|  | touch "$BACKUP" | 
|  | if test "$meld_has_output_option" = true | 
|  | then | 
|  | "$merge_tool_path" --output "$MERGED" \ | 
|  | "$LOCAL" "$BASE" "$REMOTE" | 
|  | else | 
|  | "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE" | 
|  | fi | 
|  | check_unchanged | 
|  | } | 
|  |  | 
|  | # Check whether we should use 'meld --output <file>' | 
|  | check_meld_for_output_version () { | 
|  | meld_path="$(git config mergetool.meld.path)" | 
|  | meld_path="${meld_path:-meld}" | 
|  |  | 
|  | if meld_has_output_option=$(git config --bool mergetool.meld.hasOutput) | 
|  | then | 
|  | : use configured value | 
|  | elif "$meld_path" --help 2>&1 | | 
|  | grep -e '--output=' -e '\[OPTION\.\.\.\]' >/dev/null | 
|  | then | 
|  | : old ones mention --output and new ones just say OPTION... | 
|  | meld_has_output_option=true | 
|  | else | 
|  | meld_has_output_option=false | 
|  | fi | 
|  | } |