aboutsummaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-05-06 21:50:25 -0700
committerJustin M. Keyes <justinkz@gmail.com>2014-05-06 21:50:25 -0700
commitdf4f88fe3198acea6267c6ed3b129af7d8972bf1 (patch)
tree12aa58e43bdd457f8fccd5fef49dc6831368f0f3 /src/eval.c
parent85459327ba76d674572ad96dc459c97e4a71e88d (diff)
parent151382d533c2bd77e26e1dfc254e186f7496e226 (diff)
downloadrneovim-df4f88fe3198acea6267c6ed3b129af7d8972bf1.tar.gz
rneovim-df4f88fe3198acea6267c6ed3b129af7d8972bf1.tar.bz2
rneovim-df4f88fe3198acea6267c6ed3b129af7d8972bf1.zip
Merge pull request #644 from philix/log
Macro-based log utility for Neovim
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index 61a33c04d9..ed246c363b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -65,6 +65,7 @@
#include "os/job.h"
#include "os/rstream.h"
#include "os/rstream_defs.h"
+#include "os/time.h"
#if defined(FEAT_FLOAT)
# include <math.h>
@@ -14163,7 +14164,6 @@ static void f_str2nr(typval_T *argvars, typval_T *rettv)
static void f_strftime(typval_T *argvars, typval_T *rettv)
{
char_u result_buf[256];
- struct tm *curtime;
time_t seconds;
char_u *p;
@@ -14174,9 +14174,11 @@ static void f_strftime(typval_T *argvars, typval_T *rettv)
seconds = time(NULL);
else
seconds = (time_t)get_tv_number(&argvars[1]);
- curtime = localtime(&seconds);
+
+ struct tm curtime;
+ struct tm *curtime_ptr = os_localtime_r(&seconds, &curtime);
/* MSVC returns NULL for an invalid value of seconds. */
- if (curtime == NULL)
+ if (curtime_ptr == NULL)
rettv->vval.v_string = vim_strsave((char_u *)_("(Invalid)"));
else {
vimconv_T conv;
@@ -14189,7 +14191,7 @@ static void f_strftime(typval_T *argvars, typval_T *rettv)
p = string_convert(&conv, p, NULL);
if (p != NULL)
(void)strftime((char *)result_buf, sizeof(result_buf),
- (char *)p, curtime);
+ (char *)p, curtime_ptr);
else
result_buf[0] = NUL;