From decdfa853cdef4d4bd8cc223883701e1faa51d5c Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Sat, 4 Nov 2023 20:30:25 +0100 Subject: [PATCH] [windows] Compilation fixes --- meson.build | 16 ++++++++++++++-- src/config/cmdline.c | 4 ++++ src/intl/charsets.c | 2 ++ src/osdep/osdep.h | 2 -- src/osdep/stub.c | 4 ++++ src/protocol/fsp/fsp2.c | 24 ++++++++++++++++++++++++ src/protocol/ftp/ftp.c | 4 ++++ src/viewer/text/form.cpp | 2 +- 8 files changed, 53 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 21c3a560..405b783b 100644 --- a/meson.build +++ b/meson.build @@ -152,8 +152,8 @@ conf_data.set('CONFIG_OS_RISCOS', false) # AC_HEADER_DIRENT conf_data.set('HAVE_DIRENT_H', 1) -# AC_HEADER_SYS_WAIT -conf_data.set('HAVE_SYS_WAIT_H', 1) + + # AC_HEADER_TIME conf_data.set('HAVE_SYS_TIME_H', 1) @@ -166,6 +166,10 @@ if conf_data.get('CONFIG_ECMASCRIPT') extracppflags += ['-fpermissive', '-Wno-sign-compare'] endif +if compiler.has_header('sys/wait.h') + conf_data.set('HAVE_SYS_WAIT_H', 1) +endif + if compiler.has_header('wchar.h') conf_data.set('HAVE_WCHAR_H', 1) endif @@ -310,6 +314,14 @@ if compiler.has_header('term.h') conf_data.set('HAVE_TERM_H', 1) endif +if compiler.has_header('windows.h') + conf_data.set('HAVE_WINDOWS_H', 1) +endif + +if compiler.has_header('ws2tcpip.h') + conf_data.set('HAVE_WS2TCPIP_H', 1) +endif + st = get_option('static') deps = [] diff --git a/src/config/cmdline.c b/src/config/cmdline.c index 3adce9cc..77529935 100644 --- a/src/config/cmdline.c +++ b/src/config/cmdline.c @@ -28,6 +28,10 @@ #include #endif +#ifdef HAVE_WS2TCPIP_H +#include /* socklen_t for MinGW */ +#endif + #include "elinks.h" #include "config/cmdline.h" diff --git a/src/intl/charsets.c b/src/intl/charsets.c index 810234b7..509db774 100644 --- a/src/intl/charsets.c +++ b/src/intl/charsets.c @@ -29,7 +29,9 @@ #include #endif +#ifdef HAVE_SYS_IOCTL_H #include +#endif #ifdef HAVE_SYS_KD_H #include diff --git a/src/osdep/osdep.h b/src/osdep/osdep.h index 048c52ff..03f83106 100644 --- a/src/osdep/osdep.h +++ b/src/osdep/osdep.h @@ -53,9 +53,7 @@ int resize_window(int, int, int, int); int can_resize_window(int); int can_open_os_shell(int); void set_highpri(void); -#ifndef WIN32 char *tempname(const char *dir, const char *pfx, char *suff); -#endif #ifdef USE_OPEN_PREALLOC int open_prealloc(char *, int, int, off_t); diff --git a/src/osdep/stub.c b/src/osdep/stub.c index 49a17830..94110824 100644 --- a/src/osdep/stub.c +++ b/src/osdep/stub.c @@ -24,6 +24,10 @@ #include #endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + #include "elinks.h" #include "osdep/stub.h" diff --git a/src/protocol/fsp/fsp2.c b/src/protocol/fsp/fsp2.c index cc240fc2..f12ee708 100644 --- a/src/protocol/fsp/fsp2.c +++ b/src/protocol/fsp/fsp2.c @@ -17,10 +17,25 @@ use of this software. Let me know of any bugs and suggestions. */ #include + +#ifdef HAVE_SYS_SOCKET_H #include +#endif + #include + +#ifdef HAVE_NETINET_IN_H #include +#endif + +#ifdef HAVE_WS2TCPIP_H +#include +#endif + +#ifdef HAVE_NETDB_H #include +#endif + #include #include #include @@ -46,6 +61,11 @@ use of this software. #include "protocol/uri.h" #include "util/conv.h" +#ifdef CONFIG_OS_WIN32 +#undef random +#define random rand +#endif + static void fsp_stat_continue(void *data); typedef void (*return_handler_T)(void *data); @@ -435,7 +455,11 @@ fsp_open_session(const char *host, unsigned short port, const char *password) if ((fd = getaddrinfo(host, port_s, &hints, &res)) != 0) { +#ifdef CONFIG_OS_WIN32 + if (1) { +#else if (fd != EAI_SYSTEM) { +#endif /* We need to set errno ourself */ switch (fd) { case EAI_SOCKTYPE: diff --git a/src/protocol/ftp/ftp.c b/src/protocol/ftp/ftp.c index fec4ccfd..44b4cd02 100644 --- a/src/protocol/ftp/ftp.c +++ b/src/protocol/ftp/ftp.c @@ -29,6 +29,10 @@ #include #endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif + #include "elinks.h" #include "cache/cache.h" diff --git a/src/viewer/text/form.cpp b/src/viewer/text/form.cpp index 25840ae4..0e602e38 100644 --- a/src/viewer/text/form.cpp +++ b/src/viewer/text/form.cpp @@ -136,7 +136,7 @@ void selected_item(struct terminal *term, void *item_, void *ses_) { struct session *ses = (struct session *)ses_; - int item = (long) item_; + int item = (int)(size_t)item_; struct document_view *doc_view; struct link *link; struct form_state *fs;