Mercurial > gnulib
changeset 7432:3312c900de96
Make generic: introduce OFFSET_MAX.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 07 Oct 2006 16:07:31 +0000 |
parents | 4be22146f91d |
children | 4266f326be34 |
files | lib/diffseq.h lib/fstrcmp.c |
diffstat | 2 files changed, 15 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/diffseq.h Sat Oct 07 16:03:25 2006 +0000 +++ b/lib/diffseq.h Sat Oct 07 16:07:31 2006 +0000 @@ -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 @@ /* 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 @@ } /* 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 @@ #undef ELEMENT #undef EQUAL #undef OFFSET -# \ No newline at end of file +#undef OFFSET_MAX
--- a/lib/fstrcmp.c Sat Oct 07 16:03:25 2006 +0000 +++ b/lib/fstrcmp.c Sat Oct 07 16:07:31 2006 +0000 @@ -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 @@ } /* 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 @@ } } /* Find backward diagonal that minimizes X + Y. */ - bxybest = INT_MAX; + bxybest = OFFSET_MAX; for (d = bmax; d >= bmin; d -= 2) { OFFSET x;