void FiniSubSystems( void ) { if( !setjmp( Env ) ) { FiniFileTab(); FiniObj(); FiniMsg(); FiniMem(); } }
int PASCAL WinMain( HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show ) { char buffer[PATH_MAX]; #if !defined( __WATCOMC__ ) && defined( __NT__ ) _argc = __argc; _argv = __argv; #endif EXEName = _cmdname( buffer ); InstanceHandle = inst; showHow = show; prev = prev; cmdline = cmdline; InitMem(); #ifndef __NT__ if( prev != NULL && !HasShare() ) { MessageBox( NULLHANDLE, "SHARE.EXE must be loaded before starting Windows in order to run multiple instances of the editor", EditorName, MB_OK ); MyGetInstanceData( (unsigned short) prev, (void near *) &Root, sizeof( Root ) ); SetFocus( Root ); return( 0 ); } #endif Comspec = getenv( "COMSPEC" ); #ifdef __NT__ VarAddGlobalStr( "OS", "winnt" ); #else VarAddGlobalStr( "OS", "win" ); #endif SetConfigFileName( CFG_NAME ); ReadProfile(); ShowStartupDialog(); initApplication(); if( !initInstance() ) { return( 0 ); } InitializeEditor(); SetSaveConfig(); if( !BAD_ID( CurrentWindow ) ) { SetFocus( Root ); } SetWindowCursorForReal(); ResizeRoot(); EditMain(); FiniMem(); return( 0 ); } /* WinMain */
/* * StartupError - process fatal startup error */ void StartupError( vi_rc err ) { char *str; if( err == ERR_NO_MEMORY ) { str = "Out of memory"; } else { str = GetErrorMsg( err ); } MyPrintf( "%s (fatal)\n", str ); FiniMem(); /* Do not call ExitEditor() because almost nothing is initialized yet. */ exit( -1 ); } /* StartupError */
void main( int argc, char *argv[] ) { InitMem(); argc = argc; EXEName = argv[0]; InitialStack(); VarAddGlobalStr( "OS", "dos" ); Comspec = getenv( "COMSPEC" ); InitializeEditor(); FinalStack(); EditMain(); FiniMem(); } /* main */
/* * Quit - print usage messages */ void Quit( const char **usage_msg, const char *str, ... ) { va_list al; usage_msg = usage_msg; #ifdef __WIN__ { char buff[MAX_STR]; if( str != NULL ) { va_start( al, str ); MyVSprintf( buff, str, al ); va_end( al ); } else { buff[0] = 0; } CloseStartupDialog(); UsageDialog( UsageMsg, buff, sizeof( UsageMsg ) / sizeof( char *) ); } #else { int i; int cnt; if( str != NULL ) { va_start( al, str ); MyVPrintf( str, al ); va_end( al ); cnt = 1; } else { cnt = sizeof( UsageMsg ) / sizeof( char *); } for( i = 0; i < cnt; i++ ) { MyPrintf( "%s\n", UsageMsg[i] ); } } #endif // can't do an ExitEditor because we will not have initialized anything // yet (this is always called from checkFlags) // ExitEditor( 0 ); ChangeDirectory( HomeDirectory ); FiniMem(); exit( 0 ); } /* Usage */
void main( int argc, char *argv[] ) { char buffer[PATH_MAX]; #if !defined( __WATCOMC__ ) _argv = argv; _argc = argc; #endif InitMem(); argc = argc; EXEName = _cmdname( buffer ); EditFlags.HasSystemMouse = TRUE; VarAddGlobalStr( "OS", "nt" ); Comspec = getenv( "ComSpec" ); InitializeEditor(); EditMain(); FiniMem(); } /* main */
/* * ExitEditor - do just that */ void ExitEditor( int rc ) { #ifdef __WIN__ WriteProfile(); #endif #ifdef __IDE__ IDEFini(); #endif #ifdef __WIN__ DDEFini(); #endif SaveHistory(); RestoreInterrupts(); SwapFileClose(); WindowSwapFileClose(); SwapBlockFini(); ExtendedMemoryFini(); SelRgnFini(); LangFiniAll(); FiniMouse(); FiniMenu(); FiniSavebufs(); FindCmdFini(); DirFini(); CurrentWindow = NO_WINDOW; FinishWindows(); ScreenFini(); #ifdef __WIN__ FiniClrPick(); FiniFtPick(); CursorOp( COP_FINI ); SubclassGenericFini(); FiniProfile(); #endif FiniFileStack(); DeleteResidentScripts(); MatchFini(); FiniKeyMaps(); ErrorFini(); FiniCommandLine(); SSFini(); HistFini(); BoundDataFini(); FTSFini(); StaticFini(); VarFini(); AutoSaveFini(); FiniConfigFileName(); miscGlobalsFini(); ChangeDirectory( HomeDirectory ); #if defined( __NT__ ) && !defined( __WIN__ ) { SetConsoleActiveScreenBuffer( GetStdHandle( STD_OUTPUT_HANDLE ) ); } #endif MemFree( HomeDirectory ); MemFree( CurrentDirectory ); #if defined( VI_RCS ) ViRCSFini(); #endif FiniMem(); exit( rc ); } /* ExitEditor */