From b10228c66fa3ce2f439b3a90f4ad5529f33d94d2 Mon Sep 17 00:00:00 2001 From: scottmc Date: Mon, 29 Aug 2011 22:33:31 +0000 Subject: 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. --- diff --git a/src/tuxpaint.c b/src/tuxpaint.c index dcb8618..6ca2b3c 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 -- cgit v0.9.1