summaryrefslogtreecommitdiffstats
path: root/generic/tclRegexp.h
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclRegexp.h')
-rw-r--r--generic/tclRegexp.h88
1 files changed, 24 insertions, 64 deletions
diff --git a/generic/tclRegexp.h b/generic/tclRegexp.h
index 7be13c1..3b2433e 100644
--- a/generic/tclRegexp.h
+++ b/generic/tclRegexp.h
@@ -1,39 +1,14 @@
-/*
+/*
* tclRegexp.h --
*
- * This file contains definitions used internally by Henry
- * Spencer's regular expression code.
+ * This file contains definitions used internally by Henry Spencer's
+ * regular expression code.
*
- * Copyright (c) 1998 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.
- *
- * 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.
- *
- * 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
- * HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * 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.
- *
* Copyright (c) 1998 by Sun Microsystems, Inc.
* Copyright (c) 1998-1999 by Scriptics Corporation.
*
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclRegexp.h,v 1.5 1999/04/16 00:46:52 stanton Exp $
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
#ifndef _TCLREGEXP
@@ -41,52 +16,37 @@
#include "regex.h"
-#ifdef BUILD_tcl
-# undef TCL_STORAGE_CLASS
-# define TCL_STORAGE_CLASS DLLEXPORT
-#endif
-
/*
- * The TclRegexp structure encapsulates a compiled regex_t,
- * the flags that were used to compile it, and an array of pointers
- * that are used to indicate subexpressions after a call to Tcl_RegExpExec.
+ * The TclRegexp structure encapsulates a compiled regex_t, the flags that
+ * were used to compile it, and an array of pointers that are used to indicate
+ * subexpressions after a call to Tcl_RegExpExec. Note that the string and
+ * objPtr are mutually exclusive. These values are needed by Tcl_RegExpRange
+ * in order to return pointers into the original string.
*/
typedef struct TclRegexp {
int flags; /* Regexp compile flags. */
regex_t re; /* Compiled re, includes number of
* subexpressions. */
- CONST char *string; /* Last string matched with this regexp
- * (UTF-8), so Tcl_RegExpRange() can convert
- * the matches from character indices to UTF-8
- * byte offsets. */
+ const char *string; /* Last string passed to Tcl_RegExpExec. */
+ Tcl_Obj *objPtr; /* Last object passed to Tcl_RegExpExecObj. */
+ Tcl_Obj *globObjPtr; /* Glob pattern rep of RE or NULL if none. */
regmatch_t *matches; /* Array of indices into the Tcl_UniChar
* representation of the last string matched
* with this regexp to indicate the location
* of subexpressions. */
+ rm_detail_t details; /* Detailed information on match (currently
+ * used only for REG_EXPECT). */
+ int refCount; /* Count of number of references to this
+ * compiled regexp. */
} TclRegexp;
+#endif /* _TCLREGEXP */
+
/*
- * Functions exported for use within the rest of Tcl.
- */
-
-EXTERN int TclRegAbout _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_RegExp re));
-EXTERN VOID TclRegXflags _ANSI_ARGS_((char *string, int length,
- int *cflagsPtr, int *eflagsPtr));
-EXTERN int TclRegExpExecUniChar _ANSI_ARGS_((Tcl_Interp *interp,
- Tcl_RegExp re, CONST Tcl_UniChar *uniString,
- int numChars, int nmatches, int flags));
-EXTERN int TclRegExpMatchObj _ANSI_ARGS_((Tcl_Interp *interp,
- char *string, Tcl_Obj *patObj));
-EXTERN void TclRegExpRangeUniChar _ANSI_ARGS_((Tcl_RegExp re,
- int index, int *startPtr, int *endPtr));
-
-/*
- * Functions exported from the regexp package for the test package to use.
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * End:
*/
-
-EXTERN void TclRegError _ANSI_ARGS_((Tcl_Interp *interp, char *msg,
- int status));
-
-#endif /* _TCLREGEXP */