From 628e92cdb31cb3561549671ea5346a347f2addcd Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Thu, 5 Dec 2013 14:47:04 -0800 Subject: [PATCH] Don't use weird return codes --- src/diff_tform.c | 11 ++++++++--- tests/diff/rename.c | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/diff_tform.c b/src/diff_tform.c index 6f29f25da..0c9f961f2 100644 --- a/src/diff_tform.c +++ b/src/diff_tform.c @@ -293,8 +293,9 @@ static int normalize_find_opts( if (git_config_get_string(&val, cfg, "diff.renames") < 0) giterr_clear(); else if (val) { - if (!strcasecmp(val, "false")) - return GIT_PASSTHROUGH; + int boolval; + if (!git__parse_bool(&boolval, val) && !boolval) + opts->flags = 0; else if (!strcasecmp(val, "copies") || !strcasecmp(val, "copy")) opts->flags = GIT_DIFF_FIND_RENAMES | GIT_DIFF_FIND_COPIES; else @@ -834,7 +835,11 @@ int git_diff_find_similar( git_diff_file swap; if ((error = normalize_find_opts(diff, &opts, given_opts)) < 0) - return (error == GIT_PASSTHROUGH) ? 0 : error; + return error; + + /* No flags set; nothing to do */ + if ((opts.flags & GIT_DIFF_FIND_ALL) == 0) + return 0; num_deltas = diff->deltas.length; diff --git a/tests/diff/rename.c b/tests/diff/rename.c index b304ec253..c08c1a8b4 100644 --- a/tests/diff/rename.c +++ b/tests/diff/rename.c @@ -919,6 +919,7 @@ void test_diff_rename__rejected_match_can_match_others(void) char *ptr; opts.checkout_strategy = GIT_CHECKOUT_FORCE; + findopts.flags = GIT_DIFF_FIND_RENAMES; cl_git_pass(git_reference_lookup(&head, g_repo, "HEAD")); cl_git_pass(git_reference_symbolic_set_target( @@ -1003,6 +1004,7 @@ void test_diff_rename__rejected_match_can_match_others_two(void) struct rename_expected expect = { 2, status, sources, targets }; opts.checkout_strategy = GIT_CHECKOUT_FORCE; + findopts.flags = GIT_DIFF_FIND_RENAMES; cl_git_pass(git_reference_lookup(&head, g_repo, "HEAD")); cl_git_pass(git_reference_symbolic_set_target( @@ -1060,6 +1062,7 @@ void test_diff_rename__rejected_match_can_match_others_three(void) struct rename_expected expect = { 2, status, sources, targets }; opts.checkout_strategy = GIT_CHECKOUT_FORCE; + findopts.flags = GIT_DIFF_FIND_RENAMES; cl_git_pass(git_reference_lookup(&head, g_repo, "HEAD")); cl_git_pass(git_reference_symbolic_set_target(