aboutsummaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorFelipe Oliveira Carvalho <felipekde@gmail.com>2014-05-01 20:24:29 -0300
committerFelipe Oliveira Carvalho <felipekde@gmail.com>2014-05-06 09:22:39 -0300
commit151382d533c2bd77e26e1dfc254e186f7496e226 (patch)
treec3841dddf47c5d75cdc1a11fe5e726c2f1c6bbf2 /src/eval.c
parentee62510d4e623e5fb4a0cc7d5b450ce18c24e25f (diff)
downloadrneovim-151382d533c2bd77e26e1dfc254e186f7496e226.tar.gz
rneovim-151382d533c2bd77e26e1dfc254e186f7496e226.tar.bz2
rneovim-151382d533c2bd77e26e1dfc254e186f7496e226.zip
Introduce os_localtime_r() and os_get_local_time()
Replace localtime() with os_localtime_r() in `eval.c` and `undo.c`.
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 df11174898..fba95789ac 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;