1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 /*  CMetrics
4  *  ========
5  *  Copyright 2021 Eduardo Silva <eduardo@calyptia.com>
6  *
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  *  Unless required by applicable law or agreed to in writing, software
14  *  distributed under the License is distributed on an "AS IS" BASIS,
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  *  See the License for the specific language governing permissions and
17  *  limitations under the License.
18  */
19 
20 #ifndef CMT_COMPAT_H
21 #define CMT_COMPAT_H
22 
23 #include <time.h>
24 #ifdef _WIN32
25 #include <windows.h>
26 #endif
27 
cmt_platform_gmtime_r(const time_t * timep,struct tm * result)28 static inline struct tm *cmt_platform_gmtime_r(const time_t *timep, struct tm *result)
29 {
30 #ifdef CMT_HAVE_GMTIME_S
31     if (gmtime_s(result, timep)) {
32         return NULL;
33     }
34 
35     return result;
36 #else
37     /* FIXME: Need to handle gmtime_r(3) lacking platform? */
38     return gmtime_r(timep, result) ;
39 #endif
40 }
41 
42 #endif
43