diff options
Diffstat (limited to 'generic/tclRegexp.h')
| -rw-r--r-- | generic/tclRegexp.h | 88 |
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 */ |
