[lttng-dev] [Babeltrace RFC PATCH 11/28] Add MinGW implementation of gmtime_r
Jérémie Galarneau
jeremie.galarneau at efficios.com
Mon May 13 16:20:56 EDT 2013
On Thu, May 2, 2013 at 7:52 AM, Ikaheimonen, JP
<jp_ikaheimonen at mentor.com> wrote:
> Add a (non-recursive) implementation of gmtime_r as it is
> missing in the MinGW standard library.
> Implementation is written in file include/babeltrace/compat/time.h
> which must be included in the source files that call gmtime_r.
> ---
> formats/ctf/ctf.c | 1 +
> include/babeltrace/compat/time.h | 19 +++++++++++++++++++
> 2 files changed, 20 insertions(+)
> create mode 100644 include/babeltrace/compat/time.h
>
> diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c
> index 0cfad44..255a492 100644
> --- a/formats/ctf/ctf.c
> +++ b/formats/ctf/ctf.c
> @@ -52,6 +52,7 @@
> #include "metadata/ctf-ast.h"
> #include "events-private.h"
> #include "babeltrace/compat/memstream.h"
> +#include <babeltrace/compat/time.h>
>
> #define LOG2_CHAR_BIT 3
>
> diff --git a/include/babeltrace/compat/time.h b/include/babeltrace/compat/time.h
> new file mode 100644
> index 0000000..ccfc860
> --- /dev/null
> +++ b/include/babeltrace/compat/time.h
> @@ -0,0 +1,19 @@
> +#ifndef _BABELTRACE_INCLUDE_COMPAT_TIME_H
> +#define _BABELTRACE_INCLUDE_COMPAT_TIME_H
> +
> +#include <time.h>
> +#include <stdlib.h>
> +
> +#ifdef __MINGW32__
> +
> +static inline
> +struct tm *gmtime_r(const time_t *timep, struct tm *result)
> +{
> + struct tm * r;
> + r = gmtime(timep);
> + memcpy(result, r, sizeof (struct tm));
> + return result;
> +}
Why not use gmtime_s? Inverting the arguments should do the trick.
> +
> +#endif
> +#endif
> --
> 1.8.1.msysgit.1
>
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list