This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
t/run/locale.t: Rmv obsolete complicated idiom
[perl5.git] / util.h
diff --git a/util.h b/util.h
index ebc2bad..08544f5 100644 (file)
--- a/util.h
+++ b/util.h
@@ -13,7 +13,7 @@
        (*(f) == '/'                                                    \
         || (strchr(f,':')                                              \
             || ((*(f) == '[' || *(f) == '<')                           \
-                && (isALNUM((f)[1]) || strchr("$-_]>",(f)[1])))))
+                && (isWORDCHAR((f)[1]) || strchr("$-_]>",(f)[1])))))
 
 #else          /* !VMS */
 #  if defined(WIN32) || defined(__CYGWIN__)
         || ((f)[0] == '\\' && (f)[1] == '\\')  /* UNC path */  \
         ||     ((f)[3] == ':'))                                /* volume name, currently only sys */
 #  else                /* !NETWARE */
-#    if defined(DOSISH) || defined(EPOC) || defined(__SYMBIAN32__)
+#    if defined(DOSISH) || defined(__SYMBIAN32__)
 #      define PERL_FILE_IS_ABSOLUTE(f) \
        (*(f) == '/'                                                    \
         || ((f)[0] && (f)[1] == ':'))          /* drive name */
-#    else      /* NEITHER DOSISH NOR EPOCISH NOR SYMBIANISH */
+#    else      /* NEITHER DOSISH NOR SYMBIANISH */
 #      define PERL_FILE_IS_ABSOLUTE(f) (*(f) == '/')
 #    endif     /* DOSISH */
 #   endif      /* NETWARE */
@@ -52,6 +52,36 @@ This is a synonym for (! foldEQ_locale())
 #define ibcmp(s1, s2, len)         cBOOL(! foldEQ(s1, s2, len))
 #define ibcmp_locale(s1, s2, len)  cBOOL(! foldEQ_locale(s1, s2, len))
 
+/* outside the core, perl.h undefs HAS_QUAD if IV isn't 64-bit
+   We can't swap this to HAS_QUAD, because the logic here affects the type of
+   perl_drand48_t below, and that is visible outside of the core.  */
+#if defined(U64TYPE) && !defined(USING_MSVC6)
+/* use a faster implementation when quads are available,
+ * but not with VC6 on Windows */
+#    define PERL_DRAND48_QUAD
+#endif
+
+#ifdef PERL_DRAND48_QUAD
+
+/* U64 is only defined under PERL_CORE, but this needs to be visible
+ * elsewhere so the definition of PerlInterpreter is complete.
+ */
+typedef U64TYPE perl_drand48_t;
+
+#else
+
+struct PERL_DRAND48_T {
+    U16 seed[3];
+};
+
+typedef struct PERL_DRAND48_T perl_drand48_t;
+
+#endif
+
+#define PL_RANDOM_STATE_TYPE perl_drand48_t
+
+#define Perl_drand48_init(seed) (Perl_drand48_init_r(&PL_random_state, (seed)))
+#define Perl_drand48() (Perl_drand48_r(&PL_random_state))
 
 /*
  * Local variables: