summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-10 16:54:13 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-10 16:54:13 +0200
commitea1233fccf4f52f2b4eaab3788a087878d1336fc (patch)
tree30b56ad601bce89464f113e07fbe7d6e40d403a2
parentd281b7c227bc4c78813fdc297ccee4b2cad7e605 (diff)
downloadvim-git-ea1233fccf4f52f2b4eaab3788a087878d1336fc.tar.gz
patch 8.2.0949: strptime() does not use DSTv8.2.0949
Problem: Strptime() does not use DST. Solution: Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230)
-rw-r--r--src/testdir/test_functions.vim4
-rw-r--r--src/time.c1
-rw-r--r--src/version.c2
3 files changed, 7 insertions, 0 deletions
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index f83264b48..0a4e94e0a 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -280,6 +280,10 @@ func Test_strptime()
call assert_equal(1484653763, strptime('%Y-%m-%d %T', '2017-01-17 11:49:23'))
+ " Force DST and check that it's considered
+ let $TZ = 'WINTER0SUMMER,J1,J365'
+ call assert_equal(1484653763 - 3600, strptime('%Y-%m-%d %T', '2017-01-17 11:49:23'))
+
call assert_fails('call strptime()', 'E119:')
call assert_fails('call strptime("xxx")', 'E119:')
call assert_equal(0, strptime("%Y", ''))
diff --git a/src/time.c b/src/time.c
index 272a5b5d3..89ff08bdf 100644
--- a/src/time.c
+++ b/src/time.c
@@ -314,6 +314,7 @@ f_strptime(typval_T *argvars, typval_T *rettv)
char_u *enc;
CLEAR_FIELD(tmval);
+ tmval.tm_isdst = -1;
fmt = tv_get_string(&argvars[0]);
str = tv_get_string(&argvars[1]);
diff --git a/src/version.c b/src/version.c
index 20d508157..52d655cbc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 949,
+/**/
948,
/**/
947,