diff options
| author | dgp <dgp@users.sourceforge.net> | 2016-11-14 12:16:38 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2016-11-14 12:16:38 (GMT) |
| commit | 9b461748a00c4ac031b5c01d99daa9e1b9171f05 (patch) | |
| tree | 2a17f77690a1fb26a786c58490bd803d2e8074b6 /generic/tclExecute.c | |
| parent | fbc3a63f6c2f807d2181059be4b58e68e1791f00 (diff) | |
| parent | 6e380ef6e9e2b4ccb24ded37f350f5dfcde61e50 (diff) | |
| download | tcl-9b461748a00c4ac031b5c01d99daa9e1b9171f05.zip tcl-9b461748a00c4ac031b5c01d99daa9e1b9171f05.tar.gz tcl-9b461748a00c4ac031b5c01d99daa9e1b9171f05.tar.bz2 | |
merge trunk
Diffstat (limited to 'generic/tclExecute.c')
| -rw-r--r-- | generic/tclExecute.c | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 759e4a4..6b33d56 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -5728,20 +5728,7 @@ TEBCresume( NEXT_INST_V(1, 3, 1); case INST_STR_FIND: - ustring1 = Tcl_GetUnicodeFromObj(OBJ_AT_TOS, &length); /* Haystack */ - ustring2 = Tcl_GetUnicodeFromObj(OBJ_UNDER_TOS, &length2);/* Needle */ - - match = -1; - if (length2 > 0 && length2 <= length) { - end = ustring1 + length - length2 + 1; - for (p=ustring1 ; p<end ; p++) { - if ((*p == *ustring2) && - memcmp(ustring2,p,sizeof(Tcl_UniChar)*length2) == 0) { - match = p - ustring1; - break; - } - } - } + match = TclStringFind(OBJ_UNDER_TOS, OBJ_AT_TOS, 0); TRACE(("%.20s %.20s => %d\n", O2S(OBJ_UNDER_TOS), O2S(OBJ_AT_TOS), match)); @@ -5749,23 +5736,10 @@ TEBCresume( NEXT_INST_F(1, 2, 1); case INST_STR_FIND_LAST: - ustring1 = Tcl_GetUnicodeFromObj(OBJ_AT_TOS, &length); /* Haystack */ - ustring2 = Tcl_GetUnicodeFromObj(OBJ_UNDER_TOS, &length2);/* Needle */ - - match = -1; - if (length2 > 0 && length2 <= length) { - for (p=ustring1+length-length2 ; p>=ustring1 ; p--) { - if ((*p == *ustring2) && - memcmp(ustring2,p,sizeof(Tcl_UniChar)*length2) == 0) { - match = p - ustring1; - break; - } - } - } + match = TclStringLast(OBJ_UNDER_TOS, OBJ_AT_TOS, INT_MAX - 1); TRACE(("%.20s %.20s => %d\n", O2S(OBJ_UNDER_TOS), O2S(OBJ_AT_TOS), match)); - TclNewIntObj(objResultPtr, match); NEXT_INST_F(1, 2, 1); |
