diff --git a/docs/TODO.txt b/docs/TODO.txt index 4e31c8416..75c69eaed 100644 --- a/docs/TODO.txt +++ b/docs/TODO.txt @@ -6,24 +6,29 @@ Copyright (c) 2003 by Bill Kendrick bill@newbreedsoftware.com http://www.newbreedsoftware.com/tuxpaint/ -September 28, 2003 +December 18, 2003 LOW-PRIORITY DOCUMENTATION CHANGES: ----------------------------------- * Windows compilation in INSTALL.txt + * Mac OS X compilation in INSTALL.txt + * Mention CONFDIR in INSTALL.txt +HIGH-PRIORITY IMPLEMENTATION CHANGES: +------------------------------------- + * Provide a more Mac OS X style for handling configuration + (don't use "~/.tuxpaintrc"; see the FIXME in src/tuxpaint.c) + + * Get Mac OS X to look for stamps, brushes, etc. in + /Library/Preferences/tuxpaint first, then ~/Library/Preferences/tuxpaint + + LOW-PRIORITY IMPLEMENTATION CHANGES: ------------------------------------ - * Allow disabling of per-stamp flip/mirror disabling. - (e.g., allow TOTAL artistic control from the user; right now, - some stamps will insist on not being mirrored/flipped; e.g., number - stamps) - (Ben Armstrong's suggestion.) - * Fix and use scanline fill for filled shapes. * Fix "update_shape()" function and use it to replace SDL_Flip()'s @@ -46,9 +51,6 @@ LOW-PRIORITY IMPLEMENTATION CHANGES: HIGH-PRIORITY BUGS: ------------------- - * Figure out why fonts don't appear on PPC. - (Thomas Klausner reported: 2002.09.30) - * Deal with clash between Open dialog arrow key controls and mouse arrow key (--keyboard) controls. @@ -66,6 +68,7 @@ PLATFORM-SPECIFIC BUGS: (Is this "META" modifier in SDL_keysyms.h???) * Create a 'tuxpaint-import' type program for Windows, Mac OS X and BeOS. + FREQUENTLY REQUESTED * Translated sound effects not working under XP for some reason. (Works okay under Win98 and Win2K. - Gabriel G., 2002.09.13; @@ -93,10 +96,13 @@ LOW-PRIORITY TRANSLATION STUFF: FEATURE IDEAS: -------------- - * Sym-link "~/TuxPaintPictures" to "~/.tuxpaint/saved/"??? + * Create symbolic link "~/TuxPaintPictures" that points to + "~/.tuxpaint/saved/"??? + FREQUENTLY REQUESTED * Add "click to start, click to end" functionality in Brush, Eraser, etc. (Pablo Saratxaga's suggestion; 2003.07.19) + FREQUENTLY REQUESTED * Show shape instructions after _temporarily_ describing the shape??? (Herman Bruyninckx's suggestion; 2002.08.25) @@ -111,18 +117,18 @@ FEATURE IDEAS: * Allow compile-time option (or system config?) that disables parsing of ~/.tuxpaintrc and/or command-line options. - * Allow command-line option to disable parsing of ~/.tuxpaintrc - * Show only one category of stamps at a time? (Provide category selection dialog) !?!?!? + FREQUENTLY REQUESTED * Show configuration options (e.g., from ~/.tuxpaintrc) in --version info. POSSIBLE FEATURE IDEAS: ----------------------- - * Round eraser - + * Round eraser / eraser sizes + FREQUENTLY REQUESTED + * Support animated brushes (then replace Sparkle magic with one) ?? * Make a 'rainbow' color (then remove Rainbow magic tool; no longer needed) ?? diff --git a/src/tuxpaint.c b/src/tuxpaint.c index a3b8a93c9..674f770e0 100644 --- a/src/tuxpaint.c +++ b/src/tuxpaint.c @@ -3848,9 +3848,20 @@ void setup(int argc, char * argv[]) #endif - /* Load options from .rc file: */ + /* Load options from user's own configuration (".rc" / ".cfg") file: */ -#if !defined(WIN32) && !defined(__BEOS__) +#if defined(WIN32) || defined(__BEOS__) + /* Windows and BeOS: Use a "tuxpaint.cfg" file: */ + + strcpy(str, "tuxpaint.cfg"); + +//#elif __APPLE__ + /* Mac: ??? */ + /* FIXME! */ + +#else + /* Linux and other Unixes: Use 'rc' style (~/.tuxpaintrc) */ + if (getenv("HOME") != NULL) { /* Should it be "~/.tuxpaint/tuxpaintrc" instead??? @@ -3860,10 +3871,11 @@ void setup(int argc, char * argv[]) } else { + /* WOAH! We don't know what our home directory is!? Last resort, + do it Windows/BeOS way: */ + strcpy(str, "tuxpaint.cfg"); } -#else - strcpy(str, "tuxpaint.cfg"); #endif @@ -8084,21 +8096,41 @@ char * get_fname(char * name) const char * tux_settings_dir; + /* Where is the user's data directory? + This is where their saved files are stored, + local fonts, brushes and stamps can be found, + and where the "current_id.txt" file is saved */ + #ifdef WIN32 + /* Windows predefines "savedir" as "userdata", though it may get + overridden with "--savedir" option */ + snprintf(f, sizeof(f), "%s/%s", savedir, name); + #elif __BEOS__ + /* BeOS similarly predefines "savedir" as "./userdata"... */ + if (*name == '\0') strcpy(f, savedir); else snprintf(f, sizeof(f), "%s/%s", savedir, name); #else - + /* On Mac, Linux and other Unixes, it's in a place under our home dir.: */ + + #ifdef __APPLE__ + /* Macintosh: It's under ~/Library/Preferences/tuxpaint */ + tux_settings_dir = "Library/Preferences/tuxpaint"; #else + /* Linux & Unix: It's under ~/.tuxpaint */ + tux_settings_dir = ".tuxpaint"; #endif + + /* Put together home directory path + settings directory + filename... */ + if (savedir == NULL) { /* Save directory not overridden: */ @@ -8119,14 +8151,25 @@ char * get_fname(char * name) } else { + /* WOAH! Don't know where HOME directory is! Last resort, use '.'! */ + strcpy(f, name); } } else { - printf("savedir set to: %s\n", savedir); + /* User had overridden save directory with "--savedir" option: */ - snprintf(f, sizeof(f), "%s/%s", savedir, name); + if (*name == '\0') + { + /* (Some mkdir()'s don't like trailing slashes) */ + + snprintf(f, sizeof(f), "%s/%s", savedir, name); + } + else + { + snprintf(f, sizeof(f), "%s", savedir); + } } #endif