xdiff: change type of xdfile_t.changed from char to bool

The only values possible for 'changed' is 1 and 0, which exactly maps
to a bool type. It might not look like this because action1 and action2
(which use to be dis1, and dis2) were also of type char and were
assigned numerical values within a few lines of 'changed' (what used to
be rchg).

Using DISCARD/KEEP/INVESTIGATE for action1[i]/action2[j], and true/false
for changed[k] makes it clear to future readers that these are
logically separate concepts.

Best-viewed-with: --color-words
Signed-off-by: Ezekiel Newren <ezekielnewren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Ezekiel Newren 2025-09-26 22:41:59 +00:00 committed by Junio C Hamano
parent e385e1b7d2
commit 8b9c5d2e3a
5 changed files with 22 additions and 22 deletions

View File

@ -278,10 +278,10 @@ int xdl_recs_cmp(xdfile_t *xdf1, long off1, long lim1,
*/
if (off1 == lim1) {
for (; off2 < lim2; off2++)
xdf2->changed[xdf2->rindex[off2]] = 1;
xdf2->changed[xdf2->rindex[off2]] = true;
} else if (off2 == lim2) {
for (; off1 < lim1; off1++)
xdf1->changed[xdf1->rindex[off1]] = 1;
xdf1->changed[xdf1->rindex[off1]] = true;
} else {
xdpsplit_t spl;
spl.i1 = spl.i2 = 0;
@ -753,8 +753,8 @@ static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g)
{
if (g->end < xdf->nrec &&
recs_match(&xdf->recs[g->start], &xdf->recs[g->end])) {
xdf->changed[g->start++] = 0;
xdf->changed[g->end++] = 1;
xdf->changed[g->start++] = false;
xdf->changed[g->end++] = true;

while (xdf->changed[g->end])
g->end++;
@ -774,8 +774,8 @@ static int group_slide_up(xdfile_t *xdf, struct xdlgroup *g)
{
if (g->start > 0 &&
recs_match(&xdf->recs[g->start - 1], &xdf->recs[g->end - 1])) {
xdf->changed[--g->start] = 1;
xdf->changed[--g->end] = 0;
xdf->changed[--g->start] = true;
xdf->changed[--g->end] = false;

while (xdf->changed[g->start - 1])
g->start--;
@ -932,7 +932,7 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {

int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr) {
xdchange_t *cscr = NULL, *xch;
char *changed1 = xe->xdf1.changed, *changed2 = xe->xdf2.changed;
bool *changed1 = xe->xdf1.changed, *changed2 = xe->xdf2.changed;
long i1, i2, l1, l2;

/*

View File

@ -318,11 +318,11 @@ redo:

if (!count1) {
while(count2--)
env->xdf2.changed[line2++ - 1] = 1;
env->xdf2.changed[line2++ - 1] = true;
return 0;
} else if (!count2) {
while(count1--)
env->xdf1.changed[line1++ - 1] = 1;
env->xdf1.changed[line1++ - 1] = true;
return 0;
}

@ -335,9 +335,9 @@ redo:
else {
if (lcs.begin1 == 0 && lcs.begin2 == 0) {
while (count1--)
env->xdf1.changed[line1++ - 1] = 1;
env->xdf1.changed[line1++ - 1] = true;
while (count2--)
env->xdf2.changed[line2++ - 1] = 1;
env->xdf2.changed[line2++ - 1] = true;
result = 0;
} else {
result = histogram_diff(xpp, env,

View File

@ -331,11 +331,11 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
/* trivial case: one side is empty */
if (!count1) {
while(count2--)
env->xdf2.changed[line2++ - 1] = 1;
env->xdf2.changed[line2++ - 1] = true;
return 0;
} else if (!count2) {
while(count1--)
env->xdf1.changed[line1++ - 1] = 1;
env->xdf1.changed[line1++ - 1] = true;
return 0;
}

@ -347,9 +347,9 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
/* are there any matching lines at all? */
if (!map.has_matches) {
while(count1--)
env->xdf1.changed[line1++ - 1] = 1;
env->xdf1.changed[line1++ - 1] = true;
while(count2--)
env->xdf2.changed[line2++ - 1] = 1;
env->xdf2.changed[line2++ - 1] = true;
xdl_free(map.entries);
return 0;
}

View File

@ -273,7 +273,7 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd

/*
* Create temporary arrays that will help us decide if
* changed[i] should remain 0 or become 1.
* changed[i] should remain false, or become true.
*/
if (!XDL_CALLOC_ARRAY(action1, xdf1->nrec + 1)) {
ret = -1;
@ -305,16 +305,16 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd

/*
* Use temporary arrays to decide if changed[i] should remain
* 0 or become 1.
* false, or become true.
*/
for (nreff = 0, i = xdf1->dstart, recs = &xdf1->recs[xdf1->dstart];
i <= xdf1->dend; i++, recs++) {
if (action1[i] == KEEP ||
(action1[i] == INVESTIGATE && !xdl_clean_mmatch(action1, i, xdf1->dstart, xdf1->dend))) {
xdf1->rindex[nreff++] = i;
/* changed[i] remains 0, i.e. keep */
/* changed[i] remains false, i.e. keep */
} else
xdf1->changed[i] = 1;
xdf1->changed[i] = true;
/* i.e. discard */
}
xdf1->nreff = nreff;
@ -324,9 +324,9 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd
if (action2[i] == KEEP ||
(action2[i] == INVESTIGATE && !xdl_clean_mmatch(action2, i, xdf2->dstart, xdf2->dend))) {
xdf2->rindex[nreff++] = i;
/* changed[i] remains 0, i.e. keep */
/* changed[i] remains false, i.e. keep */
} else
xdf2->changed[i] = 1;
xdf2->changed[i] = true;
/* i.e. discard */
}
xdf2->nreff = nreff;

View File

@ -48,7 +48,7 @@ typedef struct s_xdfile {
xrecord_t *recs;
long nrec;
long dstart, dend;
char *changed;
bool *changed;
long *rindex;
long nreff;
} xdfile_t;