int result;
 
        init_revisions(&rev, prefix);
-       git_config(git_default_config); /* no "diff" UI options */
+       git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
        rev.abbrev = 0;
 
        argc = setup_revisions(argc, argv, &rev, NULL);
                return -1;
        }
        result = run_diff_index(&rev, cached);
-       if (DIFF_OPT_TST(&rev.diffopt, EXIT_WITH_STATUS))
-               return DIFF_OPT_TST(&rev.diffopt, HAS_CHANGES) != 0;
-       return result;
+       return diff_result_code(&rev.diffopt, result);
 }