summaryrefslogtreecommitdiffstats
path: root/generic/tclGetDate.y
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2018-05-29 17:11:52 (GMT)
committersebres <sebres@users.sourceforge.net>2018-05-29 17:11:52 (GMT)
commit9b3dad29d72deaf01d61c8eeb18a238ca1854eb9 (patch)
tree88fc872a7e53ec8dcb215e04fa44a66dadc1def7 /generic/tclGetDate.y
parent743a4fee3d210f177179ff4212a36a2eb8213b9c (diff)
downloadtcl-9b3dad29d72deaf01d61c8eeb18a238ca1854eb9.zip
tcl-9b3dad29d72deaf01d61c8eeb18a238ca1854eb9.tar.gz
tcl-9b3dad29d72deaf01d61c8eeb18a238ca1854eb9.tar.bz2
FreeScan: repair scanning date/time with TZ using '+', ex.: "31 Jan 14 23:59:59 +0100", additionally another TZ formats can be used now (token [zone] used instead of sequence '-' tNUMBER); test cases extended.
Closes http://core.tcl.tk/tcl/tktview?name=5019748c73 Cherry picked from fossil branch "sebres_clock_tz_fix", check-in [5f72c863f17145b4]
Diffstat (limited to 'generic/tclGetDate.y')
-rw-r--r--generic/tclGetDate.y23
1 files changed, 5 insertions, 18 deletions
diff --git a/generic/tclGetDate.y b/generic/tclGetDate.y
index d6f9b11..e546938 100644
--- a/generic/tclGetDate.y
+++ b/generic/tclGetDate.y
@@ -195,29 +195,12 @@ time : tUNUMBER tMERIDIAN {
yySeconds = 0;
yyMeridian = $4;
}
- | tUNUMBER ':' tUNUMBER '-' tUNUMBER {
- yyHour = $1;
- yyMinutes = $3;
- yyMeridian = MER24;
- yyDSTmode = DSToff;
- yyTimezone = ($5 % 100 + ($5 / 100) * 60);
- ++yyHaveZone;
- }
| tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid {
yyHour = $1;
yyMinutes = $3;
yySeconds = $5;
yyMeridian = $6;
}
- | tUNUMBER ':' tUNUMBER ':' tUNUMBER '-' tUNUMBER {
- yyHour = $1;
- yyMinutes = $3;
- yySeconds = $5;
- yyMeridian = MER24;
- yyDSTmode = DSToff;
- yyTimezone = ($7 % 100 + ($7 / 100) * 60);
- ++yyHaveZone;
- }
;
zone : tZONE tDST {
@@ -232,6 +215,10 @@ zone : tZONE tDST {
yyTimezone = $1;
yyDSTmode = DSTon;
}
+ | sign tUNUMBER {
+ yyTimezone = -$1*($2 % 100 + ($2 / 100) * 60);
+ yyDSTmode = DSToff;
+ }
;
day : tDAY {
@@ -659,7 +646,7 @@ TclDateerror(
infoPtr->separatrix = "\n";
}
-MODULE_SCOPE int
+int
ToSeconds(
int Hours,
int Minutes,