summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2016-11-14 12:16:38 (GMT)
committerdgp <dgp@users.sourceforge.net>2016-11-14 12:16:38 (GMT)
commit9b461748a00c4ac031b5c01d99daa9e1b9171f05 (patch)
tree2a17f77690a1fb26a786c58490bd803d2e8074b6 /generic/tclExecute.c
parentfbc3a63f6c2f807d2181059be4b58e68e1791f00 (diff)
parent6e380ef6e9e2b4ccb24ded37f350f5dfcde61e50 (diff)
downloadtcl-9b461748a00c4ac031b5c01d99daa9e1b9171f05.zip
tcl-9b461748a00c4ac031b5c01d99daa9e1b9171f05.tar.gz
tcl-9b461748a00c4ac031b5c01d99daa9e1b9171f05.tar.bz2
merge trunk
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c30
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);