2012-04-18 15:14 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/xhb/hblognet.prg
  * contrib/hbssl/tests/test.prg
  * tests/server.prg
    ! replaced hb_inetCRLF() with CRLF literals (via macro or variable)
      now it's not used anywhere in Harbour SVN

  * tests/parseini.prg
  * tests/sbartest.prg
  * tests/server.prg
  * tests/ac_test.prg
  * tests/mousetst.prg
    * formatting
    * deleted legacy comments (*)
This commit is contained in:
Viktor Szakats
2012-04-18 13:16:20 +00:00
parent d57283d208
commit 634d03ea4c
8 changed files with 345 additions and 321 deletions

View File

@@ -16,6 +16,21 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-04-18 15:14 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/xhb/hblognet.prg
* contrib/hbssl/tests/test.prg
* tests/server.prg
! replaced hb_inetCRLF() with CRLF literals (via macro or variable)
now it's not used anywhere in Harbour SVN
* tests/parseini.prg
* tests/sbartest.prg
* tests/server.prg
* tests/ac_test.prg
* tests/mousetst.prg
* formatting
* deleted legacy comments (*)
2012-04-18 04:39 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/core.c

View File

@@ -11,6 +11,8 @@
#include "hbssl.ch"
#define CRLF Chr( 13 ) + Chr( 10 )
PROCEDURE Main()
LOCAL ssl_ctx
LOCAL ssl
@@ -33,7 +35,7 @@ PROCEDURE Main()
? "INETCONN", hb_inetConnect( "www.fortify.net", 80, socket )
? "INETERR", hb_inetErrorCode( socket )
? "INETFD", hb_inetFD( socket )
? "INETSEND", hb_inetSend( socket, "GET / http/1.1" + hb_inetCRLF() + "Host: " + "www.syenar.net" + hb_inetCRLF() + hb_inetCRLF() )
? "INETSEND", hb_inetSend( socket, "GET / http/1.1" + CRLF + "Host: " + "syenar.net" + CRLF + CRLF )
? "INETERR", hb_inetErrorCode( socket )
buffer := Space( 1024 )
? "INETRECVALL", hb_inetRecvAll( socket, @buffer, Len( buffer ) )
@@ -93,7 +95,7 @@ PROCEDURE Main()
? "SSL_CIPHER_GET_BITS" , SSL_CIPHER_GET_BITS( cipher, @bits ), bits
? "SSL_CIPHER_DESCRIPTION", SSL_CIPHER_DESCRIPTION( cipher )
? "SSL_WRITE", tmp := SSL_WRITE( ssl, "GET / http/1.1" + hb_inetCRLF() + "Host: " + "www.fortify.net" + hb_inetCRLF() + hb_inetCRLF() )
? "SSL_WRITE", tmp := SSL_WRITE( ssl, "GET / http/1.1" + CRLF + "Host: " + "www.fortify.net" + CRLF + CRLF )
? "SSL_GET_ERROR", SSL_GET_ERROR( ssl, tmp )
buffer := Space( 1024 )
? "SSL_READ", tmp := SSL_READ( ssl, @buffer )

View File

@@ -52,6 +52,8 @@
#include "hbclass.ch"
#include "common.ch"
#define CRLF Chr( 13 ) + Chr( 10 )
#define HB_THREAD_SUPPORT
CLASS HB_LogEmail FROM HB_LogChannel
@@ -139,34 +141,34 @@ METHOD Send( nStyle, cMessage, cName, nPriority ) CLASS HB_LogEmail
RETURN .F.
ENDIF
hb_inetSendAll( skCon, "HELO " + ::cHelo + hb_inetCRLF() )
hb_inetSendAll( skCon, "HELO " + ::cHelo + CRLF )
IF ! ::GetOk( skCon )
RETURN .F.
ENDIF
hb_inetSendAll( skCon, "MAIL FROM: <" + ::cAddress +">" + hb_inetCRLF() )
hb_inetSendAll( skCon, "MAIL FROM: <" + ::cAddress +">" + CRLF )
IF ! ::GetOk( skCon )
RETURN .F.
ENDIF
hb_inetSendAll( skCon, "RCPT TO: <" + ::cSendTo +">" + hb_inetCRLF() )
hb_inetSendAll( skCon, "RCPT TO: <" + ::cSendTo +">" + CRLF )
IF ! ::GetOk( skCon )
RETURN .F.
ENDIF
hb_inetSendAll( skCon, "DATA" + hb_inetCRLF() )
hb_inetSendAll( skCon, "DATA" + CRLF )
IF ! ::GetOk( skCon )
RETURN .F.
ENDIF
cMessage := ::Prepare( nStyle, cMessage, cName, nPriority )
hb_inetSendAll( skCon, cMessage + hb_inetCRLF() + "." + hb_inetCRLF() )
hb_inetSendAll( skCon, cMessage + CRLF + "." + CRLF )
IF ! ::GetOk( skCon )
RETURN .F.
ENDIF
hb_inetSendAll( skCon, "QUIT" + hb_inetCRLF() )
hb_inetSendAll( skCon, "QUIT" + CRLF )
RETURN ::GetOk( skCon ) // if quit fails, the mail does not go!
@@ -185,18 +187,18 @@ RETURN .T.
METHOD Prepare( nStyle, cMessage, cName, nPriority ) CLASS HB_LogEmail
LOCAL cPre
cPre := "FROM: " + ::cAddress + hb_inetCRLF() + ;
"TO: " + ::cSendTo + hb_inetCRLF() +;
"Subject:" + ::cSubject + hb_inetCRLF() + hb_inetCRLF()
cPre := "FROM: " + ::cAddress + CRLF + ;
"TO: " + ::cSendTo + CRLF +;
"Subject:" + ::cSubject + CRLF + CRLF
IF ! Empty( ::cPrefix )
cPre += ::cPrefix + hb_inetCRLF() + hb_inetCRLF()
cPre += ::cPrefix + CRLF + CRLF
ENDIF
cPre += ::Format( nStyle, cMessage, cName, nPriority )
IF ! Empty( ::cPostfix )
cPre += hb_inetCRLF() +hb_inetCRLF() + ::cPostfix + hb_inetCRLF()
cPre += CRLF +CRLF + ::cPostfix + CRLF
ENDIF
RETURN cPre
@@ -318,7 +320,7 @@ METHOD Send( nStyle, cMessage, cName, nPriority ) CLASS HB_LogInetPort
nCount := 1
DO WHILE nCount <= Len( ::aListeners )
sk := ::aListeners[ nCount ]
hb_inetSendAll( sk, cMessage + hb_inetCRLF() )
hb_inetSendAll( sk, cMessage + CRLF )
// if there is an error, we remove the listener
IF hb_inetErrorCode( sk ) != 0
ADel( ::aListeners, nCount )

View File

@@ -180,7 +180,7 @@ aPermits[ 34 ] := .F.
nChoice := achoice( 5, 10, 20, 70, aPrompts, aPermits, "cUserFunction" )
setpos( 0, 0 )
* clear screen
// clear screen
? nChoice
if nChoice > 0

View File

@@ -1,32 +1,34 @@
//
// $Id$
//
/*
* $Id$
*/
/*
* Copyright 2000 Alejandro de Garate <alex_degarate@hotmail.com>
*
* Test mouse for Harbour
*/
*/
#include "inkey.ch"
PROCEDURE main()
LOCAL nR := 5, nC := 38
LOCAL nR := 5, nC := 38
SET CURSOR OFF
? "."; CLS
IF ! MPRESENT()
IF ! MPresent()
? " No mouse present !"
QUIT
ENDIF
@ 0, 0 TO MAXROW(),MAXCOL() DOUBLE
@ MAXROW()-2, 0 TO MAXROW(), 18 DOUBLE
@ MAXROW()-1,02 SAY "Y:"
@ MAXROW()-1,10 SAY "X:"
@ 0, 0 TO MaxRow(), MaxCol() DOUBLE
@ MaxRow() - 2, 0 TO MaxRow(), 18 DOUBLE
@ MaxRow() - 1, 2 SAY "Y:"
@ MaxRow() - 1, 10 SAY "X:"
@ nR , 02 SAY "Mouse Type : "
@ nR+1, 02 SAY "Buttons number: "
@ nR+1, 18 SAY NUMBUTTONS() PICT "9"
@ nR , 2 SAY "Mouse Type : "
@ nR + 1, 2 SAY "Buttons number: "
@ nR + 1, 18 SAY NUMBUTTONS() PICT "9"
IF NUMBUTTONS() == 2
@ nR, 18 SAY "Micros*ft mouse"
@@ -34,8 +36,8 @@ LOCAL nR := 5, nC := 38
@ nR, 18 SAY "Mouse System"
ENDIF
@ MAXROW()-2,68 TO MAXROW(),MAXCOL() DOUBLE
@ MAXROW()-1,70 SAY "Exit"
@ MaxRow() - 2, 68 TO MaxRow(), MaxCol() DOUBLE
@ MaxRow() - 1, 70 SAY "Exit"
@ 10, 02 SAY " -- Checkings -- "
@ 11, 02 SAY "Window Boundaries :"
@@ -47,222 +49,220 @@ LOCAL nR := 5, nC := 38
TEST2( nR, nC )
@ 24,0 SAY ""
@ 24, 0 SAY ""
SET CURSOR ON
?
RETURN
SET CURSOR ON
?
RETURN
******************
FUNCTION MUPDATE()
@ MAXROW()-1,04 SAY MROW() PICT "9999"
@ MAXROW()-1,12 SAY MCOL() PICT "9999"
RETURN 0
@ MaxRow() - 1, 04 SAY MRow() PICT "9999"
@ MaxRow() - 1, 12 SAY MCol() PICT "9999"
*********************************************
FUNCTION MINRECT( nTop, nLeft, nBott, nRight)
LOCAL lInside := .F.
IF MROW() >= nTop .AND. MROW() <= nBott
IF MCOL() >= nLeft .AND. MCOL() <= nRight
lInside := .T.
RETURN 0
FUNCTION MINRECT( nTop, nLeft, nBott, nRight )
LOCAL lInside := .F.
IF MRow() >= nTop .AND. MRow() <= nBott
IF MCol() >= nLeft .AND. MCol() <= nRight
lInside := .T.
ENDIF
ENDIF
ENDIF
RETURN( lInside )
RETURN lInside
// First test: Check the boundaries of the main window
***************
PROCEDURE TEST1
* First test: Check the boundaries of the main window
LOCAL nKey
@ MAXROW()-3,25 SAY "Move the cursor until the UPPER side "
LOCAL nKey
@ MaxRow() - 3, 25 SAY "Move the cursor until the UPPER side "
MUPDATE()
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
MUPDATE()
IF nKey == K_MOUSEMOVE
IF MROW() < 1
IF MRow() < 1
EXIT
ENDIF
CHECKEXIT()
ENDIF
END WHILE
ENDDO
@ MAXROW()-3,25 SAY "Move the cursor until the BOTTOM side "
@ MaxRow() - 3, 25 SAY "Move the cursor until the BOTTOM side "
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
MUPDATE()
IF nKey == K_MOUSEMOVE
IF MROW() > MAXROW()-1
IF MRow() > MaxRow() - 1
EXIT
ENDIF
CHECKEXIT()
ENDIF
END WHILE
ENDDO
@ MAXROW()-3,25 SAY "Move the cursor until the LEFT side "
@ MaxRow() - 3, 25 SAY "Move the cursor until the LEFT side "
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
MUPDATE()
IF nKey == K_MOUSEMOVE
IF MCOL() < 1
IF MCol() < 1
EXIT
ENDIF
CHECKEXIT()
ENDIF
END WHILE
ENDDO
@ MAXROW()-3,25 SAY "Move the cursor until the RIGHT side "
@ MaxRow() - 3, 25 SAY "Move the cursor until the RIGHT side "
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
MUPDATE()
IF nKey == K_MOUSEMOVE
IF MCOL() > MAXCOL()-1
IF MCol() > MaxCol() - 1
EXIT
ENDIF
CHECKEXIT()
ENDIF
END WHILE
ENDDO
@ MAXROW()-3,20 SAY SPACE(50)
@ 11, 22 SAY "Pass"
RETURN
@ MaxRow() - 3, 20 SAY Space( 50 )
@ 11, 22 SAY "Pass"
RETURN
// Second test: check the button pressing
************************
PROCEDURE TEST2 (nR, nC)
* Second test: check the button pressing
PROCEDURE TEST2 ( nR, nC )
LOCAL cSkip := "", nKey, nPress := 0
LOCAL cSkip := "", nKey, nPress := 0
@ nR ,nC SAY "ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿"
@ nR+ 1,nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ³"
@ nR+ 2,nC SAY "³ º º º º ³"
@ nR+ 3,nC SAY "³ º º º º ³"
@ nR+ 4,nC SAY "³ ÈÍÍͼ ÈÍÍͼ ³"
@ nR+ 5,nC SAY "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"
@ nR+ 6,nC SAY "³ Up Up ³"
@ nR+ 7,nC SAY "³ ³"
@ nR+ 8,nC SAY "³ ³"
@ nR+ 9,nC SAY "³ Harbour ³"
@ nR+10,nC SAY "³ mouse ³"
@ nR+11,nC SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"
@ nR , nC SAY "ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿"
@ nR + 1, nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ³"
@ nR + 2, nC SAY "³ º º º º ³"
@ nR + 3, nC SAY "³ º º º º ³"
@ nR + 4, nC SAY "³ ÈÍÍͼ ÈÍÍͼ ³"
@ nR + 5, nC SAY "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"
@ nR + 6, nC SAY "³ Up Up ³"
@ nR + 7, nC SAY "³ ³"
@ nR + 8, nC SAY "³ ³"
@ nR + 9, nC SAY "³ Harbour ³"
@ nR + 10, nC SAY "³ mouse ³"
@ nR + 11, nC SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"
IF NUMBUTTONS() == 3
@ nR+ 1,nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ» ³"
@ nR+ 2,nC SAY "³ º º º º º º ³"
@ nR+ 3,nC SAY "³ º º º º º º ³"
@ nR+ 4,nC SAY "³ ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ ³"
@ nR+ 6,nC SAY "³ Up Up Up ³"
@ nR + 1, nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ» ³"
@ nR + 2, nC SAY "³ º º º º º º ³"
@ nR + 3, nC SAY "³ º º º º º º ³"
@ nR + 4, nC SAY "³ ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ ³"
@ nR + 6, nC SAY "³ Up Up Up ³"
ENDIF
SET(_SET_EVENTMASK, INKEY_ALL)
Set( _Set_EVENTMASK, INKEY_ALL )
IF ! EMPTY( cSkip )
IF UPPER( cSkip ) == "BREAK"
SETCANCEL( .T. )
IF ! Empty( cSkip )
IF Upper( cSkip ) == "BREAK"
SetCancel( .T. )
ELSE
SETCANCEL( .F. )
SetCancel( .F. )
END IF
END IF
MUPDATE()
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
DO CASE
CASE nKey == K_MOUSEMOVE
* mouse has been moved
IF MINRECT( 19, 40, 22, 60)
MHIDE()
ELSE
MSHOW()
ENDIF
CHECKEXIT()
MUPDATE()
CASE nKey == K_MOUSEMOVE
// mouse has been moved
IF MINRECT( 19, 40, 22, 60 )
MHide()
ELSE
MShow()
ENDIF
CHECKEXIT()
MUPDATE()
CASE nKey == K_LBUTTONDOWN
* Left mouse button was pushed
@ nR+2,nC+3 SAY "°°°"
@ nR+3,nC+3 SAY "°°°"
@ nR+6,nC+3 SAY "Down"
nPress ++
CASE nKey == K_LBUTTONDOWN
// Left mouse button was pushed
@ nR + 2, nC + 3 SAY "°°°"
@ nR + 3, nC + 3 SAY "°°°"
@ nR + 6, nC + 3 SAY "Down"
nPress ++
CASE nKey == K_LBUTTONUP
* Left mouse button was released
@ nR+2,nC+3 SAY " "
@ nR+3,nC+3 SAY " "
@ nR+6,nC+3 SAY "Up "
CASE nKey == K_LBUTTONUP
// Left mouse button was released
@ nR + 2, nC + 3 SAY " "
@ nR + 3, nC + 3 SAY " "
@ nR + 6, nC + 3 SAY "Up "
CASE nKey == K_MBUTTONDOWN
* Middle mouse button was pushed
@ nR+2,nC+10 SAY "°°°"
@ nR+3,nC+10 SAY "°°°"
@ nR+6,nC+10 SAY "Down"
nPress ++
CASE nKey == K_MBUTTONDOWN
// Middle mouse button was pushed
@ nR + 2, nC + 10 SAY "°°°"
@ nR + 3, nC + 10 SAY "°°°"
@ nR + 6, nC + 10 SAY "Down"
nPress ++
CASE nKey == K_MBUTTONUP
* Middle mouse button was released
@ nR+6,nC+10 SAY "Up "
CASE nKey == K_MBUTTONUP
// Middle mouse button was released
@ nR + 6, nC + 10 SAY "Up "
CASE nKey == K_RBUTTONDOWN
* Right mouse button was pushed
@ nR+2,nC+15 SAY "°°°"
@ nR+3,nC+15 SAY "°°°"
@ nR+6,nC+15 SAY "Down"
nPress ++
CASE nKey == K_RBUTTONDOWN
// Right mouse button was pushed
@ nR + 2, nC + 15 SAY "°°°"
@ nR + 3, nC + 15 SAY "°°°"
@ nR + 6, nC + 15 SAY "Down"
nPress ++
CASE nKey == K_RBUTTONUP
* Right mouse button was released
@ nR+2,nC+15 SAY " "
@ nR+3,nC+15 SAY " "
@ nR+6,nC+15 SAY "Up "
CASE nKey == K_RBUTTONUP
// Right mouse button was released
@ nR + 2, nC + 15 SAY " "
@ nR + 3, nC + 15 SAY " "
@ nR + 6, nC + 15 SAY "Up "
CASE nKey == K_LDBLCLK
* "The left mouse button was double-clicked."
@ 13, 22 SAY "Pass"
CASE nKey == K_LDBLCLK
// "The left mouse button was double-clicked."
@ 13, 22 SAY "Pass"
CASE nKey == K_RDBLCLK
* "The right mouse button was double-clicked."
@ 14, 22 SAY "Pass"
CASE nKey == K_RDBLCLK
// "The right mouse button was double-clicked."
@ 14, 22 SAY "Pass"
OTHERWISE
@ MAXROW(),20 SAY "A keyboard key was pressed: "
@ MAXROW(),48 SAY nKey
@ MAXROW(),58 SAY iif( nKey >= 32 .AND. nKey <= 255, CHR( nKey ), "" )
@ MaxRow(), 20 SAY "A keyboard key was pressed: "
@ MaxRow(), 48 SAY nKey
@ MaxRow(), 58 SAY iif( nKey >= 32 .AND. nKey <= 255, Chr( nKey ), "" )
END CASE
IF nPress > 6
EXIT
ENDIF
END WHILE
ENDDO
@ MAXROW()-3,20 SAY SPACE(50)
@ MaxRow() - 3, 20 SAY Space( 50 )
@ 12, 22 SAY "Pass"
SET CURSOR ON
@ 20,01 SAY "MOUSE TEST FINISH!"
@ 20, 01 SAY "MOUSE TEST FINISH!"
?
RETURN
RETURN
PROCEDURE CHECKEXIT()
IF ! MINRECT( MAXROW()-2, MAXCOL()-11, MAXROW(), MAXCOL() )
RETURN
ENDIF
SET CURSOR ON
CLS
? "MOUSE TEST FINISH!"
?
QUIT
IF ! MINRECT( MaxRow() - 2, MaxCol() - 11, MaxRow(), MaxCol() )
RETURN
ENDIF
SET CURSOR ON
CLS
? "MOUSE TEST FINISH!"
?
QUIT

View File

@@ -2,32 +2,33 @@
* $Id$
*/
******************************************************************
* Test for Ini file reading/writing
*
* Giancarlo Niccolai
*
/******************************************************************
* Test for Ini file reading/writing
*
* Giancarlo Niccolai
*/
PROCEDURE Main( cName )
LOCAL hIni, aSect, cIni
LOCAL cSection
LOCAL cKey
LOCAL nRow := 1
set color to w+/b
SET COLOR TO w +/ b
CLEAR SCREEN
@nRow++,20 SAY "H A R B O U R - .ini file parser test"
@nRow++,5 SAY "Call from command line using a .ini filename as the only parameter"
@ nRow++, 20 SAY "H A R B O U R - .ini file parser test"
@ nRow++, 5 SAY "Call from command line using a .ini filename as the only parameter"
nRow++
IF Empty( cName )
cName := "parseini.ini"
@nRow++, 5 SAY "Using default parseini.ini file"
@nRow++ , 5 SAY "Using default parseini.ini file"
ENDIF
hIni := hb_IniRead( cName )
hIni := hb_iniRead( cName )
@nRow, 0
@ nRow, 0
? "Content of " + cName
@@ -51,22 +52,24 @@ PROCEDURE Main( cName )
hIni[ "Added" ][ "NEW" ] := "new"
? "Writing output to parseini_out.ini"
IF hb_IniWrite( "parseini_out.ini", hIni, "#Generated file; don't touch", "#End of file")
IF hb_iniWrite( "parseini_out.ini", hIni, "#Generated file; don't touch", "#End of file" )
? "File written"
ELSE
? "Can't write file"
ENDIF
?
? "Press any key to next text."
Inkey(0)
Inkey( 0 )
nRow := 3
@nRow, 0 CLEAR
@ nRow, 0 CLEAR
?
? "REPEATING TESTS WITHOUT AUTOMATIC MAIN SECTION"
?
hIni := hb_IniRead( cName, /*default case*/ , /*Default key indicators */ , .F. )
hIni := hb_iniRead( cName, /* default case */
, /* default key indicators */
, .F. )
? "Content of " + cName
@@ -77,7 +80,7 @@ PROCEDURE Main( cName )
/* Now (without automatic main), toplevel options may be in the root hash */
aSect := hIni[ cSection ]
IF HB_IsHash( aSect )
IF hb_isHash( aSect )
/* It's a section */
?
? "Section [" + cSection + "]"
@@ -99,18 +102,18 @@ PROCEDURE Main( cName )
? "Writing output to parseini_out1.ini"
IF hb_IniWrite( "parseini_out1.ini", hIni,;
"#Generated file without main auto section; don't touch", "#End of file",;
.F. )
"#Generated file without main auto section; don't touch", "#End of file",;
.F. )
? "File written"
ELSE
? "Can't write file"
ENDIF
?
? "Press any key to next text."
Inkey(0)
Inkey( 0 )
nRow := 3
@nRow, 0 CLEAR
@ nRow, 0 CLEAR
?
? "WRITING INI TO A STRING"
?
@@ -122,15 +125,17 @@ PROCEDURE Main( cName )
? cIni
?
? "Press any key to next text."
Inkey(0)
Inkey( 0 )
nRow := 3
@nRow, 0 CLEAR
@ nRow, 0 CLEAR
?
? "READING INI FILE FROM A STRING"
?
hIni := hb_IniReadStr( cIni, /*default case*/ , /*Default key indicators */ , .F. )
hIni := hb_IniReadStr( cIni, /*default case*/
, /*Default key indicators */
, .F. )
? "Content: "
@@ -141,7 +146,7 @@ PROCEDURE Main( cName )
/* Now (without automatic main), toplevel options may be in the root hash */
aSect := hIni[ cSection ]
IF HB_IsHash( aSect )
IF hb_isHash( aSect )
/* It's a section */
?
? "Section [" + cSection + "]"
@@ -158,10 +163,10 @@ PROCEDURE Main( cName )
?
? "Press any key to next text."
Inkey(0)
Inkey( 0 )
nRow := 3
@nRow, 0 CLEAR
@ nRow, 0 CLEAR
?
? "WRITING INI FILE TO A STRING "
?
@@ -173,7 +178,6 @@ PROCEDURE Main( cName )
? cIni
?
? "Press any key to next text."
Inkey(0)
Inkey( 0 )
RETURN
RETURN

View File

@@ -3,108 +3,110 @@
*/
/*
* ScrollBar class test
* ScrollBar class test
*
* Harbour Project source code
* http://harbour-project.org/
*
* Example donated by Diego Pego,
* modified by Alejandro de Garate
* Example donated by Diego Pego,
* modified by Alejandro de Garate
*/
#include "directry.ch"
#include "achoice.ch"
#include "inkey.ch"
#include "directry.ch"
#include "achoice.ch"
#include "inkey.ch"
#define B_THIN ( CHR( 219 ) + CHR( 223 ) + CHR( 219 ) + CHR( 219 ) + ;
CHR( 219 ) + CHR( 220 ) + CHR( 219 ) + CHR( 219 ) )
#define B_THIN ( Chr( 219 ) + Chr( 223 ) + Chr( 219 ) + Chr( 219 ) + ;
Chr( 219 ) + Chr( 220 ) + Chr( 219 ) + Chr( 219 ) )
procedure main()
PROCEDURE main()
InitScrlBar()
InitScrlBar()
RETURN
RETURN
FUNCTION InitScrlBar()
FUNCTION InitScrlBar()
LOCAL tmpFileList := {}, i
MEMVAR aFileList, filesScroll
PRIVATE aFileList := {}, filesScroll
LOCAL tmpFileList := {}, i
MEMVAR aFileList, filesScroll
PRIVATE aFileList := {}, filesScroll
CLS
SetBlink( .F. )
@ 0, 0, 24, 79 BOX REPLIC( Chr( 178 ), 9 ) COLOR "GR+/W*"
@ 4, 28 SAY " Directory " COLOR "W+/B"
@ 5, 28, 15, 60 BOX B_THIN + " " COLOR "W/W*"
CLS
SETBLINK(.F.)
@ 00,00,24,79 BOX REPLIC( CHR(178), 9) COLOR "GR+/W*"
@ 04,28 SAY " Directory " COLOR "W+/B"
@ 05,28,15,60 BOX B_THIN + " " COLOR "W/W*"
// get the current folder files to display on the aChoice menu
tmpFileList := Directory()
// get the current folder files to display on the aChoice menu
tmpFileList := directory()
FOR i := 1 TO Len( tmpFileList )
AAdd( aFileList, tmpFileList[ i ][ F_NAME ] )
NEXT
FOR i := 1 TO LEN( tmpFileList )
AADD( aFileList, tmpFileList[ i ][ F_NAME ])
NEXT
filesScroll := ScrollBar( 06, 14, 60, NIL, 1 )
filesScroll := ScrollBar( 06, 14, 60, NIL, 1 )
filesScroll:total := Len( aFileList )
filesScroll:total := LEN( aFileList )
filesScroll:SetColor( "W+/W, W+/W" ) // New method!
SET COLOR TO "N/W*, W+/B,,,W/N"
filesScroll:SetColor("W+/W, W+/W") // New method!
SET COLOR TO "N/W*, W+/B,,,W/N"
filesScroll:display()
filesScroll:display()
i := AChoice( 06, 29, 14, 59, aFileList, , "updateFilesScroll" )
i := ACHOICE( 06, 29, 14, 59, aFileList, , "updateFilesScroll")
@ 23, 0 SAY iif( i < 1, "", aFileList[ i ] ) COLOR "N/W*"
SET COLOR TO
@ 24, 0
@ 23,0 SAY IIF( i < 1,"", aFileList[ i ]) COLOR "N/W*"
SET COLOR TO
@ 24,0
RETURN 0
RETURN 0
// function used to update scrollbar
// function used to update scrollbar
FUNCTION updateFilesScroll( modo )
FUNCTION updateFilesScroll( modo )
LOCAL newPos, valRet := AC_CONT, ; // Default to continue
ultTecla := LASTKEY()
MEMVAR filesScroll
newPos := filesScroll:current
LOCAL newPos, valRet := AC_CONT // Default to continue
LOCAL ultTecla := LastKey()
DO CASE
CASE ultTecla == K_CTRL_PGUP
newPos := 1
CASE ultTecla == K_CTRL_PGDN
newPos := filesScroll:total
CASE ultTecla == K_CTRL_HOME
newPos := newPos - (filesScroll:barLength + 1)
CASE ultTecla == K_CTRL_END
newPos := newPos + (filesScroll:barLength + 1)
CASE ultTecla == K_PGUP
newPos := newPos - (filesScroll:barLength + 1)
CASE ultTecla == K_PGDN
newPos := newPos + (filesScroll:barLength + 1)
CASE ultTecla == K_UP
newPos--
CASE ultTecla == K_DOWN
newPos++
CASE modo == AC_EXCEPT
DO CASE
case ultTecla == K_RETURN
valRet := AC_SELECT
CASE ultTecla == K_ESC
valRet := AC_ABORT
OTHERWISE
valRet := AC_GOTO
ENDCASE
ENDCASE
MEMVAR filesScroll
IF (newPos < 1)
newPos := 1
ELSEIF (newPos >= filesScroll:total)
newPos := filesScroll:total
ENDIF
newPos := filesScroll:current
filesScroll:current := newPos
filesScroll:update()
DO CASE
CASE ultTecla == K_CTRL_PGUP
newPos := 1
CASE ultTecla == K_CTRL_PGDN
newPos := filesScroll:total
CASE ultTecla == K_CTRL_HOME
newPos := newPos - ( filesScroll:barLength + 1 )
CASE ultTecla == K_CTRL_END
newPos := newPos + ( filesScroll:barLength + 1 )
CASE ultTecla == K_PGUP
newPos := newPos - ( filesScroll:barLength + 1 )
CASE ultTecla == K_PGDN
newPos := newPos + ( filesScroll:barLength + 1 )
CASE ultTecla == K_UP
newPos--
CASE ultTecla == K_DOWN
newPos++
CASE modo == AC_EXCEPT
DO CASE
CASE ultTecla == K_RETURN
valRet := AC_SELECT
CASE ultTecla == K_ESC
valRet := AC_ABORT
OTHERWISE
valRet := AC_GOTO
ENDCASE
ENDCASE
RETURN valRet
IF newPos < 1
newPos := 1
ELSEIF newPos >= filesScroll:total
newPos := filesScroll:total
ENDIF
filesScroll:current := newPos
filesScroll:update()
RETURN valRet

View File

@@ -2,20 +2,20 @@
* $Id$
*/
***************************************************
* Harbour Inet demo server program
*
* Giancarlo Niccolai
*
* In this program, the server uses just one thread
* to demonstrate how to use timeout sockets.
*
/***************************************************
* Harbour Inet demo server program
*
* Giancarlo Niccolai
*
* In this program, the server uses just one thread
* to demonstrate how to use timeout sockets.
*/
PROCEDURE Main( cPort )
LOCAL Socket, s
LOCAL nResponse, cResponse
LOCAL nTurn := 0, nTurn1 := 0
LOCAL CRLF := hb_InetCRLF()
LOCAL CRLF := Chr( 13 ) + Chr( 10 )
LOCAL bCont := .T.
CLS
@@ -24,14 +24,14 @@ PROCEDURE Main( cPort )
cPort := "2000"
ENDIF
hb_InetInit()
hb_inetInit()
@ 1, 15 SAY "H A R B O U R - Inet Api Server Demo"
@ 2, 5 SAY "Contact this server using telnet or the Harbour Inet Client demo"
@ 3, 5 SAY "Press a [KEY] to terminate the program"
@ 5, 5 SAY "Server listening on port " + cPort + "..."
Socket := hb_InetServer( Val( cPort ) )
hb_InetTimeout( Socket, 500 )
@ 2, 5 SAY "Contact this server using telnet or the Harbour Inet Client demo"
@ 3, 5 SAY "Press a [KEY] to terminate the program"
@ 5, 5 SAY "Server listening on port " + cPort + "..."
Socket := hb_inetServer( Val( cPort ) )
hb_inetTimeout( Socket, 500 )
DO WHILE bCont
@@ -41,15 +41,15 @@ PROCEDURE Main( cPort )
@ 9, 5 SAY Space( 70 )
@ 6, 5
* Accepting a connection
// Accepting a connection
DO WHILE bCont
Progress( @nTurn, 5, 39 )
s := hb_InetAccept( Socket )
IF hb_InetErrorCode( Socket ) == 0
s := hb_inetAccept( Socket )
IF hb_inetErrorCode( Socket ) == 0
EXIT
ENDIF
IF Inkey() != 0
bCont := .f.
bCont := .F.
ENDIF
ENDDO
@@ -57,60 +57,59 @@ PROCEDURE Main( cPort )
EXIT
ENDIF
hb_InetTimeout( s, 500 )
hb_inetTimeout( s, 500 )
@ 6, 5 SAY "Connection from: " + hb_InetAddress( s ) + ":" + Str( hb_InetPort( s ), 5 )
@ 6, 5 SAY "Connection from: " + hb_inetAddress( s ) + ":" + Str( hb_inetPort( s ), 5 )
@ 7, 5 SAY "Receiving: "
@ 8, 5
nResponse := hb_InetSend( s, "Welcome to my server!" + CRLF )
nResponse := hb_inetSend( s, "Welcome to my server!" + CRLF )
DO WHILE bCont
// This timeout ...
hb_InetTimeout( s, 250 )
hb_inetTimeout( s, 250 )
// ... will trigger this periodic callback,
hb_InetPeriodCallback( s, { @Progress(), @nTurn, 6, 39 } )
hb_inetPeriodCallback( s, { @Progress(), @nTurn, 6, 39 } )
// that will be called each TIMEOUT Milliseconds.
cResponse := hb_InetRecvLine( s, @nResponse )
// hb_InetRecvLine won't return until the periodic callback returns .F.,
cResponse := hb_inetRecvLine( s, @nResponse )
// hb_inetRecvLine won't return until the periodic callback returns .F.,
// or the Timelimit has been reached. Timelimit is currently -1, so
// hb_InetRecvLine will wait forever.
// hb_inetRecvLine will wait forever.
DO CASE
CASE hb_InetErrorCode( s ) == 0
IF Lower( cResponse ) == "quit"
bCont := .F.
ENDIF
@ 8, 5 SAY space(70)
@ 8, 5 SAY cResponse
cResponse := "Count: " + Str( nResponse ) + " characters" + CRLF
hb_InetSend( s, cResponse )
CASE hb_inetErrorCode( s ) == 0
IF Lower( cResponse ) == "quit"
bCont := .F.
ENDIF
@ 8, 5 SAY space(70)
@ 8, 5 SAY cResponse
cResponse := "Count: " + Str( nResponse ) + " characters" + CRLF
hb_inetSend( s, cResponse )
CASE hb_InetErrorCode( s ) == -1
* idle (timed out)
Progress( @nTurn1, 7, 17 )
CASE hb_inetErrorCode( s ) == -1
// idle (timed out)
Progress( @nTurn1, 7, 17 )
OTHERWISE
@7, 5 SAY "Received Error " + Str( hb_InetErrorCode( s ) ) + ": " + hb_InetErrorDesc( s )
@ 8, 5 SAY space(70)
@ 9, 5 SAY space(70)
@ 9, 5 SAY "Press a key to continue"
Inkey( 0 )
EXIT
OTHERWISE
@ 7, 5 SAY "Received Error " + Str( hb_inetErrorCode( s ) ) + ": " + hb_inetErrorDesc( s )
@ 8, 5 SAY Space( 70 )
@ 9, 5 SAY Space( 70 )
@ 9, 5 SAY "Press a key to continue"
Inkey( 0 )
EXIT
END CASE
ENDCASE
IF Inkey() != 0
bCont := .f.
bCont := .F.
ENDIF
ENDDO
ENDDO
hb_InetCleanup()
hb_inetCleanup()
RETURN
PROCEDURE Progress( nProgress, nDrow, nDcol )
LOCAL nRow := Row(), nCol := Col()
@@ -118,14 +117,14 @@ PROCEDURE Progress( nProgress, nDrow, nDcol )
@ nDrow, nDcol SAY "[ ]"
DO CASE
CASE nProgress = 0
@ nDrow, nDcol + 1 SAY "-"
CASE nProgress = 1
@ nDrow, nDcol + 1 SAY "\"
CASE nProgress = 2
@ nDrow, nDcol + 1 SAY "|"
CASE nProgress = 3
@ nDrow, nDcol + 1 SAY "/"
CASE nProgress == 0
@ nDrow, nDcol + 1 SAY "-"
CASE nProgress == 1
@ nDrow, nDcol + 1 SAY "\"
CASE nProgress == 2
@ nDrow, nDcol + 1 SAY "|"
CASE nProgress == 3
@ nDrow, nDcol + 1 SAY "/"
ENDCASE
nProgress++