Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
common.h File Reference
#include <string>

Go to the source code of this file.

Functions

std::string getdatadir ()
 

Function Documentation

std::string getdatadir ( )

Definition at line 55 of file common.cpp.

References VSFileSystem::datadir, datadirs, fclose, fopen, and i.

56 {
57  string datadir;
58  char tmppwd[65536];
59  if (NULL == getcwd( tmppwd, 32768 ))
60  tmppwd[0] = '\0';
61  unsigned int i = 0;
62  for (; i < ( sizeof (datadirs)/sizeof (datadirs[0]) ); i++) {
63  if( chdir( datadirs[i] ) )
64  continue;
65  FILE *tfp = fopen( "vegastrike.config", "r" );
66  if (tfp) {
67  fclose( tfp );
68  //We have found the data directory
69  break;
70  }
71  }
72  if ( i >= sizeof (datadirs)/sizeof (datadirs[0]) ) {
73  printf( "Unable to find data directory\n" );
74  for (i = 0; i < ( sizeof (datadirs)/sizeof (datadirs[0]) ); i++)
75  printf( "Tried %s\n", datadirs[i] );
76  datadir = tmppwd;
77  if( chdir( tmppwd ) )
78  printf( "Unable to set current directory to data directory\n" );
79  }
80  //Set data dir
81  else if (datadirs[i][0] != '/') {
82  //Was a relative path
83  datadir = tmppwd;
84  datadir += '/';
85  datadir += datadirs[i];
86  } else {
87  datadir = datadirs[i];
88  }
89  return datadir;
90 }