diff options
author | sebres <sebres@users.sourceforge.net> | 2024-05-07 19:04:29 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2024-05-07 19:04:29 (GMT) |
commit | 577515d934510ed84e2a4ab66a0fd8ed46a17bfc (patch) | |
tree | 5a2a679d08dfd7243d7fce488774292f9757782c | |
parent | 827fe28571de6e4351929925a4ec5dc4b2906852 (diff) | |
download | tcl-577515d934510ed84e2a4ab66a0fd8ed46a17bfc.zip tcl-577515d934510ed84e2a4ab66a0fd8ed46a17bfc.tar.gz tcl-577515d934510ed84e2a4ab66a0fd8ed46a17bfc.tar.bz2 |
closes [a858d95f4bfddafb]: adjust word-token pointer after possible realloc
-rw-r--r-- | generic/tclClockFmt.c | 2 | ||||
-rw-r--r-- | tests/clock.test | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclClockFmt.c b/generic/tclClockFmt.c index 154c8ee..fdac4fb 100644 --- a/generic/tclClockFmt.c +++ b/generic/tclClockFmt.c @@ -2307,6 +2307,7 @@ ClockGetOrParseScanFormat( wordTok->tokWord.start = p; wordTok->map = &ScnWordTokenMap; AllocTokenInChain(tok, scnTok, fss->scnTokC, ClockScanToken *); + wordTok = tok - 1; tokCnt++; } if (isspace(UCHAR(*p))) { @@ -3344,6 +3345,7 @@ ClockGetOrParseFmtFormat( wordTok->tokWord.start = p; wordTok->map = &FmtWordTokenMap; AllocTokenInChain(tok, fmtTok, fss->fmtTokC, ClockFormatToken *); + wordTok = tok - 1; tokCnt++; } p = Tcl_UtfNext(p); diff --git a/tests/clock.test b/tests/clock.test index 8072a68..ef41ad5 100644 --- a/tests/clock.test +++ b/tests/clock.test @@ -375,6 +375,10 @@ test clock-1.9 "clock arguments: option doubly present" { list [catch {clock format 0 -gmt 1 -gmt 0} result] $result } {1 {bad option "-gmt": doubly present}} +test clock-1.10 {clock format: text with token (bug [a858d95f4bfddafb])} { + clock format 0 -format text(%d) -gmt 1 +} {text(01)} + # BEGIN testcases2 # Test formatting of Gregorian year, month, day, all formats @@ -18924,6 +18928,10 @@ test clock-6.22.20 {Greedy match (second space wins as date-time separator)} { clock format [clock scan "111 2 13120" -format "%y%m%d %H%M%S" -gmt 1] -locale en -gmt 1 } {Sun Jan 02 13:12:00 GMT 2011} +test clock-6.23 {clock scan: text with token (bug [a858d95f4bfddafb])} { + clock scan {text(01)} -format text(%d) -gmt 1 -base 0 +} 0 + test clock-7.1 {Julian Day} { clock scan 0 -format %J -gmt true |