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);
        for (i = 1; i < argc; i++) {
                const char *arg = argv[i];
-                       
+
                if (!strcmp(arg, "--cached"))
                        cached = 1;
                else
                return -1;
        }
        result = run_diff_index(&rev, cached);
-       return rev.diffopt.exit_with_status ? rev.diffopt.has_changes: result;
+       return diff_result_code(&rev.diffopt, result);
 }