summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2024-05-07 19:04:29 (GMT)
committersebres <sebres@users.sourceforge.net>2024-05-07 19:04:29 (GMT)
commit577515d934510ed84e2a4ab66a0fd8ed46a17bfc (patch)
tree5a2a679d08dfd7243d7fce488774292f9757782c
parent827fe28571de6e4351929925a4ec5dc4b2906852 (diff)
downloadtcl-577515d934510ed84e2a4ab66a0fd8ed46a17bfc.zip
tcl-577515d934510ed84e2a4ab66a0fd8ed46a17bfc.tar.gz
tcl-577515d934510ed84e2a4ab66a0fd8ed46a17bfc.tar.bz2
closes [a858d95f4bfddafb]: adjust word-token pointer after possible realloc
-rw-r--r--generic/tclClockFmt.c2
-rw-r--r--tests/clock.test8
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