/* ----------- entry point */ int main( void) { EventRecord event; initialize_application(); while (!quitting) { if(WaitNextEvent(everyEvent, &event, 1, NULL)) { /* Process the event.. */ process_event(&event); } else { short index; /* Idling code.. */ idle(); /* Do things that can only be done at system time */ for(index= 0; index<new_endpoint_cache.count; ++index) { attach_new_endpoint_to_application(new_endpoint_cache.endpoints[index].endpoint, new_endpoint_cache.endpoints[index].title, true); } new_endpoint_cache.count= 0; } } app_done = true; return 0; }
int WINAPI WinMain (HINSTANCE hInstance ,HINSTANCE hPrevInstance ,LPSTR lpCmdLine ,int nCmdShow ) #endif // LMI_MSW defined. { // (Historical notes.) Using wx-2.5.1 and mpatrol-1.4.8, both // dynamically linked to this application built with gcc-3.2.3, // three memory leaks are reported with: // MPATROL_OPTIONS='SHOWUNFREED' // It's easier to trace them with: // MPATROL_OPTIONS='LOGALL SHOWUNFREED USEDEBUG' // Two are apparently mpatrol artifacts traceable to symbols: // [space follows leading underscores in reserved names] // "_ _ _ mp_findsource" // "_ _ _ mp_init" // The third is traceable in 'mpatrol.log' with 'USEDEBUG' to // Skeleton::GetEventHashTable() const // (although stepping through the code in gdb suggests it's really // WinMain(), and mpatrol or libbfd just got the symbol wrong) // and seems to be triggered the first time the program allocates // memory. The next line forces that to occur here; otherwise, // tracing this 'leak' becomes cumbersome and mysterious. std::string unused("Seems to trigger initialization of something."); int result = EXIT_FAILURE; try { initialize_application(); initialize_filesystem(); #ifndef LMI_MSW result = wxEntry(argc, argv); #else // LMI_MSW defined. result = wxEntry(hInstance, hPrevInstance, lpCmdLine, nCmdShow); #endif // LMI_MSW defined. } catch(...) { try { report_exception(); } catch(...) { safely_show_message("Logic error: untrapped exception."); } } fenv_validate(); return result; }
int main(int argc, char **argv) #endif { // Print banner (don't bother if this doesn't appear when started from a GUI) char app_name_version[256]; expand_app_variables(app_name_version, "Aleph One $appLongVersion$"); printf ("%s\n%s\n\n" "Original code by Bungie Software <http://www.bungie.com/>\n" "Additional work by Loren Petrich, Chris Pruett, Rhys Hill et al.\n" "TCP/IP networking by Woody Zenfell\n" "Expat XML library by James Clark\n" "SDL port by Christian Bauer <*****@*****.**>\n" #if defined(__MACH__) && defined(__APPLE__) "Mac OS X/SDL version by Chris Lovell, Alexander Strange, and Woody Zenfell\n" #endif "\nThis is free software with ABSOLUTELY NO WARRANTY.\n" "You are welcome to redistribute it under certain conditions.\n" "For details, see the file COPYING.\n" #if defined(__WIN32__) // Windows is statically linked against SDL, so we have to include this: "\nSimple DirectMedia Layer (SDL) Library included under the terms of the\n" "GNU Library General Public License.\n" "For details, see the file COPYING.SDL.\n" #endif #if !defined(DISABLE_NETWORKING) "\nBuilt with network play enabled.\n" #endif #ifdef HAVE_LUA "\nBuilt with Lua scripting enabled.\n" #endif , app_name_version, A1_HOMEPAGE_URL ); // Parse arguments char *prg_name = argv[0]; argc--; argv++; while (argc > 0) { if (strcmp(*argv, "-h") == 0 || strcmp(*argv, "--help") == 0) { usage(prg_name); } else if (strcmp(*argv, "-v") == 0 || strcmp(*argv, "--version") == 0) { printf("%s\n", app_name_version); exit(0); } else if (strcmp(*argv, "-f") == 0 || strcmp(*argv, "--fullscreen") == 0) { force_fullscreen = true; } else if (strcmp(*argv, "-w") == 0 || strcmp(*argv, "--windowed") == 0) { force_windowed = true; } else if (strcmp(*argv, "-g") == 0 || strcmp(*argv, "--nogl") == 0) { option_nogl = true; } else if (strcmp(*argv, "-s") == 0 || strcmp(*argv, "--nosound") == 0) { option_nosound = true; } else if (strcmp(*argv, "-j") == 0 || strcmp(*argv, "--nojoystick") == 0) { option_nojoystick = true; } else if (strcmp(*argv, "-m") == 0 || strcmp(*argv, "--nogamma") == 0) { option_nogamma = true; } else if (strcmp(*argv, "-i") == 0 || strcmp(*argv, "--insecure_lua") == 0) { insecure_lua = true; } else if (strcmp(*argv, "-d") == 0 || strcmp(*argv, "--debug") == 0) { option_debug = true; } else if (*argv[0] != '-') { // if it's a directory, make it the default data dir // otherwise push it and handle it later FileSpecifier f(*argv); if (f.IsDir()) { arg_directory = *argv; } else { arg_files.push_back(*argv); } } else { printf("Unrecognized argument '%s'.\n", *argv); usage(prg_name); } argc--; argv++; } try { // Initialize everything initialize_application(); for (std::vector<std::string>::iterator it = arg_files.begin(); it != arg_files.end(); ++it) { if (handle_open_document(*it)) { break; } } // Run the main loop main_event_loop(); } catch (exception &e) { try { logFatal("Unhandled exception: %s", e.what()); } catch (...) { } exit(1); } catch (...) { try { logFatal("Unknown exception"); } catch (...) { } exit(1); } return 0; }