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>
Ezekiel Newren committed
Sep 26, 2025 at 22:41 UTC
8b9c5d2e3a38b6e0c2278fe10fe2a4bf34496a9d
5 files changed
+22
-22
xdiff/xdiffi.c
+7
-7
@@ -278,10 +278,10 @@ int xdl_recs_cmp(xdfile_t *xdf1, long off1, long lim1,
278
*/
279
if (off1 == lim1) {
280
for (; off2 < lim2; off2++)
281
- xdf2->changed[xdf2->rindex[off2]] = 1;
281
+ xdf2->changed[xdf2->rindex[off2]] = true;
282
} else if (off2 == lim2) {
283
for (; off1 < lim1; off1++)
284
- xdf1->changed[xdf1->rindex[off1]] = 1;
284
+ xdf1->changed[xdf1->rindex[off1]] = true;
285
} else {
286
xdpsplit_t spl;
287
spl.i1 = spl.i2 = 0;
@@ -753,8 +753,8 @@ static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g)
753
{
754
if (g->end < xdf->nrec &&
755
recs_match(&xdf->recs[g->start], &xdf->recs[g->end])) {
756
- xdf->changed[g->start++] = 0;
757
- xdf->changed[g->end++] = 1;
756
+ xdf->changed[g->start++] = false;
757
+ xdf->changed[g->end++] = true;
758
759
while (xdf->changed[g->end])
760
g->end++;
@@ -774,8 +774,8 @@ static int group_slide_up(xdfile_t *xdf, struct xdlgroup *g)
774
{
775
if (g->start > 0 &&
776
recs_match(&xdf->recs[g->start - 1], &xdf->recs[g->end - 1])) {
777
- xdf->changed[--g->start] = 1;
778
- xdf->changed[--g->end] = 0;
777
+ xdf->changed[--g->start] = true;
778
+ xdf->changed[--g->end] = false;
779
780
while (xdf->changed[g->start - 1])
781
g->start--;
@@ -932,7 +932,7 @@ int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, long flags) {
932
933
int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr) {
934
xdchange_t *cscr = NULL, *xch;
935
- char *changed1 = xe->xdf1.changed, *changed2 = xe->xdf2.changed;
935
+ bool *changed1 = xe->xdf1.changed, *changed2 = xe->xdf2.changed;
936
long i1, i2, l1, l2;
937
938
/*
xdiff/xhistogram.c
+4
-4
@@ -318,11 +318,11 @@ redo:
318
319
if (!count1) {
320
while(count2--)
321
- env->xdf2.changed[line2++ - 1] = 1;
321
+ env->xdf2.changed[line2++ - 1] = true;
322
return 0;
323
} else if (!count2) {
324
while(count1--)
325
- env->xdf1.changed[line1++ - 1] = 1;
325
+ env->xdf1.changed[line1++ - 1] = true;
326
return 0;
327
}
328
@@ -335,9 +335,9 @@ redo:
335
else {
336
if (lcs.begin1 == 0 && lcs.begin2 == 0) {
337
while (count1--)
338
- env->xdf1.changed[line1++ - 1] = 1;
338
+ env->xdf1.changed[line1++ - 1] = true;
339
while (count2--)
340
- env->xdf2.changed[line2++ - 1] = 1;
340
+ env->xdf2.changed[line2++ - 1] = true;
341
result = 0;
342
} else {
343
result = histogram_diff(xpp, env,
xdiff/xpatience.c
+4
-4
@@ -331,11 +331,11 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
331
/* trivial case: one side is empty */
332
if (!count1) {
333
while(count2--)
334
- env->xdf2.changed[line2++ - 1] = 1;
334
+ env->xdf2.changed[line2++ - 1] = true;
335
return 0;
336
} else if (!count2) {
337
while(count1--)
338
- env->xdf1.changed[line1++ - 1] = 1;
338
+ env->xdf1.changed[line1++ - 1] = true;
339
return 0;
340
}
341
@@ -347,9 +347,9 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
347
/* are there any matching lines at all? */
348
if (!map.has_matches) {
349
while(count1--)
350
- env->xdf1.changed[line1++ - 1] = 1;
350
+ env->xdf1.changed[line1++ - 1] = true;
351
while(count2--)
352
- env->xdf2.changed[line2++ - 1] = 1;
352
+ env->xdf2.changed[line2++ - 1] = true;
353
xdl_free(map.entries);
354
return 0;
355
}
xdiff/xprepare.c
+6
-6
@@ -273,7 +273,7 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd
273
274
/*
275
* Create temporary arrays that will help us decide if
276
- * changed[i] should remain 0 or become 1.
276
+ * changed[i] should remain false, or become true.
277
*/
278
if (!XDL_CALLOC_ARRAY(action1, xdf1->nrec + 1)) {
279
ret = -1;
@@ -305,16 +305,16 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd
305
306
/*
307
* Use temporary arrays to decide if changed[i] should remain
308
- * 0 or become 1.
308
+ * false, or become true.
309
*/
310
for (nreff = 0, i = xdf1->dstart, recs = &xdf1->recs[xdf1->dstart];
311
i <= xdf1->dend; i++, recs++) {
312
if (action1[i] == KEEP ||
313
(action1[i] == INVESTIGATE && !xdl_clean_mmatch(action1, i, xdf1->dstart, xdf1->dend))) {
314
xdf1->rindex[nreff++] = i;
315
- /* changed[i] remains 0, i.e. keep */
315
+ /* changed[i] remains false, i.e. keep */
316
} else
317
- xdf1->changed[i] = 1;
317
+ xdf1->changed[i] = true;
318
/* i.e. discard */
319
}
320
xdf1->nreff = nreff;
@@ -324,9 +324,9 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd
324
if (action2[i] == KEEP ||
325
(action2[i] == INVESTIGATE && !xdl_clean_mmatch(action2, i, xdf2->dstart, xdf2->dend))) {
326
xdf2->rindex[nreff++] = i;
327
- /* changed[i] remains 0, i.e. keep */
327
+ /* changed[i] remains false, i.e. keep */
328
} else
329
- xdf2->changed[i] = 1;
329
+ xdf2->changed[i] = true;
330
/* i.e. discard */
331
}
332
xdf2->nreff = nreff;
xdiff/xtypes.h
+1
-1
@@ -48,7 +48,7 @@ typedef struct s_xdfile {
48
xrecord_t *recs;
49
long nrec;
50
long dstart, dend;
51
- char *changed;
51
+ bool *changed;
52
long *rindex;
53
long nreff;
54
} xdfile_t;