Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | merge novem |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dgp-refactor |
Files: | files | file ages | folders |
SHA1: |
c0ddc62dbeff5b0221f48fe87b6c80d5 |
User & Date: | dgp 2015-02-26 16:40:56 |
2015-03-11
| ||
20:56 | merge novem check-in: 129ac3fa0e user: dgp tags: dgp-refactor | |
2015-02-26
| ||
16:40 | merge novem check-in: c0ddc62dbe user: dgp tags: dgp-refactor | |
16:35 | merge trunk check-in: f28efa3202 user: dgp tags: novem | |
2014-12-23
| ||
18:52 | merge novem check-in: af900c390e user: dgp tags: dgp-refactor | |
Changes to doc/CrtChannel.3.
︙ | ︙ | |||
332 333 334 335 336 337 338 | Tcl_DriverTruncateProc *\fItruncateProc\fR; } \fBTcl_ChannelType\fR; .CE .PP It is not necessary to provide implementations for all channel operations. Those which are not necessary may be set to NULL in the struct: \fIblockModeProc\fR, \fIseekProc\fR, \fIsetOptionProc\fR, | | | 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 | Tcl_DriverTruncateProc *\fItruncateProc\fR; } \fBTcl_ChannelType\fR; .CE .PP It is not necessary to provide implementations for all channel operations. Those which are not necessary may be set to NULL in the struct: \fIblockModeProc\fR, \fIseekProc\fR, \fIsetOptionProc\fR, \fIgetOptionProc\fR, \fIgetHandleProc\fR, and \fIclose2Proc\fR, in addition to \fIflushProc\fR, \fIhandlerProc\fR, \fIthreadActionProc\fR, and \fItruncateProc\fR. Other functions that cannot be implemented in a meaningful way should return \fBEINVAL\fR when called, to indicate that the operations they represent are not available. Also note that \fIwideSeekProc\fR can be NULL if \fIseekProc\fR is. .PP The user should only use the above structure for \fBTcl_ChannelType\fR |
︙ | ︙ |
Changes to generic/regcomp.c.
︙ | ︙ | |||
992 993 994 995 996 997 998 | /* * ...and an atom may be followed by a quantifier. */ switch (v->nexttype) { case '*': m = 0; | | | | | 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 | /* * ...and an atom may be followed by a quantifier. */ switch (v->nexttype) { case '*': m = 0; n = DUPINF; qprefer = (v->nextvalue) ? LONGER : SHORTER; NEXT(); break; case '+': m = 1; n = DUPINF; qprefer = (v->nextvalue) ? LONGER : SHORTER; NEXT(); break; case '?': m = 0; n = 1; qprefer = (v->nextvalue) ? LONGER : SHORTER; NEXT(); break; case '{': NEXT(); m = scannum(v); if (EAT(',')) { if (SEE(DIGIT)) { n = scannum(v); } else { n = DUPINF; } if (m > n) { ERR(REG_BADBR); return; } /* |
︙ | ︙ | |||
1213 1214 1215 1216 1217 1218 1219 | } else { /* * Turn x{m,n} into x{m-1,n-1}x, with capturing parens in only second * x */ dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin); | | | | 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 | } else { /* * Turn x{m,n} into x{m-1,n-1}x, with capturing parens in only second * x */ dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin); assert(m >= 1 && m != DUPINF && n >= 1); repeat(v, s, atom->begin, m-1, (n == DUPINF) ? n : n-1); f = COMBINE(qprefer, atom->flags); t = subre(v, '.', f, s, atom->end); /* prefix and atom */ NOERR(); t->left = subre(v, '=', PREF(f), s, atom->begin); NOERR(); t->right = atom; *atomp = t; |
︙ | ︙ | |||
1319 1320 1321 1322 1323 1324 1325 | struct state *rp, int m, int n) { #define SOME 2 #define INF 3 #define PAIR(x, y) ((x)*4 + (y)) | | | 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 | struct state *rp, int m, int n) { #define SOME 2 #define INF 3 #define PAIR(x, y) ((x)*4 + (y)) #define REDUCE(x) ( ((x) == DUPINF) ? INF : (((x) > 1) ? SOME : (x)) ) const int rm = REDUCE(m); const int rn = REDUCE(n); struct state *s, *s2; switch (PAIR(rm, rn)) { case PAIR(0, 0): /* empty string */ delsub(v->nfa, lp, rp); |
︙ | ︙ | |||
2104 2105 2106 2107 2108 2109 2110 | fprintf(f, " UNUSED"); } if (t->subno != 0) { fprintf(f, " (#%d)", t->subno); } if (t->min != 1 || t->max != 1) { fprintf(f, " {%d,", t->min); | | | 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 | fprintf(f, " UNUSED"); } if (t->subno != 0) { fprintf(f, " (#%d)", t->subno); } if (t->min != 1 || t->max != 1) { fprintf(f, " {%d,", t->min); if (t->max != DUPINF) { fprintf(f, "%d", t->max); } fprintf(f, "}"); } if (nfapresent) { fprintf(f, " %ld-%ld", (long)t->begin->no, (long)t->end->no); } |
︙ | ︙ |
Changes to generic/regexec.c.
︙ | ︙ | |||
1118 1119 1120 1121 1122 1123 1124 | stop = end - len; /* * Count occurrences. */ i = 0; | | | | 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 | stop = end - len; /* * Count occurrences. */ i = 0; for (p = begin; p <= stop && (i < max || max == DUPINF); p += len) { if (v->g->compare(paren, p, len) != 0) { break; } i++; } MDEBUG(("cbackref found %d\n", i)); /* * And sort it out. */ if (p != end) { /* didn't consume all of it */ return REG_NOMATCH; } if (min <= i && (i <= max || max == DUPINF)) { return REG_OKAY; } return REG_NOMATCH; /* out of range */ } /* - complicatedAlternationDissect - determine alternative subexpression matches (w. |
︙ | ︙ |
Changes to generic/regguts.h.
︙ | ︙ | |||
69 70 71 72 73 74 75 | * misc */ #define NOTREACHED 0 #define xxx 1 #define DUPMAX _POSIX2_RE_DUP_MAX | | | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | * misc */ #define NOTREACHED 0 #define xxx 1 #define DUPMAX _POSIX2_RE_DUP_MAX #define DUPINF (DUPMAX+1) #define REMAGIC 0xfed7 /* magic number for main struct */ /* * debugging facilities */ #ifdef REG_DEBUG |
︙ | ︙ |
Changes to generic/tclCompCmdsGR.c.
︙ | ︙ | |||
1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 | return TCL_ERROR; } tokenPtr = TokenAfter(tokenPtr); if (GetIndexFromToken(tokenPtr, &idx2) != TCL_OK) { return TCL_ERROR; } /* * Work out what this [lreplace] is actually doing. */ tmpObj = NULL; CompileWord(envPtr, listTokenPtr, interp, 1); | > > > > | 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 | return TCL_ERROR; } tokenPtr = TokenAfter(tokenPtr); if (GetIndexFromToken(tokenPtr, &idx2) != TCL_OK) { return TCL_ERROR; } if(idx2 != INDEX_END && idx2 < idx1) { idx2 = idx1-1; } /* * Work out what this [lreplace] is actually doing. */ tmpObj = NULL; CompileWord(envPtr, listTokenPtr, interp, 1); |
︙ | ︙ |
Changes to generic/tclIO.c.
︙ | ︙ | |||
1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 | * * If this assertion fails on some system, then it can be removed only if * the user recompiles code with older channel drivers in the new system * as well. */ assert(sizeof(Tcl_ChannelTypeVersion) == sizeof(Tcl_DriverBlockModeProc *)); /* * JH: We could subsequently memset these to 0 to avoid the numerous * assignments to 0/NULL below. */ chanPtr = ckalloc(sizeof(Channel)); | > > > > > > > > > > > > > > > > | 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 | * * If this assertion fails on some system, then it can be removed only if * the user recompiles code with older channel drivers in the new system * as well. */ assert(sizeof(Tcl_ChannelTypeVersion) == sizeof(Tcl_DriverBlockModeProc *)); assert(typePtr->typeName != NULL); if (NULL == typePtr->closeProc) { Tcl_Panic("channel type %s must define closeProc", typePtr->typeName); } if ((TCL_READABLE & mask) && (NULL == typePtr->inputProc)) { Tcl_Panic("channel type %s must define inputProc when used for reader channel", typePtr->typeName); } if ((TCL_WRITABLE & mask) && (NULL == typePtr->outputProc)) { Tcl_Panic("channel type %s must define outputProc when used for writer channel", typePtr->typeName); } if (NULL == typePtr->watchProc) { Tcl_Panic("channel type %s must define watchProc", typePtr->typeName); } if ((NULL!=typePtr->wideSeekProc) && (NULL == typePtr->seekProc)) { Tcl_Panic("channel type %s must define seekProc if defining wideSeekProc", typePtr->typeName); } /* * JH: We could subsequently memset these to 0 to avoid the numerous * assignments to 0/NULL below. */ chanPtr = ckalloc(sizeof(Channel)); |
︙ | ︙ | |||
5731 5732 5733 5734 5735 5736 5737 | /* * This operation should occur at the top of a channel stack. */ chanPtr = statePtr->topChanPtr; TclChannelPreserve((Tcl_Channel)chanPtr); | | | | 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 | /* * This operation should occur at the top of a channel stack. */ chanPtr = statePtr->topChanPtr; TclChannelPreserve((Tcl_Channel)chanPtr); /* Must clear the BLOCKED|EOF flags here since we check before reading */ ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF); for (copied = 0; (unsigned) toRead > 0; ) { copiedNow = -1; if (statePtr->inQueueHead != NULL) { if (binaryMode) { copiedNow = ReadBytes(statePtr, objPtr, toRead); } else { copiedNow = ReadChars(statePtr, objPtr, toRead, &factor); |
︙ | ︙ | |||
6194 6195 6196 6197 6198 6199 6200 | * byte, and we are in TCL_TRANSLATE_AUTO mode, and * when the translation pass was made the INPUT_SAW_CR * flag was set on the channel. In that case, the * correct behavior is to consume that \n and produce the * empty string. */ | | < | 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 | * byte, and we are in TCL_TRANSLATE_AUTO mode, and * when the translation pass was made the INPUT_SAW_CR * flag was set on the channel. In that case, the * correct behavior is to consume that \n and produce the * empty string. */ if (dstRead == 1 && dst[0] == '\n') { assert(statePtr->inputTranslation == TCL_TRANSLATE_AUTO); goto consume; } /* Otherwise, reading zero characters indicates there's * something incomplete at the end of the src buffer. * Maybe there were not enough src bytes to decode into |
︙ | ︙ |
Changes to generic/tclVar.c.
︙ | ︙ | |||
4543 4544 4545 4546 4547 4548 4549 | if (!TclIsVarDeadHash(varPtr)) { namePtr = VarHashGetKey(varPtr); Tcl_AppendObjToObj(objPtr, namePtr); } } else if (iPtr->varFramePtr->procPtr) { int index = varPtr - iPtr->varFramePtr->compiledLocals; | | | 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 | if (!TclIsVarDeadHash(varPtr)) { namePtr = VarHashGetKey(varPtr); Tcl_AppendObjToObj(objPtr, namePtr); } } else if (iPtr->varFramePtr->procPtr) { int index = varPtr - iPtr->varFramePtr->compiledLocals; if (index >= 0 && index < iPtr->varFramePtr->numCompiledLocals) { namePtr = localName(iPtr->varFramePtr, index); Tcl_AppendObjToObj(objPtr, namePtr); } } } /* |
︙ | ︙ |
Changes to library/tzdata/Africa/Asmera.
1 | # created by tools/tclZIC.tcl - do not edit | | | | | 1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit if {![info exists TZData(Africa/Nairobi)]} { LoadTimeZoneFile Africa/Nairobi } set TZData(:Africa/Asmera) $TZData(:Africa/Nairobi) |
Changes to library/tzdata/America/Cancun.
︙ | ︙ | |||
39 40 41 42 43 44 45 | {1319958000 -21600 0 CST} {1333267200 -18000 1 CDT} {1351407600 -21600 0 CST} {1365321600 -18000 1 CDT} {1382857200 -21600 0 CST} {1396771200 -18000 1 CDT} {1414306800 -21600 0 CST} | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 39 40 41 42 43 44 45 46 47 | {1319958000 -21600 0 CST} {1333267200 -18000 1 CDT} {1351407600 -21600 0 CST} {1365321600 -18000 1 CDT} {1382857200 -21600 0 CST} {1396771200 -18000 1 CDT} {1414306800 -21600 0 CST} {1422777600 -18000 0 EST} } |
Changes to library/tzdata/America/Santiago.
︙ | ︙ | |||
114 115 116 117 118 119 120 | {1313899200 -10800 1 CLST} {1335668400 -14400 0 CLT} {1346558400 -10800 1 CLST} {1367118000 -14400 0 CLT} {1378612800 -10800 1 CLST} {1398567600 -14400 0 CLT} {1410062400 -10800 1 CLST} | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 114 115 116 117 118 119 120 121 122 | {1313899200 -10800 1 CLST} {1335668400 -14400 0 CLT} {1346558400 -10800 1 CLST} {1367118000 -14400 0 CLT} {1378612800 -10800 1 CLST} {1398567600 -14400 0 CLT} {1410062400 -10800 1 CLST} {1430017200 -10800 0 CLT} } |
Changes to library/tzdata/Antarctica/Palmer.
︙ | ︙ | |||
77 78 79 80 81 82 83 | {1313899200 -10800 1 CLST} {1335668400 -14400 0 CLT} {1346558400 -10800 1 CLST} {1367118000 -14400 0 CLT} {1378612800 -10800 1 CLST} {1398567600 -14400 0 CLT} {1410062400 -10800 1 CLST} | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 77 78 79 80 81 82 83 84 85 | {1313899200 -10800 1 CLST} {1335668400 -14400 0 CLT} {1346558400 -10800 1 CLST} {1367118000 -14400 0 CLT} {1378612800 -10800 1 CLST} {1398567600 -14400 0 CLT} {1410062400 -10800 1 CLST} {1430017200 -10800 0 CLT} } |
Changes to library/tzdata/Asia/Aden.
1 | # created by tools/tclZIC.tcl - do not edit | > > | | < < < | 1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit if {![info exists TZData(Asia/Riyadh)]} { LoadTimeZoneFile Asia/Riyadh } set TZData(:Asia/Aden) $TZData(:Asia/Riyadh) |
Changes to library/tzdata/Asia/Bahrain.
1 | # created by tools/tclZIC.tcl - do not edit | > > | | < < < < | 1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit if {![info exists TZData(Asia/Qatar)]} { LoadTimeZoneFile Asia/Qatar } set TZData(:Asia/Bahrain) $TZData(:Asia/Qatar) |
Changes to library/tzdata/Asia/Kuwait.
1 | # created by tools/tclZIC.tcl - do not edit | > > | | < < < | 1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit if {![info exists TZData(Asia/Riyadh)]} { LoadTimeZoneFile Asia/Riyadh } set TZData(:Asia/Kuwait) $TZData(:Asia/Riyadh) |
Changes to library/tzdata/Asia/Muscat.
1 | # created by tools/tclZIC.tcl - do not edit | > > | | < < < | 1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit if {![info exists TZData(Asia/Dubai)]} { LoadTimeZoneFile Asia/Dubai } set TZData(:Asia/Muscat) $TZData(:Asia/Dubai) |
Changes to library/tzdata/Atlantic/Reykjavik.
1 2 3 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Reykjavik) { | | < | > > > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Reykjavik) { {-9223372036854775808 -5280 0 LMT} {-1956609120 -3600 0 IST} {-1668211200 0 1 ISST} {-1647212400 -3600 0 IST} {-1636675200 0 1 ISST} {-1613430000 -3600 0 IST} {-1605139200 0 1 ISST} {-1581894000 -3600 0 IST} {-1539561600 0 1 ISST} {-1531350000 -3600 0 IST} {-968025600 0 1 ISST} {-952293600 -3600 0 IST} {-942008400 0 1 ISST} {-920239200 -3600 0 IST} {-909957600 0 1 ISST} {-888789600 -3600 0 IST} {-877903200 0 1 ISST} {-857944800 -3600 0 IST} {-846453600 0 1 ISST} |
︙ | ︙ |
Changes to library/tzdata/Pacific/Easter.
︙ | ︙ | |||
32 33 34 35 36 37 38 39 40 41 42 43 44 45 | {277272000 -21600 1 EASST} {289969200 -25200 0 EAST} {308721600 -21600 1 EASST} {321418800 -25200 0 EAST} {340171200 -21600 1 EASST} {353473200 -25200 0 EAST} {371620800 -21600 1 EASST} {384922800 -21600 0 EAST} {403070400 -18000 1 EASST} {416372400 -21600 0 EAST} {434520000 -18000 1 EASST} {447822000 -21600 0 EAST} {466574400 -18000 1 EASST} {479271600 -21600 0 EAST} | > | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | {277272000 -21600 1 EASST} {289969200 -25200 0 EAST} {308721600 -21600 1 EASST} {321418800 -25200 0 EAST} {340171200 -21600 1 EASST} {353473200 -25200 0 EAST} {371620800 -21600 1 EASST} {384836400 -18000 0 EAST} {384922800 -21600 0 EAST} {403070400 -18000 1 EASST} {416372400 -21600 0 EAST} {434520000 -18000 1 EASST} {447822000 -21600 0 EAST} {466574400 -18000 1 EASST} {479271600 -21600 0 EAST} |
︙ | ︙ | |||
98 99 100 101 102 103 104 | {1313899200 -18000 1 EASST} {1335668400 -21600 0 EAST} {1346558400 -18000 1 EASST} {1367118000 -21600 0 EAST} {1378612800 -18000 1 EASST} {1398567600 -21600 0 EAST} {1410062400 -18000 1 EASST} | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 99 100 101 102 103 104 105 106 107 | {1313899200 -18000 1 EASST} {1335668400 -21600 0 EAST} {1346558400 -18000 1 EASST} {1367118000 -21600 0 EAST} {1378612800 -18000 1 EASST} {1398567600 -21600 0 EAST} {1410062400 -18000 1 EASST} {1430017200 -18000 0 EAST} } |
Changes to tests/io.test.
︙ | ︙ | |||
8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 | lappend result [gets $rfd] lappend result [eof $rfd] } -cleanup { close $wfd close $rfd removeFile io-73.3 } -result {1 1 {more data} 0 {} 1} # ### ### ### ######### ######### ######### # cleanup foreach file [list fooBar longfile script script2 output test1 pipe my_script \ test2 test3 cat stdout kyrillic.txt utf8-fcopy.txt utf8-rp.txt] { removeFile $file | > > > > > > > > > > > > > > > > > > > | 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 | lappend result [gets $rfd] lappend result [eof $rfd] } -cleanup { close $wfd close $rfd removeFile io-73.3 } -result {1 1 {more data} 0 {} 1} test io-73.4 {[5adc350683] [read] after EOF} -setup { set fn [makeFile {} io-73.4] set rfd [open $fn r] set wfd [open $fn a] chan configure $wfd -buffering line read $rfd } -body { set result [eof $rfd] puts $wfd "more data" lappend result [eof $rfd] lappend result [read $rfd] lappend result [eof $rfd] } -cleanup { close $wfd close $rfd removeFile io-73.4 } -result {1 1 {more data } 1} # ### ### ### ######### ######### ######### # cleanup foreach file [list fooBar longfile script script2 output test1 pipe my_script \ test2 test3 cat stdout kyrillic.txt utf8-fcopy.txt utf8-rp.txt] { removeFile $file |
︙ | ︙ |
Changes to tests/lreplace.test.
︙ | ︙ | |||
133 134 135 136 137 138 139 140 141 142 143 144 145 146 | test lreplace-4.1 {Bug ccc2c2cc98: lreplace edge case} { lreplace {} 1 1 } {} # Note that this test will fail in 8.5 test lreplace-4.2 {Bug ccc2c2cc98: lreplace edge case} { lreplace { } 1 1 } {} # cleanup catch {unset foo} ::tcltest::cleanupTests return # Local Variables: | > > > > > > > > > | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | test lreplace-4.1 {Bug ccc2c2cc98: lreplace edge case} { lreplace {} 1 1 } {} # Note that this test will fail in 8.5 test lreplace-4.2 {Bug ccc2c2cc98: lreplace edge case} { lreplace { } 1 1 } {} test lreplace-4.3 {lreplace edge case} { lreplace {1 2 3} 2 0 } {1 2 3} test lreplace-4.4 {lreplace edge case} { lreplace {1 2 3 4 5} 3 1 } {1 2 3 4 5} test lreplace-4.4 {lreplace edge case} { lreplace {1 2 3 4 5} 3 0 _ } {1 2 3 _ 4 5} # cleanup catch {unset foo} ::tcltest::cleanupTests return # Local Variables: |
︙ | ︙ |