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)28static 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