]> git.saurik.com Git - wxWidgets.git/blobdiff - src/regex/regcustom.h
reverted to TCL version of regex library
[wxWidgets.git] / src / regex / regcustom.h
index 8f51782d53203ada45c1f83b38634a1cce6dfb0b..e258acd540f3e16627d6efe2508eff3dbed79987 100644 (file)
@@ -1,22 +1,19 @@
-#ifndef _REGEX_CUSTOM_H_
-#define _REGEX_CUSTOM_H_
-
 /*
- * Copyright (c) 1998, 1999 Henry Spencer.     All rights reserved.
- *
+ * Copyright (c) 1998, 1999 Henry Spencer.  All rights reserved.
+ * 
  * Development of this software was funded, in part, by Cray Research Inc.,
  * UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
  * Corporation, none of whom are responsible for the results.  The author
- * thanks all of them.
- *
+ * thanks all of them. 
+ * 
  * Redistribution and use in source and binary forms -- with or without
  * modification -- are permitted for any purpose, provided that
  * redistributions in source form retain this entire copyright notice and
  * indicate the origin and nature of any modifications.
- *
+ * 
  * I'd appreciate being given credit for this package in the documentation
  * of software which uses it, but that is not a requirement.
- *
+ * 
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $Id$
  */
 
 /* headers if any */
+#include "tclInt.h"
 
-/*  FreeBSD, Watcom and DMars require this, CW doesn't have nor need it. */
-/*  Others also don't seem to need it. If you have an error related to */
-/*  (not) including <sys/types.h> please report details to */
-/*  wx-dev@lists.wxwindows.org */
-#if defined(__UNIX__) || defined(__WATCOMC__) || defined(__DIGITALMARS__)
-#   include <sys/types.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
+/* overrides for regguts.h definitions, if any */
+#define        FUNCPTR(name, args)     (*name) _ANSI_ARGS_(args)
+#define        MALLOC(n)               ckalloc(n)
+#define        FREE(p)                 ckfree(VS(p))
+#define        REALLOC(p,n)            ckrealloc(VS(p),n)
 
-#include "wx/wxchar.h"
 
-/**
-*
-*   wx_wchar == wxChar
-*   
-*/
-#define wx_wchar wxChar
 
-/* overrides for regguts.h definitions, if any */
-#define FUNCPTR(name, args) (*name) args
-#define MALLOC(n)              malloc(n)
-#define FREE(p)                        free(VS(p))
-#define REALLOC(p,n)           realloc(VS(p),n)
+/*
+ * Do not insert extras between the "begin" and "end" lines -- this
+ * chunk is automatically extracted to be fitted into regex.h.
+ */
+/* --- begin --- */
+/* ensure certain things don't sneak in from system headers */
+#ifdef __REG_WIDE_T
+#undef __REG_WIDE_T
+#endif
+#ifdef __REG_WIDE_COMPILE
+#undef __REG_WIDE_COMPILE
+#endif
+#ifdef __REG_WIDE_EXEC
+#undef __REG_WIDE_EXEC
+#endif
+#ifdef __REG_REGOFF_T
+#undef __REG_REGOFF_T
+#endif
+#ifdef __REG_VOID_T
+#undef __REG_VOID_T
+#endif
+#ifdef __REG_CONST
+#undef __REG_CONST
+#endif
+#ifdef __REG_NOFRONT
+#undef __REG_NOFRONT
+#endif
+#ifdef __REG_NOCHAR
+#undef __REG_NOCHAR
+#endif
+/* interface types */
+#define        __REG_WIDE_T    Tcl_UniChar
+#define        __REG_REGOFF_T  long    /* not really right, but good enough... */
+#define        __REG_VOID_T    VOID
+#define        __REG_CONST     CONST
+/* names and declarations */
+#define        __REG_WIDE_COMPILE      TclReComp
+#define        __REG_WIDE_EXEC         TclReExec
+#define        __REG_NOFRONT           /* don't want regcomp() and regexec() */
+#define        __REG_NOCHAR            /* or the char versions */
+#define        regfree         TclReFree
+#define        regerror        TclReError
+/* --- end --- */
 
-/* internal character type and related */
-typedef wx_wchar chr;                  /* the type itself */
-typedef unsigned long uchr;                    /* unsigned type that will hold a chr */
-typedef long celt;                             /* type to hold chr, MCCE number, or
-                                                                * NOCELT */
 
-#define NOCELT (-1)                    /* celt value which is not valid chr or
-                                                                * MCCE */
-#define CHR(c) ((unsigned char) (c))   /* turn char literal into chr
-                                                                                * literal */
-#define DIGITVAL(c) ((c)-'0')  /* turn chr digit into its value */
 
-#if wxUSE_WCHAR_T
-#   define CHRBITS (SIZEOF_WCHAR_T << 3)                       /* bits in a chr; must not use sizeof */
-#   define CHR_MAX ((1 << CHRBITS) - 1)
-#   define CHR_MIN 0x00000000          /* smallest and largest chr; the value */
-#else /*ANSI*/
-#   define CHRBITS 8
-#   define CHR_MAX 0xFF
-#   define CHR_MIN 0x00
-#endif /*wxUSE_WCHAR_T*/
+/* internal character type and related */
+typedef Tcl_UniChar chr;       /* the type itself */
+typedef int pchr;              /* what it promotes to */
+typedef unsigned uchr;         /* unsigned type that will hold a chr */
+typedef int celt;              /* type to hold chr, MCCE number, or NOCELT */
+#define        NOCELT  (-1)            /* celt value which is not valid chr or MCCE */
+#define        CHR(c)  (UCHAR(c))      /* turn char literal into chr literal */
+#define        DIGITVAL(c)     ((c)-'0')       /* turn chr digit into its value */
+#if TCL_UTF_MAX > 3
+#define        CHRBITS 32              /* bits in a chr; must not use sizeof */
+#define        CHR_MIN 0x00000000      /* smallest and largest chr; the value */
+#define        CHR_MAX 0xffffffff      /*  CHR_MAX-CHR_MIN+1 should fit in uchr */
+#else
+#define        CHRBITS 16              /* bits in a chr; must not use sizeof */
+#define        CHR_MIN 0x0000          /* smallest and largest chr; the value */
+#define        CHR_MAX 0xffff          /*  CHR_MAX-CHR_MIN+1 should fit in uchr */
+#endif
 
 /* functions operating on chr */
-#define iscalnum(x) wx_isalnum(x)
-#define iscalpha(x) wx_isalpha(x)
-#define iscdigit(x) wx_isdigit(x)
-#define iscspace(x) wx_isspace(x)
+#define        iscalnum(x)     Tcl_UniCharIsAlnum(x)
+#define        iscalpha(x)     Tcl_UniCharIsAlpha(x)
+#define        iscdigit(x)     Tcl_UniCharIsDigit(x)
+#define        iscspace(x)     Tcl_UniCharIsSpace(x)
 
-extern int  wx_strlen(const wx_wchar* szString);
+/* name the external functions */
+#define        compile         TclReComp
+#define        exec            TclReExec
+
+/* enable/disable debugging code (by whether REG_DEBUG is defined or not) */
+#if 0          /* no debug unless requested by makefile */
+#define        REG_DEBUG       /* */
+#endif
 
 /* and pick up the standard header */
 #include "regex.h"
-
-#endif /* _REGEX_CUSTOM_H_ */