- struct diff_tempfile *temp_one, *temp_two;
- const char *othername = (other ? other : name);
- temp_one = prepare_temp_file(name, one);
- temp_two = prepare_temp_file(othername, two);
- argv_array_push(&argv, temp_one->name);
- argv_array_push(&argv, temp_one->hex);
- argv_array_push(&argv, temp_one->mode);
- argv_array_push(&argv, temp_two->name);
- argv_array_push(&argv, temp_two->hex);
- argv_array_push(&argv, temp_two->mode);
- if (other) {
+ add_external_diff_name(&argv, name, one);
+ if (!other)
+ add_external_diff_name(&argv, name, two);
+ else {
+ add_external_diff_name(&argv, other, two);