From cc4a2a34d7dba37443daece6c7d9e89987f41302 Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Mon, 29 Aug 2011 22:33:31 +0000 Subject: [PATCH] Removed workaround for open_memstream and fmemopen for Haiku as these have been fixed in Haiku. Make use of find_directory() for locating B_USER_DIRECTORY to save TuxPaint's user files. TODO: Get opening of files working again for Haiku. --- src/tuxpaint.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/tuxpaint.c b/src/tuxpaint.c index dcb861879..6ca2b3c78 100644 --- a/src/tuxpaint.c +++ b/src/tuxpaint.c @@ -233,6 +233,8 @@ char *strcasestr(const char *haystack, const char *needle) #ifdef __HAIKU__ #include +#include +#include #endif #if defined __BEOS__ || defined __HAIKU__ || defined __APPLE__ #include @@ -512,7 +514,7 @@ extern WrapperData macosx; //#define fmemopen_alternative */ /* Uncomment this to test the fmemopen alternative in systems were fmemopen exists */ -#if defined (__HAIKU__) || defined (WIN32) || defined (__APPLE__) // Haiku, MINGW/MSYS, and MacOSX need it, at least for now +#if defined (WIN32) || defined (__APPLE__) // MINGW/MSYS, and MacOSX need it, at least for now #define fmemopen_alternative #endif @@ -12978,10 +12980,6 @@ static void set_chunk_data(unsigned char **chunk_data, size_t * chunk_data_len, free(headers); } -#if defined(__HAIKU__) -#define open_memstream fdopen // Haiku doesn't use open_memstream -#endif - static void do_png_embed_data(png_structp png_ptr) { @@ -21305,8 +21303,15 @@ static void setup_config(char *argv[]) { #ifdef _WIN32 savedir = GetDefaultSaveDir("TuxPaint"); -#elif defined __BEOS__ || defined __HAIKU__ - savedir = strdup("./tuxpaint"); +#elif __BEOS__ + savedir = strdup("~/tuxpaint"); +#elif __HAIKU__ + /* Haiku: Make use of find_directory() */ + dev_t volume = dev_for_path("/boot"); + char buffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; + status_t result; + result = find_directory(B_USER_DIRECTORY, volume, false, buffer, sizeof(buffer)); + asprintf((char**)&savedir, "%s/%s", buffer, "TuxPaint"); #elif __APPLE__ savedir = strdup(macosx.preferencesPath); #else