From 161526d03826653febfab86b646c520b8d12b169 Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Thu, 29 Apr 2010 04:27:22 +0000 Subject: [PATCH] Replaced old tuxpaint cvs patch with a new one. Previous cvs patch has been applied upstream. This one fixes several variable initialization issues, but isn't yet building, fails to link. --- media-gfx/tuxpaint/tuxpaint-cvs.patch | 787 ++++++-------------------- 1 file changed, 179 insertions(+), 608 deletions(-) diff --git a/media-gfx/tuxpaint/tuxpaint-cvs.patch b/media-gfx/tuxpaint/tuxpaint-cvs.patch index 7e9e9d5c3..23a6a1dd1 100644 --- a/media-gfx/tuxpaint/tuxpaint-cvs.patch +++ b/media-gfx/tuxpaint/tuxpaint-cvs.patch @@ -1,515 +1,190 @@ -diff -urN tuxpaint/Makefile tuxpaint-work/Makefile ---- tuxpaint/Makefile 2009-11-07 16:02:55.000000000 -0800 -+++ tuxpaint-work/Makefile 2009-11-08 20:47:12.000000000 -0800 -@@ -46,7 +46,7 @@ - echo "$(1)"; \ - fi ;) +Index: src/i18n.c +=================================================================== +RCS file: /cvsroot/tuxpaint/tuxpaint/src/i18n.c,v +retrieving revision 1.76 +diff -u -r1.76 i18n.c +--- src/i18n.c 3 Apr 2010 18:33:19 -0000 1.76 ++++ src/i18n.c 29 Apr 2010 04:17:54 -0000 +@@ -597,21 +597,24 @@ --beos_RSRC_CMD:=xres -o tuxpaint src/tuxpaint.rsrc -+beos_RSRC_CMD:=rc src/tuxpaint.rdef && xres -o tuxpaint src/tuxpaint.rsrc - RSRC_CMD:=$($(OS)_RSRC_CMD) - - beos_MIMESET_CMD:=mimeset -f tuxpaint -@@ -79,7 +79,7 @@ - - windows_ARCH_LINKS:=-lintl $(PNG) -lwinspool -lshlwapi $(FRIBIDI_LIB) - osx_ARCH_LINKS:=$(PAPER_LIB) $(FRIBIDI_LIB) --beos_ARCH_LINKS:="-lintl $(PNG) -lz -lbe -liconv $(FRIBIDI_LIB)" -+beos_ARCH_LINKS:="-lintl $(PNG) -lz -lbe -lnetwork -liconv $(FRIBIDI_LIB)" - linux_ARCH_LINKS:=$(PAPER_LIB) $(FRIBIDI_LIB) - ARCH_LINKS:=$($(OS)_ARCH_LINKS) - -@@ -92,11 +92,10 @@ - # Where things will go when ultimately installed: - windows_PREFIX:=/usr/local - osx_PREFIX:=/usr/local --beos_PREFIX:=/boot/apps/Games/TuxPaint -+beos_PREFIX:=$(shell finddir B_APPS_DIRECTORY)/TuxPaint - linux_PREFIX:=/usr/local - PREFIX:=$($(OS)_PREFIX) - -- - # Root directory to place files when creating packages. - # PKG_ROOT is the old name for this, and should be undefined. - # "TuxPaint-1" is the OLPC XO name. Installing to ./ is bad! -@@ -139,6 +138,10 @@ - CONFDIR:=$(DESTDIR)$(PREFIX)/etc/tuxpaint - endif - -+ifeq ($(SYSNAME),Haiku) -+ CONFDIR:=$(shell finddir B_USER_SETTINGS_DIRECTORY)/TuxPaint -+endif + static void set_langint_from_locale_string(const char *restrict loc) + { ++ char *baseloc, *dot; ++ size_t len_baseloc; ++ int i, found; + - # Icons and launchers: - ICON_PREFIX:=$(DESTDIR)$(PREFIX)/share/pixmaps - X11_ICON_PREFIX:=$(DESTDIR)$(PREFIX)/X11R6/include/X11/pixmaps -@@ -396,7 +399,7 @@ - - windows_ARCH_INSTALL:= - osx_ARCH_INSTALL:= --beos_ARCH_INSTALL:= -+beos_ARCH_INSTALL:=install-haiku - linux_ARCH_INSTALL:=install-gnome install-kde install-kde-icons - ARCH_INSTALL:=$($(OS)_ARCH_INSTALL) - -@@ -777,6 +779,13 @@ - strip -s $(BIN_PREFIX)/lib/pango/1.6.0/modules/*.dll; \ - fi - -+# Install symlink: -+.PHONY: install-haiku -+install-haiku: -+ @echo -+ @echo "...Installing symlink in apps/TuxPaint to tuxpaint executable file..." -+ @ln -sf $(DESTDIR)$(shell finddir B_APPS_DIRECTORY)/TuxPaint/bin/tuxpaint $(DESTDIR)$(shell finddir B_APPS_DIRECTORY)/TuxPaint/tuxpaint -+ - # Install the import script: - .PHONY: install-importscript - install-importscript: -diff -urN tuxpaint/magic/src/mosaic.c tuxpaint-work/magic/src/mosaic.c ---- tuxpaint/magic/src/mosaic.c 2009-07-02 15:36:00.000000000 -0700 -+++ tuxpaint-work/magic/src/mosaic.c 2009-11-08 20:33:33.000000000 -0800 -@@ -350,6 +350,7 @@ - void mosaic_switchin(magic_api * api, int which, int mode, SDL_Surface * canvas) - { - int y, x; -+ Uint32 amask; - - mosaic_blured = (Uint8 *) malloc(sizeof(Uint8) * (canvas->w * canvas->h)); - if (mosaic_blured == NULL) -@@ -358,7 +359,7 @@ - exit(1); - } - -- Uint32 amask = ~(canvas->format->Rmask | -+ amask = ~(canvas->format->Rmask | - canvas->format->Gmask | - canvas->format->Bmask); - -diff -urN tuxpaint/magic/src/mosaic_shaped.c tuxpaint-work/magic/src/mosaic_shaped.c ---- tuxpaint/magic/src/mosaic_shaped.c 2009-08-09 15:48:34.000000000 -0700 -+++ tuxpaint-work/magic/src/mosaic_shaped.c 2009-11-08 20:38:14.000000000 -0800 -@@ -190,7 +190,7 @@ - - // Do the effect for the full image - static void do_mosaic_shaped_full(void * ptr, SDL_Surface * canvas, SDL_Surface * last ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, SDL_Rect * update_rect ATTRIBUTE_UNUSED){ -- int i, j; -+ int i, j, size; - Uint32 mosaic_shaped_color; - magic_api * api = (magic_api *) ptr; - -@@ -217,7 +217,7 @@ - if (mosaic_shaped_average_count > 0) - { - reset_counter(canvas, mosaic_shaped_counted); -- int size = 0; -+ size = 0; - pixel_average = SDL_MapRGB(canvas->format, mosaic_shaped_average_r / mosaic_shaped_average_count, mosaic_shaped_average_g / mosaic_shaped_average_count, mosaic_shaped_average_b / mosaic_shaped_average_count); - scan_fill(api, canvas, canvas_shaped, i, j, 0, 1, size, pixel_average); - } -@@ -230,10 +230,11 @@ - static void mosaic_shaped_fill(void * ptr_to_api, int which ATTRIBUTE_UNUSED, SDL_Surface * canvas, - SDL_Surface * last ATTRIBUTE_UNUSED, int x, int y) - { -+ Uint32 mosaic_shaped_color; -+ int size; - magic_api * api = (magic_api *) ptr_to_api; - x = clamp(0, x, canvas->w - 1); - y = clamp(0,y,canvas->h - 1); -- Uint32 mosaic_shaped_color; - mosaic_shaped_color = SDL_MapRGBA(canvas->format, mosaic_shaped_r, mosaic_shaped_g, mosaic_shaped_b, 0); - mosaic_shaped_average_r = 0; - mosaic_shaped_average_g = 0; -@@ -244,7 +245,7 @@ - - if (mosaic_shaped_average_count > 0) - { -- int size = 0; -+ size = 0; - pixel_average = SDL_MapRGB(canvas->format, mosaic_shaped_average_r / mosaic_shaped_average_count, mosaic_shaped_average_g / mosaic_shaped_average_count, mosaic_shaped_average_b / mosaic_shaped_average_count); - reset_counter(canvas, mosaic_shaped_counted); - scan_fill(api, canvas, canvas_shaped, x, y, 0, 1, size, pixel_average); -@@ -367,6 +368,8 @@ - int i, j; - SDL_Rect rect; - SDL_Surface * surf_aux; -+ Uint32 amask; -+ char fname[1024]; - - mosaic_shaped_counted = (Uint8 *) malloc(sizeof(Uint8) * (canvas->w * canvas->h)); - if (mosaic_shaped_counted == NULL) -@@ -382,7 +385,7 @@ - exit(1); - } - -- Uint32 amask = ~(canvas->format->Rmask | -+ amask = ~(canvas->format->Rmask | - canvas->format->Gmask | - canvas->format->Bmask); - -@@ -401,7 +404,6 @@ - canvas->format->Rmask, - canvas->format->Gmask, - canvas->format->Bmask, amask); -- char fname[1024]; - snprintf(fname, sizeof(fname), "%simages/magic/%s", api->data_directory, mosaic_shaped_pattern_filenames[which]); - mosaic_shaped_pattern = IMG_Load(fname); - rect.w = mosaic_shaped_pattern->w; -diff -urN tuxpaint/magic/src/perspective.c tuxpaint-work/magic/src/perspective.c ---- tuxpaint/magic/src/perspective.c 2009-08-09 15:48:34.000000000 -0700 -+++ tuxpaint-work/magic/src/perspective.c 2009-11-08 20:39:44.000000000 -0800 -@@ -499,6 +499,7 @@ - - void perspective_switchin(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED, SDL_Surface * canvas) - { -+ Uint32 amask; - new_w = canvas->w; - new_h = canvas->h; - -@@ -512,7 +513,7 @@ - black = SDL_MapRGBA(canvas->format, 0, 0, 0, 0); - white = SDL_MapRGBA(canvas->format, 255, 255, 255, 0); - -- Uint32 amask = ~(canvas->format->Rmask | -+ amask = ~(canvas->format->Rmask | - canvas->format->Gmask | - canvas->format->Bmask); - -diff -urN tuxpaint/src/BeOS_print.h tuxpaint-work/src/BeOS_print.h ---- tuxpaint/src/BeOS_print.h 2009-06-03 13:46:07.000000000 -0700 -+++ tuxpaint-work/src/BeOS_print.h 2009-11-08 19:00:17.000000000 -0800 -@@ -22,7 +22,7 @@ - - /* Jan. 17, 2003 */ - /* $Id: BeOS_print.h,v 1.5 2009/06/03 20:46:07 wkendrick Exp $ */ -- -+ - #ifndef __BEOS_PRINT_H__ - #define __BEOS_PRINT_H__ - -@@ -32,12 +32,11 @@ - extern "C" - { - --#endif /* */ -- extern int SurfacePrint(SDL_Surface * surf); -- extern int IsPrinterAvailable(); -- -+#endif /* __cplusplus */ -+ extern int SurfacePrint(SDL_Surface * surf); -+ extern int IsPrinterAvailable(); - #ifdef __cplusplus - } --#endif /* */ -+#endif /* __cplusplus */ - --#endif /* */ -+#endif /* __BEOS_PRINT__ */ -diff -urN tuxpaint/src/fonts.c tuxpaint-work/src/fonts.c ---- tuxpaint/src/fonts.c 2009-06-06 11:22:00.000000000 -0700 -+++ tuxpaint-work/src/fonts.c 2009-11-08 14:23:29.000000000 -0800 -@@ -67,6 +67,11 @@ - #include "win32_print.h" - #endif - -+#ifdef __HAIKU__ -+#include -+#include -+#endif -+ - #ifdef __APPLE__ - #include "wrapperdata.h" - extern WrapperData macosx; -@@ -456,7 +461,9 @@ - close(sv[1]); + if (!loc) return; - } -+#ifndef __HAIKU__ - nice(42); // be nice, letting the main thread get the CPU -+#endif - sched_yield(); // try to let the parent run right now - prctl(PR_SET_PDEATHSIG, 9); // get killed if parent exits - font_socket_fd = sv[1]; -@@ -699,6 +706,14 @@ - loadfonts(screen, "/boot/home/config/font/ttffonts"); - loadfonts(screen, "/usr/share/fonts"); - loadfonts(screen, "/usr/X11R6/lib/X11/fonts"); -+#elif defined(__HAIKU__) -+ dev_t volume = dev_for_path("/boot"); -+ char buffer[B_PATH_NAME_LENGTH+B_FILE_NAME_LENGTH]; -+ status_t result; -+ result = find_directory(B_SYSTEM_FONTS_DIRECTORY, volume, false, buffer, sizeof(buffer)); -+ loadfonts(screen, buffer); -+ result = find_directory(B_COMMON_FONTS_DIRECTORY, volume, false, buffer, sizeof(buffer)); -+ loadfonts(screen, buffer); - #elif defined(__APPLE__) - loadfonts(screen, "/System/Library/Fonts"); - loadfonts(screen, "/Library/Fonts"); -diff -urN tuxpaint/src/tuxpaint.c tuxpaint-work/src/tuxpaint.c ---- tuxpaint/src/tuxpaint.c 2009-11-08 10:38:25.000000000 -0800 -+++ tuxpaint-work/src/tuxpaint.c 2009-11-08 20:40:35.000000000 -0800 -@@ -218,8 +218,11 @@ - #include +- char *baseloc = strdup(loc); +- +- char *dot = strchr(baseloc, '.'); ++ baseloc = strdup(loc); ++ dot = strchr(baseloc, '.'); ++ + if(dot) + *dot = '\0'; --#ifdef __BEOS__ -+#if defined __BEOS__ || defined __HAIKU__ - #include -+#include -+#define FALSE false -+#define TRUE true - #else - #include - #include -@@ -251,7 +254,7 @@ - #include - #include +- size_t len_baseloc = strlen(baseloc); ++ len_baseloc = strlen(baseloc); --#ifdef __BEOS__ -+#if defined __BEOS__ //|| defined __HAIKU__ + /* Which, if any, of the locales is it? */ - /* BeOS */ +- int found = 0; +- int i; ++ found = 0; -@@ -1044,7 +1047,7 @@ - magic_api *magic_api_struct; /* Pointer to our internal functions; passed to shared object's functions when we call them */ - - --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - #include - #if !defined(PAPER_H) - #error "---------------------------------------------------" -@@ -1869,6 +1872,8 @@ - int *thing_scroll; + for (i = 0; i < NUM_LANGS && found == 0; i++) + { +Index: src/tuxpaint.c +=================================================================== +RCS file: /cvsroot/tuxpaint/tuxpaint/src/tuxpaint.c,v +retrieving revision 1.761 +diff -u -r1.761 tuxpaint.c +--- src/tuxpaint.c 27 Apr 2010 22:04:44 -0000 1.761 ++++ src/tuxpaint.c 29 Apr 2010 04:18:00 -0000 +@@ -1945,7 +1945,7 @@ int cur_thing, do_draw, max; int ignoring_motion; -+ int j; -+ unsigned int i; + int j; +- unsigned int i; ++ unsigned int i = 0; SDL_TimerID scrolltimer = NULL; SDL_Event event; SDLKey key; -@@ -3737,8 +3742,9 @@ - { +@@ -2388,7 +2389,7 @@ + cur_label = LABEL_LABEL; + cur_thing=label_node_to_edit->save_cur_font; + do_setcursor(cursor_insertion); +- unsigned int i = 0; ++ i = 0; + label_node_to_edit->is_enabled = FALSE; + derender_node(&label_node_to_edit); + +@@ -3855,7 +3856,7 @@ + cur_label = LABEL_LABEL; cur_thing=label_node_to_edit->save_cur_font; do_setcursor(cursor_insertion); -- cur_select = SELECT_ON; - unsigned int i = 0; -+ cur_select = SELECT_ON; -+ -+ i = 0; ++ i = 0; + label_node_to_edit->is_enabled = FALSE; + derender_node(&label_node_to_edit); - texttool_len = select_texttool_len; - while(i < texttool_len) -@@ -3753,8 +3759,7 @@ - cur_font = select_cur_font; - text_state = select_text_state; - text_size = select_text_size; -- -- int j; -+ // int j; - for (j = 0; j < num_font_families; j++) - { - if (user_font_families[j] -@@ -5443,6 +5448,8 @@ - printf(" Built for Windows (WIN32)\n"); - #elif __BEOS__ - printf(" Built for BeOS (__BEOS__)\n"); -+#elif __HAIKU__ -+ printf(" Built for Haiku (__HAIKU__)\n"); - #elif NOKIA_770 - printf(" Built for Maemo (NOKIA_770)\n"); - #elif OLPC_XO -@@ -5562,7 +5569,7 @@ - #endif - " %s [--printdelay=SECONDS]\n" - " %s [--altprintmod | --altprintalways | --altprintnever]\n" --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - " %s [--papersize PAPERSIZE | --papersize help]\n" - #endif - " %s [--lang LANGUAGE | --locale LOCALE | --lang help]\n" -@@ -5581,7 +5588,7 @@ - blank, - #endif - blank, blank, --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - blank, - #endif - blank, blank, blank, blank, blank); -@@ -8967,7 +8974,7 @@ +@@ -9175,7 +9176,7 @@ disallow_print = 1; #endif --#ifdef __BEOS__ -+#if defined __BEOS__ || __HAIKU__ +-#if defined __BEOS__ || __HAIKU__ ++#if defined __BEOS__ || defined __HAIKU__ if (!IsPrinterAvailable()) disallow_print = disable_print = 1; #endif -@@ -11275,7 +11282,7 @@ - free(lock_fname); - } +@@ -12131,8 +12132,6 @@ + Bytef *compressed_data; --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - if (papersize != NULL) - free(papersize); - #endif -@@ -14566,7 +14573,7 @@ + char *ldata; +- FILE *lfi; +- lfi = open_memstream(&ldata, &size_of_uncompressed_label_data); + int list_ctr = 0; + Uint32 pix; + int alpha_size; +@@ -12140,6 +12139,9 @@ + struct label_node *current_node; + char *char_stream; + size_t dat_size; ++ FILE *lfi; ++ lfi = open_memstream(&ldata, &size_of_uncompressed_label_data); ++ + + /* Starter foreground */ + if (img_starter) +@@ -15090,7 +15092,7 @@ SDL_BlitSurface(canvas, NULL, save_canvas, NULL); SDL_BlitSurface(label, NULL, save_canvas, NULL); -#if !defined(WIN32) && !defined(__BEOS__) && !defined(__APPLE__) +#if !defined(WIN32) && !defined(__BEOS__) && !defined(__APPLE__) && !defined(__HAIKU__) - char *pcmd; + const char *pcmd; FILE *pi; -@@ -14618,8 +14625,8 @@ - if (error) - fprintf(stderr, "%s\n", error); - } --#elif defined(__BEOS__) -- /* BeOS */ -+#elif defined(__BEOS__) || defined(__HAIKU__) -+ /* BeOS and Haiku*/ - - SurfacePrint(save_canvas); - #elif defined(__APPLE__) -@@ -18362,7 +18369,7 @@ - SDL_Rect dest, src; - wchar_t *str; - wchar_t tmp_str[256]; -- int w,h; -+ int j,w,h; - unsigned i; - printf("simply_render_node\n"); - -@@ -18390,7 +18397,6 @@ - text_state = node->save_text_state; - text_size = node->save_text_size; - -- int j; - for (j = 0; j < num_font_families; j++) - { - if (user_font_families[j] -@@ -18559,7 +18565,11 @@ - int old_pos; +@@ -19150,6 +19152,8 @@ int new_pos; - int x, y, pix, pix_size; -- -+ char * font_type = NULL; -+ char * ttffont; + int x, y, pix_size; + Uint8 a; ++ + size_t max_text; -+ int i; -+ Uint32 c; /* Clear label surface */ -@@ -18636,17 +18646,15 @@ +@@ -19231,7 +19235,7 @@ fscanf(lfi, "%d\n", &new_node->save_cur_font); new_node->save_cur_font = 0; -- char * font_type = NULL; -- char * ttffont; -+ font_type = NULL; - - size_t max_text = 64; + max_text = 64; - getline(&font_type, &max_text, lfi); + new_node->save_font_type = NULL; + + getline(&new_node->save_font_type, &max_text, lfi); +@@ -19711,8 +19715,8 @@ + void load_embedded_data(char *fname, SDL_Surface * org_surf) + { +- printf("Loading embedded data...\n"); +- printf("%s\n", fname); ++ png_unknown_chunkp unknowns; ++ + FILE *fi, *fp; + char *control, *softwr; + Bytef *unc_buff; +@@ -19721,6 +19725,7 @@ + int u; + int have_background, have_foreground, have_label_delta, have_label_data; + int ldelta, ldata, fgnd, bgnd; ++ int num_unknowns = 0; + SDL_Surface *aux_surf; -- int i; - for( i = 0; i < num_font_families; i++ ) - { -- Uint32 c; -+ - /* FIXME: 2009/09/13 TTF_FontFaceFamilyName() appends random "\n" at the end - of the returned string. Should investigate why, and when corrected, - remove the code that deals whith the ending "\n"s in ttffont*/ -@@ -18750,7 +18758,7 @@ + png_structp png_ptr; +@@ -19729,7 +19734,9 @@ + png_uint_32 ww, hh; + png_uint_32 i, j; + +- ++ printf("Loading embedded data...\n"); ++ printf("%s\n", fname); ++ + fp = fopen(fname, "rb"); + if (!fp) + { +@@ -19770,9 +19777,7 @@ + ww = png_get_image_width(png_ptr, info_ptr); + hh = png_get_image_height(png_ptr, info_ptr); + +- png_unknown_chunkp unknowns; +- +- int num_unknowns = (int) png_get_unknown_chunks(png_ptr, info_ptr, &unknowns); ++ num_unknowns = (int) png_get_unknown_chunks(png_ptr, info_ptr, &unknowns); + + printf("num_unknowns %i\n", num_unknowns); + if (num_unknowns) +@@ -20052,7 +20057,7 @@ ///////////////////////////////////////////////////////////////////////////// -#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) +#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - static void show_available_papersizes(FILE * fi, const char * prg) + static void show_available_papersizes(int exitcode) { - const struct paper * ppr; -@@ -18786,6 +18794,8 @@ + FILE *fi = exitcode ? stderr : stdout; +@@ -20128,7 +20133,7 @@ - static void parse_one_option(const char *str, const char *arg) + static void parse_argv_options(struct cfginfo *restrict tmpcfg, char *argv[]) { -+ int boolval; -+ - //printf("\nold: <%s> <%s>\n",str,arg); +- char *str; ++ char *str, *arg; - // canonicalize the option -@@ -18812,7 +18822,7 @@ - } - } - -- int boolval = 1; -+ boolval = 1; - if(arg && !strcmp(arg,"no")) - boolval = 0; - -@@ -19076,7 +19086,7 @@ - use_print_config = boolval; - } - --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - else if (!strcmp(str, "printcommand")) - { - // FIXME: This would need to be done one argument (space-delim'd) at a time */ -@@ -19095,7 +19105,7 @@ - } - #endif - --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - else if (!strcmp(str, "altprintcommand")) - { - // FIXME: This would need to be done one argument (space-delim'd) at a time -@@ -19168,7 +19178,7 @@ - } - - --#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) -+#if !defined(WIN32) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__HAIKU__) - else if (!strcmp(str, "papersize")) - { - if(!strcmp(arg,"help")) -@@ -19295,18 +19305,18 @@ - - static void parse_file_options(char *filename) - { -+ char str[256]; -+ char* arg; - FILE *fi = fopen(filename, "r"); - if(!fi) - return; - -- char str[256]; -- - while(fgets(str, sizeof(str), fi)) - { - if(!isalnum(*str)) - continue; - strip_trailing_whitespace(str); -- char *arg = strchr(str,'='); -+ arg = strchr(str,'='); - if(arg) - *arg++ = '\0'; - parse_one_option(str,arg); -@@ -19318,13 +19328,14 @@ - { - char *progname = argv[0]; - char *str; -+ char *arg; - - while(( str = *++argv )) - { + /* FIXME: Bring back support for single-dash options: + -c (--copying) +@@ -20157,7 +20162,7 @@ if(str[0]=='-' && str[1]=='-' && str[2]) { str += 2; @@ -518,157 +193,53 @@ diff -urN tuxpaint/src/tuxpaint.c tuxpaint-work/src/tuxpaint.c if(arg) *arg++ = '\0'; else if(argv[1] && argv[1][0]!='-') -@@ -19467,7 +19478,7 @@ - colorfile[0] = '\0'; +@@ -20203,21 +20208,20 @@ + static void setup_config(char *argv[]) + { + char str[128]; +- ++ const char *home = getenv("HOME"); ++ + struct cfginfo tmpcfg_usr; +- memset(&tmpcfg_usr, '\0', sizeof tmpcfg_usr); +- + struct cfginfo tmpcfg_cmd; +- memset(&tmpcfg_cmd, '\0', sizeof tmpcfg_cmd); +- + struct cfginfo tmpcfg; ++ ++ memset(&tmpcfg_usr, '\0', sizeof tmpcfg_usr); ++ memset(&tmpcfg_cmd, '\0', sizeof tmpcfg_cmd); + memset(&tmpcfg, '\0', sizeof tmpcfg); +- ++ + parse_argv_options(&tmpcfg_cmd, argv); + /* Set default options: */ --#ifdef __BEOS__ -+#if defined __BEOS__ || defined __HAIKU__ - /* Fancy cursors on BeOS are buggy in SDL */ +- const char *home = getenv("HOME"); + if(!home) + { + /* Woah, don't know where $HOME is? */ +@@ -20592,17 +20596,16 @@ - no_fancy_cursors = 1; -@@ -19479,7 +19490,7 @@ + static void do_lock_file(void) + { ++ char *lock_fname; ++ time_t time_lock, time_now; ++ char *homedirdir; ++ + FILE *fi; + /* Test for lockfile, if we're using one: */ - savedir = GetDefaultSaveDir("TuxPaint"); - datadir = GetDefaultSaveDir("TuxPaint"); --#elif __BEOS__ -+#elif defined__BEOS__ || __HAIKU__ - /* BeOS */ + if (!ok_to_use_lockfile) + return; - savedir = strdup("./userdata"); -@@ -19546,7 +19557,7 @@ - #if defined(WIN32) - /* Default local config file in users savedir directory on Windows */ - snprintf(str, sizeof(str), "%s/tuxpaint.cfg", savedir); /* FIXME */ --#elif defined(__BEOS__) -+#elif defined(__BEOS__) || defined(__HAIKU__) - /* BeOS: Use a "tuxpaint.cfg" file: */ +- char *lock_fname; +- time_t time_lock, time_now; +- char *homedirdir; +- +- + /* Get the current time: */ - strcpy(str, "tuxpaint.cfg"); -diff -urN tuxpaint/src/tuxpaint.rdef tuxpaint-work/src/tuxpaint.rdef ---- tuxpaint/src/tuxpaint.rdef 1969-12-31 16:00:00.000000000 -0800 -+++ tuxpaint-work/src/tuxpaint.rdef 2009-11-08 14:23:29.000000000 -0800 -@@ -0,0 +1,123 @@ -+ -+resource large_icon array { -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000700000400000000FFFFFFFFFFFFFFFF" -+ $"FF000000FFFF00FFFFFFFFFFFFFF00003F10133F1A000000FFFFFFFFFFFFFFFF" -+ $"0000000300000000FFFFFFFFFFFF001C1C1C3F3F3F05000000FFFFFFFFFFFFFF" -+ $"0000000000000000FFFFFFFFFFFF0010123F16183F06000000FFFFFFFFFFFFFF" -+ $"0000000000000000FFFFFFFF0000071D3F3F0A141D00000000FFFFFFFFFFFFFF" -+ $"000000000000000000FFFF000085F9BD85831E3F0B00000000FFFFFFFFFFFFFF" -+ $"00000000000000000000FF00BD85F9F9F9F9BD090000000000FFFFFFFFFFFFFF" -+ $"0000000000000000000000AB8503F9F9F9F9F9B10000000000FFFFFFFFFFFFFF" -+ $"FF00000100000000000000AB85ABF9F9F9F9F9AB0000000000FFFFFFFFFFFFFF" -+ $"FFFFFF00000000000000000285F9F9F9F9F9F9B10000000000FFFFFFFFFFFFFF" -+ $"FFFFFFFFFF0000000000000002ABBDF9F9F985010000000000FFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFF00000000000000000004D7D70000000000000000FFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFF0000000000000004030000000000000000000000FFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFF000000031B3F3F1A0600000000000000000000FFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFF0000000E3F3F3F3F180000080200000000000000FFFFFF" -+ $"FFFFFFFFFFFFFFFF00000005183F3F1E59DA0600070C0000000000000000FFFF" -+ $"FFFFFFFFFFFFFFFF0000103F3F3FDABBBBC48A0700110500000000000000FFFF" -+ $"FFFFFFFFFFFFFF0000033F3F3F3FBABBE3CA8A8485AB1300000000000000FFFF" -+ $"FFFFFFFFFFFFFF0000083F3F3F59E9A8A90F89D1AB841300000000000010FFFF" -+ $"FFFFFFFFFFFFFF0000083F3F3F1D1C3F3F3F3F0101130200000000D78900FFFF" -+ $"FFFFFFFFFFFFFF0000033F3F3F3F3F3F3F3F3F0102060000000007628300FFFF" -+ $"FFFFFFFFFFFFFF0000001A3F3F3F3F3F3F3F3F01000000031004000000FFFFFF" -+ $"FFFFFFFFFFFFFFFF00000B3F3F3F3F3F3F3F3F0000000F0E030000FFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFF00000000000000000000000000000000000000FFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+}; -+ -+resource mini_icon array { -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFF000000FFFFFFFFFF" -+ $"0000FFFFFFFFFF00103F0000FFFFFFFF" -+ $"00000000FFFFFF103F180600FFFFFFFF" -+ $"00000000FF0085BD833F0000FFFFFFFF" -+ $"0000000000AB03F9F9B10000FFFFFFFF" -+ $"FF0000000002F9F9F9B10000FFFFFFFF" -+ $"FFFFFF0000000004D700000000FFFFFF" -+ $"FFFFFFFF00001B3F060000000000FFFF" -+ $"FFFFFFFF00053F1EDA000C00000000FF" -+ $"FFFFFF00033F3FBBCA84AB00000000FF" -+ $"FFFFFF00083F1D3F3F01130000D700FF" -+ $"FFFFFF00003F3F3F3F0100030400FFFF" -+ $"FFFFFFFF000000000000000000FFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+ $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -+}; -+ -+ -+resource vector_icon array { -+ $"6E6369660602001602B8B10BBA4D843A4D84B8B10B4A0E9346F9C10000FF2105" -+ $"FF02000602B796BAB8831C38831CB796BA4A8259494B3900FFBC00FFFFDD7D02" -+ $"01060239670F00000000000039670F4A302B4B07CD00EB427CD9701A36020006" -+ $"03B1F29A361F94B61F94B1F29A4A80FD4B204A00E6B871919D7D44FF49391002" -+ $"00060331EAABB5ED5B35ED5B31EAAB4BFBBC4B7E58007C5C2078D5A72CFFFECA" -+ $"310D021DCA35CC7FCA35CC7FCA63CB8CCA97C97ECA53CA5CCA97C97ECB3EC8E4" -+ $"CAEEC957CB3EC8E4CB3EC8E4CB3EC8E4CBCDC80ACC5AC5C6CCA4C727CC25C4C8" -+ $"CA7EC2F7CB27C3B3CA35C2A6C959C1C6C9C3C22FC8FAC166C84DC07CC85FC0E3" -+ $"C83EC027C865BF4BC85CBFAB56BE0EC865BB94C887BCCBC81CB8F0C4DFB619C7" -+ $"4FB687C4DFB619C4DFB60CC4DFB60CC4DFB60CC41BB60CC41BB60CC151B690BF" -+ $"D1BBACC023B8B0BE37BC0ABD1ABEDDBD25BCF0BD1EBF05BCE9BEDDBCE3BED9BC" -+ $"ACBEB4BC4BBE4BBC81BE76BB83BDACB9F5BBD1BA44BCC8B9C1BB2DB8DCB99FB9" -+ $"B8B986B872B9ACB87BBA7BB877BA2EB87CBAAFB862BA6FB867BA7BB7C331B59E" -+ $"B9ACB682B971B4D9B9DEB3B6BB7BB421BAD0B363BC0220BD26B326BC9B20BD26" -+ $"20BDB920BDB9B30FBE60B49EBE4BB3F8BE86B75FBFE5BBF5C403B9DAC1C4BAF2" -+ $"C548BA0DC91CBA0AC6DBBA0FCA8ABB3ECC7FBA9FCB8DBB3ECC7F020DBD7CCC7F" -+ $"BD7CCC7FBCD5CB9ABC01C835BBF0C9E5BC09C779BCB8C61CBC3CC698BD24C5B0" -+ $"BE4BC540BDD9C5B7BE64C456BF27C34C3DC3A0C029C2BDC264C3BAC1B4C311C2" -+ $"D8C428C326C53EC2FFC4B5C326C53EC326C53EC326C53EC33DC58CC377C612C3" -+ $"5AC5D0C377C612C3C4C6D2C3C4C6D2C3E2C72CC3F7C810C3F7C790C3E4C998C3" -+ $"95CC7FC420CB6FC395CC7FBD7CCC7FBD7CCC7FBD7CCC7F020DC371BD32C3D0BD" -+ $"8DC371BD32C374BD31C374BD31C319BD08C26FBCA8C2C8BCD1C26FBCA8C270BC" -+ $"ACC270BCACC22EBC9EC1B9BC6FC1F5BC85C1B9BC6FC1BABC6CC1BABC6CC15DBC" -+ $"5FC0ADBC32C107BC48C0ADBC32C0ADBC32C0ADBC32BE5BBBD3BDE9BFF6BCCBBE" -+ $"20BE51C0A1C03FC13FBF42C0EDC0F4C17BC240C1A1C1B1C1A2C2A6C1A0C371C1" -+ $"70C339C18CC418C11CC471BEB9C49BBFC7C456BE10020FC5C6B9C4C5D4BAF5C5" -+ $"BDB8FCC458B893C54BB86FC381B8B3C2DEBA32C348B98BC2EBB8FEC195B893C2" -+ $"61B85AC105B8BBC04BBAB8C064B9D7C03ABB56C0ADBC0EC046BBD8C0ADBC0EC0" -+ $"ACBC11C0ACBC11C107BC28C1BABC4CC15EBC3FC1BABC4CC1B9BC4BC1B9BC4BC2" -+ $"06BC5AC24CBC26C218BC2FC260BC46C27DBC94C268BC73C27DBC94C279BC95C2" -+ $"79BC95C2D5BCBFC37EBD1EC32639C37EBD1EC37DBD1AC37DBD1AC3D1BD35C495" -+ $"BD1AC442BD41C547BCC60202C1A1BA32C0B6B9DAC200BA8C44BB4AC1C8BB45C0" -+ $"9DBB530202C3D2BADDC34DBAF4C497BABAC3A1BC3EC46BBC65C30ABC210202BF" -+ $"64BDD1BE7CBD77BFD1BE54BEDDBF94BF76BFA0BE21BF860002C6AFCB98C6AFCB" -+ $"98C7B3CBA6C966CA7BC8DECB03C966CA7B0005C5B3C96AC5B3C96AC5BEC939C5" -+ $"E0C8D3C5C1C8FDC60AC89BC682C844C650C875C6E4C7E4C6CBC6DEC70BC75FC6" -+ $"62C60BC57EC482C546C59BC57EC4820608FBBFC320C6B3C305C739C33AC62DC3" -+ $"53C60AC1FDC578C2C3C578C137C578BFCCC6E3C05BC5E5BF3CC7E0BFAAC894BF" -+ $"63C89DC01EC885C124C7F5C0EAC7F5C15EC7F5C1F7C81DC183C81DC26BC81DC3" -+ $"00C7E60606AE0BC353C60AC320C6B3C33AC62DC305C739C300C7E6C447C814C4" -+ $"7AC735C45FC79DC494C6CDC4BBC6870607EF3EC6B9C760C6B9C7A5C6B9C74CC6" -+ $"B2C725C6B7C739C6B2C725C4BBC687C47AC735C494C6CDC45FC79DC447C814C5" -+ $"FBC874C5FBC87450C854C660C821C646C83BC699C7E90607FB3FCC68C96ACC46" -+ $"C9D0CC8FC8F7CBF0C8CBCB6BC8A1CB6BC8A1CB5CC8B7CB3EC8E4CB4CC8CECB3E" -+ $"C8E4CB3EC8E4CB3EC8E4CAFEC941CAA0C979CAB9C96CCAA0C979CBCFC9BCCBCF" -+ $"C9BCCBCFC9BC0D0A000100000A010101000A020102000A010103000A00010400" -+ $"0A000105000A000106000A0101071001178122040A0101081001178122040A03" -+ $"0109000A04010A000A05010B000A05010C00" -+}; -+ -+ -+resource app_signature "application/x-vnd.newbreedsoftware-tuxpaint"; -+ -+resource app_version { -+ major = 0, -+ middle = 150994944, -+ minor = 234881024, -+ -+ variety = B_APPV_DEVELOPMENT, -+ internal = 0, -+ -+ short_info = "Drawing program", -+ long_info = "A simple drawing program for children." -+}; -+ -+resource app_flags B_SINGLE_LAUNCH; + time_now = time(NULL);