From: Dirk B. <db...@us...> - 2005-03-12 09:43:23
|
Update of /cvsroot/win32forth/win32forth-extsrc/extsrc/w32fConsole In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31424/extsrc/w32fConsole Modified Files: Console.rc Term.cpp Log Message: dbu: Speedup of TYPE when there are no control characters in the string Index: Console.rc =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/w32fConsole/Console.rc,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Console.rc 23 Jan 2005 16:34:19 -0000 1.4 --- Console.rc 12 Mar 2005 09:42:54 -0000 1.5 *************** *** 55,60 **** VS_VERSION_INFO VERSIONINFO ! FILEVERSION 6,11,0,18 ! PRODUCTVERSION 6,11,0,18 FILEFLAGSMASK 0x3fL #ifdef _DEBUG --- 55,60 ---- VS_VERSION_INFO VERSIONINFO ! FILEVERSION 6,11,0,19 ! PRODUCTVERSION 6,11,0,19 FILEFLAGSMASK 0x3fL #ifdef _DEBUG *************** *** 74,78 **** VALUE "CompanyName", "Win32Forth developer team\0" VALUE "FileDescription", "Win32Forth console\0" ! VALUE "FileVersion", "6, 11, 0, 18\0" VALUE "InternalName", "CONSOLE\0" VALUE "LegalCopyright", "\0" --- 74,78 ---- VALUE "CompanyName", "Win32Forth developer team\0" VALUE "FileDescription", "Win32Forth console\0" ! VALUE "FileVersion", "6, 11, 0, 19\0" VALUE "InternalName", "CONSOLE\0" VALUE "LegalCopyright", "\0" *************** *** 81,85 **** VALUE "PrivateBuild", "\0" VALUE "ProductName", "Win32Forth\0" ! VALUE "ProductVersion", "6, 11, 0, 18\0" VALUE "SpecialBuild", "\0" END --- 81,85 ---- VALUE "PrivateBuild", "\0" VALUE "ProductName", "Win32Forth\0" ! VALUE "ProductVersion", "6, 11, 0, 19\0" VALUE "SpecialBuild", "\0" END Index: Term.cpp =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/w32fConsole/Term.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Term.cpp 23 Jan 2005 16:34:19 -0000 1.4 --- Term.cpp 12 Mar 2005 09:42:54 -0000 1.5 *************** *** 677,680 **** --- 677,699 ---- //************************************************************************************************* + // HaveControlChar() - check if the string contains a control char + //************************************************************************************************* + BOOL HaveControlChar( const char *addr, int len ) + { + for( int act = 0; act < len; act++ ) + { + if( addr[act] != BELL && + addr[act] != BS && + addr[act] != LF && + addr[act] != CR ) + continue; + + return TRUE; + } + + return FALSE; + } + + //************************************************************************************************* // type a string of characters to the console window //************************************************************************************************* *************** *** 690,695 **** SetTextColor( hdc, theFg ); ! for( int act = 0; act < len; act++ ) ! emit( addr[act] ); MoveCaret(); --- 709,731 ---- SetTextColor( hdc, theFg ); ! if( HaveControlChar(addr, len) ) ! { ! for( int act = 0; act < len; act++ ) ! emit( addr[act] ); ! } ! else ! { ! while( len ) ! { ! int n = min( len, cols - x ); ! TextOut( hdc, gx, gy, addr, n ); ! memmove( &SCREEN(x,y), addr, n ); ! x += n; ! wrap(); ! ! addr += n; ! len -= n; ! } ! } MoveCaret(); |