src/tools/tDirectories.cpp File Reference

#include "aa_config.h"
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include "tLocale.h"
#include "tDirectories.h"
#include "tString.h"
#include "tConfiguration.h"
#include "tCommandLine.h"
#include "tMemManager.h"
#include <pwd.h>
#include <dirent.h>

Include dependency graph for tDirectories.cpp:

Go to the source code of this file.

Classes

class  tPathConfig
class  tPathData
class  tPathMusic
class  tPathVar
class  tPathScreenshot
class  tPathToExecutable
 Class holding our best guess of the path to the binary executable. More...
struct  tRunningInBuildDirectory
class  tDirectoriesCommandLineAnalyzer

Defines

#define PROGNAME   "armagetronad"
#define PROGNAMEBASE   "armagetronad"
#define PROGDIR_SUFFIX   ""
#define PREFIX   "/usr/local"
#define BINDIR   "/usr/local/bin"
#define SYSBINDIR   "/does/not/exist"
#define DATASUFFIX   ""
#define CONFIGSUFFIX   ""
#define PROGDIR   PROGNAME PROGDIR_SUFFIX
#define expand_home_c(c)   expand_home(tString(c))
#define QUIT(x)   { std::ostringstream s; s << x; quitWithMessage(s.str().c_str()); name_.Clear(); } return false

Functions

tString expand_home (const tString &pathname)
static bool st_IsPathDelimiter (char c)
static bool mkdir_recurse (char *pathname, size_t safe_path)
char * eh_getdir (const char *da, size_t *len)
static bool tStringLessThan (const tString &s1, const tString &s2)
void ReplacePath (tString &path, char const *replacement)
bool TestPath (char const *path, char const *file)
bool TestConfigurationPath (char const *path)
bool TestDataPath (char const *path)
static tString GetParent (char const *child, int levels)
static tString GenerateParentOfExecutable (int levels=2)
static tString GeneratePrefix ()
static char const * GetPrefix ()
static tString st_RelocatePath (tString const &original)
static void FindDataPath ()
static void FindConfigurationPath ()
static bool ReadDir (tCommandLineParser &parser, tString &target, const char *argument)
void st_PrintPathInfo (tOutput &buf)

Variables

static const char * s_topSourceDir = "."
static tString st_prefixCompiled (PREFIX)
static tString st_bindirCompiled (BINDIR)
static tString st_DataDir (".")
static tString st_MusicDir (".")
static tString st_UserDataDir (expand_home_c("~/."PROGDIR))
static tString st_ConfigDir ("")
static tString st_ScriptDir ("")
static tString st_UserConfigDir ("")
static tString st_VarDir ("")
static tString st_ResourceDir ("")
static tString st_AutoResourceDir ("")
static tString st_IncludedResourceDir ("")
static tString st_ScreenshotDir ("")
static bool st_checkPathAbsolute = true
static bool st_checkPathRelative = true
static bool st_checkPathHidden = true
static const tPathConfig st_Config
static const tPathData st_Data
static const tPathMusic st_Music
static const tPathVar st_Var
static const tPathScreenshot st_Screenshot
static const tPathResource st_Resource
static const tPathScripts st_Scripts
static bool st_protectFiles = true
tSettingItem< bool > st_protectFilesConf ("PROTECT_SENSITIVE_FILES", st_protectFiles)
static tPathToExecutable st_pathToExecutable
static
tDirectoriesCommandLineAnalyzer 
analyzer
char * st_userConfigs []


Define Documentation

#define BINDIR   "/usr/local/bin"

Definition at line 106 of file tDirectories.cpp.

Referenced by tPathToExecutable::Set().

#define CONFIGSUFFIX   ""

Definition at line 124 of file tDirectories.cpp.

#define DATASUFFIX   ""

Definition at line 120 of file tDirectories.cpp.

#define expand_home_c ( c   )     expand_home(tString(c))

Definition at line 166 of file tDirectories.cpp.

Referenced by ReadDir().

#define PREFIX   "/usr/local"

Definition at line 102 of file tDirectories.cpp.

#define PROGDIR   PROGNAME PROGDIR_SUFFIX

Definition at line 127 of file tDirectories.cpp.

#define PROGDIR_SUFFIX   ""

Definition at line 73 of file tDirectories.cpp.

#define PROGNAME   "armagetronad"

Definition at line 64 of file tDirectories.cpp.

Referenced by tPathToExecutable::Set().

#define PROGNAMEBASE   "armagetronad"

Definition at line 69 of file tDirectories.cpp.

#define QUIT ( x   )     { std::ostringstream s; s << x; quitWithMessage(s.str().c_str()); name_.Clear(); } return false

Definition at line 1249 of file tDirectories.cpp.

#define SYSBINDIR   "/does/not/exist"

Definition at line 116 of file tDirectories.cpp.


Function Documentation

char* eh_getdir ( const char *  da,
size_t *  len 
)

Definition at line 394 of file tDirectories.cpp.

References d, free, malloc, NULL, and strdup.

Referenced by expand_home().

00394                                              {
00395     const char *s, *r, *d;
00396     char *type = 0, *user = 0, *ret = 0;
00397     size_t l;
00398 
00399     // Step 1: Extract type, user, and *len
00400     if (da[0] == '~') {
00401         type = strdup("HOME");
00402         {
00403             // find first occurence of slash or backslash
00404             char const * slash = strchr(da, '/');
00405             char const * backslash = strchr(da, '\\');
00406             if ( slash && backslash )
00407                 d = slash < backslash ? slash : backslash;
00408             else
00409                 d = slash ? slash : backslash;
00410         }
00411         l = ((d ? d : strchr(da, '\0')) - da - 1) * sizeof(char);
00412         user = (char *)memcpy(malloc(l + sizeof(char)), da + 1, l); user[l] = '\0';
00413         *len = l + 1;
00414     } else if (!strncmp(da, "${", 2)) {
00415         s = strchr(da, '}');
00416         if (!s) {
00417             // Invalid structure
00418             return 0;
00419         }
00420         if ((r = strchr(da, ':'))) {
00421             l = (s - r - 1) * sizeof(char);
00422             user = (char *)memcpy(malloc(l + sizeof(char)), r + 1, l); user[l] = '\0';
00423         } else {
00424             r = s;
00425             user = (char *)malloc(sizeof(char));
00426             user[0] = '\0';
00427         }
00428         l = (r - da - 2) * sizeof(char);
00429         type = (char *)memcpy(malloc(l + sizeof(char)), da + 2, l); type[l] = '\0';
00430         *len = s - da + 1;
00431     }
00432 
00433     // Step 2: Resolve type/user into ret
00434 #ifdef WIN32
00435     if (!strcmp(type, "HOME")) {
00436         free(type);
00437         type = strdup("HOMEPATH");
00438     }
00439 #endif
00440     if ((ret = getenv(type)))
00441         ret = strdup(ret);
00442     else {
00443 # ifdef WIN32
00444         {
00445             char path[MAX_PATH];
00446             int ssf = 0;
00447 
00448             // Bug! This assumes user == current user! (who cares, but... yeah)
00449             if (!strcmp(type, "HOME"))   ssf = 0x28;
00450             if (!strcmp(type, "APPDATA"))  ssf = 0x1a;
00451             if (!strcmp(type, "COMMONAPPDATA")) ssf = 0x23;
00452             if (!strcmp(type, "DESKTOP"))  ssf = 0x10;
00453             if (!strcmp(type, "LOCALAPPDATA")) ssf = 0x1c;
00454             if (!strcmp(type, "MYPICTURES")) ssf = 0x27;
00455             if (!strcmp(type, "PERSONAL"))  ssf = 0x05;
00456             if (!strcmp(type, "PROFILE"))  ssf = 0x28;
00457             if (!strcmp(type, "SYSTEM"))  ssf = 0x25;
00458             if (!strcmp(type, "WINDOWS"))  ssf = 0x24;
00459 
00460             //if (ssf && SUCCEEDED(SHGetFolderPath(NULL, ssf, NULL, 0, path)))
00461             if (ssf && SHGetSpecialFolderPath(NULL, path, ssf, 1))
00462                 ret = strdup(path);
00463         }
00464 # else
00465         // fall back to default for HOME
00466         if (!strcmp(type, "HOME")) {
00467             struct passwd *pw;
00468 
00469             if (user[0] == '\0') // Current user
00470                 pw = getpwuid(getuid());
00471             else
00472                 pw = getpwnam(user);
00473             if (pw)
00474                 ret = strdup(pw->pw_dir);
00475             // struct passwd seems to do some really freaky stuff and doesn't like freeing? can someone confirm this?
00476         }
00477 # endif
00478         // TODO: fall back to hardcoded stuff in some cases?
00479     }
00480 
00481 #ifdef DEBUG_PATH
00482     std::cout << "Changing " << type << " to " << ret << "\n";
00483 #endif
00484 
00485     // Step 3: Cleanup
00486     free(type);
00487     free(user);
00488     if (!ret && da[0] != '~') {
00489         // Valid, but undefined
00490         free(ret);
00491         ret = (char *)malloc(sizeof(char));
00492         ret[0] = '\0';
00493     }
00494 
00495     return ret;
00496 }

Here is the caller graph for this function:

tString expand_home ( const tString pathname  ) 

Definition at line 498 of file tDirectories.cpp.

References eh_getdir(), and free.

00498                                               {
00499     const char *pn = (const char *)pathname;
00500     char *s;
00501     size_t len;
00502     tString r;
00503 
00504     if ((pn[0] == '~' || !strncmp(pn, "${", 2)) && (s = eh_getdir(pn, &len))) {
00505         tString sStr(s);
00506         r = sStr << (pn + len);
00507         free(s);
00508     }
00509     else
00510         r = pathname;
00511 
00512 #ifdef DEBUG
00513     printf("changed %s to %s\n", (const char *)pathname, (const char *)r);
00514 #endif
00515     return r;
00516 }

Here is the call graph for this function:

static void FindConfigurationPath (  )  [static]

Definition at line 1541 of file tDirectories.cpp.

References st_DataDir, st_RelocatePath(), tERR_WARN, and TestConfigurationPath().

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize().

01542 {
01543 #ifndef MACOSX_XCODE
01544 #ifndef WIN32
01545     if ( TestConfigurationPath( st_RelocatePath( tString( AA_SYSCONFDIR ) ) ) ) return;
01546 #endif
01547 
01548     // look for configuration where the data is
01549     if ( TestConfigurationPath(st_DataDir + "/config") ) return;
01550 
01551     tERR_WARN("Could not determine path to configuration files. Using defaults or command line arguments.\n");
01552 #endif // !MACOSX_XCODE
01553 }

Here is the call graph for this function:

Here is the caller graph for this function:

static void FindDataPath (  )  [static]

Definition at line 1518 of file tDirectories.cpp.

References con, tPathToExecutable::Get(), GetParent(), st_RelocatePath(), tERR_MESSAGE, and TestDataPath().

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize().

01519 {
01520 #ifndef MACOSX_XCODE
01521 #ifdef WIN32
01522     // look for data in the same directory as the executable
01523     if ( TestDataPath(GetParent(st_pathToExecutable.Get(), 1) ) ) return;
01524 #else
01525     // try to use path substitution
01526     if ( TestDataPath( st_RelocatePath( tString(AA_DATADIR ) ) ) ) return;
01527     // if ( TestDataPath( AddPrefix( DATASUFFIX ) ) ) return;
01528 #endif
01529 
01530 #ifdef DEBUG_PATH
01531     con << "Data sarch failed, trying debug fallback.\n";
01532 #endif
01533 
01534 #ifdef DEBUG_PATH
01535     tERR_MESSAGE("Could not determine path to data files. Using defaults or command line arguments.\n");
01536 #endif
01537 #endif // !MACOSX_XCODE
01538 }

Here is the call graph for this function:

Here is the caller graph for this function:

static tString GenerateParentOfExecutable ( int  levels = 2  )  [static]

Definition at line 1411 of file tDirectories.cpp.

References tPathToExecutable::Get(), and GetParent().

Referenced by GeneratePrefix().

01412 {
01413     return GetParent( st_pathToExecutable.Get(), levels );
01414 }

Here is the call graph for this function:

Here is the caller graph for this function:

static tString GeneratePrefix (  )  [static]

Definition at line 1423 of file tDirectories.cpp.

References con, GenerateParentOfExecutable(), tString::Len(), st_bindirCompiled, st_prefixCompiled, tString::SubStr(), tERR_ERROR, and TestPath().

Referenced by GetPrefix().

01424 {
01425     // fetch prefix as it was compiled in
01426     tString const & prefixCompiled = st_prefixCompiled;
01427     // the binary path as it was compiled in
01428     tString const & bindirCompiled = st_bindirCompiled;
01429     // and the current binary path
01430     tString bindirNow(GenerateParentOfExecutable(1));
01431 
01432     // the length of the bindir suffix, the part that is added below prefix
01433     int bindirSuffixLength=bindirCompiled.Len() - prefixCompiled.Len();
01434 
01435     // the end of the prefix part in binDirNow according to that
01436     int bindirNowPrefixEnd=bindirNow.Len() - 1 - bindirSuffixLength;
01437     if ( bindirNowPrefixEnd < 0 )
01438         bindirNowPrefixEnd = 0;
01439 
01440     // check that the binary path now ends the same way
01441     tString suffixNow      = bindirNow.SubStr( bindirNowPrefixEnd + 1 );
01442     tString suffixCompiled = bindirCompiled.SubStr( prefixCompiled.Len() );
01443 
01444 #ifdef DEBUG_PATH
01445     con << "suffices: " << suffixNow << ", " << suffixCompiled << "\n";
01446 #endif
01447 
01448     if ( suffixNow != suffixCompiled )
01449     {
01450         // may we be running inside the build directory?
01451         int bindirEndStart = bindirNow.Len() - 5;
01452         if ( bindirEndStart < 0 )
01453             bindirEndStart = 0;
01454 
01455         tString bindirEnd = bindirNow.SubStr( bindirEndStart );
01456 
01457 #ifdef DEBUG_PATH
01458         con << "bindirEnd: " << bindirEnd << "\n";
01459 #endif
01460 
01461         if ( TestPath( bindirNow, "Makefile" ) )
01462             throw tRunningInBuildDirectory();
01463 
01464         tERR_ERROR("Relocation error. The binary was supposed to be installed into " << bindirCompiled << " and found itself in " << bindirNow << " and could not find out what this means for the prefix " << prefixCompiled << "." );
01465     }
01466 
01467     // generate prefix
01468     tString prefixNow = bindirNow.SubStr( 0, bindirNowPrefixEnd );
01469 
01470 #ifdef DEBUG_PATH
01471     con << "prefix: " << prefixNow << "\n";
01472 #endif
01473 
01474     return prefixNow;
01475 }

Here is the call graph for this function:

Here is the caller graph for this function:

static tString GetParent ( char const *  child,
int  levels 
) [static]

Definition at line 1343 of file tDirectories.cpp.

References c, and tString::Size().

Referenced by FindDataPath(), and GenerateParentOfExecutable().

01344 {
01345     tString ret( child );
01346 
01347     // strip last two path segments
01348     int toStrip = levels;
01349     int stripCurrent = ret.Size()-1;
01350     while (stripCurrent >= 0 && toStrip > 0)
01351     {
01352         char & c = ret[ stripCurrent ];
01353         // count separators
01354         if (c == '/' || c == '\\' || c == ':')
01355             --toStrip;
01356         c=0;
01357         --stripCurrent;
01358     }
01359 
01360 #ifdef DEBUG_PATH
01361     std::cout << "Parent: " << ret << "\n";
01362 #endif
01363 
01364     return tString(static_cast<char const *>(ret));
01365 }

Here is the call graph for this function:

Here is the caller graph for this function:

static char const* GetPrefix (  )  [static]

Definition at line 1478 of file tDirectories.cpp.

References GeneratePrefix().

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), and st_RelocatePath().

01479 {
01480     static tString ret( GeneratePrefix() );
01481     return ret;
01482 }

Here is the call graph for this function:

Here is the caller graph for this function:

static bool mkdir_recurse ( char *  pathname,
size_t  safe_path 
) [static]

Definition at line 255 of file tDirectories.cpp.

References con, and st_IsPathDelimiter().

Referenced by tPath::GetWritePath(), and tPathResource::GetWritePath().

00255                                                             {
00256     // method: strip path segments from the end, try to make the directory up to there.
00257     // once this succeeded, rebuild the path, making all the subdirectories as you go.
00258 
00259     size_t i;
00260     bool fs = false; // forward search flag. if set, start rebuilding the path
00261     bool e  = false; // error flag.
00262 
00263     size_t len = strlen(pathname); // the total length of the path
00264 
00265     for (i = len - 1; i < len && !e; fs ? ++i : --i) {
00266         if ( st_IsPathDelimiter( pathname[i] ) ) {
00267             if (pathname[i + 1] == '.' && i + 2 > safe_path)
00268                 return false; // abort; we have a hidden file/dir!
00269             char delimiter = pathname[i];
00270             pathname[i] = '\0';
00271 
00272 #ifdef DEBUG_PATH
00273             static bool first = true;
00274             if (fs || first )
00275             {
00276                 first = false;
00277                 con << "Making directory " << pathname << "\n";
00278             }
00279 #endif
00280 
00281             if (!mkdir(pathname, 0777) || errno == EEXIST)
00282                 fs = true;
00283             else if (fs)
00284                 e = true;
00285             pathname[i] = delimiter;
00286         }
00287         if (i == 0 && !fs)
00288             e = true;
00289     }
00290     return !e;
00291 }

Here is the call graph for this function:

Here is the caller graph for this function:

static bool ReadDir ( tCommandLineParser parser,
tString target,
const char *  argument 
) [static]

Definition at line 1557 of file tDirectories.cpp.

References expand_home_c, and tCommandLineParser::GetOption().

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze().

01558 {
01559     if ( parser.GetOption( target, argument ) )
01560     {
01561         target = expand_home_c( target );
01562 
01563         return true;
01564     }
01565 
01566     return false;
01567 }

Here is the call graph for this function:

Here is the caller graph for this function:

void ReplacePath ( tString path,
char const *  replacement 
)

Definition at line 1275 of file tDirectories.cpp.

References tString::Len().

Referenced by TestConfigurationPath(), and TestDataPath().

01276 {
01277     // don't do a thing if the path is already set
01278     if ( path.Len() < 3 )
01279     {
01280         path = replacement;
01281     }
01282 }

Here is the call graph for this function:

Here is the caller graph for this function:

static bool st_IsPathDelimiter ( char  c  )  [static]

Definition at line 243 of file tDirectories.cpp.

Referenced by tPath::IsValidPath(), and mkdir_recurse().

00244 {
00245     return  ( c == '/' || c == '\\' );
00246 }

Here is the caller graph for this function:

void st_PrintPathInfo ( tOutput buf  ) 

Definition at line 1671 of file tDirectories.cpp.

References tDirectories::Config(), tDirectories::Data(), tPath::GetPaths(), tPath::GetReadPath(), tDirectories::Resource(), tDirectories::Screenshot(), and tDirectories::Var().

Referenced by sg_DisplayVersionInfo().

01671                                     {
01672     tString const hcol("0xff8888");
01673     buf << hcol << "$path_info_user_cfg"   << "0xRESETT\n   " << tDirectories::Var().GetReadPath("user.cfg") << "\n"
01674     << hcol << "$path_info_config"     << "0xRESETT\n" << tDirectories::Config().GetPaths()
01675     << hcol << "$path_info_resource"   << "0xRESETT\n" << tDirectories::Resource().GetPaths()
01676     << hcol << "$path_info_data"       << "0xRESETT\n" << tDirectories::Data().GetPaths()
01677     << hcol << "$path_info_screenshot" << "0xRESETT\n" << tDirectories::Screenshot().GetPaths()
01678     << hcol << "$path_info_var"        << "0xRESETT\n" << tDirectories::Var().GetPaths();
01679 }

Here is the call graph for this function:

Here is the caller graph for this function:

static tString st_RelocatePath ( tString const &  original  )  [static]

Definition at line 1496 of file tDirectories.cpp.

References GetPrefix(), tString::Len(), st_prefixCompiled, tString::StartsWith(), and tString::SubStr().

Referenced by FindConfigurationPath(), and FindDataPath().

01497 {
01498     // fetch prefix as it was compiled in
01499     tString const & prefixCompiled = st_prefixCompiled;
01500     // and as it is now
01501     static tString prefixNow(GetPrefix());
01502 
01503     // see if the passed string starts with it
01504     if ( original.StartsWith( prefixCompiled ) )
01505     {
01506         // replace the prefix with the real prefix and return the result
01507         return prefixNow + original.SubStr( prefixCompiled.Len()-1 );
01508     }
01509     else
01510     {
01511         // don't relocate and hope it works
01512         return original;
01513     }
01514 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool TestConfigurationPath ( char const *  path  ) 

Definition at line 1301 of file tDirectories.cpp.

References con, ReplacePath(), st_ConfigDir, and TestPath().

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize(), and FindConfigurationPath().

01302 {
01303     if ( TestPath( path, "settings.cfg" ) )
01304     {
01305 #ifdef DEBUG_PATH
01306         con << "Configuration path " << path << " is good.\n";
01307 #endif
01308         // replace data paths
01309         ReplacePath( st_ConfigDir, path );
01310 
01311         return true;
01312     }
01313 
01314 #ifdef DEBUG_PATH
01315     con << "Configuration path " << path << " is bad!\n";
01316 #endif
01317 
01318     return false;
01319 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool TestDataPath ( char const *  path  ) 

Definition at line 1322 of file tDirectories.cpp.

References con, ReplacePath(), st_DataDir, and TestPath().

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize(), and FindDataPath().

01323 {
01324     if ( TestPath( path, "language/english_base.txt") )
01325     {
01326 #ifdef DEBUG_PATH
01327         con << "Data path " << path << " is good.\n";
01328 #endif
01329         // replace data paths
01330         ReplacePath( st_DataDir, path );
01331 
01332         return true;
01333     }
01334 
01335 #ifdef DEBUG_PATH
01336     con << "Data path " << path << " is bad!\n";
01337 #endif
01338 
01339     return false;
01340 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool TestPath ( char const *  path,
char const *  file 
)

Definition at line 1285 of file tDirectories.cpp.

References con.

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize(), GeneratePrefix(), TestConfigurationPath(), and TestDataPath().

01286 {
01287     std::string testData( path );
01288     testData += "/";
01289     testData += file;
01290     std::ifstream f(testData.c_str());
01291 
01292 
01293 #ifdef DEBUG_PATH
01294     con << "Testing existence of file " << testData << ( f.good() ? " : good.\n" : " : bad!\n" );
01295 #endif
01296 
01297     return ( f.good() );
01298 }

Here is the caller graph for this function:

static bool tStringLessThan ( const tString s1,
const tString s2 
) [static]

Definition at line 1195 of file tDirectories.cpp.

References tString::Len().

Referenced by tDirectories::SortFiles().

01196 {
01197     for (int i = 0; i < s1.Len() - 1; i++)
01198     {
01199         if ( tolower( s2( i ) ) >= tolower( s1( i ) ) )
01200         {
01201             return false;
01202         }
01203     }
01204     return true;
01205 }

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

tDirectoriesCommandLineAnalyzer analyzer [static]

Definition at line 1657 of file tDirectories.cpp.

const char* s_topSourceDir = "." [static]

Definition at line 55 of file tDirectories.cpp.

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize().

tString st_AutoResourceDir("") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tPathResource::Paths(), and tDirectories::SetAutoResource().

tString st_bindirCompiled(BINDIR) [static]

Referenced by GeneratePrefix().

bool st_checkPathAbsolute = true [static]

Definition at line 293 of file tDirectories.cpp.

bool st_checkPathHidden = true [static]

Definition at line 295 of file tDirectories.cpp.

bool st_checkPathRelative = true [static]

Definition at line 294 of file tDirectories.cpp.

const tPathConfig st_Config [static]

Definition at line 546 of file tDirectories.cpp.

tString st_ConfigDir("") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tPathConfig::Paths(), tDirectories::SetConfig(), and TestConfigurationPath().

const tPathData st_Data [static]

Definition at line 566 of file tDirectories.cpp.

tString st_DataDir(".") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tDirectoriesCommandLineAnalyzer::DoInitialize(), FindConfigurationPath(), tPathScripts::GetDirPath(), tPathResource::GetDirPath(), tPathResource::Paths(), tPathScreenshot::Paths(), tPathVar::Paths(), tPathData::Paths(), tPathConfig::Paths(), tDirectories::SetData(), and TestDataPath().

tString st_IncludedResourceDir("") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoInitialize(), tPathResource::GetDirPath(), tPathResource::Paths(), and tDirectories::SetIncludedResource().

const tPathMusic st_Music [static]

Definition at line 582 of file tDirectories.cpp.

tString st_MusicDir(".") [static]

Referenced by tPathMusic::Paths().

tPathToExecutable st_pathToExecutable [static]

Definition at line 1409 of file tDirectories.cpp.

tString st_prefixCompiled(PREFIX) [static]

Referenced by GeneratePrefix(), and st_RelocatePath().

bool st_protectFiles = true [static]

Definition at line 772 of file tDirectories.cpp.

tSettingItem<bool> st_protectFilesConf("PROTECT_SENSITIVE_FILES", st_protectFiles)

const tPathResource st_Resource [static]

Definition at line 715 of file tDirectories.cpp.

tString st_ResourceDir("") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tPathResource::Paths(), and tDirectories::SetResource().

const tPathScreenshot st_Screenshot [static]

Definition at line 652 of file tDirectories.cpp.

tString st_ScreenshotDir("") [static]

Referenced by tPathScreenshot::Paths(), and tDirectories::SetScreenshot().

tString st_ScriptDir("") [static]

const tPathScripts st_Scripts [static]

Definition at line 727 of file tDirectories.cpp.

tString st_UserConfigDir("") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tPathConfig::Paths(), and tDirectories::SetUserConfig().

char* st_userConfigs[]

Definition at line 771 of file tConfiguration.cpp.

tString st_UserDataDir(expand_home_c("~/."PROGDIR)) [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tDirectoriesCommandLineAnalyzer::DoInitialize(), tPathResource::Paths(), tPathScreenshot::Paths(), tPathVar::Paths(), tPathData::Paths(), tPathConfig::Paths(), and tDirectories::SetUserData().

const tPathVar st_Var [static]

Definition at line 630 of file tDirectories.cpp.

tString st_VarDir("") [static]

Referenced by tDirectoriesCommandLineAnalyzer::DoAnalyze(), tPathVar::Paths(), and tDirectories::SetVar().


Generated on Sat Mar 15 23:11:38 2008 for Armagetron Advanced by  doxygen 1.5.4