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;