Skip to content

Commit 9a5ac3c

Browse files
committed
xdiff: treat xdfile_t.rchg like an enum
Define macros NO(0), YES(1), MAYBE(2) as the enum values for rchg to make the code easier to follow. Perhaps 'rchg' should be renamed to 'changed'? A few of the code changes might appear to change behavior, such as: - while (xdf->rchg[g->start - 1]) + while (xdf->rchg[g->start - 1] == YES) because it appears the value of MAYBE is being ignored. However, MAYBE is only ever assigned as a value to a temporary array (dis1 & dis2) and then as a last step use that temporary array to decide if it wants to change xdfile_t.rchg[i] to YES or leave it as NO. As such, rchg will never have a value of MAYBE and thus there is no behavioral change. Best-viewed-with: --color-words Signed-off-by: Ezekiel Newren <[email protected]>
1 parent fd54135 commit 9a5ac3c

File tree

5 files changed

+35
-31
lines changed

5 files changed

+35
-31
lines changed

xdiff/xdiff.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
extern "C" {
2828
#endif /* #ifdef __cplusplus */
2929

30+
#define NO 0
31+
#define YES 1
32+
#define MAYBE 2
33+
3034
/* xpparm_t.flags */
3135
#define XDF_NEED_MINIMAL (1 << 0)
3236

xdiff/xdiffi.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,10 @@ int xdl_recs_cmp(xdfile_t *xdf1, long off1, long lim1,
278278
*/
279279
if (off1 == lim1) {
280280
for (; off2 < lim2; off2++)
281-
xdf2->rchg[xdf2->rindex[off2]] = 1;
281+
xdf2->rchg[xdf2->rindex[off2]] = YES;
282282
} else if (off2 == lim2) {
283283
for (; off1 < lim1; off1++)
284-
xdf1->rchg[xdf1->rindex[off1]] = 1;
284+
xdf1->rchg[xdf1->rindex[off1]] = YES;
285285
} else {
286286
xdpsplit_t spl;
287287
spl.i1 = spl.i2 = 0;
@@ -708,7 +708,7 @@ struct xdlgroup {
708708
static void group_init(xdfile_t *xdf, struct xdlgroup *g)
709709
{
710710
g->start = g->end = 0;
711-
while (xdf->rchg[g->end])
711+
while (xdf->rchg[g->end] == YES)
712712
g->end++;
713713
}
714714

@@ -722,7 +722,7 @@ static inline int group_next(xdfile_t *xdf, struct xdlgroup *g)
722722
return -1;
723723

724724
g->start = g->end + 1;
725-
for (g->end = g->start; xdf->rchg[g->end]; g->end++)
725+
for (g->end = g->start; xdf->rchg[g->end] == YES; g->end++)
726726
;
727727

728728
return 0;
@@ -738,7 +738,7 @@ static inline int group_previous(xdfile_t *xdf, struct xdlgroup *g)
738738
return -1;
739739

740740
g->end = g->start - 1;
741-
for (g->start = g->end; xdf->rchg[g->start - 1]; g->start--)
741+
for (g->start = g->end; xdf->rchg[g->start - 1] == YES; g->start--)
742742
;
743743

744744
return 0;
@@ -753,10 +753,10 @@ static int group_slide_down(xdfile_t *xdf, struct xdlgroup *g)
753753
{
754754
if (g->end < xdf->nrec &&
755755
recs_match(&xdf->recs[g->start], &xdf->recs[g->end])) {
756-
xdf->rchg[g->start++] = 0;
757-
xdf->rchg[g->end++] = 1;
756+
xdf->rchg[g->start++] = NO;
757+
xdf->rchg[g->end++] = YES;
758758

759-
while (xdf->rchg[g->end])
759+
while (xdf->rchg[g->end] == YES)
760760
g->end++;
761761

762762
return 0;
@@ -774,10 +774,10 @@ static int group_slide_up(xdfile_t *xdf, struct xdlgroup *g)
774774
{
775775
if (g->start > 0 &&
776776
recs_match(&xdf->recs[g->start - 1], &xdf->recs[g->end - 1])) {
777-
xdf->rchg[--g->start] = 1;
778-
xdf->rchg[--g->end] = 0;
777+
xdf->rchg[--g->start] = YES;
778+
xdf->rchg[--g->end] = NO;
779779

780-
while (xdf->rchg[g->start - 1])
780+
while (xdf->rchg[g->start - 1] == YES)
781781
g->start--;
782782

783783
return 0;

xdiff/xhistogram.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -318,11 +318,11 @@ static int histogram_diff(xpparam_t const *xpp, xdfenv_t *env,
318318

319319
if (!count1) {
320320
while(count2--)
321-
env->xdf2.rchg[line2++ - 1] = 1;
321+
env->xdf2.rchg[line2++ - 1] = YES;
322322
return 0;
323323
} else if (!count2) {
324324
while(count1--)
325-
env->xdf1.rchg[line1++ - 1] = 1;
325+
env->xdf1.rchg[line1++ - 1] = YES;
326326
return 0;
327327
}
328328

@@ -335,9 +335,9 @@ static int histogram_diff(xpparam_t const *xpp, xdfenv_t *env,
335335
else {
336336
if (lcs.begin1 == 0 && lcs.begin2 == 0) {
337337
while (count1--)
338-
env->xdf1.rchg[line1++ - 1] = 1;
338+
env->xdf1.rchg[line1++ - 1] = YES;
339339
while (count2--)
340-
env->xdf2.rchg[line2++ - 1] = 1;
340+
env->xdf2.rchg[line2++ - 1] = YES;
341341
result = 0;
342342
} else {
343343
result = histogram_diff(xpp, env,

xdiff/xpatience.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,11 +331,11 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
331331
/* trivial case: one side is empty */
332332
if (!count1) {
333333
while(count2--)
334-
env->xdf2.rchg[line2++ - 1] = 1;
334+
env->xdf2.rchg[line2++ - 1] = YES;
335335
return 0;
336336
} else if (!count2) {
337337
while(count1--)
338-
env->xdf1.rchg[line1++ - 1] = 1;
338+
env->xdf1.rchg[line1++ - 1] = YES;
339339
return 0;
340340
}
341341

@@ -347,9 +347,9 @@ static int patience_diff(xpparam_t const *xpp, xdfenv_t *env,
347347
/* are there any matching lines at all? */
348348
if (!map.has_matches) {
349349
while(count1--)
350-
env->xdf1.rchg[line1++ - 1] = 1;
350+
env->xdf1.rchg[line1++ - 1] = YES;
351351
while(count2--)
352-
env->xdf2.rchg[line2++ - 1] = 1;
352+
env->xdf2.rchg[line2++ - 1] = YES;
353353
xdl_free(map.entries);
354354
return 0;
355355
}

xdiff/xprepare.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,9 @@ static int xdl_clean_mmatch(char const *dis, long i, long s, long e) {
214214
* current line (i) is already a multimatch line.
215215
*/
216216
for (r = 1, rdis0 = 0, rpdis0 = 1; (i - r) >= s; r++) {
217-
if (!dis[i - r])
217+
if (dis[i - r] == NO)
218218
rdis0++;
219-
else if (dis[i - r] == 2)
219+
else if (dis[i - r] == MAYBE)
220220
rpdis0++;
221221
else
222222
break;
@@ -230,9 +230,9 @@ static int xdl_clean_mmatch(char const *dis, long i, long s, long e) {
230230
if (rdis0 == 0)
231231
return 0;
232232
for (r = 1, rdis1 = 0, rpdis1 = 1; (i + r) <= e; r++) {
233-
if (!dis[i + r])
233+
if (dis[i + r] == NO)
234234
rdis1++;
235-
else if (dis[i + r] == 2)
235+
else if (dis[i + r] == MAYBE)
236236
rpdis1++;
237237
else
238238
break;
@@ -272,34 +272,34 @@ static int xdl_cleanup_records(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t *xd
272272
for (i = xdf1->dstart, recs = &xdf1->recs[xdf1->dstart]; i <= xdf1->dend; i++, recs++) {
273273
rcrec = cf->rcrecs[recs->ha];
274274
nm = rcrec ? rcrec->len2 : 0;
275-
dis1[i] = (nm == 0) ? 0: (nm >= mlim && !need_min) ? 2: 1;
275+
dis1[i] = (nm == 0) ? NO: (nm >= mlim && !need_min) ? MAYBE: YES;
276276
}
277277

278278
if ((mlim = xdl_bogosqrt(xdf2->nrec)) > XDL_MAX_EQLIMIT)
279279
mlim = XDL_MAX_EQLIMIT;
280280
for (i = xdf2->dstart, recs = &xdf2->recs[xdf2->dstart]; i <= xdf2->dend; i++, recs++) {
281281
rcrec = cf->rcrecs[recs->ha];
282282
nm = rcrec ? rcrec->len1 : 0;
283-
dis2[i] = (nm == 0) ? 0: (nm >= mlim && !need_min) ? 2: 1;
283+
dis2[i] = (nm == 0) ? NO: (nm >= mlim && !need_min) ? MAYBE: YES;
284284
}
285285

286286
for (nreff = 0, i = xdf1->dstart, recs = &xdf1->recs[xdf1->dstart];
287287
i <= xdf1->dend; i++, recs++) {
288-
if (dis1[i] == 1 ||
289-
(dis1[i] == 2 && !xdl_clean_mmatch(dis1, i, xdf1->dstart, xdf1->dend))) {
288+
if (dis1[i] == YES ||
289+
(dis1[i] == MAYBE && !xdl_clean_mmatch(dis1, i, xdf1->dstart, xdf1->dend))) {
290290
xdf1->rindex[nreff++] = i;
291291
} else
292-
xdf1->rchg[i] = 1;
292+
xdf1->rchg[i] = YES;
293293
}
294294
xdf1->nreff = nreff;
295295

296296
for (nreff = 0, i = xdf2->dstart, recs = &xdf2->recs[xdf2->dstart];
297297
i <= xdf2->dend; i++, recs++) {
298-
if (dis2[i] == 1 ||
299-
(dis2[i] == 2 && !xdl_clean_mmatch(dis2, i, xdf2->dstart, xdf2->dend))) {
298+
if (dis2[i] == YES ||
299+
(dis2[i] == MAYBE && !xdl_clean_mmatch(dis2, i, xdf2->dstart, xdf2->dend))) {
300300
xdf2->rindex[nreff++] = i;
301301
} else
302-
xdf2->rchg[i] = 1;
302+
xdf2->rchg[i] = YES;
303303
}
304304
xdf2->nreff = nreff;
305305

0 commit comments

Comments
 (0)