X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fbootstrap.cxx;h=fb95b8f194a0acfb03a386e45b247ec3131f39a2;hb=38226af24ec01e8f0a20d7fd73ef838a69f6ef25;hp=877712d359f920f2ef0dd2c3338796ba6af2cc7e;hpb=fba05c527f3bb48a5dd2ed7bb10e3cc6f0be1cec;p=flightgear.git diff --git a/src/Main/bootstrap.cxx b/src/Main/bootstrap.cxx index 877712d35..fb95b8f19 100644 --- a/src/Main/bootstrap.cxx +++ b/src/Main/bootstrap.cxx @@ -57,8 +57,14 @@ using std::endl; #include "fg_os.hxx" +#ifdef _MSC_VER +char homepath[256] = ""; +char * homedir = homepath; +char *hostname = ::getenv( "COMPUTERNAME" ); +#else char *homedir = ::getenv( "HOME" ); char *hostname = ::getenv( "HOSTNAME" ); +#endif bool free_hostname = false; // foreward declaration. @@ -163,6 +169,14 @@ int _bootstrap_OSInit; // Main entry point; catch any exceptions that have made it this far. int main ( int argc, char **argv ) { +#if _MSC_VER + // Windows has no $HOME aka %HOME%, so we have to construct the full path. + // make sure it fits into the buffer. Max. path length is 255, but who knows + // what's in these environment variables? + homepath[sizeof(homepath)-1] = 0; + strncpy( homepath, ::getenv("APPDATA"), sizeof(homepath)-1 ); + strncat( homepath, "\\flightgear.org", sizeof(homepath)-strlen(homepath)-1 ); +#endif #ifdef PTW32_STATIC_LIB // Initialise static pthread win32 lib @@ -227,6 +241,8 @@ int main ( int argc, char **argv ) { fgviewerMain(argc, argv); else fgMainInit(argc, argv); + + } catch (const sg_throwable &t) { // We must use cerr rather than // logging, since logging may be