Re: [PATCH 5/5] mingw: use {gm,local}time_s as backend for {gm,local}time_r
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 27, 2019, 19:39 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1911272038430.31080@tvgsbejvaqbjf.bet>
- In-Reply-To
- <2c39f9a04f98fc3d365c80ce57e8edce305846fb.1574867409.git.congdanhqx@gmail.com>
Hi Danh,
On Wed, 27 Nov 2019, Doan Tran Cong Danh wrote:
Show 9 quoted lines
> diff --git a/compat/mingw.c b/compat/mingw.c > index fe609239dd..7b21f4eee5 100644 > --- a/compat/mingw.c > +++ b/compat/mingw.c > @@ -1,6 +1,7 @@ > #include "../git-compat-util.h" > #include "win32.h" > #include <conio.h> > +#include <errno.h>
I actually overlooked this. Please drop this hunk, it should not be needed (and might break things in the MSVC build).
Thanks, Dscho
Show 30 quoted lines
> #include <wchar.h>
> #include "../strbuf.h"
> #include "../run-command.h"
> @@ -986,16 +987,16 @@ int pipe(int filedes[2])
>
> struct tm *gmtime_r(const time_t *timep, struct tm *result)
> {
> - /* gmtime() in MSVCRT.DLL is thread-safe, but not reentrant */
> - memcpy(result, gmtime(timep), sizeof(struct tm));
> - return result;
> + if (gmtime_s(result, timep) == 0)
> + return result;
> + return NULL;
> }
>
> struct tm *localtime_r(const time_t *timep, struct tm *result)
> {
> - /* localtime() in MSVCRT.DLL is thread-safe, but not reentrant */
> - memcpy(result, localtime(timep), sizeof(struct tm));
> - return result;
> + if (localtime_s(result, timep) == 0)
> + return result;
> + return NULL;
> }
>
> char *mingw_getcwd(char *pointer, int len)
> --
> 2.24.0.158.gd77a74f4dd.dirty
>
>