written in Standard C, but there are a few non-standard things it can cope
with, allowing it to run on SunOS4 and other "close to standard" systems.
-On a non-Unix system you should just copy this file into config.h and change
-the definitions of HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because
-of the way autoconf works, these cannot be made the defaults. If your system
-has bcopy() and not memmove(), change the definition of HAVE_BCOPY instead of
-HAVE_MEMMOVE. If your system has neither bcopy() nor memmove(), leave them both
-as 0; an emulation function will be used. */
+On a non-Unix system you should just copy this file into config.h, and set up
+the macros the way you need them. You should normally change the definitions of
+HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way autoconf
+works, these cannot be made the defaults. If your system has bcopy() and not
+memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE. If your
+system has neither bcopy() nor memmove(), leave them both as 0; an emulation
+function will be used. */
/* Define to empty if the keyword does not work. */
normally be defined with the value 1 for other systems, but unfortunately we
can't make this the default because "configure" files generated by autoconf
will only change 0 to 1; they won't change 1 to 0 if the functions are not
-found. If HAVE_MEMMOVE is set to 1, the value of HAVE_BCOPY is not relevant. */
+found. */
#define HAVE_STRERROR 0
#define HAVE_MEMMOVE 0
+
+/* There are some non-Unix systems that don't even have bcopy(). If this macro
+is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of
+HAVE_BCOPY is not relevant. */
+
#define HAVE_BCOPY 0
+/* The value of NEWLINE determines the newline character. The default is to
+leave it up to the compiler, but some sites want to force a particular value.
+On Unix systems, "configure" can be used to override this default. */
+
+#ifndef NEWLINE
+#define NEWLINE '\n'
+#endif
+
/* End */
dnl that many releases anyway.
PCRE_MAJOR=3
-PCRE_MINOR=2
-PCRE_DATE=12-May-2000
+PCRE_MINOR=9
+PCRE_DATE=02-Jan-2002
PCRE_VERSION=${PCRE_MAJOR}.${PCRE_MINOR}
dnl Provide versioning information for libtool shared libraries that
dnl Checks for programs.
AC_PROG_CC
+AC_PROG_INSTALL
AC_PROG_RANLIB
dnl Checks for header files.
if test "$enableval" = "no"; then
LIBTOOL=
LIBSUFFIX=a
+
+dnl Handle --enable-utf8
+
+AC_ARG_ENABLE(utf8,
+[ --enable-utf8 enable UTF8 support (incomplete)],
+if test "$enableval" = "yes"; then
+ UTF8=-DSUPPORT_UTF8
+fi
+)
+
+dnl Handle --enable-newline-is-cr
+
+AC_ARG_ENABLE(newline-is-cr,
+[ --enable-newline-is-cr use CR as the newline character],
+if test "$enableval" = "yes"; then
+ NEWLINE=-DNEWLINE=13
fi
)
+dnl Handle --enable-newline-is-lf
+
+AC_ARG_ENABLE(newline-is-lf,
+[ --enable-newline-is-lf use LF as the newline character],
+if test "$enableval" = "yes"; then
+ NEWLINE=-DNEWLINE=10
+fi
+)
+
+dnl Now arrange to build libtool
+
+AC_PROG_LIBTOOL
+
dnl "Export" these variables
AC_SUBST(HAVE_MEMMOVE)
AC_SUBST(HAVE_STRERROR)
-AC_SUBST(LIBTOOL)
-AC_SUBST(LIBSUFFIX)
+AC_SUBST(NEWLINE)
+AC_SUBST(UTF8)
AC_SUBST(PCRE_MAJOR)
AC_SUBST(PCRE_MINOR)
AC_SUBST(PCRE_DATE)
AC_SUBST(PCRE_LIB_VERSION)
AC_SUBST(PCRE_POSIXLIB_VERSION)
-dnl This must be last; it determines what files are written
-AC_OUTPUT(Makefile pcre.h:pcre.in pcre-config,[chmod a+x pcre-config])
+dnl This must be last; it determines what files are written as well as config.h
+AC_OUTPUT(Makefile pcre.h:pcre.in pcre-config:pcre-config.in RunTest:RunTest.in,[chmod a+x RunTest pcre-config])
* Perl-Compatible Regular Expressions *
*************************************************/
-/* Copyright (c) 1997-2000 University of Cambridge */
+/* Copyright (c) 1997-2001 University of Cambridge */
#ifndef _PCRE_H
#define _PCRE_H
-/* The file pcre.h is build by "configure" or copied from pcre.hw
-Do not edit it; instead make changes to pcre.in and/or pcre.hw */
+/* The file pcre.h is build by "configure". Do not edit it; instead
+make changes to pcre.in. */
-#define PCRE_MAJOR @PCRE_MAJOR@
-#define PCRE_MINOR @PCRE_MINOR@
-#define PCRE_DATE @PCRE_DATE@
+#define PCRE_MAJOR @PCRE_MAJOR@
+#define PCRE_MINOR @PCRE_MINOR@
+#define PCRE_DATE @PCRE_DATE@
/* Win32 uses DLL by default */
#define PCRE_NOTEOL 0x0100
#define PCRE_UNGREEDY 0x0200
#define PCRE_NOTEMPTY 0x0400
+#define PCRE_UTF8 0x0800
/* Exec-time and get-time error codes */
/* Types */
-typedef void pcre;
-typedef void pcre_extra;
+struct real_pcre; /* declaration; the definition is private */
+struct real_pcre_extra; /* declaration; the definition is private */
+
+typedef struct real_pcre pcre;
+typedef struct real_pcre_extra pcre_extra;
/* Store get and free functions. These can be set to alternative malloc/free
functions if required. Some magic is required for Win32 DLL; it is null on
/* Functions */
extern pcre *pcre_compile(const char *, int, const char **, int *,
- const unsigned char *);
-extern int pcre_copy_substring(const char *, int *, int, int, char *, int);
-extern int pcre_exec(const pcre *, const pcre_extra *, const char *,
- int, int, int, int *, int);
-extern int pcre_get_substring(const char *, int *, int, int, const char **);
-extern int pcre_get_substring_list(const char *, int *, int, const char ***);
-extern int pcre_info(const pcre *, int *, int *);
-extern int pcre_fullinfo(const pcre *, const pcre_extra *, int, void *);
-extern unsigned const char *pcre_maketables(void);
+ const unsigned char *);
+extern int pcre_copy_substring(const char *, int *, int, int, char *, int);
+extern int pcre_exec(const pcre *, const pcre_extra *, const char *,
+ int, int, int, int *, int);
+extern void pcre_free_substring(const char *);
+extern void pcre_free_substring_list(const char **);
+extern int pcre_get_substring(const char *, int *, int, int, const char **);
+extern int pcre_get_substring_list(const char *, int *, int, const char ***);
+extern int pcre_info(const pcre *, int *, int *);
+extern int pcre_fullinfo(const pcre *, const pcre_extra *, int, void *);
+extern const unsigned char *pcre_maketables(void);
extern pcre_extra *pcre_study(const pcre *, int, const char **);
extern const char *pcre_version(void);