diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2014-09-09 19:49:08 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2014-09-09 19:49:08 (GMT) |
commit | e19c2ce585d7fe309059bb96044b08dbfa850a6b (patch) | |
tree | 0e1dfc6cdd11a98cd4dcc4114975380736e527fd /generic/tclCompCmdsGR.c | |
parent | 04d10eb983cb26686f38383404b6b6ef9876f9e1 (diff) | |
download | tcl-e19c2ce585d7fe309059bb96044b08dbfa850a6b.zip tcl-e19c2ce585d7fe309059bb96044b08dbfa850a6b.tar.gz tcl-e19c2ce585d7fe309059bb96044b08dbfa850a6b.tar.bz2 |
[84af1192f5]: [regsub] compiler no longer confused by quantification handling.
Diffstat (limited to 'generic/tclCompCmdsGR.c')
-rw-r--r-- | generic/tclCompCmdsGR.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/generic/tclCompCmdsGR.c b/generic/tclCompCmdsGR.c index 64dcaa6..603c51d 100644 --- a/generic/tclCompCmdsGR.c +++ b/generic/tclCompCmdsGR.c @@ -2270,7 +2270,7 @@ TclCompileRegexpCmd( * converted pattern as a literal. */ - if (TclReToGlob(NULL, varTokenPtr[1].start, len, &ds, &exact) + if (TclReToGlob(NULL, varTokenPtr[1].start, len, &ds, &exact, NULL) == TCL_OK) { simple = 1; PushLiteral(envPtr, Tcl_DStringValue(&ds),Tcl_DStringLength(&ds)); @@ -2362,7 +2362,7 @@ TclCompileRegsubCmd( Tcl_Obj *patternObj = NULL, *replacementObj = NULL; Tcl_DString pattern; const char *bytes; - int len, exact, result = TCL_ERROR; + int len, exact, quantified, result = TCL_ERROR; if (parsePtr->numWords < 5 || parsePtr->numWords > 6) { return TCL_ERROR; @@ -2422,7 +2422,8 @@ TclCompileRegsubCmd( */ bytes = Tcl_GetStringFromObj(patternObj, &len); - if (TclReToGlob(NULL, bytes, len, &pattern, &exact) != TCL_OK || exact) { + if (TclReToGlob(NULL, bytes, len, &pattern, &exact, &quantified) + != TCL_OK || exact || quantified) { goto done; } bytes = Tcl_DStringValue(&pattern); |