From 2349c4e895b0e9fcadefbcb3d0b3e0c838751867 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 19 Jun 2008 00:02:50 +0000 Subject: [PATCH] 2008-06-19 01:53 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * contrib/hbw32/tests/testdll.prg * source/rtl/colorind.c * contrib/hbodbc/odbc.c * Minor cleanups. * contrib/hbtip/tests/base64.prg * contrib/hbtip/tests/dbtohtml.prg * contrib/hbtip/tests/httpadv.prg * contrib/hbtip/tests/tipmail.prg * contrib/hbtip/tests/tipmmail.prg * contrib/hbtip/tests/tiptest.prg ! All tip tests fixed and tested to compile/link with Harbour. * Changed to not require hbw32.lib. [TOMERGE RC1] + contrib/hbtip/tests/test.dbf + Added for tests. [TOMERGE RC1] --- harbour/ChangeLog | 21 +++++++++++ harbour/contrib/hbodbc/odbc.c | 4 +-- harbour/contrib/hbtip/tests/base64.prg | 2 +- harbour/contrib/hbtip/tests/dbtohtml.prg | 21 +++++------ harbour/contrib/hbtip/tests/httpadv.prg | 2 +- harbour/contrib/hbtip/tests/test.dbf | Bin 0 -> 100387 bytes harbour/contrib/hbtip/tests/tipmail.prg | 2 +- harbour/contrib/hbtip/tests/tipmmail.prg | 18 +++++----- harbour/contrib/hbtip/tests/tiptest.prg | 4 +-- harbour/contrib/hbw32/tests/testdll.prg | 44 ++--------------------- harbour/source/rtl/colorind.c | 21 +++++------ 11 files changed, 56 insertions(+), 83 deletions(-) create mode 100644 harbour/contrib/hbtip/tests/test.dbf diff --git a/harbour/ChangeLog b/harbour/ChangeLog index bb88d4e388..7b631c0b03 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,27 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-06-19 01:53 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * contrib/hbw32/tests/testdll.prg + * source/rtl/colorind.c + * contrib/hbodbc/odbc.c + * Minor cleanups. + + * contrib/hbtip/tests/base64.prg + * contrib/hbtip/tests/dbtohtml.prg + * contrib/hbtip/tests/httpadv.prg + * contrib/hbtip/tests/tipmail.prg + * contrib/hbtip/tests/tipmmail.prg + * contrib/hbtip/tests/tiptest.prg + ! All tip tests fixed and tested to compile/link + with Harbour. + * Changed to not require hbw32.lib. + [TOMERGE RC1] + + + contrib/hbtip/tests/test.dbf + + Added for tests. + [TOMERGE RC1] + 2008-06-18 11:39 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * source/rtl/gtclip.c ! hb_gt_w32_setClipboard() fix to CF_UNICODETEXT diff --git a/harbour/contrib/hbodbc/odbc.c b/harbour/contrib/hbodbc/odbc.c index f5ed2d2262..d686c43b80 100644 --- a/harbour/contrib/hbodbc/odbc.c +++ b/harbour/contrib/hbodbc/odbc.c @@ -246,10 +246,10 @@ HB_FUNC( SQLGETDATA ) /* HB_SQLGETDATA( hStmt, nField, nType, nLen, @cBuffer ) - int iReallocs = 0; lLen = ( SDWORD )( hb_parnl( 4 ) ? hb_parnl( 4 ) : 64 ); - bBuffer = hb_xgrab( (ULONG) lLen+1 ); + bBuffer = hb_xgrab( (ULONG) lLen + 1 ); bOut = NULL; lInitBuff = lLen; - wType = ( hb_parni( 3 ) ? hb_parni( 3 ) : SQL_BINARY ); + wType = hb_parni( 3 ) ? hb_parni( 3 ) : SQL_BINARY; wResult = ! SQL_NO_DATA; while( wResult != SQL_NO_DATA ) diff --git a/harbour/contrib/hbtip/tests/base64.prg b/harbour/contrib/hbtip/tests/base64.prg index 460b78d718..30ae2368b1 100644 --- a/harbour/contrib/hbtip/tests/base64.prg +++ b/harbour/contrib/hbtip/tests/base64.prg @@ -31,7 +31,7 @@ PROCEDURE MAIN( ... ) /* Parameter parsing */ FOR nLen := 1 TO PCount() - cData := Lower( PValue( nLen ) ) + cData := Lower( hb_PValue( nLen ) ) DO CASE CASE cData == '-h' lHelp := .T. diff --git a/harbour/contrib/hbtip/tests/dbtohtml.prg b/harbour/contrib/hbtip/tests/dbtohtml.prg index b9d4df74f2..4b93b3e2f4 100644 --- a/harbour/contrib/hbtip/tests/dbtohtml.prg +++ b/harbour/contrib/hbtip/tests/dbtohtml.prg @@ -10,12 +10,12 @@ PROCEDURE Main LOCAL nDll, pApi CLS - TRY - USE ..\Test.dbf - CATCH - ? "Error: Database not found TEST.DBF" + BEGIN SEQUENCE + USE test.dbf + RECOVER + ? "Error: Database not found test.dbf" QUIT - END + END SEQUENCE oDoc := THtmlDocument():new() @@ -84,8 +84,8 @@ PROCEDURE Main DbCloseArea() - IF oDoc:writeFile( "Address.html" ) - ? "File created: Address.html" + IF oDoc:writeFile( "address.html" ) + ? "File created: address.html" ELSE ? "Error: ", FError() ENDIF @@ -93,10 +93,7 @@ PROCEDURE Main WAIT ? HtmlToOem( oDoc:body:getText() ) - nDll := DllLoad( "Shell32.dll" ) - pApi := GetProcAddress( nDll, "ShellExecute" ) +// DllCall( "shell32.dll", NIL, "ShellExecute", 0, "open", "address.html", NIL, "", 1 ) + hb_run( "address.html" ) - CallDll( pApi, 0, "open", "Address.html", NIL, "", 1 ) - - DllUnload( nDll ) RETURN diff --git a/harbour/contrib/hbtip/tests/httpadv.prg b/harbour/contrib/hbtip/tests/httpadv.prg index 7aa2cb296e..e1230e270c 100644 --- a/harbour/contrib/hbtip/tests/httpadv.prg +++ b/harbour/contrib/hbtip/tests/httpadv.prg @@ -34,7 +34,7 @@ PROCEDURE MAIN( cUrl ) IF oCon:Get( oUrl:cPath ) ? "Get Sucessful" FOR i := 1 to Len( oCon:hHeaders ) - ? HGetkeyAt( oCon:hHeaders, i ) +":", HGetValueAt( oCon:hHeaders, i ) + ? hb_HKeyAt( oCon:hHeaders, i ) +":", hb_HValueAt( oCon:hHeaders, i ) NEXT ELSE ? "Get failure (server reply:", oCon:cReply , ")" diff --git a/harbour/contrib/hbtip/tests/test.dbf b/harbour/contrib/hbtip/tests/test.dbf new file mode 100644 index 0000000000000000000000000000000000000000..840005d12283927b74dcf4eca9c75f5a2ac80575 GIT binary patch literal 100387 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/harbour/contrib/hbtip/tests/tipmail.prg b/harbour/contrib/hbtip/tests/tipmail.prg index 29cc26288c..95642b82c1 100644 --- a/harbour/contrib/hbtip/tests/tipmail.prg +++ b/harbour/contrib/hbtip/tests/tipmail.prg @@ -32,7 +32,7 @@ PROCEDURE MAIN( cFileName ) WITH OBJECT oMail ? "-------------============== HEADERS =================--------------" FOR i := 1 TO Len( :hHeaders ) - ? hb_HGetKeyAt( :hHeaders, i ), ":", hb_HGetValueAt( :hHeaders, i ) + ? hb_HKeyAt( :hHeaders, i ), ":", hb_HValueAt( :hHeaders, i ) NEXT ? diff --git a/harbour/contrib/hbtip/tests/tipmmail.prg b/harbour/contrib/hbtip/tests/tipmmail.prg index 64d06bc7d4..a1f730d4e0 100644 --- a/harbour/contrib/hbtip/tests/tipmmail.prg +++ b/harbour/contrib/hbtip/tests/tipmmail.prg @@ -40,7 +40,7 @@ PROCEDURE MAIN( ... ) i := 1 DO WHILE i < PCount() - cData := PValue(i) + cData := hb_PValue(i) IF lower( cData ) == "-h" Usage() @@ -49,35 +49,35 @@ PROCEDURE MAIN( ... ) IF lower( cData ) == "-f" i++ - cData := PValue(i) + cData := hb_PValue(i) IF cData != NIL oMail:hHeaders[ "From" ] := cData ENDIF ELSEIF lower( cData ) == "-t" i++ - cData := PValue(i) + cData := hb_PValue(i) IF cData != NIL oMail:hHeaders[ "To" ] := cData ENDIF ELSEIF lower( cData ) == "-s" i++ - cData := PValue(i) + cData := hb_PValue(i) IF cData != NIL oMail:hHeaders[ "Subject" ] := cData ENDIF ELSEIF lower( cData ) == "-b" i++ - cData := PValue(i) + cData := hb_PValue(i) IF cData != NIL oMail:SetBody( cData + e"\r\n" ) ENDIF ELSEIF lower( cData ) == "-m" i++ - cData := PValue(i) + cData := hb_PValue(i) IF cData != NIL cData := Memoread( cData ) IF Empty(cData) - ? "FATAL: Can't read", PValue(i) + ? "FATAL: Can't read", hb_PValue(i) QUIT ENDIF oMail:SetBody( cData + e"\r\n") @@ -85,14 +85,14 @@ PROCEDURE MAIN( ... ) ELSE // it is an attachment file cData := Memoread( cData ) IF Empty(cData) - ? "FATAL: Can't read attachment", PValue(i) + ? "FATAL: Can't read attachment", hb_PValue(i) QUIT ENDIF oAttach := TipMail():New() oAttach:SetEncoder( "base64" ) //TODO: mime type magic auto-finder - HB_FNameSplit( PValue(i),,@cFname, @cFext ) + HB_FNameSplit( hb_PValue(i),,@cFname, @cFext ) // Some EMAIL readers use Content-Type to check for filename oAttach:hHeaders[ "Content-Type" ] := ; "application/X-TIP-Attachment; filename="; diff --git a/harbour/contrib/hbtip/tests/tiptest.prg b/harbour/contrib/hbtip/tests/tiptest.prg index a04bd8c735..18f83af08c 100644 --- a/harbour/contrib/hbtip/tests/tiptest.prg +++ b/harbour/contrib/hbtip/tests/tiptest.prg @@ -115,7 +115,7 @@ PROCEDURE MAIN( cUrl, cFile ) IF oClient:WriteFromFile( cFile ) @7,5 SAY "Data sucessfully sent" ELSE - @7,5 SAY "ERROR: Data not sent", oClient:lastErrorMessage() + @7,5 SAY "ERROR: Data not sent " + oClient:lastErrorMessage() ENDIF ELSE IF Empty( cFile ) @@ -124,7 +124,7 @@ PROCEDURE MAIN( cUrl, cFile ) @7,5 SAY "First 80 characters:" ? Trim(SubStr( cData, 1, 80 )) ELSE - @7,5 SAY "ERROR - file can't be retreived", oClient:lastErrorMessage() + @7,5 SAY "ERROR - file can't be retreived " + oClient:lastErrorMessage() ENDIF ELSE IF oClient:ReadToFile( cFile ) diff --git a/harbour/contrib/hbw32/tests/testdll.prg b/harbour/contrib/hbw32/tests/testdll.prg index 9dfd376f52..3f1b6693ca 100644 --- a/harbour/contrib/hbw32/tests/testdll.prg +++ b/harbour/contrib/hbw32/tests/testdll.prg @@ -36,48 +36,8 @@ #define MB_RIGHT 0x00080000 #define MB_RTLREADING 0x00100000 -#define CSIDL_DESKTOP 0x0000 // -#define CSIDL_INTERNET 0x0001 // Internet Explorer (icon on desktop) -#define CSIDL_PROGRAMS 0x0002 // Start Menu\Programs -#define CSIDL_CONTROLS 0x0003 // My Computer\Control Panel -#define CSIDL_PRINTERS 0x0004 // My Computer\Printers -#define CSIDL_PERSONAL 0x0005 // My Documents -#define CSIDL_FAVORITES 0x0006 // \Favorites -#define CSIDL_STARTUP 0x0007 // Start Menu\Programs\Startup -#define CSIDL_RECENT 0x0008 // \Recent -#define CSIDL_SENDTO 0x0009 // \SendTo -#define CSIDL_BITBUCKET 0x000a // \Recycle Bin -#define CSIDL_STARTMENU 0x000b // \Start Menu -#define CSIDL_DESKTOPDIRECTORY 0x0010 // \Desktop -#define CSIDL_DRIVES 0x0011 // My Computer -#define CSIDL_NETWORK 0x0012 // Network Neighborhood -#define CSIDL_NETHOOD 0x0013 // \nethood -#define CSIDL_FONTS 0x0014 // windows\fonts -#define CSIDL_TEMPLATES 0x0015 -#define CSIDL_COMMON_STARTMENU 0x0016 // All Users\Start Menu -#define CSIDL_COMMON_PROGRAMS 0X0017 // All Users\Programs -#define CSIDL_COMMON_STARTUP 0x0018 // All Users\Startup -#define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 // All Users\Desktop -#define CSIDL_APPDATA 0x001a // \Application Data -#define CSIDL_PRINTHOOD 0x001b // \PrintHood -#define CSIDL_LOCAL_APPDATA 0x001c // \Local Settings\Applicaiton Data (non roaming) -#define CSIDL_ALTSTARTUP 0x001d // non localized startup -#define CSIDL_COMMON_ALTSTARTUP 0x001e // non localized common startup -#define CSIDL_COMMON_FAVORITES 0x001f -#define CSIDL_INTERNET_CACHE 0x0020 -#define CSIDL_COOKIES 0x0021 -#define CSIDL_HISTORY 0x0022 -#define CSIDL_COMMON_APPDATA 0x0023 // All Users\Application Data -#define CSIDL_WINDOWS 0x0024 // GetWindowsDirectory() -#define CSIDL_SYSTEM 0x0025 // GetSystemDirectory() -#define CSIDL_PROGRAM_FILES 0x0026 // C:\Program Files -#define CSIDL_MYPICTURES 0x0027 // C:\Program Files\My Pictures -#define CSIDL_PROFILE 0x0028 // USERPROFILE -#define CSIDL_PROGRAM_FILES_COMMON 0x002b // C:\Program Files\Common -#define CSIDL_COMMON_TEMPLATES 0x002d // All Users\Templates -#define CSIDL_COMMON_DOCUMENTS 0x002e // All Users\Documents -#define CSIDL_COMMON_ADMINTOOLS 0x002f // All Users\Start Menu\Programs\Administrative Tools -#define CSIDL_ADMINTOOLS 0x0030 // \Start Menu\Programs\Administrative Tools +#define CSIDL_APPDATA 0x001a /* \Application Data */ +#define CSIDL_ADMINTOOLS 0x0030 /* \Start Menu\Programs\Administrative Tools */ #define MAX_PATH 260 diff --git a/harbour/source/rtl/colorind.c b/harbour/source/rtl/colorind.c index 815e5aaca3..27e2ddc797 100644 --- a/harbour/source/rtl/colorind.c +++ b/harbour/source/rtl/colorind.c @@ -6,7 +6,7 @@ * Harbour Project source code: * HB_COLORINDEX() function * - * Copyright 1999-2001 Viktor Szakats + * Copyright 1999-2008 Viktor Szakats * www - http://www.harbour-project.org * * This program is free software; you can redistribute it and/or modify @@ -56,13 +56,12 @@ HB_FUNC( HB_COLORINDEX ) { if( ISCHAR( 1 ) && ISNUM( 2 ) ) { - char * pszColor = hb_parcx( 1 ); + char * pszColor = hb_parc( 1 ); ULONG ulColorPos; ULONG ulColorLen; USHORT uiColorIndex = ( USHORT ) hb_parni( 2 ); /* Skip the given number of commas */ - for( ulColorPos = 0; pszColor[ ulColorPos ] != '\0' && uiColorIndex > 0; ulColorPos++ ) { if( pszColor[ ulColorPos ] == ',' ) @@ -70,27 +69,24 @@ HB_FUNC( HB_COLORINDEX ) } /* if found, continue */ - if( uiColorIndex == 0 ) { /* Skip the spaces after the comma */ - - while( pszColor[ ulColorPos ] == ' ' ) ulColorPos++; + while( pszColor[ ulColorPos ] == ' ' ) + ulColorPos++; /* Search for next comma or end of string */ - ulColorLen = 0; - while( pszColor[ ulColorPos + ulColorLen ] != '\0' && - pszColor[ ulColorPos + ulColorLen ] != ',' ) ulColorLen++; + pszColor[ ulColorPos + ulColorLen ] != ',' ) + ulColorLen++; /* Skip the trailing spaces */ - while( ulColorLen > 0 && - pszColor[ ulColorPos + ulColorLen - 1 ] == ' ' ) ulColorLen--; + pszColor[ ulColorPos + ulColorLen - 1 ] == ' ' ) + ulColorLen--; /* Return the string */ - hb_retclen( pszColor + ulColorPos, ulColorLen ); } else @@ -99,4 +95,3 @@ HB_FUNC( HB_COLORINDEX ) else hb_retc( NULL ); } -