#define AFTER 2
#define ORIG 4
#define RESULT 8
-#define CHANGES 16 /* AFTER is different to BEFORE */
+#define CHANGES 16 /* A change is visible here,
+ * so 2 streams need to be shown */
#define WIGGLED 32 /* a conflict that was successfully resolved */
#define CONFLICTED 64 /* a conflict that was not successfully resolved */
do {
if (m[pos.p.m].type == Changed)
rv |= CHANGES;
- else if ((m[pos.p.m].type == AlreadyApplied ||
- m[pos.p.m].type == Conflict))
+ else if (m[pos.p.m].type == Conflict)
rv |= CONFLICTED | CHANGES;
- else if (m[pos.p.m].type == Extraneous &&
- /* hunk headers don't count as wiggles */
- fb.list[m[pos.p.m].b].start[0] != '\0')
- rv |= WIGGLED;
- else if (m[pos.p.m].type == Unmatched)
+ else if (m[pos.p.m].type == AlreadyApplied) {
+ rv |= CONFLICTED;
+ if (mode & (BEFORE|AFTER))
+ rv |= CHANGES;
+ } else if (m[pos.p.m].type == Extraneous) {
+ /* hunk headers don't count as wiggles */
+ if (fb.list[m[pos.p.m].b].start[0] != '\0')
+ rv |= WIGGLED;
+ } else if (m[pos.p.m].type == Unmatched)
unmatched = 1;
if (m[pos.p.m].in_conflict &&
(pos.p.o < m[pos.p.m].lo ||
break;
}
}
- mask = ORIG|RESULT|BEFORE|AFTER|CHANGES;
+ mask = ORIG|RESULT|BEFORE|AFTER;
switch (pos->state) {
case 1:
mask &= ~(RESULT|AFTER);
break;
}
}
- mask = ORIG|RESULT|BEFORE|AFTER|CHANGES;
+ mask = ORIG|RESULT|BEFORE|AFTER;
switch (pos->state) {
case 1:
mask &= ~(RESULT|AFTER);