tuxpaint-pencil-sharpener/src/get_fname.c
William Kendrick adf56ef7e9 tp-magic-config man moved to (1)
Magic tool documentation now split into separate files, and referenced
(as a directory) from README, so that users can find docs to any additional
tools (ones not included by default with Tux Paint) that are installed.
Added new --datadir option, to separate path to brushes/stamps/etc. from that of saved files.
Improved docs on where savedir default is.
Made sure --help, man tuxpaint, and OPTIONS docs all covered all command-line options.
Noted SDL_Pango makes locale-specific fonts unnecessary.
Added "--plugindocprefix" option to tp-magic-config, for where docs should go.
Improved plugin API documentation.
Improved layout of man pages a little.
2007-08-02 21:04:42 +00:00

80 lines
1.6 KiB
C

/*
get_fname.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "get_fname.h"
#include "debug.h"
char *savedir;
char *datadir;
/* The filename for the current image: */
char *get_fname(const char *const name, int kind)
{
char f[512];
char * dir;
/* DIR_SAVE: Where is the user's saved directory?
This is where their saved files are stored
and where the "current_id.txt" file is saved.
Windows predefines "savedir" as:
"C:\Documents and Settings\%USERNAME%\Application Data\TuxPaint"
though it may get overridden with "--savedir" option
BeOS similarly predefines "savedir" as "./userdata"...
Macintosh: It's under ~/Library/Application Support/TuxPaint
Linux & Unix: It's under ~/.tuxpaint
DIR_DATA: Where is the user's data directory?
This is where local fonts, brushes and stamps can be found. */
if (kind == DIR_SAVE)
dir = savedir;
else if (kind == DIR_DATA)
dir = datadir;
else
return NULL;
#ifdef WIN32
snprintf(f, sizeof(f), "%s/%s", dir, name);
#elif __BEOS__
if (*name == '\0')
strcpy(f, dir);
else
snprintf(f, sizeof(f), "%s/%s", dir, name);
#endif
/* Put together home directory path + settings directory + filename... */
if (dir == NULL)
{
fprintf(stderr, "Warning: get_fname() has a NULL dir...!?\n");
return strdup(name);;
}
if (*name != '\0')
{
/* (Some mkdir()'s don't like trailing slashes) */
snprintf(f, sizeof(f), "%s/%s", dir, name);
}
else
{
snprintf(f, sizeof(f), "%s", dir);
}
return strdup(f);
}