[5.004_61 PATCH] Make incompatible changes to RE engine NOW
[p5sagit/p5-mst-13.2.git] / handy.h
diff --git a/handy.h b/handy.h
index efb4f03..3daf767 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -1,6 +1,6 @@
 /*    handy.h
  *
- *    Copyright (c) 1991-1994, Larry Wall
+ *    Copyright (c) 1991-1997, Larry Wall
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -65,7 +65,7 @@
 #endif /* NeXT */
 
 #ifndef HAS_BOOL
-# ifdef UTS
+# if defined(UTS) || defined(VMS)
 #  define bool int
 # else
 #  define bool char
     #    endif
     #  endif
     #endif
-   For the moment, these are mentioned here so metaconfig will
+
+   except that still won't work if a system has no integral type
+   with a size that is 32 bytes.
+
+   Further, we need to know about PTRSIZE == sizeof(void *) and
+   DOUBLESIZE == sizeof(double) if we really want to try to handle
+   32/64-bit combinations.
+
+   For the moment, these are only mentioned here so metaconfig will
    construct Configure to figure out the various sizes.
 */
 
@@ -130,6 +138,10 @@ typedef unsigned short     U16;
 # define U32_MIN PERL_ULONG_MIN
 #endif
 
+#define BIT_DIGITS(N)   (((N)*146)/485 + 1)  /* log2(10) =~ 146/485 */
+#define TYPE_DIGITS(T)  BIT_DIGITS(sizeof(T) * 8)
+#define TYPE_CHARS(T)   (TYPE_DIGITS(T) + 2) /* sign, NUL */
+
 #define Ctl(ch) ((ch) & 037)
 
 #define strNE(s1,s2) (strcmp(s1,s2))
@@ -240,7 +252,10 @@ typedef U16 line_t;
 #define NOLINE ((line_t) 65535)
 #endif
 
-/* XXX LEAKTEST doesn't really work in perl5.  There are direct calls to
+
+/* This looks obsolete (IZ):
+
+   XXX LEAKTEST doesn't really work in perl5.  There are direct calls to
    safemalloc() in the source, so LEAKTEST won't pick them up.
    Further, if you try LEAKTEST, you'll also end up calling
    Safefree, which might call safexfree() on some things that weren't
@@ -274,12 +289,16 @@ typedef U16 line_t;
          (v = (t*)safexrealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))
 #define Renewc(v,n,t,c) \
          (v = (c*)safexrealloc((Malloc_t)(v),(MEM_SIZE)((n)*sizeof(t))))
-#define Safefree(d)    safexfree((Malloc_t)d)
+#define Safefree(d)    safexfree((Malloc_t)(d))
 #define NEWSV(x,len)   newSV(x,len)
 
-#define MAXXCOUNT 1200
-long xcount[MAXXCOUNT];
-long lastxcount[MAXXCOUNT];
+#define MAXXCOUNT 1400
+#define MAXY_SIZE 80
+#define MAXYCOUNT 16                   /* (MAXY_SIZE/4 + 1) */
+extern long xcount[MAXXCOUNT];
+extern long lastxcount[MAXXCOUNT];
+extern long xycount[MAXXCOUNT][MAXYCOUNT];
+extern long lastxycount[MAXXCOUNT][MAXYCOUNT];
 
 #endif /* LEAKTEST */