summaryrefslogtreecommitdiff
path: root/beos
diff options
context:
space:
mode:
authorAdrien Destugues <pulkomandy@pulkomandy.tk>2014-06-20 13:23:22 +0200
committerFran├žois Revol <revol@free.fr>2014-06-20 15:31:23 +0200
commit80cc3266580e9fbd77f07b094f6248326cf2cee3 (patch)
tree293285be64721f8338f9e592930298f13fe9d061 /beos
parentd64fa80ba7798dafc580d531c36f42eb13a13074 (diff)
downloadnetsurf-80cc3266580e9fbd77f07b094f6248326cf2cee3.tar.gz
netsurf-80cc3266580e9fbd77f07b094f6248326cf2cee3.tar.bz2
beos: Use PathFinder to locate resource folder.
So it can work wherever NetSurf is installed... Note this uses a Haiku-specific API and definitely breaks BeOS build.
Diffstat (limited to 'beos')
-rw-r--r--beos/gui.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/beos/gui.cpp b/beos/gui.cpp
index d7f4ab01e..4f06b9f04 100644
--- a/beos/gui.cpp
+++ b/beos/gui.cpp
@@ -37,6 +37,7 @@
#include <FindDirectory.h>
#include <Mime.h>
#include <Path.h>
+#include <PathFinder.h>
#include <Roster.h>
#include <Screen.h>
#include <String.h>
@@ -79,9 +80,6 @@ extern "C" {
static void *myrealloc(void *ptr, size_t len, void *pw);
-/* Where to search for shared resources. Must have trailing / */
-#define RESPATH "/boot/apps/netsurf/res/"
-
//TODO: use resources
// enable using resources instead of files
#define USE_RESOURCES 1
@@ -297,7 +295,13 @@ static char *find_resource(char *buf, const char *filename, const char *def)
return buf;
}
- strcpy(t, RESPATH);
+
+ BPathFinder f((void*)find_resource);
+
+ BPath p;
+ f.FindPath(B_FIND_PATH_APPS_DIRECTORY, "netsurf/res/", p);
+ strcpy(t, p.Path());
+
strcat(t, filename);
realpath(t, buf);
if (access(buf, R_OK) == 0)
@@ -488,7 +492,10 @@ static bool nslog_stream_configure(FILE *fptr)
static BPath get_messages_path()
{
- BPath p("/boot/apps/netsurf/res");
+ BPathFinder f((void*)get_messages_path);
+
+ BPath p;
+ f.FindPath(B_FIND_PATH_APPS_DIRECTORY, "netsurf/res", p);
// TODO: use Haiku's BLocale stuff
BString lang(getenv("LC_MESSAGES"));
lang.Truncate(2);