diff options
Diffstat (limited to 'src/diff_generate.c')
-rw-r--r-- | src/diff_generate.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/diff_generate.c b/src/diff_generate.c index 06f9b19c7..4858c43c0 100644 --- a/src/diff_generate.c +++ b/src/diff_generate.c @@ -16,6 +16,7 @@ #include "index.h" #include "odb.h" #include "submodule.h" +#include "cancellation.h" #define DIFF_FLAG_IS_SET(DIFF,FLAG) \ (((DIFF)->base.opts.flags & (FLAG)) != 0) @@ -1212,6 +1213,12 @@ int git_diff__from_iterators( while (!error && (info.oitem || info.nitem)) { int cmp; + if (git_cancellation__canceled()) { + giterr_set(GITERR_CANCELLATION, "the operation was canceled"); + error = GIT_ECANCELLED; + goto cleanup; + } + /* report progress */ if (opts && opts->progress_cb) { if ((error = opts->progress_cb(&diff->base, |