summaryrefslogtreecommitdiffstats
path: root/XD.c
diff options
context:
space:
mode:
Diffstat (limited to 'XD.c')
-rw-r--r--XD.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/XD.c b/XD.c
index c44fe3f..aa3d43d 100644
--- a/XD.c
+++ b/XD.c
@@ -188,9 +188,13 @@ has_staged(git_repository *repo)
{
git_status_entry entry;
git_status_list *list = NULL;
+ git_status_options opts = GIT_STATUS_OPTIONS_INIT;
int i, c, r = 0;
- if (git_status_list_new(&list, repo, NULL) < 0) {
+ opts.flags = GIT_STATUS_INDEX_NEW;
+ opts.show = GIT_STATUS_SHOW_INDEX_ONLY;
+
+ if (git_status_list_new(&list, repo, &opts) < 0) {
L("Error checking for staged changes: %s", git_error_last()->message);
return 0;
}
@@ -200,9 +204,9 @@ has_staged(git_repository *repo)
for (i = 0; i < c; i++) {
entry = *git_status_byindex(list, i);
- if (entry.status & GIT_STATUS_INDEX_NEW
- || entry.status & GIT_STATUS_INDEX_DELETED
- || entry.status & GIT_STATUS_INDEX_MODIFIED) {
+ if (entry.status & (GIT_STATUS_INDEX_NEW
+ | GIT_STATUS_INDEX_DELETED
+ | GIT_STATUS_INDEX_MODIFIED)) {
r = 1;
break;
}