diff options
Diffstat (limited to 'diff-lib.c')
-rw-r--r-- | diff-lib.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/diff-lib.c b/diff-lib.c index d7e13cb17..15ca7cdac 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -180,10 +180,10 @@ int run_diff_files(struct rev_info *revs, unsigned int option) changed = ce_match_stat(ce, &st, ce_option); if (S_ISGITLINK(ce->ce_mode) && !DIFF_OPT_TST(&revs->diffopt, IGNORE_SUBMODULES) - && (!changed || (revs->diffopt.output_format & DIFF_FORMAT_PATCH)) - && is_submodule_modified(ce->name)) { - changed = 1; - dirty_submodule = 1; + && (!changed || (revs->diffopt.output_format & DIFF_FORMAT_PATCH))) { + dirty_submodule = is_submodule_modified(ce->name); + if (dirty_submodule) + changed = 1; } if (!changed) { ce_mark_uptodate(ce); @@ -243,10 +243,10 @@ static int get_stat_data(struct cache_entry *ce, changed = ce_match_stat(ce, &st, 0); if (S_ISGITLINK(ce->ce_mode) && !DIFF_OPT_TST(diffopt, IGNORE_SUBMODULES) - && (!changed || (diffopt->output_format & DIFF_FORMAT_PATCH)) - && is_submodule_modified(ce->name)) { - changed = 1; - *dirty_submodule = 1; + && (!changed || (diffopt->output_format & DIFF_FORMAT_PATCH))) { + *dirty_submodule = is_submodule_modified(ce->name); + if (*dirty_submodule) + changed = 1; } if (changed) { mode = ce_mode_from_stat(ce, st.st_mode); |