This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlglossary: Add defn for "code point"
[perl5.git] / util.h
diff --git a/util.h b/util.h
index 7dcf9ce..3981656 100644 (file)
--- a/util.h
+++ b/util.h
@@ -1,8 +1,64 @@
 /*    util.h
  *
- *    Copyright (c) 1991-1997, Larry Wall
+ *    Copyright (C) 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004, 2005,
+ *    2007, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
  *
  */
+
+#ifdef VMS
+#  define PERL_FILE_IS_ABSOLUTE(f) \
+       (*(f) == '/'                                                    \
+        || (strchr(f,':')                                              \
+            || ((*(f) == '[' || *(f) == '<')                           \
+                && (isALNUM((f)[1]) || strchr("$-_]>",(f)[1])))))
+
+#else          /* !VMS */
+#  if defined(WIN32) || defined(__CYGWIN__)
+#    define PERL_FILE_IS_ABSOLUTE(f) \
+       (*(f) == '/' || *(f) == '\\'            /* UNC/rooted path */   \
+        || ((f)[0] && (f)[1] == ':'))          /* drive name */
+#  else                /* !WIN32 */
+#  ifdef NETWARE
+#    define PERL_FILE_IS_ABSOLUTE(f) \
+       (((f)[0] && (f)[1] == ':')              /* drive name */        \
+        || ((f)[0] == '\\' && (f)[1] == '\\')  /* UNC path */  \
+        ||     ((f)[3] == ':'))                                /* volume name, currently only sys */
+#  else                /* !NETWARE */
+#    if defined(DOSISH) || defined(EPOC) || defined(__SYMBIAN32__)
+#      define PERL_FILE_IS_ABSOLUTE(f) \
+       (*(f) == '/'                                                    \
+        || ((f)[0] && (f)[1] == ':'))          /* drive name */
+#    else      /* NEITHER DOSISH NOR EPOCISH NOR SYMBIANISH */
+#      define PERL_FILE_IS_ABSOLUTE(f) (*(f) == '/')
+#    endif     /* DOSISH */
+#   endif      /* NETWARE */
+#  endif       /* WIN32 */
+#endif         /* VMS */
+
+/*
+=for apidoc ibcmp
+
+This is a synonym for (! foldEQ())
+
+=for apidoc ibcmp_locale
+
+This is a synonym for (! foldEQ_locale())
+
+=cut
+*/
+#define ibcmp(s1, s2, len)         cBOOL(! foldEQ(s1, s2, len))
+#define ibcmp_locale(s1, s2, len)  cBOOL(! foldEQ_locale(s1, s2, len))
+
+
+/*
+ * Local variables:
+ * c-indentation-style: bsd
+ * c-basic-offset: 4
+ * indent-tabs-mode: t
+ * End:
+ *
+ * ex: set ts=8 sts=4 sw=4 noet:
+ */