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();
|