_WCNORETURN void _OutOfMemoryExit( void ) { _OutOfMemory(); while( _MessageLoop( FALSE ) ) ; _WindowsExitRtn = NULL; exit( 0 ); // never return }
/* * _DoStdout - put stuff to stdout */ unsigned _DoStdout( LPWDATA w, const void *buff, unsigned size ) { if( w == NULL ) return( 0 ); if( !w->active) _MakeWindowActive( w ); _AddLine( w, buff, size ); _MessageLoop( TRUE ); return( size ); } /* _DoStdout */
/* * _DoPutch - put a character to stdout */ void _DoPutch( LPWDATA w, unsigned ch ) { char tmp[2]; if( w == NULL ) return; if( !w->active) _MakeWindowActive( w ); tmp[0] = ch; tmp[1] = 0; _AddLine( w, tmp, 1 ); _MessageLoop( TRUE ); } /* _DoPutch */
/* * _KeyboardHit - test for a waiting key */ int _KeyboardHit( BOOL block ) { if( keyTop != keyBottom ) return( TRUE ); if( block ) { _BlockingMessageLoop( TRUE ); } else { _MessageLoop( TRUE ); } if( keyTop != keyBottom ) return( TRUE ); return( FALSE ); } /* _KeyboardHit */
/* * _MemReAlloc - allocate some memory */ void _WCI86FAR *_MemReAlloc( void _WCI86FAR *ptr, unsigned size ) { void _WCI86FAR *tmp; tmp = FARrealloc( ptr, size ); if( tmp == NULL ) { _OutOfMemory(); while( _MessageLoop( FALSE ) ); _WindowsExitRtn = NULL; exit( 0 ); } return( tmp ); } /* _MemReAlloc */
/* * _MemAlloc - allocate some memory */ void _WCI86FAR *_MemAlloc( unsigned size ) { void _WCI86FAR *tmp; tmp = FARmalloc( size ); if( tmp == NULL ) { _OutOfMemory(); while( _MessageLoop( FALSE ) ); _WindowsExitRtn = NULL; exit( 0 ); } FARmemset( tmp, 0, size ); return( tmp ); } /* _MemAlloc */
/* * _BlockingMessageLoop */ int _BlockingMessageLoop( BOOL doexit ) { MSG msg; WORD rc=1; rc = GetMessage( &msg, (HWND)NULL, 0, 0 ); if( !rc ) { if( doexit ) { _WindowsExitRtn = NULL; exit( msg.wParam ); } } else { TranslateMessage( &msg ); DispatchMessage( &msg ); } return( _MessageLoop( doexit ) ); } /* _BlockingMessageLoop */
/* * _YieldControl - Calls _MessageLoop to yeild control to OS. */ int _YieldControl( void ) { _MessageLoop( TRUE ); return( TRUE ); } /* _YieldControl */