From: Bruno Haible Date: Sat, 7 Oct 2006 16:07:31 +0000 (+0000) Subject: Make generic: introduce OFFSET_MAX. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=7ac8aa1b7bff54c1da3ebd719c3a8a99e3b83800;p=gnulib.git Make generic: introduce OFFSET_MAX. --- diff --git a/lib/diffseq.h b/lib/diffseq.h index d805309bd0..ce4e3ed91d 100644 --- a/lib/diffseq.h +++ b/lib/diffseq.h @@ -37,6 +37,10 @@ difference between two indices. Usually something like ssize_t. */ +/* Maximum value of type OFFSET. */ +#define OFFSET_MAX \ + ((((OFFSET)1 << (sizeof (OFFSET_MAX) * CHAR_BIT - 2)) - 1) * 2 + 1) + /* Vectors being compared. */ static const ELEMENT *xvec, *yvec; @@ -158,11 +162,11 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal, /* Similarly extend the bottom-up search. */ if (bmin > dmin) - bd[--bmin - 1] = LIN_MAX; + bd[--bmin - 1] = OFFSET_MAX; else ++bmin; if (bmax < dmax) - bd[++bmax + 1] = LIN_MAX; + bd[++bmax + 1] = OFFSET_MAX; else --bmax; for (d = bmax; d >= bmin; d -= 2) @@ -302,7 +306,7 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal, } /* Find backward diagonal that minimizes X + Y. */ - bxybest = LIN_MAX; + bxybest = OFFSET_MAX; for (d = bmax; d >= bmin; d -= 2) { OFFSET x = MAX (xoff, bd[d]); @@ -392,4 +396,4 @@ compareseq (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minima #undef ELEMENT #undef EQUAL #undef OFFSET -# \ No newline at end of file +#undef OFFSET_MAX diff --git a/lib/fstrcmp.c b/lib/fstrcmp.c index 6be6d7436d..3368a4e01c 100644 --- a/lib/fstrcmp.c +++ b/lib/fstrcmp.c @@ -67,6 +67,10 @@ #define EQUAL(x,y) ((x) == (y)) #define OFFSET int +/* Maximum value of type OFFSET. */ +#define OFFSET_MAX \ + ((((OFFSET)1 << (sizeof (OFFSET_MAX) * CHAR_BIT - 2)) - 1) * 2 + 1) + /* Before including this file, you need to define: ELEMENT The element type of the sequences being compared. EQUAL A two-argument macro that tests two elements for @@ -256,11 +260,11 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal, } /* Similarly extend the bottom-up search. */ if (bmin > dmin) - bd[--bmin - 1] = INT_MAX; + bd[--bmin - 1] = OFFSET_MAX; else ++bmin; if (bmax < dmax) - bd[++bmax + 1] = INT_MAX; + bd[++bmax + 1] = OFFSET_MAX; else --bmax; for (d = bmax; d >= bmin; d -= 2) @@ -434,7 +438,7 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal, } } /* Find backward diagonal that minimizes X + Y. */ - bxybest = INT_MAX; + bxybest = OFFSET_MAX; for (d = bmax; d >= bmin; d -= 2) { OFFSET x;