diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2016-11-15 14:36:33 +0100 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2016-11-15 14:36:33 +0100 |
commit | 060649e0f103ff37924140bb6584be9843f666e9 (patch) | |
tree | 57717b2214c27a67a6fffba2c9facf5d08220b85 /src/diff_generate.c | |
parent | 49656a5b6beff3b2e91ca1894bb3d72671bb4d8f (diff) | |
download | libgit2-cmn/cancellation.tar.gz |
Add minimal cancellation to diffcmn/cancellation
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, |