#include "main.hxx"
#include "globals.hxx"
+#include "fg_props.hxx"
+#include "fgviewer.hxx"
#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.
// 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
}
initFPE();
#endif
-#if !defined( _MSC_VER ) && !defined( __MINGW32__ )
+#ifndef _WIN32
signal(SIGPIPE, SIG_IGN);
#endif
#if defined( HAVE_BC5PLUS )
_control87(MCW_EM, MCW_EM); /* defined in float.h */
#endif
+ bool fgviewer = false;
+ for (int i = 0; i < argc; ++i) {
+ if (!strcmp("--fgviewer", argv[i])) {
+ fgviewer = true;
+ break;
+ }
+ }
// FIXME: add other, more specific
// exceptions.
try {
std::set_terminate(fg_terminate);
atexit(fgExitCleanup);
- fgMainInit(argc, argv);
+ if (fgviewer)
+ fgviewerMain(argc, argv);
+ else
+ fgMainInit(argc, argv);
+
+
} catch (const sg_throwable &t) {
// We must use cerr rather than
// logging, since logging may be