Files
haikuports/app-text/libnumbertext/patches/libnumbertext-1.0.3.patchset
2018-08-03 20:46:53 +02:00

53 lines
1.7 KiB
Plaintext

From 84705e6d45361b1b1f61db4a4e7023f942b0ac0f Mon Sep 17 00:00:00 2001
From: Kacper Kasper <kacperkasper@gmail.com>
Date: Fri, 3 Aug 2018 20:05:18 +0200
Subject: Haiku support
diff --git a/src/Numbertext.cxx b/src/Numbertext.cxx
index 3527797..fd6a4e9 100644
--- a/src/Numbertext.cxx
+++ b/src/Numbertext.cxx
@@ -24,7 +24,7 @@ bool readfile(const std::string& filename, std::wstring& result)
std::wifstream wif(filename);
if (wif.fail())
return false;
-#ifdef _MSC_VER
+#if defined _MSC_VER || defined __HAIKU__
wif.imbue(std::locale(std::locale(), new std::codecvt_utf8<wchar_t>));
#else
wif.imbue(std::locale("en_US.UTF-8"));
diff --git a/src/spellout.cxx b/src/spellout.cxx
index bcdfd83..d20bb91 100644
--- a/src/spellout.cxx
+++ b/src/spellout.cxx
@@ -1,6 +1,10 @@
#include "Numbertext.hxx"
#include "numbertext-version.h"
#include <cstring>
+#ifdef __HAIKU__
+#include <fs_info.h>
+#include <FindDirectory.h>
+#endif
#ifdef HAVE_BOOST_REGEX
using namespace boost;
@@ -40,6 +44,14 @@ int main(int argc, char* argv[])
paths.emplace_back("");
paths.emplace_back(DEFPATH);
paths.emplace_back(DEFPATH2);
+#ifdef __HAIKU__
+ dev_t volume = dev_for_path("/boot");
+ char buffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH];
+ find_directory(B_SYSTEM_DATA_DIRECTORY, volume, false, buffer, sizeof(buffer));
+ paths.emplace_back(std::string(buffer) + "/libnumbertext/");
+ find_directory(B_USER_DATA_DIRECTORY, volume, false, buffer, sizeof(buffer));
+ paths.emplace_back(std::string(buffer) + "/libnumbertext/");
+#endif
if (getenv(PATH))
paths.insert(paths.begin() + 1, std::string(getenv(PATH)) + "/");
--
2.16.4