/******************* get elapsed time from TickStart ************************/ long InchiTimeElapsed( inchiTime *TickStart ) { inchiTime TickEnd; if ( !TickStart ) return 0; InchiTimeGet( &TickEnd ); return InchiTimeMsecDiff( &TickEnd, TickStart ); }
int user_quit( const char *msg, unsigned long ulMaxTime ) { #if defined(TARGET_LIB_FOR_WINCHI) return 0; #endif #if ( !defined(TARGET_LIB_FOR_WINCHI) && defined(_WIN32) ) int quit, enter, ret; printf(msg); if ( ulMaxTime ) { inchiTime ulEndTime; InchiTimeGet( &ulEndTime ); InchiTimeAddMsec( &ulEndTime, ulMaxTime ); while ( !_kbhit() ) { if ( bInchiTimeIsOver( &ulEndTime ) ) { printf("\n"); return 0; } MySleep( 100 ); } } while( 1 ) { quit = ( 'q' == (ret = _getch()) || 'Q'==ret || /*Esc*/ 27==ret ); enter = ( '\r' == ret ); if ( ret == 0xE0 ) ret = _getch(); else _putch(ret); /* echo */ if ( quit || enter ) break; printf( "\r" ); printf( msg ); } _putch('\n'); return quit; #else return 0; #endif /* #if ( defined(_WIN32) && !defined(TARGET_LIB_FOR_WINCHI) ) */ }