From 12d9d1a339f9201e6147850d536bbea9332a6439 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Wed, 14 May 2025 11:11:41 +0800 Subject: [PATCH] Fix bug --- meson.build | 14 ++++++++++++-- time_util.cpp | 8 ++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 9575047..f4839fd 100644 --- a/meson.build +++ b/meson.build @@ -49,8 +49,8 @@ endif if MSVC - add_project_arguments('/UTF8', language: 'c') - add_project_arguments('/UTF8', language: 'cpp') + add_project_arguments('/utf-8', language: 'c') + add_project_arguments('/utf-8', language: 'cpp') endif if WIN32 @@ -95,6 +95,16 @@ if conf.get('HAVE_STRERROR_R') == 1 conf.set10('HAVE_GNU_STRERROR_R', HAVE_GNU_STRERROR_R) message('strerror_r is GNU complatable:', HAVE_GNU_STRERROR_R) endif +if not MSVC + conf.set10('HAVE_TIMEZONE', cc.has_header_symbol('time.h', 'timezone')) + conf.set10('HAVE_TZSET', cc.has_header_symbol('time.h', 'tzset')) +endif +if not WIN32 + conf.set10('HAVE_CLOCK_GETTIME', cc.has_header_symbol('time.h', 'clock_gettime')) + conf.set10('HAVE_USLEEP', cc.has_header_symbol('unistd.h', 'usleep')) + conf.set10('HAVE_NANOSLEEP', cc.has_header_symbol('time.h', 'nanosleep')) + conf.set10('HAVE_NETINET_IN_H', cc.check_header('netinet/in.h')) +endif configure_file(output: 'utils_config.h', configuration: conf) source_file = files([ diff --git a/time_util.cpp b/time_util.cpp index 4e4c0ae..8eb675c 100644 --- a/time_util.cpp +++ b/time_util.cpp @@ -35,7 +35,10 @@ char* time_util::strptime(const char* s, const char* format, struct tm* tm) { } long time_util::get_timezone() { -#if HAVE__GET_TIMEZONE +#if HAVE_TIMEZONE && HAVE_TZSET + tzset(); + return timezone; +#elif HAVE__GET_TIMEZONE long t = 0; int err = _get_timezone(&t); if (!err) { @@ -48,9 +51,6 @@ long time_util::get_timezone() { } else { return t; } -#elif HAVE_TIMEZONE && HAVE_TZSET - tzset(); - return timezone; #else printf("get_timezone failed: not implemented\n"); return 0;