1
0
Fork 0

Changed 'exit' command to quit immediately, rather than displaying a

built-in dialog (use an XML dialog instead).

Added an fgExit() function to simplify exit and cleanup.
This commit is contained in:
david 2003-01-24 03:08:23 +00:00
parent 980eae6187
commit 9679c7da15
3 changed files with 40 additions and 3 deletions

View file

@ -35,6 +35,7 @@ SG_USING_STD(ofstream);
#include "fg_props.hxx" #include "fg_props.hxx"
#include "fg_io.hxx" #include "fg_io.hxx"
#include "globals.hxx" #include "globals.hxx"
#include "util.hxx"
#include "viewmgr.hxx" #include "viewmgr.hxx"
@ -169,13 +170,13 @@ do_script (const SGPropertyNode * arg)
/** /**
* Built-in command: exit FlightGear. * Built-in command: exit FlightGear.
* *
* TODO: show a confirm dialog. * status: the exit status to return to the operating system (defaults to 0)
*/ */
static bool static bool
do_exit (const SGPropertyNode * arg) do_exit (const SGPropertyNode * arg)
{ {
SG_LOG(SG_INPUT, SG_ALERT, "Program exit requested."); SG_LOG(SG_INPUT, SG_INFO, "Program exit requested.");
ConfirmExitDialog(); fgExit(arg->getIntValue("status", 0));
return true; return true;
} }

View file

@ -19,8 +19,33 @@
#include <math.h> #include <math.h>
#include <simgear/debug/logstream.hxx>
#include "fg_io.hxx"
#include "fg_props.hxx"
#include "globals.hxx"
#include "util.hxx" #include "util.hxx"
#if defined(FG_NETWORK_OLK)
#include <NetworkOLK/network.h>
#endif
void
fgExit (int status)
{
SG_LOG(SG_GENERAL, SG_INFO, "Exiting FlightGear with status " << status);
#if defined(FG_NETWORK_OLK)
if (fgGetBool("/sim/networking/network-olk"))
fgd_send_com("8", FGFS_host);
#endif
globals->get_io()->shutdown_all();
exit(status);
}
// Originally written by Alex Perry. // Originally written by Alex Perry.
double double

View file

@ -26,6 +26,17 @@
#endif #endif
/**
* Clean up and exit FlightGear.
*
* This function makes sure that network connections and I/O streams
* are cleaned up.
*
* @param status The exit status to pass to the operating system.
*/
extern void fgExit (int status = 0);
/** /**
* Move a value towards a target. * Move a value towards a target.
* *