From e9b9ff9f38abc82c0a5002d5e58a5c226b698f82 Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Mon, 5 Mar 2018 19:25:08 -0500 Subject: Various fixes for mingw --- src/common/dcc.c | 4 ++-- src/common/meson.build | 10 ++++++++-- src/common/plugin.c | 4 +++- src/common/proto-irc.c | 8 +++++++- src/common/sysinfo/win32/backend.c | 2 +- 5 files changed, 21 insertions(+), 7 deletions(-) (limited to 'src/common') diff --git a/src/common/dcc.c b/src/common/dcc.c index 954e6b91..e26a2916 100644 --- a/src/common/dcc.c +++ b/src/common/dcc.c @@ -59,8 +59,8 @@ #include "hexchatc.h" /* Setting _FILE_OFFSET_BITS to 64 doesn't change lseek to use off64_t on Windows, so override lseek to the version that does */ -#ifdef WIN32 -#define lseek _lseeki64 +#if defined(WIN32) && (!defined(__MINGW32__) && !defined(__MINGW64__)) + #define lseek _lseeki64 #endif /* interval timer to detect timeouts */ diff --git a/src/common/meson.build b/src/common/meson.build index ef59ffc3..a0d6ce2b 100644 --- a/src/common/meson.build +++ b/src/common/meson.build @@ -24,9 +24,11 @@ common_sources = [ 'util.c' ] +common_sysinfo_deps = [] + common_deps = [ libgio_dep, -] +] + global_deps common_includes = [ config_h_include, @@ -41,7 +43,10 @@ if host_machine.system() == 'windows' common_deps += [ cc.find_library('ws2_32'), # winsock cc.find_library('winmm'), # playsound + ] + common_sysinfo_deps += [ cc.find_library('wbemuuid'), # sysinfo + cc.find_library('wbemcore'), ] common_sources += 'sysinfo/win32/backend.c' @@ -98,7 +103,7 @@ endif hexchat_common = static_library('hexchatcommon', sources: [textevents] + marshal + common_sources, include_directories: config_h_include, - dependencies: common_deps, + dependencies: common_deps + common_sysinfo_deps, c_args: common_cflags, pic: true ) @@ -113,4 +118,5 @@ hexchat_common_dep = declare_dependency( hexchat_plugin_dep = declare_dependency( include_directories: common_includes, compile_args: common_cflags, + dependencies: global_deps, ) diff --git a/src/common/plugin.c b/src/common/plugin.c index b49afd96..ea174bed 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -200,13 +200,15 @@ plugin_list_add (hexchat_context *ctx, char *filename, const char *name, return pl; } +#ifndef WIN32 static void * hexchat_dummy (hexchat_plugin *ph) { return NULL; } -#ifdef WIN32 +#else + static int hexchat_read_fd (hexchat_plugin *ph, GIOChannel *source, char *buf, int *len) { diff --git a/src/common/proto-irc.c b/src/common/proto-irc.c index e055c7e2..9a53ed2e 100644 --- a/src/common/proto-irc.c +++ b/src/common/proto-irc.c @@ -1471,7 +1471,13 @@ handle_message_tag_time (const char *time, message_tags_data *tags_data) long long int t; /* we ignore the milisecond part */ - if (sscanf (time, "%lld", &t) != 1) + if ( +#if defined(__MINGW64__) || defined(__MINGW32__) + __mingw_sscanf +#else + sscanf +#endif + (time, "%lld", &t) != 1) return; tags_data->timestamp = (time_t) t; diff --git a/src/common/sysinfo/win32/backend.c b/src/common/sysinfo/win32/backend.c index 64e9405a..1d88b139 100644 --- a/src/common/sysinfo/win32/backend.c +++ b/src/common/sysinfo/win32/backend.c @@ -174,7 +174,7 @@ static char *query_wmi (QueryWmiType type) goto release_locator; } - hr = namespace->lpVtbl->QueryInterface (namespace, &IID_IUnknown, &namespaceUnknown); + hr = namespace->lpVtbl->QueryInterface (namespace, &IID_IUnknown, (void**)&namespaceUnknown); if (FAILED (hr)) { goto release_namespace; -- cgit 1.4.1