142 lines
4.0 KiB
Plaintext
142 lines
4.0 KiB
Plaintext
From d67cdbebce674f27a6db45356d1c25ee9534825f Mon Sep 17 00:00:00 2001
|
|
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
|
Date: Fri, 1 Nov 2019 15:54:40 +1000
|
|
Subject: Fix for Haiku
|
|
|
|
|
|
diff --git a/neo/CMakeLists.txt b/neo/CMakeLists.txt
|
|
index 194f34d..ad4f50d 100644
|
|
--- a/neo/CMakeLists.txt
|
|
+++ b/neo/CMakeLists.txt
|
|
@@ -285,6 +285,12 @@ if(WIN32)
|
|
)
|
|
endif()
|
|
|
|
+if(HAIKU)
|
|
+ set(sys_libs ${sys_libs}
|
|
+ network
|
|
+ )
|
|
+endif()
|
|
+
|
|
# fallback for cmake versions without GNUInstallDirs
|
|
if(GNUINSTALLDIRS MATCHES "NOTFOUND")
|
|
set(CMAKE_INSTALL_BINDIR "bin"
|
|
diff --git a/neo/framework/minizip/ioapi.c b/neo/framework/minizip/ioapi.c
|
|
index f59b904..499e29a 100644
|
|
--- a/neo/framework/minizip/ioapi.c
|
|
+++ b/neo/framework/minizip/ioapi.c
|
|
@@ -17,7 +17,7 @@
|
|
#define _CRT_SECURE_NO_WARNINGS
|
|
#endif
|
|
|
|
-#if defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__OpenBSD__)
|
|
+#if defined(__APPLE__) || defined(IOAPI_NO_64) || defined(__OpenBSD__) || defined(__HAIKU__)
|
|
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
|
|
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
|
|
#define FTELLO_FUNC(stream) ftello(stream)
|
|
diff --git a/neo/idlib/Str.cpp b/neo/idlib/Str.cpp
|
|
index b37e1a9..db74996 100644
|
|
--- a/neo/idlib/Str.cpp
|
|
+++ b/neo/idlib/Str.cpp
|
|
@@ -224,7 +224,7 @@ int idStr::FindText( const char *str, const char *text, bool casesensitive, int
|
|
}
|
|
} else {
|
|
for ( j = 0; text[j]; j++ ) {
|
|
- if ( ::toupper( str[i+j] ) != ::toupper( text[j] ) ) {
|
|
+ if ( toupper( str[i+j] ) != toupper( text[j] ) ) {
|
|
break;
|
|
}
|
|
}
|
|
@@ -302,7 +302,7 @@ bool idStr::Filter( const char *filter, const char *name, bool casesensitive ) {
|
|
}
|
|
}
|
|
else {
|
|
- if ( ::toupper(*name) >= ::toupper(*filter) && ::toupper(*name) <= ::toupper(*(filter+2)) ) {
|
|
+ if ( toupper(*name) >= toupper(*filter) && toupper(*name) <= toupper(*(filter+2)) ) {
|
|
found = true;
|
|
}
|
|
}
|
|
@@ -315,7 +315,7 @@ bool idStr::Filter( const char *filter, const char *name, bool casesensitive ) {
|
|
}
|
|
}
|
|
else {
|
|
- if ( ::toupper(*filter) == ::toupper(*name) ) {
|
|
+ if ( toupper(*filter) == toupper(*name) ) {
|
|
found = true;
|
|
}
|
|
}
|
|
@@ -342,7 +342,7 @@ bool idStr::Filter( const char *filter, const char *name, bool casesensitive ) {
|
|
}
|
|
}
|
|
else {
|
|
- if ( ::toupper(*filter) != ::toupper(*name) ) {
|
|
+ if ( toupper(*filter) != toupper(*name) ) {
|
|
return false;
|
|
}
|
|
}
|
|
diff --git a/neo/sys/platform.h b/neo/sys/platform.h
|
|
index 2c4ce98..ef8e8a3 100644
|
|
--- a/neo/sys/platform.h
|
|
+++ b/neo/sys/platform.h
|
|
@@ -134,7 +134,7 @@ If you have questions concerning this license or the applicable additional terms
|
|
|
|
|
|
// Unix
|
|
-#ifdef __unix__
|
|
+#if defined(__unix__) || defined(__HAIKU__)
|
|
|
|
#define _alloca alloca
|
|
#define _alloca16( x ) ((void *)((((uintptr_t)alloca( (x)+15 )) + 15) & ~15))
|
|
diff --git a/neo/sys/posix/posix_net.cpp b/neo/sys/posix/posix_net.cpp
|
|
index db83fa9..ec240e9 100644
|
|
--- a/neo/sys/posix/posix_net.cpp
|
|
+++ b/neo/sys/posix/posix_net.cpp
|
|
@@ -273,6 +273,7 @@ NET_InitNetworking
|
|
*/
|
|
void Sys_InitNetworking(void)
|
|
{
|
|
+#ifndef __HAIKU__
|
|
unsigned int ip, mask;
|
|
struct ifaddrs *ifap, *ifp;
|
|
|
|
@@ -319,6 +320,7 @@ void Sys_InitNetworking(void)
|
|
break;
|
|
}
|
|
freeifaddrs(ifap);
|
|
+#endif
|
|
}
|
|
|
|
/*
|
|
--
|
|
2.23.0
|
|
|
|
|
|
From dbcdc3950ccc91134934009b18ff63dedf9fee68 Mon Sep 17 00:00:00 2001
|
|
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
|
Date: Sat, 2 Nov 2019 15:45:47 +1000
|
|
Subject: Add env for base dir
|
|
|
|
|
|
diff --git a/neo/sys/linux/main.cpp b/neo/sys/linux/main.cpp
|
|
index 5e08e2d..3efde5b 100644
|
|
--- a/neo/sys/linux/main.cpp
|
|
+++ b/neo/sys/linux/main.cpp
|
|
@@ -55,6 +55,14 @@ bool Sys_GetPath(sysPath_t type, idStr &path) {
|
|
|
|
switch(type) {
|
|
case PATH_BASE:
|
|
+#ifdef __HAIKU__
|
|
+ s = getenv("BASE_GAMEDIR");
|
|
+ if (s) {
|
|
+ idStr::snPrintf(buf, sizeof(buf), "%s/", s);
|
|
+ path = buf;
|
|
+ return true;
|
|
+ }
|
|
+#endif
|
|
if (stat(BUILD_DATADIR, &st) != -1 && S_ISDIR(st.st_mode)) {
|
|
path = BUILD_DATADIR;
|
|
return true;
|
|
--
|
|
2.23.0
|
|
|