2012-11-08 16:02 UTC+0100 Viktor Szakats (harbour syenar.net)

* contrib/hbmysql/tmysql.prg
  * contrib/hbnf/tests/test.prg
  * contrib/hbtip/cgi.prg
  * contrib/hbtip/tests/base64.prg
  * contrib/hbtip/tests/dbtohtml.prg
  * contrib/hbtip/tests/ftpadv.prg
  * contrib/hbtip/tests/httpadv.prg
  * contrib/hbtip/tests/tiptest.prg
  * contrib/hbtip/thtml.prg
  * contrib/rddads/tests/testmg.prg
  * extras/gfspell/spell.prg
  * extras/hbvpdf/hbvpdf.prg
  * extras/httpsrv/cgifunc.prg
  * extras/httpsrv/modules/tableservletdb.prg
  * extras/httpsrv/session.prg
  * extras/httpsrv/uhttpd.prg
  * utils/hbmk2/hbmk2.prg
    * minor cleanups

  * contrib/xhb/*.ch
    * formatted .ch files
    ! fixed SETLASTKEY() to be HB_SETLASTKEY() in xhb

  * contrib/hbtinymt/3rd/tinymt/tinymt.hbp
  - contrib/hbtinymt/3rd/tinymt/tinymt.hbx
    ! deleted .hbx file for 3rd lib and fixed not to generate it

  * extras/httpsrv/modules/tableservletdb.prg
    ! DEFAULT TO -> hb_default()
This commit is contained in:
Viktor Szakats
2012-11-08 15:06:50 +00:00
parent 3cba05eca5
commit 95ca642c65
34 changed files with 953 additions and 950 deletions

View File

@@ -16,6 +16,37 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-11-08 16:02 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbmysql/tmysql.prg
* contrib/hbnf/tests/test.prg
* contrib/hbtip/cgi.prg
* contrib/hbtip/tests/base64.prg
* contrib/hbtip/tests/dbtohtml.prg
* contrib/hbtip/tests/ftpadv.prg
* contrib/hbtip/tests/httpadv.prg
* contrib/hbtip/tests/tiptest.prg
* contrib/hbtip/thtml.prg
* contrib/rddads/tests/testmg.prg
* extras/gfspell/spell.prg
* extras/hbvpdf/hbvpdf.prg
* extras/httpsrv/cgifunc.prg
* extras/httpsrv/modules/tableservletdb.prg
* extras/httpsrv/session.prg
* extras/httpsrv/uhttpd.prg
* utils/hbmk2/hbmk2.prg
* minor cleanups
* contrib/xhb/*.ch
* formatted .ch files
! fixed SETLASTKEY() to be HB_SETLASTKEY() in xhb
* contrib/hbtinymt/3rd/tinymt/tinymt.hbp
- contrib/hbtinymt/3rd/tinymt/tinymt.hbx
! deleted .hbx file for 3rd lib and fixed not to generate it
* extras/httpsrv/modules/tableservletdb.prg
! DEFAULT TO -> hb_default()
2012-11-08 14:59 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/src/rtl/rat.c
! fixed HB_RAT() to respect end range in the same way as in HB_AT()

View File

@@ -1473,10 +1473,10 @@ METHOD CreateTable( cTable, aStruct, cPrimaryKey, cUniqueKey, cAuto ) CLASS TMyS
NEXT
IF cPrimarykey != NIL
::cCreateQuery += ' PRIMARY KEY (' + cPrimaryKey + '),'
::cCreateQuery += " PRIMARY KEY (" + cPrimaryKey + "),"
ENDIF
IF cUniquekey != NIL
::cCreateQuery += ' UNIQUE ' + cUniquekey + ' (' + cUniqueKey + '),'
::cCreateQuery += " UNIQUE " + cUniquekey + " (" + cUniqueKey + "),"
ENDIF
// remove last comma from list

View File

@@ -12,10 +12,10 @@ PROCEDURE Main()
nmar := ft_MVersion( @nver, @ntype, @nir )
ppp := nmar + nver
? Str( nmar, 2, 0 ), '.', Str( nver, 2, 0 )
? Str( nmar, 2, 0 ), ".", Str( nver, 2, 0 )
? ppp / 100
Inkey( 0 )
? 'is mouse on', ft_MReset()
? "is mouse on", ft_MReset()
Inkey( 0 )
? ft_MShowCrs()
Inkey( 0 )
@@ -25,8 +25,8 @@ PROCEDURE Main()
Inkey( 0 )
DO WHILE LastKey() != K_ESC
? 'mouse row is', ft_MGetX()
? 'mouse col is', ft_MGetY()
? "mouse row is", ft_MGetX()
? "mouse col is", ft_MGetY()
IF LastKey() == K_ESC
EXIT
ENDIF

View File

@@ -9,6 +9,8 @@
-o${hb_targetname}
-hbx=
-warn=low
-pic

View File

@@ -1,29 +0,0 @@
/* --------------------------------------------------------------------
* NOTE: You can add manual override which functions to include or
* exclude from automatically generated EXTERNAL/DYNAMIC list.
* Syntax: // HB_FUNC_INCLUDE <func>
* // HB_FUNC_EXCLUDE <func>
*/
/* --------------------------------------------------------------------
* WARNING: Automatically generated code below. DO NOT EDIT!
* Regenerate using hbmk2 '-hbx=' option.
*/
#ifndef __HBEXTERN_CH__TINYMT__
#define __HBEXTERN_CH__TINYMT__
#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__TINYMT__ANNOUNCE )
ANNOUNCE __HBEXTERN__TINYMT__
#endif
#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__TINYMT__REQUEST )
#command DYNAMIC <fncs,...> => EXTERNAL <fncs>
#endif
#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__TINYMT__REQUEST )
#uncommand DYNAMIC <fncs,...> => EXTERNAL <fncs>
#endif
#endif

View File

@@ -355,24 +355,24 @@ METHOD ErrHandler( xError ) CLASS TIpCgi
cErrMsg += '<table border="1">'
cErrMsg += '<tr><td>SCRIPT NAME:</td><td>' + GetEnv( "SCRIPT_NAME" ) + '</td></tr>'
cErrMsg += "<tr><td>SCRIPT NAME:</td><td>" + GetEnv( "SCRIPT_NAME" ) + "</td></tr>"
IF HB_ISOBJECT( xError )
cErrMsg += '<tr><td>CRITICAL ERROR:</td><td>' + xError:Description + '</td></tr>'
cErrMsg += '<tr><td>OPERATION:</td><td>' + xError:Operation + '</td></tr>'
cErrMsg += '<tr><td>OS ERROR:</td><td>' + hb_ntos( xError:OsCode ) + ' IN ' + xError:SubSystem + '/' + hb_ntos( xError:SubCode ) + '</td></tr>'
cErrMsg += '<tr><td>FILENAME:</td><td>' + Right( xError:FileName, 40 ) + '</td></tr>'
cErrMsg += "<tr><td>CRITICAL ERROR:</td><td>" + xError:Description + "</td></tr>"
cErrMsg += "<tr><td>OPERATION:</td><td>" + xError:Operation + "</td></tr>"
cErrMsg += "<tr><td>OS ERROR:</td><td>" + hb_ntos( xError:OsCode ) + " IN " + xError:SubSystem + "/" + hb_ntos( xError:SubCode ) + "</td></tr>"
cErrMsg += "<tr><td>FILENAME:</td><td>" + Right( xError:FileName, 40 ) + "</td></tr>"
ELSEIF HB_ISSTRING( xError )
cErrMsg += '<tr><td>ERROR MESSAGE:</td><td>' + tip_HtmlSpecialChars( xError ) + '</td></tr>'
cErrMsg += "<tr><td>ERROR MESSAGE:</td><td>" + tip_HtmlSpecialChars( xError ) + "</td></tr>"
ENDIF
nCalls := 1
DO WHILE ! Empty( ProcName( nCalls ) )
cErrMsg += '<tr><td>PROC/LINE:</td><td>' + ProcName( nCalls ) + "/" + hb_ntos( ProcLine( nCalls ) ) + '</td></tr>'
cErrMsg += "<tr><td>PROC/LINE:</td><td>" + ProcName( nCalls ) + "/" + hb_ntos( ProcLine( nCalls ) ) + "</td></tr>"
nCalls++
ENDDO
cErrMsg += '</table>'
cErrMsg += "</table>"
::Write( cErrMsg )
@@ -393,25 +393,25 @@ METHOD Write( cString ) CLASS TIpCgi
METHOD StartHtml( hOptions ) CLASS TIpCgi
::cHtmlPage += ;
'<?xml version="1.0"' + HtmlOption( hOptions, 'encoding', ' ' ) + '?>' + _CRLF + ;
'<?xml version="1.0"' + HtmlOption( hOptions, "encoding", " " ) + "?>" + _CRLF + ;
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"' + _CRLF + ;
'"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' + _CRLF + ;
'<html xmlns="http://www.w3.org/1999/xhtml">' + ;
'<head>' + ;
HtmlTag( hOptions, 'title', 'title' ) + ;
"<head>" + ;
HtmlTag( hOptions, "title", "title" ) + ;
HtmlScript( hOptions ) + ;
HtmlStyle( hOptions ) + ;
HtmlLinkRel( hOptions ) + ;
'</head>' + ;
'<body ' + ;
"</head>" + ;
"<body " + ;
HtmlAllOption( hOptions ) + ;
'>'
">"
RETURN Self
METHOD EndHtml() CLASS TIpCgi
::cHtmlPage += '</body></html>'
::cHtmlPage += "</body></html>"
RETURN Self
@@ -552,7 +552,7 @@ STATIC FUNCTION HtmlScript( hVal, cKey )
IF HB_ISARRAY( cVal )
cTmp := ""
AScan( cVal, {| cVar | cTmp += cVar } )
cRet += '<script type="text/javascript">' + _CRLF + '<!--' + _CRLF + cTmp + _CRLF + '-->' + _CRLF + '</script>' + _CRLF
cRet += '<script type="text/javascript">' + _CRLF + "<!--" + _CRLF + cTmp + _CRLF + "-->" + _CRLF + "</script>" + _CRLF
ENDIF
ENDIF
ENDIF
@@ -595,7 +595,7 @@ STATIC FUNCTION HtmlStyle( hVal, cKey )
IF HB_ISARRAY( cVal )
cTmp := ""
AScan( cVal, {| cVar | cTmp += cVar } )
cRet += '<style type="text/css">' + _CRLF + '<!--' + _CRLF + cTmp + _CRLF + '-->' + _CRLF + '</style>' + _CRLF
cRet += '<style type="text/css">' + _CRLF + "<!--" + _CRLF + cTmp + _CRLF + "-->" + _CRLF + "</style>" + _CRLF
ENDIF
ENDIF
ENDIF

View File

@@ -36,16 +36,16 @@ PROCEDURE Main( ... )
FOR nLen := 1 TO PCount()
cData := Lower( hb_PValue( nLen ) )
DO CASE
CASE cData == '-h'
CASE cData == "-h"
lHelp := .T.
CASE cData == '-d'
CASE cData == "-d"
lDecode := .T.
CASE cData == '-q'
CASE cData == "-q"
lQp := .T.
CASE cData == '-u'
CASE cData == "-u"
lUrl := .T.
OTHERWISE

View File

@@ -46,7 +46,7 @@ PROCEDURE Main
oNode := oNode + "b"
/* Operator "+" creates a new <font> node with attribute */
oNode := oNode + "font color='blue'"
oNode := oNode + 'font color="blue"'
oNode:text := "sample "
/* Operator "-" closes 2nd <font>, result is <b> node */

View File

@@ -21,8 +21,8 @@ PROCEDURE Main( cUrl )
ENDIF
IF oUrl:cProto != "ftp"
? 'This is a "DELE" test for ftp.'
? 'Use an ftp address with a file that you can delete.'
? "This is a 'DELE' test for ftp."
? "Use an ftp address with a file that you can delete."
?
QUIT
ENDIF

View File

@@ -21,8 +21,8 @@ PROCEDURE Main( cUrl )
ENDIF
IF oUrl:cProto != "http"
? 'This is a header test for http.'
? 'Use an http address.'
? "This is a header test for http."
? "Use an http address."
?
QUIT
ENDIF

View File

@@ -105,7 +105,7 @@ PROCEDURE Main( cUrl, cFile )
@ 5, 5 SAY "Connection status: " + oClient:cReply
ENDIF
IF ! Empty( cFile ) .AND. Left( cFile, 1 ) == '+'
IF ! Empty( cFile ) .AND. Left( cFile, 1 ) == "+"
cFile := SubStr( cFile, 2 )
bWrite := .T.
ENDIF

View File

@@ -139,12 +139,12 @@ METHOD new( cHtmlString ) CLASS THtmlDocument
LOCAL cEmptyHtmlDoc, oNode, oSubNode, oErrNode, aHead, aBody, nMode := 0
cEmptyHtmlDoc := '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' + hb_eol() + ;
'<html>' + hb_eol() + ;
' <head>' + hb_eol() + ;
' </head>' + hb_eol() + ;
' <body>' + hb_eol() + ;
' </body>' + hb_eol() + ;
'</html>'
"<html>" + hb_eol() + ;
" <head>" + hb_eol() + ;
" </head>" + hb_eol() + ;
" <body>" + hb_eol() + ;
" </body>" + hb_eol() + ;
"</html>"
IF ! HB_ISSTRING( cHtmlString )
::root := THtmlNode():new( cEmptyHtmlDoc )

View File

@@ -82,7 +82,7 @@ PROCEDURE Main()
? "Advantage Database Server Management Functions in Harbour"
?
? "Connect:", AdsMgConnect( 'C:' )
? "Connect:", AdsMgConnect( "C:" )
?
? "AdsVersion( 0 ):", AdsVersion( 0 )
? "AdsVersion( 3 ):", AdsVersion( 3 )

View File

@@ -44,7 +44,7 @@
*
*/
#xtranslate DEFAULT( <p>, <v> ) => <p> := iif( <p> == NIL, <v>, <p> )
#xtranslate Default( <p>, <v> ) => <p> := iif( <p> == NIL, <v>, <p> )
#xtranslate HTMLSpace( <n> ) => Replicate( "&nbsp;", <n> ) //"&#32;"
#xtranslate CRLF() => Chr( 13 ) + Chr( 10 )

View File

@@ -60,34 +60,34 @@
#xcommand C STRUCTURE <!stru!> [ALIGN <align> ] => ;
INIT PROCEDURE __INIT_<stru>; ;
__ActiveStructure( #<stru>, <align> ) ; ;
#xtranslate IS <stru> \[ \<x: :=, INIT> { \<initlist,...> } ] => := HB_CStructure( #<stru> ):Init( {\<initlist>} ); ;
#xtranslate IS <stru> FROM \<pointer> => := HB_CStructure( #<stru> ):Buffer( \<pointer> )
#xtranslate IS <stru> \[ \<x: :=, INIT> { \<initlist,...> } ] => := hb_CStructure( #<stru> ):Init( {\<initlist>} ); ;
#xtranslate IS <stru> FROM \<pointer> => := hb_CStructure( #<stru> ):Buffer( \<pointer> )
// <elem> instead of <!elem!> to allow ElemName[n] syntax.
#xcommand MEMBER <elem> IS <type> => HB_Member( #<elem>, <type> )
#xcommand MEMBER <elem> IS <type> => hb_Member( #<elem>, <type> )
/*
Will match:
MEMBER <elem> IS <!stru!>
due to expansion of:
#xtranslate IS <stru> [...] => := HB_CStructure( #<stru> ):Init( {} )
#xtranslate IS <stru> [...] => := hb_CStructure( #<stru> ):Init( {} )
as established by C STRUCTURE <!stru!> #xcommand for the given structure.
*/
#xcommand MEMBER <elem> := HB_CStructure( <literalstru> ):Init( {} ) => ;
HB_Member( #<elem>, HB_CStructureId( <literalstru>, .T. ) )
#xcommand MEMBER <elem> := hb_CStructure( <literalstru> ):Init( {} ) => ;
hb_Member( #<elem>, hb_CStructureId( <literalstru>, .T. ) )
#xcommand MEMBER <!elem!> IS <type> ( <nlen> ) => HB_Member( #<elem>, HB_CTypeArrayID( <type>, <nlen> ) )
#xcommand MEMBER <!elem!> IS <type> ( <nlen> ) => hb_Member( #<elem>, hb_CTypeArrayId( <type>, <nlen> ) )
#xcommand MEMBER <!elem!> AS <!stru!> => ;
HB_Member( #<elem>, HB_CStructureId( #<stru>, .F. ) )
hb_Member( #<elem>, hb_CStructureId( #<stru>, .F. ) )
#xcommand END C STRUCTURE [<!stru!>] => ; ;
__ClsSetModule( __ActiveStructure() ); ;
RETURN
#xcommand IMPORT C STRUCTURE <!stru!> => ;
#xtranslate IS <stru> \[ \<x: :=, INIT> { \<initlist,...> } ] => := HB_CStructure( #<stru> ):Init( {\<initlist>} ); ;
#xtranslate IS <stru> FROM \<pointer> => := HB_CStructure( #<stru> ):Buffer( \<pointer> )
#xtranslate IS <stru> \[ \<x: :=, INIT> { \<initlist,...> } ] => := hb_CStructure( #<stru> ):Init( {\<initlist>} ); ;
#xtranslate IS <stru> FROM \<pointer> => := hb_CStructure( #<stru> ):Buffer( \<pointer> )
//----------------------------- C Syntax support ---------------------------------//
/* NOTES:
@@ -101,17 +101,17 @@
#xcommand typedef struct [<!tag!>] { [[struct] <elem>] } <!stru!> [, <*synon*>] => ;
INIT PROCEDURE __INIT_<stru>; ;
HB_CStructureCSyntax( #<stru>, {[#<elem>,]}, <(tag)>, <"synon">, __PACK ); ;
hb_CStructureCSyntax( #<stru>, {[#<elem>,]}, <(tag)>, <"synon">, __PACK ); ;
__ClsSetModule( __ActiveStructure() ); ;
RETURN; ;
#xtranslate IS <stru> \[ \<x: :=, INIT> { \<initlist,...> } ] => := HB_CStructure( #<stru> ):Init( {\<initlist>} ); ;
#xtranslate IS <stru> FROM \<pointer> => := HB_CStructure( #<stru> ):Buffer( \<pointer> )
#xtranslate IS <stru> \[ \<x: :=, INIT> { \<initlist,...> } ] => := hb_CStructure( #<stru> ):Init( {\<initlist>} ); ;
#xtranslate IS <stru> FROM \<pointer> => := hb_CStructure( #<stru> ):Buffer( \<pointer> )
#xcommand pragma pack( <pack> ) => #undef __PACK; #define __PACK <pack>
#xcommand pragma pack() => #undef __PACK; #define __PACK 8
#xtranslate ( struct <stru> ) [<buffer>] => HB_CStructure( #<stru> ):Buffer( <buffer> )
#xtranslate ( struct <stru>* ) <pointer> => HB_CStructure( #<stru> ):Pointer( <pointer> )
#xtranslate ( struct <stru> ) [<buffer>] => hb_CStructure( #<stru> ):Buffer( <buffer> )
#xtranslate ( struct <stru>* ) <pointer> => hb_CStructure( #<stru> ):Pointer( <pointer> )
#endif
#endif /* __HBCSTRUCT_CH_ */

View File

@@ -64,182 +64,181 @@
#define __PLATFORM__LINUX
#endif
#xtranslate hb_ScrMaxRow() => gtInfo( HB_GTI_SCREENHEIGHT )
#xtranslate hb_ScrMaxCol() => gtInfo( HB_GTI_SCREENWIDTH )
#xtranslate MaxRow(.T.) => gtInfo( HB_GTI_SCREENHEIGHT )
#xtranslate MaxCol(.T.) => gtInfo( HB_GTI_SCREENWIDTH )
#xtranslate hb_keyNext([<x>]) => NextKey(<x>)
#xtranslate hb_ScrMaxRow() => gtInfo( HB_GTI_SCREENHEIGHT )
#xtranslate hb_ScrMaxCol() => gtInfo( HB_GTI_SCREENWIDTH )
#xtranslate MaxRow( .T. ) => gtInfo( HB_GTI_SCREENHEIGHT )
#xtranslate MaxCol( .T. ) => gtInfo( HB_GTI_SCREENWIDTH )
#xtranslate hb_keyNext( [<x>] ) => NextKey( <x> )
#xtranslate hb_osNewLine() => hb_eol()
#xtranslate hb_osPathSeparator() => hb_ps()
#xtranslate hb_osNewLine() => hb_eol()
#xtranslate hb_osPathSeparator() => hb_ps()
#xtranslate hb_dbPack() => __dbPack()
#xtranslate hb_dbZap() => __dbZap()
#xtranslate hb_dbDrop([<x,...>]) => dbDrop(<x>)
#xtranslate hb_dbExists([<x,...>]) => dbExists(<x>)
#xtranslate hb_FieldLen([<x>]) => FieldLen(<x>)
#xtranslate hb_FieldDec([<x>]) => FieldDec(<x>)
#xtranslate hb_FieldType([<x>]) => FieldType(<x>)
#xtranslate hb_dbPack() => __dbPack()
#xtranslate hb_dbZap() => __dbZap()
#xtranslate hb_dbDrop( [<x,...>] ) => dbDrop( <x> )
#xtranslate hb_dbExists( [<x,...>] ) => dbExists( <x> )
#xtranslate hb_FieldLen( [<x>] ) => FieldLen( <x> )
#xtranslate hb_FieldDec( [<x>] ) => FieldDec( <x> )
#xtranslate hb_FieldType( [<x>] ) => FieldType( <x> )
#xtranslate hb_gtInfo( HB_GTI_INKEYREAD [, <x>] ) => SetInkeyBeforeBlock([<x>]) <-x->
#xtranslate hb_gtInfo( HB_GTI_INKEYFILTER [, <x>] ) => SetInkeyAfterBlock([<x>]) <-x->
#xtranslate hb_gtInfo( HB_GTI_INKEYREAD [, <x>] ) => SetInkeyBeforeBlock( [<x>] ) <-x->
#xtranslate hb_gtInfo( HB_GTI_INKEYFILTER [, <x>] ) => SetInkeyAfterBlock( [<x>] ) <-x->
#xtranslate hb_processOpen([<x,...>]) => hb_openProcess(<x>)
#xtranslate hb_processClose([<x,...>]) => hb_closeProcess(<x>)
#xtranslate hb_processOpen( [<x,...>] ) => hb_OpenProcess( <x> )
#xtranslate hb_processClose( [<x,...>] ) => hb_CloseProcess( <x> )
#xtranslate hb_isregex([<x>]) => hb_isregexstring(<x>)
#xtranslate hb_methodName([<x,...>]) => methodName(<x>)
#xtranslate hb_libLoad([<x,...>]) => libLoad(<x>)
#xtranslate hb_libFree([<x,...>]) => libFree(<x>)
#xtranslate hb_adler32([<x,...>]) => hb_checksum(<x>)
#xtranslate hb_keySetLast([<x,...>]) => setLastKey(<x>)
#xtranslate hb_setLastKey([<x,...>]) => setLastKey(<x>)
#xtranslate hb_CStr([<x,...>]) => CStr(<x>)
#xtranslate hb_valToExp([<x,...>]) => ValToPrgExp(<x>)
#xtranslate hb_rddInfo([<x,...>]) => rddInfo(<x>)
#xtranslate hb_idleSleep([<x,...>]) => SecondsSleep(<x>)
#xtranslate hb_UserName() => NetName(1)
#xtranslate hb_FSize(<x>) => FileSize(<x>)
#xtranslate hb_WildMatch([<x,...>]) => WildMatch(<x>)
#xtranslate hb_bitTest([<x,...>]) => hb_bitIsSet(<x>)
#xtranslate hb_Deserialize(<x>) => hb_DeserialNext(<x>)
#xtranslate hb_IsRegex( [<x>] ) => hb_IsRegexString( <x> )
#xtranslate hb_MethodName( [<x,...>] ) => MethodName( <x> )
#xtranslate hb_libLoad( [<x,...>] ) => LibLoad( <x> )
#xtranslate hb_libFree( [<x,...>] ) => LibFree( <x> )
#xtranslate hb_Adler32( [<x,...>] ) => hb_Checksum( <x> )
#xtranslate hb_keySetLast( [<x,...>] ) => hb_SetLastKey( <x> )
#xtranslate hb_CStr( [<x,...>] ) => CStr( <x> )
#xtranslate hb_ValToExp( [<x,...>] ) => ValToPrgExp( <x> )
#xtranslate hb_rddInfo( [<x,...>] ) => rddInfo( <x> )
#xtranslate hb_idleSleep( [<x,...>] ) => SecondsSleep( <x> )
#xtranslate hb_UserName() => NetName(1)
#xtranslate hb_FSize( <x> ) => FileSize( <x> )
#xtranslate hb_WildMatch( [<x,...>] ) => WildMatch( <x> )
#xtranslate hb_bitTest( [<x,...>] ) => hb_bitIsSet( <x> )
#xtranslate hb_Deserialize( <x> ) => hb_DeserialNext( <x> )
#xtranslate hb_HexToNum([<c,...>]) => HexToNum(<c>)
#xtranslate hb_NumToHex([<n,...>]) => NumToHex(<n>)
#xtranslate hb_HexToStr([<c,...>]) => HexToStr(<c>)
#xtranslate hb_StrToHex([<c,...>]) => StrToHex(<c>)
#xtranslate hb_HexToNum( [<c,...>] ) => HexToNum( <c> )
#xtranslate hb_NumToHex( [<n,...>] ) => NumToHex( <n> )
#xtranslate hb_HexToStr( [<c,...>] ) => HexToStr( <c> )
#xtranslate hb_StrToHex( [<c,...>] ) => StrToHex( <c> )
#xtranslate hb_AScan([<x,...>]) => AScan(<x>)
#xtranslate hb_RAScan([<x,...>]) => RAScan(<x>)
#xtranslate hb_AIns([<x,...>]) => AIns(<x>)
#xtranslate hb_ADel([<x,...>]) => ADel(<x>)
#xtranslate hb_At([<x,...>]) => At(<x>)
#xtranslate hb_AScan( [<x,...>] ) => AScan( <x> )
#xtranslate hb_RAScan( [<x,...>] ) => RAScan( <x> )
#xtranslate hb_AIns( [<x,...>] ) => AIns( <x> )
#xtranslate hb_ADel( [<x,...>] ) => ADel( <x> )
#xtranslate hb_At( [<x,...>] ) => At( <x> )
#xtranslate hb_DateTime([<x,...>]) => DateTime(<x>)
#xtranslate hb_Hour([<x>]) => Hour(<x>)
#xtranslate hb_Minute([<x>]) => Minute(<x>)
#xtranslate hb_TToS([<x>]) => TToS(<x>)
#xtranslate hb_SToT([<x>]) => SToT(<x>)
#xtranslate hb_TToC([<x,...>]) => TToC(<x>)
#xtranslate hb_CToT([<x,...>]) => CToT(<x>)
#xtranslate hb_DateTime( [<x,...>] ) => DateTime( <x> )
#xtranslate hb_Hour( [<x>] ) => Hour( <x> )
#xtranslate hb_Minute( [<x>] ) => Minute( <x> )
#xtranslate hb_TToS( [<x>] ) => TToS( <x> )
#xtranslate hb_SToT( [<x>] ) => SToT( <x> )
#xtranslate hb_TToC( [<x,...>] ) => TToC( <x> )
#xtranslate hb_CToT( [<x,...>] ) => CToT( <x> )
#xtranslate hb_GetEnv([<x,...>]) => GetEnv(<x>)
#xtranslate hb_SetKey([<x,...>]) => SetKey(<x>)
#xtranslate hb_GetEnv( [<x,...>] ) => GetEnv( <x> )
#xtranslate hb_SetKey( [<x,...>] ) => SetKey( <x> )
#xtranslate hb_i18n_gettext(<x>) => i18n(<x>)
#xtranslate hb_i18n_gettext( <x> ) => i18n( <x> )
#xtranslate hb_cdpSelect([<x,...>]) => hb_SetCodepage( <x> )
#xtranslate hb_cdpSelect( [<x,...>] ) => hb_SetCodepage( <x> )
#xtranslate hb_ARGV([<x,...>]) => hb_CMDARGARGV(<x>)
#xtranslate hb_argv( [<x,...>] ) => hb_CmdArgArgV( <x> )
#xtranslate hb_IniSetComment([<x,...>]) => hb_SetIniComment(<x>)
#xtranslate hb_IniRead([<x,...>]) => hb_ReadIni(<x>)
#xtranslate hb_IniWrite([<x,...>]) => hb_WriteIni(<x>)
#xtranslate hb_iniSetComment( [<x,...>] ) => hb_SetIniComment( <x> )
#xtranslate hb_iniRead( [<x,...>] ) => hb_ReadIni( <x> )
#xtranslate hb_iniWrite( [<x,...>] ) => hb_WriteIni( <x> )
#xtranslate hb_DisableWaitLocks([<x>]) => DisableWaitLocks(<x>)
#xtranslate hb_DisableWaitLocks( [<x>] ) => DisableWaitLocks( <x> )
#xtranslate hb_gtLock() => HBCONSOLELOCK()
#xtranslate hb_gtUnLock() => HBCONSOLEUNLOCK()
#xtranslate hb_gtLock() => hbConsoleLock()
#xtranslate hb_gtUnLock() => hbConsoleUnLock()
/* MT functions */
#xtranslate hb_mtvm() => hb_multiThread()
#xtranslate hb_threadSelf() => GetCurrentThread()
#xtranslate hb_threadId( [<x,...>] ) => GetThreadId( <x> )
#xtranslate hb_threadStart( <x,...> ) => StartThread( [<x>] )
#xtranslate hb_threadJoin( <x> ) => JoinThread( <x> )
#xtranslate hb_threadQuitRequest( <x> ) => KillThread( <x> )
#xtranslate hb_threadWaitForAll() => WaitForThreads()
#xtranslate hb_threadTerminateAll() => KillAllThreads()
#xtranslate hb_mtvm() => hb_MultiThread()
#xtranslate hb_threadSelf() => GetCurrentThread()
#xtranslate hb_threadID( [<x,...>] ) => GetThreadId( <x> )
#xtranslate hb_threadStart( <x,...> ) => StartThread( [<x>] )
#xtranslate hb_threadJoin( <x> ) => JoinThread( <x> )
#xtranslate hb_threadQuitRequest( <x> ) => KillThread( <x> )
#xtranslate hb_threadWaitForAll() => WaitForThreads()
#xtranslate hb_threadTerminateAll() => KillAllThreads()
#xtranslate hb_mutexNotify(<x,...>) => Notify(<x>)
#xtranslate hb_mutexNotifyAll(<x,...>) => NotifyAll(<x>)
#xtranslate hb_mutexNotify( <x,...> ) => Notify( <x> )
#xtranslate hb_mutexNotifyAll( <x,...> ) => NotifyAll( <x> )
#xtranslate hb_mutexSubscribe(<x,...>) => {| mtx, nTimeOut, xSubscribed | ;;
local lSubscribed ;;
xSubscribed := Subscribe( mtx, ;
iif( HB_ISNUMERIC( nTimeOut ), nTimeOut * 1000, ), ;
@lSubscribed ) ;
return lSubscribed ; }:eval( <x> )
#xtranslate hb_mutexSubscribeNow(<x,...>) => {| mtx, nTimeOut, xSubscribed | ;;
local lSubscribed ;;
xSubscribed := SubscribeNow( mtx, ;
iif( HB_ISNUMERIC( nTimeOut ), nTimeOut * 1000, ), ;
@lSubscribed ) ;
return lSubscribed ; }:eval( <x> )
#xtranslate hb_mutexSubscribe( <x,...> ) => {| mtx, nTimeOut, xSubscribed | ;;
LOCAL lSubscribed ;;
xSubscribed := Subscribe( mtx, ;
iif( HB_ISNUMERIC( nTimeOut ), nTimeOut * 1000, ), ;
@lSubscribed ) ;
RETURN lSubscribed ; }:eval( <x> )
#xtranslate hb_mutexSubscribeNow( <x,...> ) => {| mtx, nTimeOut, xSubscribed | ;;
LOCAL lSubscribed ;;
xSubscribed := SubscribeNow( mtx, ;
iif( HB_ISNUMERIC( nTimeOut ), nTimeOut * 1000, ), ;
@lSubscribed ) ;
RETURN lSubscribed ; }:eval( <x> )
#xtranslate hb_MutexLock( <x>, <n> ) => iif( ! HB_ISNUMERIC( <n> ), hb_MutexLock( <x> ) ;
iif( <n> <= 0, hb_MutexTryLock( <x> ), ;
hb_MutexTimeOutLock( <x>, <n> ) ) )
#xtranslate hb_mutexLock( <x>, <n> ) => iif( ! HB_ISNUMERIC( <n> ), hb_mutexLock( <x> ) ;
iif( <n> <= 0, hb_MutexTryLock( <x> ), ;
hb_MutexTimeOutLock( <x>, <n> ) ) )
/* Hash item functions */
#xtranslate hb_HASH([<x,...>]) => HASH(<x>)
#xtranslate hb_HHASKEY([<x,...>]) => HHASKEY(<x>)
#xtranslate hb_HPOS([<x,...>]) => HGETPOS(<x>)
#xtranslate hb_HGET([<x,...>]) => HGET(<x>)
#xtranslate hb_HSET([<x,...>]) => HSET(<x>)
#xtranslate hb_HDEL([<x,...>]) => HDEL(<x>)
#xtranslate hb_HKEYAT([<x,...>]) => HGETKEYAT(<x>)
#xtranslate hb_HVALUEAT([<x,...>]) => HGETVALUEAT(<x>)
#xtranslate hb_HVALUEAT([<x,...>]) => HSETVALUEAT(<x>)
#xtranslate hb_HPAIRAT([<x,...>]) => HGETPAIRAT(<x>)
#xtranslate hb_HDELAT([<x,...>]) => HDELAT(<x>)
#xtranslate hb_HKEYS([<x,...>]) => HGETKEYS(<x>)
#xtranslate hb_HVALUES([<x,...>]) => HGETVALUES(<x>)
#xtranslate hb_HFILL([<x,...>]) => HFILL(<x>)
#xtranslate hb_HCLONE([<x,...>]) => HCLONE(<x>)
#xtranslate hb_HCOPY([<x,...>]) => HCOPY(<x>)
#xtranslate hb_HMERGE([<x,...>]) => HMERGE(<x>)
#xtranslate hb_HEVAL([<x,...>]) => HEVAL(<x>)
#xtranslate hb_HSCAN([<x,...>]) => HSCAN(<x>)
#xtranslate hb_HSETCASEMATCH([<x,...>]) => HSETCASEMATCH(<x>)
#xtranslate hb_HCASEMATCH([<x,...>]) => HGETCASEMATCH(<x>)
#xtranslate hb_HSETAUTOADD([<x,...>]) => HSETAUTOADD(<x>)
#xtranslate hb_HAUTOADD([<x,...>]) => HGETAUTOADD(<x>)
#xtranslate hb_HALLOCATE([<x,...>]) => HALLOCATE(<x>)
#xtranslate hb_HDEFAULT([<x,...>]) => HDEFAULT(<x>)
#xtranslate hb_Hash( [<x,...>] ) => Hash( <x> )
#xtranslate hb_HHasKey( [<x,...>] ) => HHasKey( <x> )
#xtranslate hb_HPos( [<x,...>] ) => HGetPos( <x> )
#xtranslate hb_HGet( [<x,...>] ) => HGet( <x> )
#xtranslate hb_HSet( [<x,...>] ) => HSet( <x> )
#xtranslate hb_HDel( [<x,...>] ) => HDel( <x> )
#xtranslate hb_HKeyAt( [<x,...>] ) => HGetKeyAt( <x> )
#xtranslate hb_HValueAt( [<x,...>] ) => HGetValueAt( <x> )
#xtranslate hb_HValueAt( [<x,...>] ) => HSetValueAt( <x> )
#xtranslate hb_HPaiRAt( [<x,...>] ) => HGetPaiRAt( <x> )
#xtranslate hb_HDelAt( [<x,...>] ) => HDelAt( <x> )
#xtranslate hb_HKeys( [<x,...>] ) => HGetKeys( <x> )
#xtranslate hb_HValues( [<x,...>] ) => HGetValues( <x> )
#xtranslate hb_HFill( [<x,...>] ) => HFill( <x> )
#xtranslate hb_HClone( [<x,...>] ) => HClone( <x> )
#xtranslate hb_HCopy( [<x,...>] ) => HCopy( <x> )
#xtranslate hb_HMerge( [<x,...>] ) => HMerge( <x> )
#xtranslate hb_HEVal( [<x,...>] ) => HEVal( <x> )
#xtranslate hb_HScan( [<x,...>] ) => HScan( <x> )
#xtranslate hb_HSetCaseMatch( [<x,...>] ) => HSetCaseMatch( <x> )
#xtranslate hb_HCaseMatch( [<x,...>] ) => HGetCaseMatch( <x> )
#xtranslate hb_HSetAutoAdd( [<x,...>] ) => HSetAutoAdd( <x> )
#xtranslate hb_HAutoAdd( [<x,...>] ) => HGetAutoAdd( <x> )
#xtranslate hb_HAllocate( [<x,...>] ) => HAllocate( <x> )
#xtranslate hb_HDefault( [<x,...>] ) => HDefault( <x> )
/* Inet functions */
#xtranslate hb_INETINIT([<x,...>]) => INETINIT(<x>)
#xtranslate hb_INETCLEANUP([<x,...>]) => INETCLEANUP(<x>)
#xtranslate hb_INETCREATE([<x,...>]) => INETCREATE(<x>)
#xtranslate hb_INETCLOSE([<x,...>]) => INETCLOSE(<x>)
#xtranslate hb_INETFD([<x,...>]) => INETFD(<x>)
#xtranslate hb_INETSTATUS([<x,...>]) => INETSTATUS(<x>)
#xtranslate hb_INETERRORCODE([<x,...>]) => INETERRORCODE(<x>)
#xtranslate hb_INETERRORDESC([<x,...>]) => INETERRORDESC(<x>)
#xtranslate hb_INETCLEARERROR([<x,...>]) => INETCLEARERROR(<x>)
#xtranslate hb_INETCOUNT([<x,...>]) => INETCOUNT(<x>)
#xtranslate hb_INETADDRESS([<x,...>]) => INETADDRESS(<x>)
#xtranslate hb_INETPORT([<x,...>]) => INETPORT(<x>)
#xtranslate hb_INETTIMEOUT(<x>, <y>) => INETSETTIMEOUT(<x>, <y>)
#xtranslate hb_INETTIMEOUT(<x>) => INETGETTIMEOUT(<x>)
#xtranslate hb_INETCLEARTIMEOUT([<x,...>]) => INETCLEARTIMEOUT(<x>)
#xtranslate hb_INETTIMELIMIT(<x>, <y>) => INETSETTIMELIMIT(<x>, <y>)
#xtranslate hb_INETTIMELIMIT(<x>) => INETGETTIMELIMIT(<x>)
#xtranslate hb_INETCLEARTIMELIMIT([<x,...>]) => INETCLEARTIMELIMIT(<x>)
#xtranslate hb_INETPERIODCALLBACK(<x>, <y>) => INETSETPERIODCALLBACK(<x>, <y>)
#xtranslate hb_INETPERIODCALLBACK(<x>) => INETGETPERIODCALLBACK(<x>)
#xtranslate hb_INETCLEARPERIODCALLBACK([<x,...>]) => INETCLEARPERIODCALLBACK(<x>)
#xtranslate hb_INETRECV([<x,...>]) => INETRECV(<x>)
#xtranslate hb_INETRECVALL([<x,...>]) => INETRECVALL(<x>)
#xtranslate hb_INETRECVLINE([<x,...>]) => INETRECVLINE(<x>)
#xtranslate hb_INETRECVENDBLOCK([<x,...>]) => INETRECVENDBLOCK(<x>)
#xtranslate hb_INETDATAREADY([<x,...>]) => INETDATAREADY(<x>)
#xtranslate hb_INETSEND([<x,...>]) => INETSEND(<x>)
#xtranslate hb_INETSENDALL([<x,...>]) => INETSENDALL(<x>)
#xtranslate hb_INETGETHOSTS([<x,...>]) => INETGETHOSTS(<x>)
#xtranslate hb_INETGETALIAS([<x,...>]) => INETGETALIAS(<x>)
#xtranslate hb_INETSERVER([<x,...>]) => INETSERVER(<x>)
#xtranslate hb_INETACCEPT([<x,...>]) => INETACCEPT(<x>)
#xtranslate hb_INETCONNECT([<x,...>]) => INETCONNECT(<x>)
#xtranslate hb_INETCONNECTIP([<x,...>]) => INETCONNECTIP(<x>)
#xtranslate hb_INETDGRAMBIND([<x,...>]) => INETDGRAMBIND(<x>)
#xtranslate hb_INETDGRAM([<x,...>]) => INETDGRAM(<x>)
#xtranslate hb_INETDGRAMSEND([<x,...>]) => INETDGRAMSEND(<x>)
#xtranslate hb_INETDGRAMRECV([<x,...>]) => INETDGRAMRECV(<x>)
#xtranslate hb_INETCRLF([<x,...>]) => INETCRLF(<x>)
#xtranslate hb_INETISSOCKET([<x,...>]) => INETISSOCKET(<x>)
#xtranslate hb_INETCLOSE([<x,...>]) => INETDESTROY(<x>)
#xtranslate hb_inetInit( [<x,...>] ) => inetInit( <x> )
#xtranslate hb_inetCleanup( [<x,...>] ) => inetCleanup( <x> )
#xtranslate hb_inetCreate( [<x,...>] ) => inetCreate( <x> )
#xtranslate hb_inetClose( [<x,...>] ) => inetClose( <x> )
#xtranslate hb_inetFD( [<x,...>] ) => inetFD( <x> )
#xtranslate hb_inetstatus( [<x,...>] ) => inetStatus( <x> )
#xtranslate hb_inetErrorCode( [<x,...>] ) => inetErrorCode( <x> )
#xtranslate hb_inetErrorDesc( [<x,...>] ) => inetErrorDesc( <x> )
#xtranslate hb_inetClearError( [<x,...>] ) => inetClearError( <x> )
#xtranslate hb_inetCount( [<x,...>] ) => inetCount( <x> )
#xtranslate hb_inetAddress( [<x,...>] ) => inetAddress( <x> )
#xtranslate hb_inetPort( [<x,...>] ) => inetPort( <x> )
#xtranslate hb_inetTimeout( <x>, <y> ) => inetSetTimeout( <x>, <y> )
#xtranslate hb_inetTimeout( <x> ) => inetGetTimeout( <x> )
#xtranslate hb_inetClearTimeout( [<x,...>] ) => inetClearTimeout( <x> )
#xtranslate hb_inetTimeLimit( <x>, <y> ) => inetSetTimeLimit( <x>, <y> )
#xtranslate hb_inetTimeLimit( <x> ) => inetGetTimeLimit( <x> )
#xtranslate hb_inetClearTimeLimit( [<x,...>] ) => inetClearTimeLimit( <x> )
#xtranslate hb_inetPeriodCallback( <x>, <y> ) => inetSetPeriodCallback( <x>, <y> )
#xtranslate hb_inetPeriodCallback( <x> ) => inetGetPeriodCallback( <x> )
#xtranslate hb_inetClearPeriodCallback( [<x,...>] ) => inetClearPeriodCallback( <x> )
#xtranslate hb_inetRecv( [<x,...>] ) => inetRecv( <x> )
#xtranslate hb_inetRecvAll( [<x,...>] ) => inetRecvAll( <x> )
#xtranslate hb_inetRecvLine( [<x,...>] ) => inetRecvLine( <x> )
#xtranslate hb_inetRecvEndbLock( [<x,...>] ) => inetRecvEndBlock( <x> )
#xtranslate hb_inetDataReady( [<x,...>] ) => inetDataReady( <x> )
#xtranslate hb_inetSend( [<x,...>] ) => inetSend( <x> )
#xtranslate hb_inetSendAll( [<x,...>] ) => inetSendAll( <x> )
#xtranslate hb_inetGetHosts( [<x,...>] ) => inetGetHosts( <x> )
#xtranslate hb_inetGetAlias( [<x,...>] ) => inetGetAlias( <x> )
#xtranslate hb_inetServer( [<x,...>] ) => inetServer( <x> )
#xtranslate hb_inetAccept( [<x,...>] ) => inetAccept( <x> )
#xtranslate hb_inetConnect( [<x,...>] ) => inetConnect( <x> )
#xtranslate hb_inetConnectIP( [<x,...>] ) => inetConnectIP( <x> )
#xtranslate hb_inetDGramBind( [<x,...>] ) => inetDGramBind( <x> )
#xtranslate hb_inetDGram( [<x,...>] ) => inetDGram( <x> )
#xtranslate hb_inetDGramSend( [<x,...>] ) => inetDGramSend( <x> )
#xtranslate hb_inetDGramRecv( [<x,...>] ) => inetDGramRecv( <x> )
#xtranslate hb_inetCRLF( [<x,...>] ) => inetCRLF( <x> )
#xtranslate hb_inetIsSocket( [<x,...>] ) => inetIsSocket( <x> )
#xtranslate hb_inetClose( [<x,...>] ) => inetDestroy( <x> )
/* Some statement endings */
#xcommand ENDSEQUENCE => END
@@ -273,11 +272,11 @@
#xtranslate hb_eol() => hb_osNewLine()
#xtranslate hb_ps() => hb_osPathSeparator()
#xtranslate MaxRow(.T.) => hb_gtInfo( HB_GTI_VIEWPORTHEIGHT )
#xtranslate MaxCol(.T.) => hb_gtInfo( HB_GTI_VIEWPORTWIDTH )
#xtranslate MaxRow( .T. ) => hb_gtInfo( HB_GTI_VIEWPORTHEIGHT )
#xtranslate MaxCol( .T. ) => hb_gtInfo( HB_GTI_VIEWPORTWIDTH )
#xtranslate NextKey( [<x>] ) => hb_keyNext( <x> )
#xtranslate Str(<x>,[<y>],[<y>],<z>) => iif( <z>, hb_ntos( <x> ), Str( <x> ) )
#xtranslate Str( <x>, [<y>], [<y>], <z> ) => iif( <z>, hb_ntOS( <x> ), Str( <x> ) )
#xuntranslate NetName( =>
#xuntranslate MemoWrit( =>
@@ -288,14 +287,14 @@
#xuntranslate AIns( =>
#xuntranslate ADel( =>
#xtranslate AIns(<a>,<n>,[<x,...>]) => hb_AIns( <a>, <n>, <x> )
#xtranslate ADel(<a>,<n>,<l>) => hb_ADel( <a>, <n>, <l> )
#xtranslate AIns( <a>, <n>, [<x,...>] ) => hb_AIns( <a>, <n>, <x> )
#xtranslate ADel( <a>, <n>, <l> ) => hb_ADel( <a>, <n>, <l> )
#xtranslate AScan(<a>,<b>,[<c>],[<d>],<e>) => hb_AScan( <a>, <b>, <c>, <d>, <e> )
#xtranslate At(<a>,<b>,[<x,...>]) => hb_At( <a>, <b>, <x> )
#xtranslate At( <a>, <b>, [<x,...>] ) => hb_At( <a>, <b>, <x> )
#xtranslate GetEnv([<x,...>]) => hb_GetEnv( <x> )
#xtranslate SetKey([<x,...>]) => hb_SetKey( <x> )
#xtranslate GetEnv( [<x,...>] ) => hb_GetEnv( <x> )
#xtranslate SetKey( [<x,...>] ) => hb_SetKey( <x> )
/* TEXT INTO <varname> */
#xcommand TEXT INTO <v> => #pragma __text|<v>+=%s+hb_eol();<v>:=""
@@ -304,7 +303,7 @@
#xcommand DEFAULT => OTHERWISE
/* FOR EACH hb_enumIndex() */
#xtranslate hb_enumIndex(<!v!>) => <v>:__enumIndex()
#xtranslate hb_enumIndex( <!v!> ) => <v>:__enumIndex()
/* TRY / CATCH / FINALLY / END */
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
@@ -316,20 +315,20 @@
#xcommand > [<*x*>] => } <x>
/* xHarbour operators: IN, HAS, LIKE, >>, <<, |, &, ^^ */
#translate ( <exp1> IN <exp2> ) => ( (<exp1>) $ (<exp2>) )
#translate ( <exp1> HAS <exp2> ) => ( HB_REGEXHAS( (<exp2>), (<exp1>) ) )
#translate ( <exp1> LIKE <exp2> ) => ( HB_REGEXLIKE( (<exp2>), (<exp1>) ) )
#translate ( <exp1> \<\< <exp2> ) => ( HB_BITSHIFT( (<exp1>), (<exp2>) ) )
#translate ( <exp1> >> <exp2> ) => ( HB_BITSHIFT( (<exp1>), -(<exp2>) ) )
#translate ( <exp1> IN <exp2> ) => ( ( <exp1> ) $ ( <exp2> ) )
#translate ( <exp1> HAS <exp2> ) => ( hb_regexHas( ( <exp2> ), ( <exp1> ) ) )
#translate ( <exp1> LIKE <exp2> ) => ( hb_regexLike( ( <exp2> ), ( <exp1> ) ) )
#translate ( <exp1> \<\< <exp2> ) => ( hb_bitShift( ( <exp1> ), ( <exp2> ) ) )
#translate ( <exp1> >> <exp2> ) => ( hb_bitShift( ( <exp1> ), -( <exp2> ) ) )
/* NOTE: These macros can break some valid Harbour/Clipper constructs,
so they are disabled by default. Enable them with care, or
even better to switch to use HB_BIT*() functions directly.
They are optimized by Harbour compiler the same way (and even
more) as these C-like operators, without any bad side-effects. */
#if defined( XHB_BITOP )
#translate ( <exp1> | <exp2> ) => ( HB_BITOR( (<exp1>), (<exp2>) ) )
#translate ( <exp1> & <exp2> ) => ( HB_BITAND( (<exp1>), (<exp2>) ) )
#translate ( <exp1> ^^ <exp2> ) => ( HB_BITXOR( (<exp1>), (<exp2>) ) )
#translate ( <exp1> | <exp2> ) => ( hb_bitOr( ( <exp1> ), ( <exp2> ) ) )
#translate ( <exp1> & <exp2> ) => ( hb_bitAnd( ( <exp1> ), ( <exp2> ) ) )
#translate ( <exp1> ^^ <exp2> ) => ( hb_bitXor( ( <exp1> ), ( <exp2> ) ) )
#endif
#command @ <row>, <col> PROMPT <prompt> [ MESSAGE <msg> ] [ COLOR <color> ] => ;
@@ -344,61 +343,61 @@
#xtranslate gtSetClipboard( <x> ) => hb_gtInfo( HB_GTI_CLIPBOARDDATA, <x> )
#xtranslate gtGetClipboard() => hb_gtInfo( HB_GTI_CLIPBOARDDATA )
#xtranslate gtGetClipBoardSize() => Len( hb_gtInfo( HB_GTI_CLIPBOARDDATA ) )
#xtranslate gtPasteClipBoard() => hb_gtInfo( HB_GTI_CLIPBOARDPASTE )
#xtranslate gtGetClipboardSize() => Len( hb_gtInfo( HB_GTI_CLIPBOARDDATA ) )
#xtranslate gtPasteClipboard() => hb_gtInfo( HB_GTI_CLIPBOARDPASTE )
#xtranslate gtProcessMessages() => NextKey()
#xtranslate SetInkeyBeforeBlock([<x>]) => hb_gtInfo( HB_GTI_INKEYREAD [, <x>] ) <-x->
#xtranslate SetInkeyAfterBlock([<x>]) => hb_gtInfo( HB_GTI_INKEYFILTER [, <x>] ) <-x->
#xtranslate gfxPrimitive([<x,...>]) => hb_gfxPrimitive( <x> )
#xtranslate gfxText([<x,...>]) => hb_gfxText( <x> )
#xtranslate SetInkeyBeforeBlock( [<x>] ) => hb_gtInfo( HB_GTI_INKEYREAD [, <x>] ) <-x->
#xtranslate SetInkeyAfterBlock( [<x>] ) => hb_gtInfo( HB_GTI_INKEYFILTER [, <x>] ) <-x->
#xtranslate GfxPrimitive( [<x,...>] ) => hb_gfxPrimitive( <x> )
#xtranslate GfxText( [<x,...>] ) => hb_gfxText( <x> )
#xtranslate hb_openProcess([<x,...>]) => hb_processOpen( <x> )
#xtranslate hb_closeProcess([<x,...>]) => hb_processClose( <x> )
#xtranslate hb_OpenProcess( [<x,...>] ) => hb_processOpen( <x> )
#xtranslate hb_CloseProcess( [<x,...>] ) => hb_processClose( <x> )
#xtranslate hb_isregexstring([<x>]) => hb_isregex( <x> )
#xtranslate methodName([<x,...>]) => hb_methodName( <x> )
#xtranslate libLoad([<x,...>]) => hb_libLoad( <x> )
#xtranslate libFree([<x,...>]) => hb_libFree( <x> )
#xtranslate hb_checksum([<x,...>]) => hb_adler32( <x> )
#xtranslate setLastKey([<x,...>]) => hb_keySetLast( <x> )
#xtranslate CStr([<x,...>]) => hb_CStr( <x> )
#xtranslate ValToPrgExp([<x,...>]) => hb_valToExp( <x> )
#xtranslate SecondsSleep([<x,...>]) => hb_idleSleep( <x> )
#xtranslate WildMatch([<x,...>]) => hb_WildMatch( <x> )
#xtranslate hb_bitIsSet([<x,...>]) => hb_bitTest( <x> )
#xtranslate hb_DeserialNext(<x>) => hb_Deserialize( <x> )
#xtranslate hb_funcptr(<x>) => __dynsn2sym( <x> )
#xtranslate hb_IsRegexString( [<x>] ) => hb_IsRegex( <x> )
#xtranslate MethodName( [<x,...>] ) => hb_MethodName( <x> )
#xtranslate LibLoad( [<x,...>] ) => hb_libLoad( <x> )
#xtranslate LibFree( [<x,...>] ) => hb_libFree( <x> )
#xtranslate hb_Checksum( [<x,...>] ) => hb_Adler32( <x> )
#xtranslate hb_SetLastKey( [<x,...>] ) => hb_keySetLast( <x> )
#xtranslate CStr( [<x,...>] ) => hb_CStr( <x> )
#xtranslate ValToPrgExp( [<x,...>] ) => hb_ValToExp( <x> )
#xtranslate SecondsSleep( [<x,...>] ) => hb_idleSleep( <x> )
#xtranslate WildMatch( [<x,...>] ) => hb_WildMatch( <x> )
#xtranslate hb_bitIsSet( [<x,...>] ) => hb_bitTest( <x> )
#xtranslate hb_DeserialNext( <x> ) => hb_Deserialize( <x> )
#xtranslate hb_FuncPtr( <x> ) => __dynSN2Sym( <x> )
#xtranslate HexToNum([<c,...>]) => hb_HexToNum( <c> )
#xtranslate NumToHex([<n,...>]) => hb_NumToHex( <n> )
#xtranslate HexToStr([<c,...>]) => hb_HexToStr( <c> )
#xtranslate StrToHex([<c,...>]) => hb_StrToHex( <c> )
#xtranslate HexToNum( [<c,...>] ) => hb_HexToNum( <c> )
#xtranslate NumToHex( [<n,...>] ) => hb_NumToHex( <n> )
#xtranslate HexToStr( [<c,...>] ) => hb_HexToStr( <c> )
#xtranslate StrToHex( [<c,...>] ) => hb_StrToHex( <c> )
#xtranslate ISPOINTER( <xValue> ) => hb_ISPOINTER( <xValue> )
#xtranslate IsPointer( <xValue> ) => HB_ISPOINTER( <xValue> )
#xtranslate hb_SetIniComment([<x,...>]) => hb_IniSetComment( <x> )
#xtranslate hb_ReadIni([<x,...>]) => hb_IniRead( <x> )
#xtranslate hb_WriteIni([<x,...>]) => hb_IniWrite( <x> )
#xtranslate hb_SetIniComment( [<x,...>] ) => hb_iniSetComment( <x> )
#xtranslate hb_ReadIni( [<x,...>] ) => hb_iniRead( <x> )
#xtranslate hb_WriteIni( [<x,...>] ) => hb_iniWrite( <x> )
#xtranslate DisableWaitLocks([<x>]) => hb_DisableWaitLocks( <x> )
#xtranslate DisableWaitLocks( [<x>] ) => hb_DisableWaitLocks( <x> )
#xtranslate HBCONSOLELOCK() => hb_gtLock()
#xtranslate HBCONSOLEUNLOCK() => hb_gtUnLock()
#xtranslate hbConsoleLock() => hb_gtLock()
#xtranslate hbConsoleUnLock() => hb_gtUnLock()
#xtranslate hb_CMDARGARGV([<x,...>]) => hb_ARGV( <x> )
#xtranslate hb_CmdArgArgV( [<x,...>] ) => hb_argv( <x> )
#xtranslate RAScan([<x,...>]) => hb_RAScan( <x> )
#xtranslate RAScan( [<x,...>] ) => hb_RAScan( <x> )
#xtranslate AsizeAlloc( <a> [, <n,...>] ) => AFill( <a> )
#xtranslate ASizeAlloc( <a> [, <n,...>] ) => AFill( <a> )
#xtranslate ALenAlloc( <a> [, <n,...>] ) => Len( <a> )
#xtranslate DateTime([<x,...>]) => hb_DateTime( <x> )
#xtranslate Hour([<x>]) => hb_Hour( <x> )
#xtranslate Minute([<x>]) => hb_Minute( <x> )
#xtranslate TToS([<x>]) => hb_TToS( <x> )
#xtranslate SToT([<x>]) => hb_SToT( <x> )
#xtranslate TToC([<x,...>]) => hb_TToC( <x> )
#xtranslate CToT([<x,...>]) => hb_CToT( <x> )
#xtranslate DateTime( [<x,...>] ) => hb_DateTime( <x> )
#xtranslate Hour( [<x>] ) => hb_Hour( <x> )
#xtranslate Minute( [<x>] ) => hb_Minute( <x> )
#xtranslate TToS( [<x>] ) => hb_TToS( <x> )
#xtranslate SToT( [<x>] ) => hb_SToT( <x> )
#xtranslate TToC( [<x,...>] ) => hb_TToC( <x> )
#xtranslate CToT( [<x,...>] ) => hb_CToT( <x> )
#xtranslate i18n( <x> ) => hb_i18n_gettext( <x> )
@@ -407,10 +406,10 @@
/* MT functions */
#xtranslate hb_MultiThread() => hb_mtvm()
#xtranslate GetCurrentThread() => hb_threadSelf()
#xtranslate GetThreadId( [<x,...>] ) => hb_threadId( <x> )
#xtranslate ThreadGetCurrentInternal() => hb_threadId()
#xtranslate IsSameThread( <x> [,<y>] ) => ( hb_threadId( <x> ) == hb_threadId( <y> ) )
#xtranslate IsValidThread( <x> ) => ( hb_threadId( <x> ) != 0 )
#xtranslate GetThreadId( [<x,...>] ) => hb_threadID( <x> )
#xtranslate ThreadGetCurrentInternal() => hb_threadID()
#xtranslate IsSameThread( <x> [,<y>] ) => ( hb_threadID( <x> ) == hb_threadID( <y> ) )
#xtranslate IsValidThread( <x> ) => ( hb_threadID( <x> ) != 0 )
#xtranslate JoinThread( <x> ) => hb_threadJoin( <x> )
#xtranslate KillThread( <x> ) => hb_threadQuitRequest( <x> )
#xtranslate StopThread( <x> ) => hb_threadQuitRequest( <x> ); hb_threadJoin( <x> )
@@ -441,21 +440,21 @@
#xtranslate StartThread( [<x>] ) => hb_threadStart( <x> )
#xtranslate StartThread( <x>, <y> [, <z,...>] ) => iif( HB_ISOBJECT( <x> ) .AND. HB_ISSTRING( <y> ), ;
hb_threadStart( {| ... | (<x>):&(<y>)( ... ) } [, <z>] ), ;
hb_threadStart( {| ... | ( <x> ):&( <y> )( ... ) } [, <z>] ), ;
hb_threadStart( <x>, <y> [, <z>] ) )
/* not possible to well replicate xHarbour behavior because it's buggy
these function results are different on different platform, chosen
translation which returns compatible types (numeric) */
#xtranslate ThreadGetCurrent() => hb_threadId()
#xtranslate GetSystemThreadId( [<x,...>] ) => hb_threadId( <x> )
#xtranslate ThreadGetCurrent() => hb_threadID()
#xtranslate GetSystemThreadId( [<x,...>] ) => hb_threadID( <x> )
/* do not need translation */
/* hb_MutexCreate() => hb_mutexCreate() */
/* hb_MutexUnlock( <x> ) => hb_mutexUnlock( <x> ) */
/* hb_mutexCreate() => hb_mutexCreate() */
/* hb_mutexUnLock( <x> ) => hb_mutexUnLock( <x> ) */
/* do not need translation only when xHarbour code is compiled by Harbour */
/* hb_MutexLock( <x> ) => hb_mutexLock( <x> ) */
/* hb_mutexLock( <x> ) => hb_mutexLock( <x> ) */
/* functions I do not want to document as public .prg API in Harbour */
/* ThreadInspect() */
@@ -470,96 +469,96 @@
/* hb_ThreadCountStacks() */
/* Hash item functions */
#xtranslate HASH([<x,...>]) => hb_HASH( <x> )
#xtranslate HHASKEY([<x,...>]) => hb_HHASKEY( <x> )
#xtranslate HGETPOS([<x,...>]) => hb_HPOS( <x> )
#xtranslate HGET([<x,...>]) => hb_HGET( <x> )
#xtranslate HSET([<x,...>]) => hb_HSET( <x> )
#xtranslate HDEL([<x,...>]) => hb_HDEL( <x> )
#xtranslate HGETKEYAT([<x,...>]) => hb_HKEYAT( <x> )
#xtranslate HGETVALUEAT([<x,...>]) => hb_HVALUEAT( <x> )
#xtranslate HSETVALUEAT([<x,...>]) => hb_HVALUEAT( <x> )
#xtranslate HGETPAIRAT([<x,...>]) => hb_HPAIRAT( <x> )
#xtranslate HDELAT([<x,...>]) => hb_HDELAT( <x> )
#xtranslate HGETKEYS([<x,...>]) => hb_HKEYS( <x> )
#xtranslate HGETVALUES([<x,...>]) => hb_HVALUES( <x> )
#xtranslate HFILL([<x,...>]) => hb_HFILL( <x> )
#xtranslate HCLONE([<x,...>]) => hb_HCLONE( <x> )
#xtranslate HCOPY([<x,...>]) => hb_HCOPY( <x> )
#xtranslate HMERGE([<x,...>]) => hb_HMERGE( <x> )
#xtranslate HEVAL([<x,...>]) => hb_HEVAL( <x> )
#xtranslate HSCAN([<x,...>]) => hb_HSCAN( <x> )
#xtranslate HSETCASEMATCH([<x,...>]) => hb_HSETCASEMATCH( <x> )
#xtranslate HGETCASEMATCH([<x,...>]) => hb_HCASEMATCH( <x> )
#xtranslate HSETAUTOADD([<x,...>]) => hb_HSETAUTOADD( <x> )
#xtranslate HGETAUTOADD([<x,...>]) => hb_HAUTOADD( <x> )
#xtranslate HALLOCATE([<x,...>]) => hb_HALLOCATE( <x> )
#xtranslate HDEFAULT([<x,...>]) => hb_HDEFAULT( <x> )
#xtranslate HSETPARTITION([<x,...>]) =>
#xtranslate Hash( [<x,...>] ) => hb_Hash( <x> )
#xtranslate HHasKey( [<x,...>] ) => hb_HHasKey( <x> )
#xtranslate HGetPos( [<x,...>] ) => hb_HPos( <x> )
#xtranslate HGet( [<x,...>] ) => hb_HGet( <x> )
#xtranslate HSet( [<x,...>] ) => hb_HSet( <x> )
#xtranslate HDel( [<x,...>] ) => hb_HDel( <x> )
#xtranslate HGetKeyAt( [<x,...>] ) => hb_HKeyAt( <x> )
#xtranslate HGetValueAt( [<x,...>] ) => hb_HValueAt( <x> )
#xtranslate HSetValueAt( [<x,...>] ) => hb_HValueAt( <x> )
#xtranslate HGetPaiRAt( [<x,...>] ) => hb_HPaiRAt( <x> )
#xtranslate HDelAt( [<x,...>] ) => hb_HDelAt( <x> )
#xtranslate HGetKeys( [<x,...>] ) => hb_HKeys( <x> )
#xtranslate HGetValues( [<x,...>] ) => hb_HValues( <x> )
#xtranslate HFill( [<x,...>] ) => hb_HFill( <x> )
#xtranslate HClone( [<x,...>] ) => hb_HClone( <x> )
#xtranslate HCopy( [<x,...>] ) => hb_HCopy( <x> )
#xtranslate HMerge( [<x,...>] ) => hb_HMerge( <x> )
#xtranslate HEVal( [<x,...>] ) => hb_HEVal( <x> )
#xtranslate HScan( [<x,...>] ) => hb_HScan( <x> )
#xtranslate HSetCaseMatch( [<x,...>] ) => hb_HSetCaseMatch( <x> )
#xtranslate HGetCaseMatch( [<x,...>] ) => hb_HCaseMatch( <x> )
#xtranslate HSetAutoAdd( [<x,...>] ) => hb_HSetAutoAdd( <x> )
#xtranslate HGetAutoAdd( [<x,...>] ) => hb_HAutoAdd( <x> )
#xtranslate HAllocate( [<x,...>] ) => hb_HAllocate( <x> )
#xtranslate HDefault( [<x,...>] ) => hb_HDefault( <x> )
#xtranslate HSetPartition( [<x,...>] ) =>
/* Associative hash array functions */
#xtranslate HAAGETKEYAT([<x,...>]) => hb_HKEYAT( <x> )
#xtranslate HAAGETVALUEAT([<x,...>]) => hb_HVALUEAT( <x> )
#xtranslate HAADELAT([<x,...>]) => hb_HDELAT( <x> )
#xtranslate HAAGETPOS([<x,...>]) => hb_HPOS( <x> )
#xtranslate HAAGETREALPOS(<x>,<y>) => iif( HB_ISNUMERIC( <y> ) .AND. <y> >= 1 .AND. ;
int( <y> ) <= len( <x> ), int( <y> ), 0 )
#xtranslate HGETVAAPOS(<x>) => {| h | ;;
local a := array( len( h ), v ;;
for each v in a ;;
#xtranslate haAGetKeyAt( [<x,...>] ) => hb_HKeyAt( <x> )
#xtranslate haAGetValueAt( [<x,...>] ) => hb_HValueAt( <x> )
#xtranslate haADelAt( [<x,...>] ) => hb_HDelAt( <x> )
#xtranslate haAGetPos( [<x,...>] ) => hb_HPos( <x> )
#xtranslate haAGetRealPos( <x>, <y> ) => iif( HB_ISNUMERIC( <y> ) .AND. <y> >= 1 .AND. ;
Int( <y> ) <= Len( <x> ), Int( <y> ), 0 )
#xtranslate HGetVaaPos( <x> ) => {| h | ;;
LOCAL a := Array( Len( h ), v ;;
FOR EACH v IN a ;;
v := v:__enumIndex() ;;
next ;;
return a ; }:eval( <x> )
#xtranslate HGETAACOMPATIBILITY(<x>) => hb_HKEEPORDER( <x> )
#xtranslate HSETAACOMPATIBILITY([<x,...>]) => {| h | ;;
hb_HKEEPORDER( h ) ;;
return .T. ; }:eval( <x> )
NEXT ;;
RETURN a ; }:eval( <x> )
#xtranslate HGetAACompatibility( <x> ) => hb_HKeepOrder( <x> )
#xtranslate HSetAACompatibility( [<x,...>] ) => {| h | ;;
hb_HKeepOrder( h ) ;;
RETURN .T. ; }:eval( <x> )
/* Inet functions */
#xtranslate INETINIT([<x,...>]) => hb_INETINIT( <x> )
#xtranslate INETCLEANUP([<x,...>]) => hb_INETCLEANUP( <x> )
#xtranslate INETCREATE([<x,...>]) => hb_INETCREATE( <x> )
#xtranslate INETCLOSE([<x,...>]) => hb_INETCLOSE( <x> )
#xtranslate INETFD([<x,...>]) => hb_INETFD( <x> )
#xtranslate INETSTATUS([<x,...>]) => hb_INETSTATUS( <x> )
#xtranslate INETERRORCODE([<x,...>]) => hb_INETERRORCODE( <x> )
#xtranslate INETERRORDESC([<x,...>]) => hb_INETERRORDESC( <x> )
#xtranslate INETCLEARERROR([<x,...>]) => hb_INETCLEARERROR( <x> )
#xtranslate INETCOUNT([<x,...>]) => hb_INETCOUNT( <x> )
#xtranslate INETADDRESS([<x,...>]) => hb_INETADDRESS( <x> )
#xtranslate INETPORT([<x,...>]) => hb_INETPORT( <x> )
#xtranslate INETSETTIMEOUT([<x,...>]) => hb_INETTIMEOUT( <x> )
#xtranslate INETGETTIMEOUT([<x,...>]) => hb_INETTIMEOUT( <x> )
#xtranslate INETCLEARTIMEOUT([<x,...>]) => hb_INETCLEARTIMEOUT( <x> )
#xtranslate INETSETTIMELIMIT([<x,...>]) => hb_INETTIMELIMIT( <x> )
#xtranslate INETGETTIMELIMIT([<x,...>]) => hb_INETTIMELIMIT( <x> )
#xtranslate INETCLEARTIMELIMIT([<x,...>]) => hb_INETCLEARTIMELIMIT( <x> )
#xtranslate INETSETPERIODCALLBACK([<x,...>]) => hb_INETPERIODCALLBACK( <x> )
#xtranslate INETGETPERIODCALLBACK([<x,...>]) => hb_INETPERIODCALLBACK( <x> )
#xtranslate INETCLEARPERIODCALLBACK([<x,...>]) => hb_INETCLEARPERIODCALLBACK( <x> )
#xtranslate INETRECV([<x,...>]) => hb_INETRECV( <x> )
#xtranslate INETRECVALL([<x,...>]) => hb_INETRECVALL( <x> )
#xtranslate INETRECVLINE([<x,...>]) => hb_INETRECVLINE( <x> )
#xtranslate INETRECVENDBLOCK([<x,...>]) => hb_INETRECVENDBLOCK( <x> )
#xtranslate INETDATAREADY([<x,...>]) => hb_INETDATAREADY( <x> )
#xtranslate INETSEND([<x,...>]) => hb_INETSEND( <x> )
#xtranslate INETSENDALL([<x,...>]) => hb_INETSENDALL( <x> )
#xtranslate INETGETHOSTS([<x,...>]) => hb_INETGETHOSTS( <x> )
#xtranslate INETGETALIAS([<x,...>]) => hb_INETGETALIAS( <x> )
#xtranslate INETSERVER([<x,...>]) => hb_INETSERVER( <x> )
#xtranslate INETACCEPT([<x,...>]) => hb_INETACCEPT( <x> )
#xtranslate INETCONNECT([<x,...>]) => hb_INETCONNECT( <x> )
#xtranslate INETCONNECTIP([<x,...>]) => hb_INETCONNECTIP( <x> )
#xtranslate INETDGRAMBIND([<x,...>]) => hb_INETDGRAMBIND( <x> )
#xtranslate INETDGRAM([<x,...>]) => hb_INETDGRAM( <x> )
#xtranslate INETDGRAMSEND([<x,...>]) => hb_INETDGRAMSEND( <x> )
#xtranslate INETDGRAMRECV([<x,...>]) => hb_INETDGRAMRECV( <x> )
#xtranslate INETCRLF([<x,...>]) => hb_INETCRLF( <x> )
#xtranslate INETISSOCKET([<x,...>]) => hb_INETISSOCKET( <x> )
#xtranslate INETDESTROY([<x,...>]) => iif( HB_INETISSOCKET( <x> ), hb_INETCLOSE( <x> ), )
#xtranslate inetInit( [<x,...>] ) => hb_inetInit( <x> )
#xtranslate inetCleanup( [<x,...>] ) => hb_inetCleanup( <x> )
#xtranslate inetCreate( [<x,...>] ) => hb_inetCreate( <x> )
#xtranslate inetClose( [<x,...>] ) => hb_inetClose( <x> )
#xtranslate inetFD( [<x,...>] ) => hb_inetFD( <x> )
#xtranslate inetStatus( [<x,...>] ) => hb_inetstatus( <x> )
#xtranslate inetErrorCode( [<x,...>] ) => hb_inetErrorCode( <x> )
#xtranslate inetErrorDesc( [<x,...>] ) => hb_inetErrorDesc( <x> )
#xtranslate inetClearError( [<x,...>] ) => hb_inetClearError( <x> )
#xtranslate inetCount( [<x,...>] ) => hb_inetCount( <x> )
#xtranslate inetAddress( [<x,...>] ) => hb_inetAddress( <x> )
#xtranslate inetPort( [<x,...>] ) => hb_inetPort( <x> )
#xtranslate inetSetTimeout( [<x,...>] ) => hb_inetTimeout( <x> )
#xtranslate inetGetTimeout( [<x,...>] ) => hb_inetTimeout( <x> )
#xtranslate inetClearTimeout( [<x,...>] ) => hb_inetClearTimeout( <x> )
#xtranslate inetSetTimeLimit( [<x,...>] ) => hb_inetTimeLimit( <x> )
#xtranslate inetGetTimeLimit( [<x,...>] ) => hb_inetTimeLimit( <x> )
#xtranslate inetClearTimeLimit( [<x,...>] ) => hb_inetClearTimeLimit( <x> )
#xtranslate inetSetPeriodCallback( [<x,...>] ) => hb_inetPeriodCallback( <x> )
#xtranslate inetGetPeriodCallback( [<x,...>] ) => hb_inetPeriodCallback( <x> )
#xtranslate inetClearPeriodCallback( [<x,...>] ) => hb_inetClearPeriodCallback( <x> )
#xtranslate inetRecv( [<x,...>] ) => hb_inetRecv( <x> )
#xtranslate inetRecvAll( [<x,...>] ) => hb_inetRecvAll( <x> )
#xtranslate inetRecvLine( [<x,...>] ) => hb_inetRecvLine( <x> )
#xtranslate inetRecvEndBlock( [<x,...>] ) => hb_inetRecvEndbLock( <x> )
#xtranslate inetDataReady( [<x,...>] ) => hb_inetDataReady( <x> )
#xtranslate inetSend( [<x,...>] ) => hb_inetSend( <x> )
#xtranslate inetSendAll( [<x,...>] ) => hb_inetSendAll( <x> )
#xtranslate inetGetHosts( [<x,...>] ) => hb_inetGetHosts( <x> )
#xtranslate inetGetAlias( [<x,...>] ) => hb_inetGetAlias( <x> )
#xtranslate inetServer( [<x,...>] ) => hb_inetServer( <x> )
#xtranslate inetAccept( [<x,...>] ) => hb_inetAccept( <x> )
#xtranslate inetConnect( [<x,...>] ) => hb_inetConnect( <x> )
#xtranslate inetConnectIP( [<x,...>] ) => hb_inetConnectIP( <x> )
#xtranslate inetDGramBind( [<x,...>] ) => hb_inetDGramBind( <x> )
#xtranslate inetDGram( [<x,...>] ) => hb_inetDGram( <x> )
#xtranslate inetDGramSend( [<x,...>] ) => hb_inetDGramSend( <x> )
#xtranslate inetDGramRecv( [<x,...>] ) => hb_inetDGramRecv( <x> )
#xtranslate inetCRLF( [<x,...>] ) => hb_inetCRLF( <x> )
#xtranslate inetIsSocket( [<x,...>] ) => hb_inetIsSocket( <x> )
#xtranslate inetDestroy( [<x,...>] ) => iif( hb_inetIsSocket( <x> ), hb_inetClose( <x> ), )
/* THROW => generate error */
#xtranslate THROW( <oErr> ) => ( Eval( ErrorBlock(), <oErr> ), Break( <oErr> ) )
#xtranslate Throw( <oErr> ) => ( Eval( ErrorBlock(), <oErr> ), Break( <oErr> ) )
#endif

View File

@@ -50,40 +50,40 @@
*/
#ifndef __HBCTYPES_CH_
#define __HBCTYPES_CH_
#define __HBCTYPES_CH_
#define CTYPE_VOID 0
#define CTYPE_VOID 0
#define CTYPE_CHAR 1
#define CTYPE_UNSIGNED_CHAR -1
#define CTYPE_CHAR_PTR 10
#define CTYPE_UNSIGNED_CHAR_PTR -10
#define CTYPE_CHAR 1
#define CTYPE_UNSIGNED_CHAR -1
#define CTYPE_CHAR_PTR 10
#define CTYPE_UNSIGNED_CHAR_PTR -10
#define CTYPE_SHORT 2
#define CTYPE_UNSIGNED_SHORT -2
#define CTYPE_SHORT_PTR 20
#define CTYPE_UNSIGNED_SHORT_PTR -20
#define CTYPE_SHORT 2
#define CTYPE_UNSIGNED_SHORT -2
#define CTYPE_SHORT_PTR 20
#define CTYPE_UNSIGNED_SHORT_PTR -20
#define CTYPE_INT 3
#define CTYPE_UNSIGNED_INT -3
#define CTYPE_INT_PTR 30
#define CTYPE_UNSIGNED_INT_PTR -30
#define CTYPE_INT 3
#define CTYPE_UNSIGNED_INT -3
#define CTYPE_INT_PTR 30
#define CTYPE_UNSIGNED_INT_PTR -30
#define CTYPE_LONG 4
#define CTYPE_UNSIGNED_LONG -4
#define CTYPE_LONG_PTR 40
#define CTYPE_UNSIGNED_LONG_PTR -40
#define CTYPE_LONG 4
#define CTYPE_UNSIGNED_LONG -4
#define CTYPE_LONG_PTR 40
#define CTYPE_UNSIGNED_LONG_PTR -40
#define CTYPE_FLOAT 5
#define CTYPE_FLOAT_PTR 50
#define CTYPE_FLOAT 5
#define CTYPE_FLOAT_PTR 50
#define CTYPE_DOUBLE 6
#define CTYPE_DOUBLE_PTR 60
#define CTYPE_DOUBLE 6
#define CTYPE_DOUBLE_PTR 60
#define CTYPE_VOID_PTR 7
#define CTYPE_VOID_PTR 7
/* _Must_ be smaller than CTYPE_STRUCTURE_PTR */
#define CTYPE_STRUCTURE 1000
#define CTYPE_STRUCTURE_PTR 10000
/* _Must_ be smaller than CTYPE_STRUCTURE_PTR */
#define CTYPE_STRUCTURE 1000
#define CTYPE_STRUCTURE_PTR 10000
#endif /* __HBCTYPES_CH_ */

View File

@@ -74,10 +74,10 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, iif( <.CallConvention.>, <CallConvention>, DC_CALL_STD ), iif( <.DllFuncName.>, #<DllFuncName>, #<FuncName> ) );;
end;;
END;;
IF <.ArgName.>;;
RETURN DllExecuteCall( t_cTemplate, <ArgName> [, <ArgNameN>] );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate )
#xcommand IMPORT [<Qualifier: STATIC>] [<CallConvention: 0x0000, 0x0001, 0x0010, 0x0020, 0x0100, 0x0200> ] ;
@@ -86,10 +86,10 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, iif( <.CallConvention.>, <CallConvention>, DC_CALL_STD ), iif( <.DllFuncName.>, #<DllFuncName>, #<FuncName> ) );;
end;;
END;;
IF <.ArgName.>;;
RETURN DllExecuteCall( t_cTemplate, <ArgName> [, <ArgNameN>] );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate )
@@ -99,10 +99,10 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, iif( <.CallConvention.>, <CallConvention>, DC_CALL_STD ), iif( <.DllFuncName.>, #<DllFuncName>, #<FuncName> ) );;
end;;
END;;
IF <.ArgName.>;;
RETURN DllExecuteCall( t_cTemplate, <ArgName> [, <ArgNameN>] );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate )
#xcommand IMPORT [<Qualifier: STATIC>] [<CallConvention: 0x0000, 0x0001, 0x0010, 0x0020, 0x0100, 0x0200> ] ;
@@ -111,10 +111,10 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, iif( <.CallConvention.>, <CallConvention>, DC_CALL_STD ), iif( <.DllFuncName.>, #<DllFuncName>, #<FuncName> ) );;
end;;
END;;
IF <.ArgName.>;;
RETURN DllExecuteCall( t_cTemplate, <ArgName> [, <ArgNameN>] );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate )
// FoxPro syntax
@@ -123,7 +123,7 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, DC_CALL_STD, iif( <.DllFuncName.>, <(DllFuncName)>, #<FuncName> ) );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate, ... )
// FWH
@@ -132,7 +132,7 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, iif( <.Pascal.>, DC_CALL_STD, DC_CALL_CDECL ), iif( <.DllFuncName.>, <(DllFuncName)>, #<FuncName> ) );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate [, <ArgName>] [, <ArgNameN>] )
#xcommand DLL32 [<Qualifier: STATIC>] FUNCTION <FuncName>( [ <ArgName> AS <ArgType> ] [, <ArgNameN> AS <ArgTypeN> ] ) AS <Type> [<Pascal: PASCAL>] [ FROM <DllFuncName> ] LIB <(DllName)> => ;
@@ -140,7 +140,7 @@
THREAD STATIC t_cTemplate;;
IF t_cTemplate == NIL;;
t_cTemplate := DllPrepareCall( <(DllName)>, iif( <.Pascal.>, DC_CALL_STD, DC_CALL_CDECL ), iif( <.DllFuncName.>, <(DllFuncName)>, #<FuncName> ) );;
end;;
END;;
RETURN DllExecuteCall( t_cTemplate [, <ArgName>] [, <ArgNameN>] )
#endif

View File

@@ -73,37 +73,37 @@
[<ema: EMAIL> ([<nEmaPrio> [,<cHelo>[,<cServer>[,<cDest>[,<cSubject>[,<cFrom>]]]]]])] ;
[<dbg: DEBUG> ( [<nDebugPrio> [,<nMaxDebugPrio>]] )] ;
[NAME <cName>]=>;
HB_InitStandardLog() ;;
if <.con.>;;
HB_StandardLogAdd( HB_LogConsole():New( <nConPrio> ));;
end ;;
if <.fil.> ;;
HB_StandardLogAdd( HB_LogFile():New( <nFilPrio>, <cFileName>, <nFileSize>, <nFileCount> ));;
end ;;
if <.mon.> ;;
HB_StandardLogAdd( HB_LogInetPort():New( <nMonPrio>, <nMonPort> ));;
end ;;
if <.sys.> ;;
HB_StandardLogAdd( HB_LogSyslog():New( <nSysPrio>, <nSysId> ));;
end ;;
if <.ema.> ;;
HB_StandardLogAdd( HB_LogEmail():New( <nEmaPrio> ,<cHelo>,<cServer>,<cDest>,<cSubject>,<cFrom>));;
end ;;
if <.dbg.> ;;
HB_StandardLogAdd( HB_LogDebug():New( <nDebugPrio>, <nMaxDebugPrio> ) ) ;;
end ;;
HB_StandardLogName( <cName> );;
HB_OpenStandardLog()
hb_InitStandardLog() ;;
IF <.con.>;;
hb_StandardLogAdd( hb_LogConsole():New( <nConPrio> ));;
END ;;
IF <.fil.> ;;
hb_StandardLogAdd( hb_LogFile():New( <nFilPrio>, <cFileName>, <nFileSize>, <nFileCount> ));;
END ;;
IF <.mon.> ;;
hb_StandardLogAdd( hb_LoginetPort():New( <nMonPrio>, <nMonPort> ));;
END ;;
IF <.sys.> ;;
hb_StandardLogAdd( hb_LogSysLog():New( <nSysPrio>, <nSysId> ));;
END ;;
IF <.ema.> ;;
hb_StandardLogAdd( hb_LogEmail():New( <nEmaPrio> ,<cHelo>,<cServer>,<cDest>,<cSubject>,<cFrom>));;
END ;;
IF <.dbg.> ;;
hb_StandardLogAdd( hb_LogDebug():New( <nDebugPrio>, <nMaxDebugPrio> ) ) ;;
END ;;
hb_StandardLogName( <cName> );;
hb_OpenStandardLog()
#xcommand SET LOG STYLE <nStyle> => HB_SetStandardLogStyle( <nStyle> )
#xcommand SET LOG STYLE <nStyle> => hb_SetStandardLogStyle( <nStyle> )
#xcommand LOG <data,...> [PRIORITY <prio>] => ;
HB_StandardLog( HB_BldLogMsg( <data> ), <prio> )
hb_StandardLog( hb_BldLogMsg( <data> ), <prio> )
#xcommand LOG <data,...> [PRIO <prio>] => ;
HB_StandardLog( HB_BldLogMsg( <data> ), <prio> )
hb_StandardLog( hb_BldLogMsg( <data> ), <prio> )
#xcommand CLOSE LOG => HB_CloseStandardLog()
#xcommand CLOSE LOG => hb_CloseStandardLog()
#xtranslate PRIO[RITY] DEFAULT => PRIO HB_LOG_DEFAULT
#xtranslate PRIO[RITY] CRITICAL => PRIO HB_LOG_CRITICAL

View File

@@ -55,7 +55,7 @@
#xtranslate CRLF() => ( Chr( 13 ) + Chr( 10 ) )
/*
#xCommand DEFINE HTML ;
#xcommand DEFINE HTML ;
[FILE <file>] ;
[TITLE <title>] ;
[LINKTITLE <linktitle>] ;
@@ -93,7 +93,7 @@
[<nRefresh>], [<cRefreshURL>],;
<cStyleScr>,<.lcache.>)
*/
#xCommand DEFINE HTML ;
#xcommand DEFINE HTML ;
[FILE <file>] ;
[TITLE <title>] ;
[LINKTITLE <linktitle>] ;
@@ -137,7 +137,7 @@
<nMarginTop>, <nMarginHeight>, <nMarginWidth>, <nMarginLeft> ,;
.F.,<file>)
#xCommand DEFINE CGI ;
#xcommand DEFINE CGI ;
[FILE <file>] ;
[TITLE <title>] ;
[LINKTITLE <linktitle>] ;
@@ -185,7 +185,7 @@
// [<.auth.>]
#xCommand DEFINE TABLE ;
#xcommand DEFINE TABLE ;
[COLS <cols>] ;
[BORDER <border>] ;
[WIDTH <width>] ;
@@ -218,7 +218,7 @@
<cStyle>, <id> , <nof>)
#xCommand DEFINE TABLE HEADER ;
#xcommand DEFINE TABLE HEADER ;
[TEXT <cHead>] ;
[COLOR <cColor>] ;
[<aln:LEFT,RIGHT,CENTER,MIDDLE,TOP,TEXTTOP,BOTTOM,ABSMIDDLE,ABSCENTER,ABSBOTTOM,BASELINE>];
@@ -232,7 +232,7 @@
<nSize>, <cFntColor>, <nHeight> )
#xCommand DEFINE CELL ;
#xcommand DEFINE CELL ;
[COLOR <cColor>] ;
[ALING <aln:LEFT,RIGHT,CENTER,MIDDLE,TOP,TEXTTOP,BOTTOM,ABSMIDDLE,ABSCENTER,ABSBOTTOM,BASELINE>];
[FONT <cFont>] ;
@@ -258,7 +258,7 @@
<cspan>, <rspan> ,__HTML_ALING__ [<valn>], <clrdrk>, <clrlt>, <bclrlt>, <cClass>)
#xCommand TABLE CELL ;
#xcommand TABLE CELL ;
[COLOR <cColor>] ;
[FONT <cFont>] ;
[SIZE <nSize>] ;
@@ -278,7 +278,7 @@
<cspan>, <rspan> )
#xCommand TABLE ROW ;
#xcommand TABLE ROW ;
[COLOR <cColor>] ;
[<aln:LEFT,RIGHT,CENTER,MIDDLE,TOP,TEXTTOP,BOTTOM,ABSMIDDLE,ABSCENTER,ABSBOTTOM,BASELINE>];
[ALIGN <aln1:LEFT,RIGHT,CENTER,MIDDLE,TOP,TEXTTOP,BOTTOM,ABSMIDDLE,ABSCENTER,ABSBOTTOM,BASELINE>];
@@ -286,7 +286,7 @@
=> ;
<oHtm>:NewTableRow( <cColor>, __HTML_ALING__ [<aln>], __HTML_ALING__ [<aln1>] );
#xCommand DEFINE FONT [<cFont>] ;
#xcommand DEFINE FONT [<cFont>] ;
[<ftype:BOLD,ITALIC,ULINE,UNDERLINE>] ;
[SIZE <s>] ;
[COLOR <c>] ;
@@ -296,7 +296,7 @@
[<s>], [<c>] )
#xCommand SET FONT [<cFont>] ;
#xcommand SET FONT [<cFont>] ;
[<bold:BOLD>] ;
[<itl:ITALIC>] ;
[<uln:UNDERLINE>] ;
@@ -310,7 +310,7 @@
[<s>], [<c>], ! <.lset.> )
#xCommand START FONT [<cFont>] ;
#xcommand START FONT [<cFont>] ;
[<bold:BOLD>] ;
[<itl:ITALIC>] ;
[<uln:UNDERLINE>] ;
@@ -324,12 +324,12 @@
[<s>], [<c>], ! <.lset.> )
#xCommand FONTEND[<cFont>] ;
#xcommand FONTEND[<cFont>] ;
[OF <oHtm>] ;
=> ;
<oHtm>:EndFont()
#xCommand END FONT ;
#xcommand END FONT ;
[OF <oHtm>] ;
=> ;
<oHtm>:EndFont()
@@ -382,12 +382,12 @@
[<(style)>], [<(id)>] )
#xCommand END BUTTON OF <oHtm> ;
#xcommand END BUTTON OF <oHtm> ;
=>;
<oHtm>:endButton()
#xCommand IMAGE <image> ;
#xcommand IMAGE <image> ;
URL <url> ;
[BORDER <border>] ;
[HEIGHT <height>] ;
@@ -406,7 +406,7 @@
<name>, <alt>, <target>, <width>,<.break.>)
#xCommand IMAGE <image> ;
#xcommand IMAGE <image> ;
[BORDER <border>] ;
[HEIGHT <height>] ;
[WIDTH <width>] ;
@@ -428,7 +428,7 @@
<name>, <alt>, ;
<target>, <width>, <.break.>, <iD>, <map>, __HTML_ALING__ [<aln1>] , <hspace>)
#xCommand LINK <url> ;
#xcommand LINK <url> ;
[TEXT <text>] ;
[FONT <font>] ;
[FONTCOLOR <clr>] ;
@@ -447,7 +447,7 @@
<onclick>, <onmsover>, <onmsout>, ;
<target>, <font>, <clr>, <size>, <style>, <.bld.> ,<.break.>, <cClass>)
#xCommand LINK <url> ;
#xcommand LINK <url> ;
[IMAGE <image>] ;
[WIDTH <width>] ;
[HEIGHT <height>] ;
@@ -470,7 +470,7 @@
<target>, <width>, <.break.>, <cClass>, <id>, < hspace >, __HTML_ALING__ [<aln1>] )
#xCommand NEW FRAMEPAGE ;
#xcommand NEW FRAMEPAGE ;
[TITLE <title>] ;
[FILE <file>] ;
OF <oFrm> ;
@@ -478,7 +478,7 @@
<oFrm>:=THtmlFrameSet():New( <file>, <title> )
#xCommand FRAMESET ;
#xcommand FRAMESET ;
[TITLE <title>] ;
[FILE <file>] ;
[ROWS <rows,...>] ;
@@ -492,7 +492,7 @@
#xCommand FRAME ;
#xcommand FRAME ;
[NAME <name>] ;
[URL <url>] ;
[<brd:NOBORDER>] ;
@@ -509,8 +509,8 @@
[<mw>], [<mh>], [<target>], ;
__HTML_SCROLL__ [<scrl>] )
#xCommand ENDSET <oFrm> => <oFrm>:EndSet()
#xCommand END FRAMEPAGE <oFrm> => <oFrm>:End()
#xcommand ENDSET <oFrm> => <oFrm>:EndSet()
#xcommand END FRAMEPAGE <oFrm> => <oFrm>:End()
#xcommand MARQUEE <cText> ;
@@ -570,7 +570,7 @@
#xCommand END MARQUEE OF <oHtm> => <oHtm>:endMarquee()
#xcommand END MARQUEE OF <oHtm> => <oHtm>:endMarquee()
@@ -603,13 +603,13 @@
[FOLDER <folder>] ;
OF <oHtm> ;
=> ;
putCounter( <oHtm>, <num>, <folder>, <dig>, <w>, <clr>, <b> )
PutCounter( <oHtm>, <num>, <folder>, <dig>, <w>, <clr>, <b> )
/*******************************************/
/* New Commands */
/*******************************************/
#xCommand LINKS <url> ;
#xcommand LINKS <url> ;
[TEXT <text>] ;
[IMAGE <image>] ;
[WIDTH <width>] ;
@@ -628,24 +628,24 @@
<oHtm>:putTextImageURL( <image>, <border>, <height>, <url>,;
<onclick>, <onmsover>, <onmsout>, <name>, <alt> , ;
<target>,<width>, <.break.>, <cClass>, <text>)
#xCommand SPAN <text> ;
#xcommand SPAN <text> ;
[STYLE <cStyle>] ;
OF <oHtm> ;
=> ;
<oHtm>:Span(<text>,<cStyle>)
#xCommand Comment <text> ;
#xcommand Comment <text> ;
OF <oHtm> ;
=> ;
<oHtm>:Comment(<text>)
#xCommand LINKNAME <cName> ;
#xcommand LINKNAME <cName> ;
OF <oHtm> ;
=> ;
<oHtm>:PutLinkName(<cName>)
#xCommand CREATE OBJECT ;
#xcommand CREATE OBJECT ;
[NAME <cName>] ;
[TYPE <cType>] ;
[CLASSID <cClassid>] ;
@@ -659,34 +659,34 @@
=> ;
<oHtm>:ADDOBJECT(<cType>,<cClassid>,__HTML_ALING__ [<aln>],<cCode>,<.lDisable.>,<cCodeBase>,<cName>,<nWidth>,<nHeight>)
#xCommand OBJECT PARAM ;
#xcommand OBJECT PARAM ;
NAME <cName> ;
VALUE <cValue> ;
OF <oHtm> ;
=> ;
<oHtm>:ADDPARAM(<cName>,<cValue>)
#xCommand END OBJECT ;
#xcommand END OBJECT ;
OF <oHtm> ;
=> ;
<oHtm>:ENDOBJECT()
#xCommand MAPEND ;
#xcommand MAPEND ;
OF <oHtm> ;
=> ;
<oHtm>:EndMap()
#xCommand CELLEND ;
#xcommand CELLEND ;
OF <oHtm> ;
=> ;
<oHtm>:EndTableCell( .F. )
#xCommand ROWEND ;
#xcommand ROWEND ;
OF <oHtm> ;
=> ;
<oHtm>:EndTableRow()
#xCommand TABLEEND ;
#xcommand TABLEEND ;
OF <oHtm> ;
=> ;
<oHtm>:EndTable()
@@ -705,41 +705,41 @@
=>;
<ohtm>:MapArea( <(Shape)>, <Alt>, <coord>, <Url> )
#xtranslate __HTML_SCROLL__ => "AUTO"
#xtranslate __HTML_SCROLL__ <scrl:NO> => "NO"
#xtranslate __HTML_SCROLL__ <scrl:OFF> => "NO"
#xtranslate __HTML_SCROLL__ <scrl:ON> => "YES"
#xtranslate __HTML_SCROLL__ <scrl:YES> => "YES"
#xtranslate __HTML_SCROLL__ <scrl:AUTO> => "AUTO"
#xtranslate __HTML_SCROLL__ => "AUTO"
#xtranslate __HTML_SCROLL__ <scrl:NO> => "NO"
#xtranslate __HTML_SCROLL__ <scrl:OFF> => "NO"
#xtranslate __HTML_SCROLL__ <scrl:ON> => "YES"
#xtranslate __HTML_SCROLL__ <scrl:YES> => "YES"
#xtranslate __HTML_SCROLL__ <scrl:AUTO> => "AUTO"
#xtranslate __HTML_ALING__ => NIL
#xtranslate __HTML_ALING__ <aln:LEFT> => "LEFT"
#xtranslate __HTML_ALING__ <aln:RIGHT> => "RIGHT"
#xtranslate __HTML_ALING__ <aln:CENTER> => "center"
#xtranslate __HTML_ALING__ <aln:MIDDLE> => "MIDDLE"
#xtranslate __HTML_ALING__ <aln:TOP> => "TOP"
#xtranslate __HTML_ALING__ <aln:TEXTTOP> => "TEXTTOP"
#xtranslate __HTML_ALING__ <aln:BOTTOM> => "BOTTOM"
#xtranslate __HTML_ALING__ <aln:ABSMIDDLE> => "ABSMIDDLE"
#xtranslate __HTML_ALING__ <aln:ABSCENTER> => "ABSMIDDLE"
#xtranslate __HTML_ALING__ <aln:ABSBOTTOM> => "ABSBOTTOM"
#xtranslate __HTML_ALING__ <aln:BASELINE> => "BASELINE"
#xtranslate __HTML_ALING__ => NIL
#xtranslate __HTML_ALING__ <aln:LEFT> => "LEFT"
#xtranslate __HTML_ALING__ <aln:RIGHT> => "RIGHT"
#xtranslate __HTML_ALING__ <aln:CENTER> => "center"
#xtranslate __HTML_ALING__ <aln:MIDDLE> => "MIDDLE"
#xtranslate __HTML_ALING__ <aln:TOP> => "TOP"
#xtranslate __HTML_ALING__ <aln:TEXTTOP> => "TEXTTOP"
#xtranslate __HTML_ALING__ <aln:BOTTOM> => "BOTTOM"
#xtranslate __HTML_ALING__ <aln:ABSMIDDLE> => "ABSMIDDLE"
#xtranslate __HTML_ALING__ <aln:ABSCENTER> => "ABSMIDDLE"
#xtranslate __HTML_ALING__ <aln:ABSBOTTOM> => "ABSBOTTOM"
#xtranslate __HTML_ALING__ <aln:BASELINE> => "BASELINE"
#xtranslate __HTML_POS__ => NIL
#xtranslate __HTML_POS__ <pos:TOP> => "TOP"
#xtranslate __HTML_POS__ <pos:MIDDLE> => "MIDDLE"
#xtranslate __HTML_POS__ <pos:BOTTOM> => "BOTTOM"
#xtranslate __HTML_POS__ => NIL
#xtranslate __HTML_POS__ <pos:TOP> => "TOP"
#xtranslate __HTML_POS__ <pos:MIDDLE> => "MIDDLE"
#xtranslate __HTML_POS__ <pos:BOTTOM> => "BOTTOM"
#xtranslate __HTML_DIR__ => NIL
#xtranslate __HTML_DIR__ <dir:LEFT> => "LEFT"
#xtranslate __HTML_DIR__ <dir:RIGHT> => "RIGHT"
#xtranslate __HTML_DIR__ => NIL
#xtranslate __HTML_DIR__ <dir:LEFT> => "LEFT"
#xtranslate __HTML_DIR__ <dir:RIGHT> => "RIGHT"
#xtranslate __HTML_BEHAVE__ => NIL
#xtranslate __HTML_BEHAVE__ <bhv:SCROLL> => "SCROLL"
#xtranslate __HTML_BEHAVE__ <bhv:SLIDE> => "SLIDE"
#xtranslate __HTML_BEHAVE__ <bhv:ALTERNATE> => "ALTERNATE"
#xtranslate __HTML_BEHAVE__ <bhv:ALT> => "ALTERNATE"
#xtranslate __HTML_BEHAVE__ => NIL
#xtranslate __HTML_BEHAVE__ <bhv:SCROLL> => "SCROLL"
#xtranslate __HTML_BEHAVE__ <bhv:SLIDE> => "SLIDE"
#xtranslate __HTML_BEHAVE__ <bhv:ALTERNATE> => "ALTERNATE"
#xtranslate __HTML_BEHAVE__ <bhv:ALT> => "ALTERNATE"
#xtranslate __HTML_FTYPE__ => NIL
#xtranslate __HTML_FTYPE__ <ftype:ITALIC> => "<I>"

View File

@@ -46,146 +46,146 @@
#ifndef _COLORS_CH
#define ALICEBLUE '#A0CF00'
#define ANTIQUEWHITE '#FFE8D0'
#define AQUA '#00FFFF'
#define AQUAMARINE '#7FFFD0'
#define AZURE '#F0FFFF'
#define BEIGE '#F0F7DF'
#define BISQUE '#FFE7C0'
#define BLACK '#000000'
#define BLANCHEDALMOND '#FFE8CF'
#define BLUE '#0000FF'
#define BLUEVIOLET '#8F28E0'
#define BROWN '#A0282F'
#define BURLYWOOD '#DFB880'
#define CADETBLUE '#5F9FA0'
#define CHARTREUSE '#7FFF00'
#define CHOCOLATE '#D0861F'
#define CORAL '#FF7F50'
#define CORNFLOWERBLUE '#6097EF'
#define CORNSILK '#FFF8DF'
#define CRIMSON '#DF173F'
#define CYAN '#00FFFF'
#define DARKBLUE '#00008F'
#define DARKCYAN '#00888F'
#define DARKGOLDENROD '#BF87F0'
#define DARKGRAY '#AFA8AF'
#define DARKGREEN '#006700'
#define DARKKHAKI '#BFB76F'
#define DARKMAGENTA '#8F008F'
#define DARKOLIVEGREEN '#50682F'
#define DARKORANGE '#FF8F00'
#define DARKORCHID '#9F30CF'
#define DARKRED '#8F0000'
#define DARKSALMON '#EF977F'
#define DARKSEAGREEN '#8FBF8F'
#define DARKSLATEBLUE '#4F3F8F'
#define DARKSLATEGRAY '#2F4F4F'
#define DARKTURQUOISE '#00CFD0'
#define DARKVIOLET '#9000D0'
#define DEEPPINK '#FF1790'
#define DEEPSKYBLUE '#00BFFF'
#define DIMGRAY '#6F686F'
#define DODGERBLUE '#1F90FF'
#define FIREBRICK '#B02020'
#define FLORALWHITE '#FFF8F0'
#define FORESTGREEN '#208820'
#define FUCHSIA '#FF00FF'
#define GAINSBORO '#DFDFDF'
#define GHOSTWHITE '#FFF8FF'
#define GOLD '#FFD700'
#define GOLDENROD '#DFA720'
#define GRAY '#808080'
#define GREEN '#008000'
#define GREENYELLOW '#AFFF2F'
#define HONEYDEW '#F0FFF0'
#define HOTPINK '#FF68B0'
#define INDIANRED '#CF5F5F'
#define INDIGO '#4F0080'
#define IVORY '#FFFFF0'
#define KHAKI '#F0E78F'
#define LAVENDER '#E0E7FF'
#define LAVENDERBLUSH '#FFF0F0'
#define LAWNGREEN '#7FFF00'
#define LEMONCHIFFON '#FFF8CF'
#define LIGHTBLUE '#AFD8E0'
#define LIGHTCORAL '#F08080'
#define LIGHTCYAN '#E0FFFF'
#define LIGHTGOLDENRODYELLOW '#FFF8D0'
#define LIGHTGREEN '#90EF90'
#define LIGHTGREY '#D0D0D0'
#define LIGHTPINK '#FFB7C0'
#define LIGHTSALMON '#FFA07F'
#define LIGHTSEAGREEN '#20B0AF'
#define LIGHTSKYBLUE '#80CFFF'
#define LIGHTSLATEGRAY '#70889F'
#define LIGHTSTEELBLUE '#B0C7DF'
#define LIGHTYELLOW '#FFFFE0'
#define LIME '#00FF00'
#define LIMEGREEN '#30CF30'
#define LINEN '#FFF0E0'
#define MAGENTA '#FF00FF'
#define MAROON '#800000'
#define MEDIUMAQUAMARINE '#60CFAF'
#define MEDIUMBLUE '#0000CF'
#define MEDIUMORCHID '#BF57D0'
#define MEDIUMPURPLE '#9070DF'
#define MEDIUMSEAGREEN '#3FB070'
#define MEDIUMSLATEBLUE '#7F68EF'
#define MEDIUMSPRINGGREEN '#00F89F'
#define MEDIUMTURQUOISE '#4FD0CF'
#define MEDIUMVIOLETRED '#C01780'
#define MIDNIGHTBLUE '#1F1870'
#define MINTCREAM '#F0FFFF'
#define MISTYROSE '#FFE7E0'
#define MOCCASIN '#FFE7B0'
#define NAVAJOWHITE '#FFDFAF'
#define NAVY '#000080'
#define OLDLACE '#FFF7E0'
#define OLIVE '#808000'
#define OLIVEDRAB '#6F8F20'
#define ORANGE '#FFA700'
#define ORANGERED '#FF4700'
#define ORCHID '#DF70D0'
#define PALEGOLDENROD '#EFE8AF'
#define PALEGREEN '#9FF89F'
#define PALETURQUOISE '#AFEFEF'
#define PALEVIOLETRED '#DF7090'
#define PAPAYAWHIP '#FFEFD0'
#define PEACHPUFF '#FFD8BF'
#define PERU '#CF873F'
#define PINK '#FFC0CF'
#define PLUM '#DFA1DF'
#define POWDERBLUE '#B0E0E0'
#define PURPLE '#800080'
#define RED '#FF0000'
#define ROSYBROWN '#BF8F8F'
#define ROYALBLUE '#4068E0'
#define SADDLEBROWN '#8F4710'
#define SALMON '#FF8070'
#define SANDYBROWN '#F0A760'
#define SEAGREEN '#2F8850'
#define SEASHELL '#FFF7EF'
#define SIENNA '#A0502F'
#define SILVER '#C0C0C0'
#define SKYBLUE '#80CFEF'
#define SLATEBLUE '#6F58CF'
#define SLATEGRAY '#708090'
#define SNOW '#FFF8FF'
#define SPRINGGREEN '#00FF7F'
#define STEELBLUE '#4080B0'
#define TAN '#D0B78F'
#define TEAL '#008080'
#define THISTLE '#DFBFDF'
#define TOMATO '#FF6040'
#define TURQUOISE '#40E0D0'
#define VIOLET '#EF80EF'
#define WHEAT '#F0DFB0'
#define WHITE '#FFFFFF'
#define WHITESMOKE '#F0F7F0'
#define YELLOW '#FFFF00'
#define YELLOWGREEN '#9FCF30'
#define ALICEBLUE "#A0CF00"
#define ANTIQUEWHITE "#FFE8D0"
#define AQUA "#00FFFF"
#define AQUAMARINE "#7FFFD0"
#define AZURE "#F0FFFF"
#define BEIGE "#F0F7DF"
#define BISQUE "#FFE7C0"
#define BLACK "#000000"
#define BLANCHEDALMOND "#FFE8CF"
#define BLUE "#0000FF"
#define BLUEVIOLET "#8F28E0"
#define BROWN "#A0282F"
#define BURLYWOOD "#DFB880"
#define CADETBLUE "#5F9FA0"
#define CHARTREUSE "#7FFF00"
#define CHOCOLATE "#D0861F"
#define CORAL "#FF7F50"
#define CORNFLOWERBLUE "#6097EF"
#define CORNSILK "#FFF8DF"
#define CRIMSON "#DF173F"
#define CYAN "#00FFFF"
#define DARKBLUE "#00008F"
#define DARKCYAN "#00888F"
#define DARKGOLDENROD "#BF87F0"
#define DARKGRAY "#AFA8AF"
#define DARKGREEN "#006700"
#define DARKKHAKI "#BFB76F"
#define DARKMAGENTA "#8F008F"
#define DARKOLIVEGREEN "#50682F"
#define DARKORANGE "#FF8F00"
#define DARKORCHID "#9F30CF"
#define DARKRED "#8F0000"
#define DARKSALMON "#EF977F"
#define DARKSEAGREEN "#8FBF8F"
#define DARKSLATEBLUE "#4F3F8F"
#define DARKSLATEGRAY "#2F4F4F"
#define DARKTURQUOISE "#00CFD0"
#define DARKVIOLET "#9000D0"
#define DEEPPINK "#FF1790"
#define DEEPSKYBLUE "#00BFFF"
#define DIMGRAY "#6F686F"
#define DODGERBLUE "#1F90FF"
#define FIREBRICK "#B02020"
#define FLORALWHITE "#FFF8F0"
#define FORESTGREEN "#208820"
#define FUCHSIA "#FF00FF"
#define GAINSBORO "#DFDFDF"
#define GHOSTWHITE "#FFF8FF"
#define GOLD "#FFD700"
#define GOLDENROD "#DFA720"
#define GRAY "#808080"
#define GREEN "#008000"
#define GREENYELLOW "#AFFF2F"
#define HONEYDEW "#F0FFF0"
#define HOTPINK "#FF68B0"
#define INDIANRED "#CF5F5F"
#define INDIGO "#4F0080"
#define IVORY "#FFFFF0"
#define KHAKI "#F0E78F"
#define LAVENDER "#E0E7FF"
#define LAVENDERBLUSH "#FFF0F0"
#define LAWNGREEN "#7FFF00"
#define LEMONCHIFFON "#FFF8CF"
#define LIGHTBLUE "#AFD8E0"
#define LIGHTCORAL "#F08080"
#define LIGHTCYAN "#E0FFFF"
#define LIGHTGOLDENRODYELLOW "#FFF8D0"
#define LIGHTGREEN "#90EF90"
#define LIGHTGREY "#D0D0D0"
#define LIGHTPINK "#FFB7C0"
#define LIGHTSALMON "#FFA07F"
#define LIGHTSEAGREEN "#20B0AF"
#define LIGHTSKYBLUE "#80CFFF"
#define LIGHTSLATEGRAY "#70889F"
#define LIGHTSTEELBLUE "#B0C7DF"
#define LIGHTYELLOW "#FFFFE0"
#define LIME "#00FF00"
#define LIMEGREEN "#30CF30"
#define LINEN "#FFF0E0"
#define MAGENTA "#FF00FF"
#define MAROON "#800000"
#define MEDIUMAQUAMARINE "#60CFAF"
#define MEDIUMBLUE "#0000CF"
#define MEDIUMORCHID "#BF57D0"
#define MEDIUMPURPLE "#9070DF"
#define MEDIUMSEAGREEN "#3FB070"
#define MEDIUMSLATEBLUE "#7F68EF"
#define MEDIUMSPRINGGREEN "#00F89F"
#define MEDIUMTURQUOISE "#4FD0CF"
#define MEDIUMVIOLETRED "#C01780"
#define MIDNIGHTBLUE "#1F1870"
#define MINTCREAM "#F0FFFF"
#define MISTYROSE "#FFE7E0"
#define MOCCASIN "#FFE7B0"
#define NAVAJOWHITE "#FFDFAF"
#define NAVY "#000080"
#define OLDLACE "#FFF7E0"
#define OLIVE "#808000"
#define OLIVEDRAB "#6F8F20"
#define ORANGE "#FFA700"
#define ORANGERED "#FF4700"
#define ORCHID "#DF70D0"
#define PALEGOLDENROD "#EFE8AF"
#define PALEGREEN "#9FF89F"
#define PALETURQUOISE "#AFEFEF"
#define PALEVIOLETRED "#DF7090"
#define PAPAYAWHIP "#FFEFD0"
#define PEACHPUFF "#FFD8BF"
#define PERU "#CF873F"
#define PINK "#FFC0CF"
#define PLUM "#DFA1DF"
#define POWDERBLUE "#B0E0E0"
#define PURPLE "#800080"
#define RED "#FF0000"
#define ROSYBROWN "#BF8F8F"
#define ROYALBLUE "#4068E0"
#define SADDLEBROWN "#8F4710"
#define SALMON "#FF8070"
#define SANDYBROWN "#F0A760"
#define SEAGREEN "#2F8850"
#define SEASHELL "#FFF7EF"
#define SIENNA "#A0502F"
#define SILVER "#C0C0C0"
#define SKYBLUE "#80CFEF"
#define SLATEBLUE "#6F58CF"
#define SLATEGRAY "#708090"
#define SNOW "#FFF8FF"
#define SPRINGGREEN "#00FF7F"
#define STEELBLUE "#4080B0"
#define TAN "#D0B78F"
#define TEAL "#008080"
#define THISTLE "#DFBFDF"
#define TOMATO "#FF6040"
#define TURQUOISE "#40E0D0"
#define VIOLET "#EF80EF"
#define WHEAT "#F0DFB0"
#define WHITE "#FFFFFF"
#define WHITESMOKE "#F0F7F0"
#define YELLOW "#FFFF00"
#define YELLOWGREEN "#9FCF30"
#define _COLORS_CH
#endif

View File

@@ -68,12 +68,12 @@
<.frame.>, <cap> ) ;;
[<oFrm>:setTarget( <(target)> ) ;] ;
[<oFrm>:setEncType( <(enctype)> ) ;] ;
[<oFrm>:setCapClr( <(capclr)> ) ;] ;
[<oFrm>:setCapFntClr( <(capfntclr)> ) ;] ;
[<oFrm>:setCapImage( <(capimage)> ) ;] ;
[<oFrm>:setBgImage( <(bgimg)> ) ;] ;
[<oFrm>:setFontColor( <(fntclr)> ) ;] ;
[<oFrm>:setFrmColor( <(clr)> ) ;] ;
[<oFrm>:setCapClr( <(capclr)> ) ;] ;
[<oFrm>:setCapFntClr( <(capfntclr)> ) ;] ;
[<oFrm>:setCapImage( <(capimage)> ) ;] ;
[<oFrm>:setBgImage( <(bgimg)> ) ;] ;
[<oFrm>:setFontColor( <(fntclr)> ) ;] ;
[<oFrm>:setFrmColor( <(clr)> ) ;] ;
[<oFrm>:setwidth( <w> ) ;] ;
[<oFrm>:setAction( <(action)> ) ;] ;
[<oFrm>:setOnSubmit( <(onsubmit)> ) ;] ;
@@ -82,7 +82,7 @@
#xCommand ACTIVATE <oFrm> ;
=>;
<oFrm>:Put(.T.) ; <oFrm>:End()
<oFrm>:Put( .T. ) ; <oFrm>:End()
// --> Controls
@@ -125,15 +125,15 @@
[ <obj>:= ] THtmlControl():SetControl(;
<(name)>, <rows>, <cols>, <size>, <maxchars>, ;
<(value)>, ;
<(onfocus)>,<(onblur)>,<(onchange)>,<(onselect)>,;
<(onclick)>,<(onmsover)>,<(onmsout)>,<(onmsdn)>,<(onmsup)>,;
<(onkdown)>,<(onkup)>,<(onkprs)>,;
<(pic)>,<(cap)>,;
<.dis.>,<.ro.>,<.mult.>,<.chk.>,;
<(onfocus)>, <(onblur)>, <(onchange)>, <(onselect)>, ;
<(onclick)>, <(onmsover)>, <(onmsout)>, <(onmsdn)>, <(onmsup)>, ;
<(onkdown)>, <(onkup)>, <(onkprs)>, ;
<(pic)>, <(cap)>, ;
<.dis.>, <.ro.>, <.mult.>, <.chk.>, ;
__ALIGN__ [<aln>], ;
__WRAP__ [<wrap>], ;
__TYPE__ [<typ>],;
<style>, <id> ,<.l.>) )
__TYPE__ [<typ>], ;
<style>, <id>, <.l.> ) )
#xCommand DEFINE <typ:EDIT,TEXT,TEXTAREA,PASSWORD,BUTTON,IMAGE,CHECKBOX,CHECK,HIDDEN,RADIO,FILE,RESET,SUBMIT,SELECT,LISTBOX> <oCtr>;
@@ -164,7 +164,7 @@
[CAPTION <cap>] ;
[STYLE <style>] ;
[ID <id>] ;
[<l:LABEL>] ;
[<l:LABEL>] ;
IN <oForm> ;
=> ;
<oCtr> := THtmlControl() ;;
@@ -174,29 +174,29 @@
[<oCtr>:SetCols( <cols> ) ;] ;
[<oCtr>:SetAlign( __ALIGN__ <aln> );] ;
[<oCtr>:SetWrap( __WRAP__ <wrap> );] ;
[<oCtr>:SetSource(<(source)>);] ;
[<oCtr>:SetSource( <(source)> );] ;
[<oCtr>:SetMaxChars( <maxchars> );] ;
[<oCtr>:SetValue( <(value)> );] ;
[<oCtr>:SetOnFocus(<(onfocus)>);] ;
[<oCtr>:SetOnBlur(<(onblur)>);] ;
[<oCtr>:SetOnChange(<(onchange)>);] ;
[<oCtr>:SetOnSelect(<(onselect)>);] ;
[<oCtr>:SetonClick(<(onclick)>);] ;
[<oCtr>:SetonMsOver(<(onmsover)>);] ;
[<oCtr>:SetonMsOut(<(onmsout)>);] ;
[<oCtr>:SetonKDown(<(onkdown)>);] ;
[<oCtr>:SetonKUp(<(onkup)>);] ;
[<oCtr>:SetonKPress(<(onkprs)>);] ;
[<oCtr>:SetPicture(<(pic)>);] ;
[<oCtr>:SetCaption(<cap>);] ;
[<oCtr>:SetStyle(<(style)>);] ;
[<oCtr>:SetId(<(id)>);] ;
[<oCtr>:SetChecked( <.checked.>);] ;
[<oCtr>:SetMultiple(<.mult.>);] ;
[<oCtr>:SetDisabled(<.dis.>);] ;
[<oCtr>:SetReadonly(<.ro.>);] ;
[<oCtr>:SetLabel(<.l.>);] ;
<oCtr>:Type := __TYPE__ <typ> ;;
[<oCtr>:SetOnFocus( <(onfocus)> );] ;
[<oCtr>:SetOnBlur( <(onblur)> );] ;
[<oCtr>:SetOnChange( <(onchange)> );] ;
[<oCtr>:SetOnSelect( <(onselect)> );] ;
[<oCtr>:SetonClick( <(onclick)> );] ;
[<oCtr>:SetonMsOver( <(onmsover)> );] ;
[<oCtr>:SetonMsOut( <(onmsout)> );] ;
[<oCtr>:SetonKDown( <(onkdown)> );] ;
[<oCtr>:SetonKUp( <(onkup)> );] ;
[<oCtr>:SetonKPress( <(onkprs)> );] ;
[<oCtr>:SetPicture( <(pic)> );] ;
[<oCtr>:SetCaption( <cap> );] ;
[<oCtr>:SetStyle( <(style)> );] ;
[<oCtr>:SetId( <(id)> );] ;
[<oCtr>:SetChecked( <.checked.> );] ;
[<oCtr>:SetMultiple( <.mult.> );] ;
[<oCtr>:SetDisabled( <.dis.> );] ;
[<oCtr>:SetReadonly( <.ro.> );] ;
[<oCtr>:SetLabel( <.l.> );] ;
<oCtr>:Type := __TYPE__ <typ> ;;
<oForm>:AddControl( <oCtr> )
#xcommand DEFINE OPTION <text> [OF <oSelect>] ;
@@ -221,16 +221,16 @@
#xCommand LINE BREAK ;
IN <oForm> ;
=> ;
<oForm>:AddControl( "<BR>"+CRLF() )
<oForm>:AddControl( "<BR>" + CRLF() )
#xCommand LINE IN <oForm> ;
=> ;
<oForm>:AddControl( CRLF()+'<HR WIDTH = 100%>'+CRLF() )
<oForm>:AddControl( CRLF() + "<HR WIDTH = 100%>" + CRLF() )
#xCommand SPACE <n> IN <oForm> ;
=> ;
<oForm>:AddControl( replicate( "&nbsp;", <n> ) )
<oForm>:AddControl( Replicate( "&nbsp;", <n> ) )
#xCommand TEXT <c> IN <oForm> ;
@@ -243,33 +243,33 @@
#xCommand START GROUP <c> IN <oForm> => ;
<oForm>:AddControl( CRLF()+"<FIELDSET><LEGEND>"+<c>+"</LEGEND>"+CRLF() )
<oForm>:AddControl( CRLF() + "<FIELDSET><LEGEND>" + <c> + "</LEGEND>" + CRLF() )
#xCommand END GROUP IN <oForm> => ;
<oForm>:AddControl( CRLF()+"</FIELDSET>"+CRLF() )
<oForm>:AddControl( CRLF() + "</FIELDSET>" + CRLF() )
#xtranslate __TYPE__ => "TEXT"
#xtranslate __TYPE__ <typ:EDIT> => "TEXT"
#xtranslate __TYPE__ <typ:TEXT> => "TEXT"
#xtranslate __TYPE__ <typ:TEXTAREA> => "TEXTAREA"
#xtranslate __TYPE__ <typ:PASSWORD> => "PASSWORD"
#xtranslate __TYPE__ <typ:IMAGE> => "IMAGE"
#xtranslate __TYPE__ <typ:BUTTON> => "BUTTON"
#xtranslate __TYPE__ <typ:CHECKBOX> => "CHECKBOX"
#xtranslate __TYPE__ <typ:CHECK> => "CHECKBOX"
#xtranslate __TYPE__ <typ:HIDDEN> => "HIDDEN"
#xtranslate __TYPE__ <typ:RADIO> => "RADIO"
#xtranslate __TYPE__ <typ:FILE> => "FILE"
#xtranslate __TYPE__ <typ:RESET> => "RESET"
#xtranslate __TYPE__ <typ:SUBMIT> => "SUBMIT"
#xtranslate __TYPE__ <typ:SELECT> => "SELECT"
#xtranslate __TYPE__ => "TEXT"
#xtranslate __TYPE__ <typ:EDIT> => "TEXT"
#xtranslate __TYPE__ <typ:TEXT> => "TEXT"
#xtranslate __TYPE__ <typ:TEXTAREA> => "TEXTAREA"
#xtranslate __TYPE__ <typ:PASSWORD> => "PASSWORD"
#xtranslate __TYPE__ <typ:IMAGE> => "IMAGE"
#xtranslate __TYPE__ <typ:BUTTON> => "BUTTON"
#xtranslate __TYPE__ <typ:CHECKBOX> => "CHECKBOX"
#xtranslate __TYPE__ <typ:CHECK> => "CHECKBOX"
#xtranslate __TYPE__ <typ:HIDDEN> => "HIDDEN"
#xtranslate __TYPE__ <typ:RADIO> => "RADIO"
#xtranslate __TYPE__ <typ:FILE> => "FILE"
#xtranslate __TYPE__ <typ:RESET> => "RESET"
#xtranslate __TYPE__ <typ:SUBMIT> => "SUBMIT"
#xtranslate __TYPE__ <typ:SELECT> => "SELECT"
#xtranslate __WRAP__ => NIL
#xtranslate __WRAP__ <wrap:OFF> => "OFF"
#xtranslate __WRAP__ <wrap:VIRTUAL> => "VIRTUAL"
#xtranslate __WRAP__ <wrap:PHYSICAL> => "PHYSICAL"
#xtranslate __WRAP__ <wrap:NORMAL> => "NORMAL"
#xtranslate __WRAP__ => NIL
#xtranslate __WRAP__ <wrap:OFF> => "OFF"
#xtranslate __WRAP__ <wrap:VIRTUAL> => "VIRTUAL"
#xtranslate __WRAP__ <wrap:PHYSICAL> => "PHYSICAL"
#xtranslate __WRAP__ <wrap:NORMAL> => "NORMAL"
#xtranslate __ALIGN__ => NIL
#xtranslate __ALIGN__ <aln:LEFT> => "LEFT"

View File

@@ -92,7 +92,7 @@
[<new: NEW>] ;
[<ro: READONLY>] ;
=> ;
netDbUse( <(cDBF)>, <(cAlias)>, <nSecs>, <cRDD>, ;
NetDbUse( <(cDBF)>, <(cAlias)>, <nSecs>, <cRDD>, ;
<.new.>, NET_OPEN_MODE, <.ro.> )
@@ -154,7 +154,7 @@
<oObj>:ClassAdd( <"cFld">,, {| Self | [<xpression>] },,)
// --> ::undo() buffer constants
// --> ::unDo() buffer constants
#define _WRITE_BUFFER 1
#define _DELETE_BUFFER 2
@@ -167,17 +167,17 @@
[STEP <n>] ;
IN <oTable> ;
=> ;
<oTable>:Undo( <nType>, [<n>] )
<oTable>:UnDo( <nType>, [<n>] )
#xCommand END TRANSACTION IN <oTable> => <oTable>:SetMonitor( .F. )
#command SKIP in <o> => <o>:dbSkip(1)
#command SKIP in <o> => <o>:dbSkip( 1 )
#command SKIP <n> in <o> => <o>:dbSkip( <n> )
#command SEEK <xpr> ;
[<soft: SOFTSEEK>] ;
[<last: LAST>] in <o> ;
=> <o>:dbSeek( <xpr>, if( <.soft.>, .T., NIL ), if( <.last.>, .T., NIL ) )
[<last: LAST>] in <o> ;
=> <o>:dbSeek( <xpr>, iif( <.soft.>, .T., NIL ), iif( <.last.>, .T., NIL ) )
#translate CSY_TYPE Character => "C"
@@ -192,7 +192,7 @@
[ TYPE <cType> ] ;
[ LEN <nLen> ] ;
[ DEC <nDec> ] ;
OF <oDbf> ;
OF <oDbf> ;
=> ;
[ <oFld> := ] _TABLE_:AddField( <(cName)>,CSY_TYPE <cType>, <nLen>, <nDec>)
#xCommand BUILD TABLE <o> => _TABLE_:Gentable()

View File

@@ -1441,7 +1441,7 @@ METHOD OnError( uParam ) CLASS HBTable
LOCAL nPos
LOCAL uRet, oErr
IF uParam != NIL .AND. Left( cMsg, 1 ) == '_'
IF uParam != NIL .AND. Left( cMsg, 1 ) == "_"
cMsg := SubStr( cMsg, 2 )
ENDIF
nPos := ( ::Alias )->( FieldPos( cMsg ) )

View File

@@ -50,64 +50,64 @@
*/
#ifndef __WINTYPES_CH
#define __WINTYPES_CH
#define __WINTYPES_CH
#include "cstruct.ch"
#include "cstruct.ch"
#define VOID CTYPE_VOID
#define UINT CTYPE_UNSIGNED_INT
#define HANDLE CTYPE_UNSIGNED_LONG
#define HICON CTYPE_UNSIGNED_LONG
#define HBITMAP CTYPE_UNSIGNED_LONG
#define HCURSOR CTYPE_UNSIGNED_LONG
#define HBRUSH CTYPE_UNSIGNED_LONG
#define LPCSTR CTYPE_CHAR_PTR
#define WNDPROC CTYPE_UNSIGNED_LONG
#define BOOL CTYPE_LONG
#define LPVOID CTYPE_VOID_PTR
#define DWORD CTYPE_UNSIGNED_LONG
#define WORD CTYPE_UNSIGNED_SHORT
#define LPCTSTR CTYPE_CHAR_PTR
#define COLORREF CTYPE_UNSIGNED_LONG
#define BYTE CTYPE_CHAR
#define TCHAR CTYPE_UNSIGNED_CHAR
#define HINSTANCE CTYPE_UNSIGNED_LONG
#define HMENU CTYPE_UNSIGNED_LONG
#define HTREEITEM CTYPE_UNSIGNED_LONG
#define INT CTYPE_INT
#define int CTYPE_INT
#define HWND CTYPE_UNSIGNED_LONG
#define LPARAM CTYPE_LONG
#define HGLOBAL CTYPE_UNSIGNED_LONG
#define WPARAM CTYPE_INT
#define HKEY CTYPE_UNSIGNED_LONG
#define char CTYPE_CHAR
#define LONG CTYPE_LONG
#define BCHAR CTYPE_UNSIGNED_CHAR
#define WCHAR CTYPE_UNSIGNED_SHORT
#define DOUBLE CTYPE_DOUBLE
#define LPTSTR CTYPE_CHAR_PTR
#define LPSTR CTYPE_CHAR_PTR
#define ULONG CTYPE_UNSIGNED_LONG
#define UCHAR CTYPE_UNSIGNED_CHAR
#define SHORT CTYPE_SHORT
#define USHORT CTYPE_UNSIGNED_SHORT
#define PVOID CTYPE_VOID_PTR
#define ULONG_PTR CTYPE_UNSIGNED_LONG_PTR
#define VOID CTYPE_VOID
#define UINT CTYPE_UNSIGNED_INT
#define HANDLE CTYPE_UNSIGNED_LONG
#define HICON CTYPE_UNSIGNED_LONG
#define HBITMAP CTYPE_UNSIGNED_LONG
#define HCURSOR CTYPE_UNSIGNED_LONG
#define HBRUSH CTYPE_UNSIGNED_LONG
#define LPCSTR CTYPE_CHAR_PTR
#define WNDPROC CTYPE_UNSIGNED_LONG
#define BOOL CTYPE_LONG
#define LPVOID CTYPE_VOID_PTR
#define DWORD CTYPE_UNSIGNED_LONG
#define WORD CTYPE_UNSIGNED_SHORT
#define LPCTSTR CTYPE_CHAR_PTR
#define COLORREF CTYPE_UNSIGNED_LONG
#define BYTE CTYPE_CHAR
#define TCHAR CTYPE_UNSIGNED_CHAR
#define HINSTANCE CTYPE_UNSIGNED_LONG
#define HMENU CTYPE_UNSIGNED_LONG
#define HTREEITEM CTYPE_UNSIGNED_LONG
#define INT CTYPE_INT
#define int CTYPE_INT
#define HWND CTYPE_UNSIGNED_LONG
#define LPARAM CTYPE_LONG
#define HGLOBAL CTYPE_UNSIGNED_LONG
#define WPARAM CTYPE_INT
#define HKEY CTYPE_UNSIGNED_LONG
#define char CTYPE_CHAR
#define LONG CTYPE_LONG
#define BCHAR CTYPE_UNSIGNED_CHAR
#define WCHAR CTYPE_UNSIGNED_SHORT
#define DOUBLE CTYPE_DOUBLE
#define LPTSTR CTYPE_CHAR_PTR
#define LPSTR CTYPE_CHAR_PTR
#define ULONG CTYPE_UNSIGNED_LONG
#define UCHAR CTYPE_UNSIGNED_CHAR
#define SHORT CTYPE_SHORT
#define USHORT CTYPE_UNSIGNED_SHORT
#define PVOID CTYPE_VOID_PTR
#define ULONG_PTR CTYPE_UNSIGNED_LONG_PTR
#define LPOFNHOOKPROC CTYPE_UNSIGNED_LONG
#define LPCFHOOKPROC CTYPE_UNSIGNED_LONG
#define LPFRHOOKPROC CTYPE_UNSIGNED_LONG
#define LPPAGESETUPHOOK CTYPE_UNSIGNED_LONG
#define LPPAGEPAINTHOOK CTYPE_UNSIGNED_LONG
#define LPPRINTHOOKPROC CTYPE_UNSIGNED_LONG
#define LPSETUPHOOKPROC CTYPE_UNSIGNED_LONG
#define LPOFNHOOKPROC CTYPE_UNSIGNED_LONG
#define LPCFHOOKPROC CTYPE_UNSIGNED_LONG
#define LPFRHOOKPROC CTYPE_UNSIGNED_LONG
#define LPPAGESETUPHOOK CTYPE_UNSIGNED_LONG
#define LPPAGEPAINTHOOK CTYPE_UNSIGNED_LONG
#define LPPRINTHOOKPROC CTYPE_UNSIGNED_LONG
#define LPSETUPHOOKPROC CTYPE_UNSIGNED_LONG
#define BFFCALLBACK CTYPE_UNSIGNED_LONG
#define BFFCALLBACK CTYPE_UNSIGNED_LONG
#define HDC CTYPE_UNSIGNED_LONG
#define HIMAGELIST CTYPE_UNSIGNED_LONG
#define HDC CTYPE_UNSIGNED_LONG
#define HIMAGELIST CTYPE_UNSIGNED_LONG
#ytranslate CTYPE_INT(<x>) => Int(<x>) /* Fixes conflict with INT() function */
#ytranslate CTYPE_Int( <x> ) => Int( <x> ) /* Fixes conflict with Int() function */
#endif /* __WINTYPES_CH */

View File

@@ -61,31 +61,31 @@
#pragma -ks+
REQUEST XHB_LIB
#xtranslate __Keyboard([<x,...>]) => xhb__Keyboard(<x>)
#xtranslate __CopyFile([<x,...>]) => xhb_CopyFile(<x>)
#xtranslate __Keyboard( [<x,...>] ) => xhb__Keyboard( <x> )
#xtranslate __CopyFile( [<x,...>] ) => xhb_CopyFile( <x> )
#xuntranslate AIns( =>
#xuntranslate ADel( =>
#xuntranslate AIns( =>
#xuntranslate ADel( =>
#xtranslate AIns(<a>,<n>,[<x,...>]) => xhb_AIns(<a>,<n>,<x>)
#xtranslate ADel(<a>,<n>,<l>) => xhb_ADel(<a>,<n>,<l>)
#xtranslate AIns( <a>, <n>, [<x,...>] ) => xhb_AIns( <a>, <n>, <x> )
#xtranslate ADel( <a>, <n>, <l> ) => xhb_ADel( <a>, <n>, <l> )
#xuntranslate NetName( =>
#xuntranslate MemoWrit( =>
#xuntranslate NetName( =>
#xuntranslate MemoWrit( =>
#xtranslate NetName([<x,...>]) => xhb_NetName(<x>)
#xtranslate MemoWrit([<x,...>]) => xhb_MemoWrit(<x>)
#xtranslate NetName( [<x,...>] ) => xhb_NetName( <x> )
#xtranslate MemoWrit( [<x,...>] ) => xhb_MemoWrit( <x> )
#xtranslate SaveScreen([<x,...>]) => xhb_SaveScreen(<x>)
#xtranslate RestScreen([<x,...>]) => xhb_RestScreen(<x>)
#xtranslate RTrim([<x,...>]) => xhb_RTrim(<x>)
#xtranslate Trim([<x,...>]) => xhb_Trim(<x>)
#xtranslate AllTrim([<x,...>]) => xhb_AllTrim(<x>)
#xtranslate SaveScreen( [<x,...>] ) => xhb_SaveScreen( <x> )
#xtranslate RestScreen( [<x,...>] ) => xhb_RestScreen( <x> )
#xtranslate RTrim( [<x,...>] ) => xhb_RTrim( <x> )
#xtranslate Trim( [<x,...>] ) => xhb_Trim( <x> )
#xtranslate AllTrim( [<x,...>] ) => xhb_AllTrim( <x> )
/* _SET_TRACE* / TraceLog() */
#xtranslate Set(_SET_TRACE [,<x,...>]) => xhb_setTrace( <x> )
#xtranslate Set(_SET_TRACEFILE [,<x,...>]) => xhb_setTraceFile( <x> )
#xtranslate Set(_SET_TRACESTACK [,<x,...>]) => xhb_setTraceStack( <x> )
#xtranslate Set( _SET_TRACE [,<x,...>] ) => xhb_SetTrace( <x> )
#xtranslate Set( _SET_TRACEFILE [,<x,...>] ) => xhb_SetTraceFile( <x> )
#xtranslate Set( _SET_TRACESTACK [,<x,...>] ) => xhb_SetTraceStack( <x> )
#endif

View File

@@ -102,7 +102,7 @@
[SCOPE <scope>] [<persist: PERSISTENT>] ;
[<case: NOUPPER>] => ;
__clsAddMsg( <Class>():classH, #<Message>, ;
{| Self | HB_SYMBOL_UNUSED( Self ), <code> }, ;
{| Self | HB_SYMBOL_UNUsed( Self ), <code> }, ;
HB_OO_MSG_INLINE, NIL, ;
__xhb_cls_scope( <scope>, <.persist.> ) )
@@ -112,7 +112,7 @@
[SCOPE <scope>] [<persist: PERSISTENT>] ;
[<case: NOUPPER>] => ;
__clsAddMsg( <Class>():classH, #<Message>, ;
{| Self, <params> | HB_SYMBOL_UNUSED( Self ), <code> }, ;
{| Self, <params> | HB_SYMBOL_UNUsed( Self ), <code> }, ;
HB_OO_MSG_INLINE, NIL, ;
__xhb_cls_scope( <scope>, <.persist.> ) )

View File

@@ -969,7 +969,7 @@ FUNCTION Sp_Split( cWord )
cWord2 := SubStr( cWord, x )
IF Len( cWord1 ) > 1 .AND. Len( cWord2 ) > 1
IF SP_Check( cWord1 ) .AND. SP_Check( cWord2 )
AAdd( arr_, cWord1 + ' ' + cWord2 )
AAdd( arr_, cWord1 + " " + cWord2 )
ENDIF
ENDIF
NEXT

View File

@@ -1163,7 +1163,7 @@ FUNCTION pdfText( cString, nTop, nLeft, nLength, nTab, nJustify, cUnits, cColor,
LOCAL lParagraph, nSpace, nNew, nTokenLen, nCRLF, nTokens, nLen
__defaultNIL( @nTab, -1 )
__defaultNIL( @cUnits, 'R' )
__defaultNIL( @cUnits, "R" )
__defaultNIL( @nJustify, 4 ) // justify
__defaultNIL( @lPrint, .T. )
__defaultNIL( @cColor, "" )
@@ -1363,9 +1363,9 @@ FUNCTION pdfOpenHeader( cFile )
IF ! Empty( cFile )
cFile := AllTrim( cFile )
IF Len( cFile ) > 12 .OR. ;
At( ' ', cFile ) > 0 .OR. ;
( At( ' ', cFile ) == 0 .AND. Len( cFile ) > 8 ) .OR. ;
( ( nAt := At( '.', cFile ) ) > 0 .AND. Len( SubStr( cFile, nAt + 1 ) ) > 3 )
At( " ", cFile ) > 0 .OR. ;
( At( " ", cFile ) == 0 .AND. Len( cFile ) > 8 ) .OR. ;
( ( nAt := At( ".", cFile ) ) > 0 .AND. Len( SubStr( cFile, nAt + 1 ) ) > 3 )
COPY File ( cFile ) TO temp.tmp
cFile := "temp.tmp"
ENDIF
@@ -1442,7 +1442,7 @@ FUNCTION pdfDisableHeader( cId )
FUNCTION pdfSaveHeader( cFile )
Array2File( 'temp.tmp', t_aReport[ HEADER ] )
Array2File( "temp.tmp", t_aReport[ HEADER ] )
COPY file temp.tmp to ( cFile )
RETURN NIL
@@ -1809,7 +1809,7 @@ FUNCTION pdfCreateHeader( _file, _size, _orient, _lpi, _width )
FUNCTION pdfImageInfo( cFile )
LOCAL cTemp := Upper( SubStr( cFile, RAt( '.', cFile ) + 1 ) ), aTemp := {}
LOCAL cTemp := Upper( SubStr( cFile, RAt( ".", cFile ) + 1 ) ), aTemp := {}
DO CASE
CASE cTemp == "TIF"
@@ -1833,10 +1833,10 @@ FUNCTION pdfTIFFInfo( cFile )
nHandle := FOpen( cFile )
c2 := ' '
c2 := " "
FRead( nHandle, @c2, 2 )
FRead( nHandle, @c2, 2 )
cIFDNext := ' '
cIFDNext := " "
FRead( nHandle, @cIFDNext, 4 )
cTemp := Space( 12 )
@@ -1847,7 +1847,7 @@ FUNCTION pdfTIFFInfo( cFile )
nIFD := Bin2L( cIFDNext )
FSeek( nHandle, nIFD )
// ? '*** IFD ' + hb_ntos( ++nPages )
// ? "*** IFD " + hb_ntos( ++nPages )
FRead( nHandle, @c2, 2 )
nFields := Bin2I( c2 )
@@ -1896,9 +1896,9 @@ FUNCTION pdfTIFFInfo( cFile )
IF nFieldType == ASCII
--nCount
ENDIF
// ? 'Tag'
// ?? ' ' + padr( nTag, 10 )
// cTag := ''
// ? "Tag"
// ?? " " + padr( nTag, 10 )
// cTag := ""
DO CASE
CASE nTag == 256
/*
@@ -1907,11 +1907,11 @@ FUNCTION pdfTIFFInfo( cFile )
Type = SHORT or LONG
The number of columns in the image, i.e., the number of pixels per scanline.
*/
// ?? 'ImageWidth'
// cTag := 'ImageWidth'
// ?? "ImageWidth"
// cTag := "ImageWidth"
#if 0
IF nFieldType != SHORT .AND. nFieldType != LONG
Alert( 'Wrong Type for ImageWidth' )
Alert( "Wrong Type for ImageWidth" )
ENDIF
#endif
IF nFieldType == SHORT
@@ -1927,11 +1927,11 @@ FUNCTION pdfTIFFInfo( cFile )
Type = SHORT or LONG
The number of rows (sometimes described as scanlines) in the image.
*/
// ?? 'ImageLength'
// cTag := 'ImageLength'
// ?? "ImageLength"
// cTag := "ImageLength"
#if 0
IF nFieldType != SHORT .AND. nFieldType != LONG
Alert( 'Wrong Type for ImageLength' )
Alert( "Wrong Type for ImageLength" )
ENDIF
#endif
IF nFieldType == SHORT
@@ -1949,17 +1949,17 @@ FUNCTION pdfTIFFInfo( cFile )
Allowable values for Baseline TIFF grayscale images are 4 and 8, allowing either
16 or 256 distinct shades of gray.
*/
// ?? 'BitsPerSample'
// cTag := 'BitsPerSample'
// ?? "BitsPerSample"
// cTag := "BitsPerSample"
nTemp := 0
IF nFieldType == SHORT
nTemp := Bin2W( cValues )
ELSE
// alert('Wrong Type for BitsPerSample')
// Alert( "Wrong Type for BitsPerSample" )
ENDIF
nBits := nTemp
// IF nTemp != 4 .and. nTemp != 8
// alert('Wrong Value for BitsPerSample')
// Alert( "Wrong Value for BitsPerSample" )
// ENDIF
CASE nTag == 259
/*
@@ -1978,16 +1978,16 @@ FUNCTION pdfTIFFInfo( cFile )
unaffected.
Baseline TIFF readers must handle all three compression schemes.
*/
// ?? 'Compression'
// cTag := 'Compression'
// ?? "Compression"
// cTag := "Compression"
/*nTemp := 0
IF nFieldType == SHORT
nTemp := bin2w( cValues )
ELSE
//alert('Wrong Type for Compression')
// Alert( "Wrong Type for Compression" )
ENDIF*/
// IF nTemp != 1 .and. nTemp != 2 .and. nTemp != 32773
// alert('Wrong Value for Compression')
// Alert( "Wrong Value for Compression" )
// ENDIF
CASE nTag == 262
/*
@@ -2001,16 +2001,16 @@ FUNCTION pdfTIFFInfo( cFile )
value is imaged as white. If this value is specified for Compression=2, the
image should display and print reversed.
*/
// ?? 'PhotometricInterpretation'
// cTag := 'PhotometricInterpretation'
// ?? "PhotometricInterpretation"
// cTag := "PhotometricInterpretation"
nTemp := -1
IF nFieldType == SHORT
nTemp := Bin2W( cValues )
ELSE
// alert('Wrong Type for PhotometricInterpretation')
// Alert( "Wrong Type for PhotometricInterpretation" )
ENDIF
IF nTemp != 0 .AND. nTemp != 1 .AND. nTemp != 2 .AND. nTemp != 3
// alert('Wrong Value for PhotometricInterpretation')
// Alert( "Wrong Value for PhotometricInterpretation" )
ENDIF
CASE nTag == 264
/*
@@ -2021,10 +2021,10 @@ FUNCTION pdfTIFFInfo( cFile )
N = 1
No default. See also Threshholding.
*/
// ?? 'CellWidth'
// cTag := 'CellWidth'
// ?? "CellWidth"
// cTag := "CellWidth"
IF nFieldType != SHORT
// alert('Wrong Type for CellWidth')
// Alert( "Wrong Type for CellWidth" )
ENDIF
CASE nTag == 265
/*
@@ -2037,10 +2037,10 @@ FUNCTION pdfTIFFInfo( cFile )
This field should only be present if Threshholding = 2
No default. See also Threshholding.
*/
// ?? 'CellLength'
// cTag := 'CellLength'
// ?? "CellLength"
// cTag := "CellLength"
IF nFieldType != SHORT
// alert('Wrong Type for CellLength')
// Alert( "Wrong Type for CellLength" )
ENDIF
CASE nTag == 266
/*
@@ -2050,10 +2050,10 @@ FUNCTION pdfTIFFInfo( cFile )
Type = SHORT
N = 1
*/
// ?? 'FillOrder'
// cTag := 'FillOrder'
// ?? "FillOrder"
// cTag := "FillOrder"
IF nFieldType != SHORT
// alert('Wrong Type for FillOrder')
// Alert( "Wrong Type for FillOrder" )
ENDIF
CASE nTag == 273
/*
@@ -2062,10 +2062,10 @@ FUNCTION pdfTIFFInfo( cFile )
Type = SHORT or LONG
For each strip, the byte offset of that strip.
*/
// ?? 'StripOffsets'
// cTag := 'StripOffsets'
// ?? "StripOffsets"
// cTag := "StripOffsets"
IF nFieldType != SHORT .AND. nFieldType != LONG
// alert('Wrong Type for StripOffsets')
// Alert( "Wrong Type for StripOffsets" )
ENDIF
IF nFieldType == SHORT
@@ -2082,10 +2082,10 @@ FUNCTION pdfTIFFInfo( cFile )
The number of components per pixel. This number is 3 for RGB images, unless
extra samples are present. See the ExtraSamples field for further information.
*/
// ?? 'SamplesPerPixel'
// cTag := 'SamplesPerPixel'
// ?? "SamplesPerPixel"
// cTag := "SamplesPerPixel"
IF nFieldType != SHORT
// alert('Wrong Type for SamplesPerPixel')
// Alert( "Wrong Type for SamplesPerPixel" )
ENDIF
CASE nTag == 278
/*
@@ -2098,10 +2098,10 @@ FUNCTION pdfTIFFInfo( cFile )
third strip. (The data in the last strip is not padded with 6 extra rows of dummy
data.)
*/
// ?? 'RowsPerStrip'
// cTag := 'RowsPerStrip'
// ?? "RowsPerStrip"
// cTag := "RowsPerStrip"
IF nFieldType != SHORT .AND. nFieldType != LONG
// alert('Wrong Type for RowsPerStrip')
// Alert( "Wrong Type for RowsPerStrip" )
ENDIF
CASE nTag == 279
/*
@@ -2110,10 +2110,10 @@ FUNCTION pdfTIFFInfo( cFile )
Type = SHORT or LONG
For each strip, the number of bytes in that strip after any compression.
*/
// ?? 'StripByteCounts'
// cTag := 'StripByteCounts'
// ?? "StripByteCounts"
// cTag := "StripByteCounts"
IF nFieldType != SHORT .AND. nFieldType != LONG
// alert('Wrong Type for StripByteCounts')
// Alert( "Wrong Type for StripByteCounts" )
ENDIF
IF nFieldType == SHORT
@@ -2132,10 +2132,10 @@ FUNCTION pdfTIFFInfo( cFile )
The number of pixels per ResolutionUnit in the ImageWidth (typically, horizontal
- see Orientation) direction.
*/
// ?? 'XResolution'
// cTag := 'XResolution'
// ?? "XResolution"
// cTag := "XResolution"
IF nFieldType != RATIONAL
// alert('Wrong Type for XResolution')
// Alert( "Wrong Type for XResolution" )
ENDIF
xRes := Bin2L( SubStr( cValues, 1, 4 ) )
CASE nTag == 283
@@ -2146,17 +2146,17 @@ FUNCTION pdfTIFFInfo( cFile )
The number of pixels per ResolutionUnit in the ImageLength (typically, vertical)
direction.
*/
// ?? 'YResolution'
// cTag := 'YResolution'
// ?? "YResolution"
// cTag := "YResolution"
IF nFieldType != RATIONAL
// alert('Wrong Type for YResolution')
// Alert( "Wrong Type for YResolution" )
ENDIF
yRes := Bin2L( SubStr( cValues, 1, 4 ) )
CASE nTag == 284
// ?? 'PlanarConfiguration'
// cTag := 'PlanarConfiguration'
// ?? "PlanarConfiguration"
// cTag := "PlanarConfiguration"
IF nFieldType != SHORT
// alert('Wrong Type for PlanarConfiguration')
// Alert( "Wrong Type for PlanarConfiguration" )
ENDIF
CASE nTag == 288
/*
@@ -2168,10 +2168,10 @@ FUNCTION pdfTIFFInfo( cFile )
Not recommended for general interchange.
See also FreeByteCounts.
*/
// ?? 'FreeOffsets'
// cTag := 'FreeOffsets'
// ?? "FreeOffsets"
// cTag := "FreeOffsets"
IF nFieldType != LONG
// alert('Wrong Type for FreeOffsets')
// Alert( "Wrong Type for FreeOffsets" )
ENDIF
CASE nTag == 289
/*
@@ -2183,10 +2183,10 @@ FUNCTION pdfTIFFInfo( cFile )
Not recommended for general interchange.
See also FreeOffsets.
*/
// ?? 'FreeByteCounts'
// cTag := 'FreeByteCounts'
// ?? "FreeByteCounts"
// cTag := "FreeByteCounts"
IF nFieldType != LONG
// alert('Wrong Type for FreeByteCounts')
// Alert( "Wrong Type for FreeByteCounts" )
ENDIF
CASE nTag == 296
/*
@@ -2200,22 +2200,22 @@ FUNCTION pdfTIFFInfo( cFile )
3 = Centimeter.
Default = 2 (inch).
*/
// ?? 'ResolutionUnit'
// cTag := 'ResolutionUnit'
// ?? "ResolutionUnit"
// cTag := "ResolutionUnit"
nTemp := 0
IF nFieldType == SHORT
nTemp := Bin2W( cValues )
ELSE
// alert('Wrong Type for ResolutionUnit')
// Alert( "Wrong Type for ResolutionUnit" )
ENDIF
IF nTemp != 1 .AND. nTemp != 2 .AND. nTemp != 3
// alert('Wrong Value for ResolutionUnit')
// Alert( "Wrong Value for ResolutionUnit" )
ENDIF
CASE nTag == 305
// ?? 'Software'
// cTag := 'Software'
// ?? "Software"
// cTag := "Software"
IF nFieldType != ASCII
// alert('Wrong Type for Software')
// Alert( "Wrong Type for Software" )
ENDIF
CASE nTag == 306
/*
@@ -2228,10 +2228,10 @@ FUNCTION pdfTIFFInfo( cFile )
clock, and one space character between the date and the time. The length of the
string, including the terminating NUL, is 20 bytes.
*/
// ?? 'DateTime'
// cTag := 'DateTime'
// ?? "DateTime"
// cTag := "DateTime"
IF nFieldType != ASCII
// alert('Wrong Type for DateTime')
// Alert( "Wrong Type for DateTime" )
ENDIF
CASE nTag == 315
/*
@@ -2241,10 +2241,10 @@ FUNCTION pdfTIFFInfo( cFile )
Type = ASCII
Note: some older TIFF files used this tag for storing Copyright information.
*/
// ?? 'Artist'
// cTag := 'Artist'
// ?? "Artist"
// cTag := "Artist"
IF nFieldType != ASCII
// alert('Wrong Type for Artist')
// Alert( "Wrong Type for Artist" )
ENDIF
CASE nTag == 320
/*
@@ -2260,10 +2260,10 @@ FUNCTION pdfTIFFInfo( cFile )
then the Blue values. In the ColorMap, black is represented by 0,0,0 and white is
represented by 65535, 65535, 65535.
*/
// ?? 'ColorMap'
// cTag := 'ColorMap'
// ?? "ColorMap"
// cTag := "ColorMap"
IF nFieldType != SHORT
// alert('Wrong Type for ColorMap')
// Alert( "Wrong Type for ColorMap" )
ENDIF
CASE nTag == 338
/*
@@ -2273,10 +2273,10 @@ FUNCTION pdfTIFFInfo( cFile )
Type = SHORT
N = m
*/
// ?? 'ExtraSamples'
// cTag := 'ExtraSamples'
// ?? "ExtraSamples"
// cTag := "ExtraSamples"
IF nFieldType != SHORT
// alert('Wrong Type for ExtraSamples')
// Alert( "Wrong Type for ExtraSamples" )
ENDIF
CASE nTag == 33432
/*
@@ -2289,68 +2289,68 @@ FUNCTION pdfTIFFInfo( cFile )
any dates and statements of claims. For example, Copyright, John Smith, 19xx.
All rights reserved.
*/
// ?? 'Copyright'
// cTag := 'Copyright'
// ?? "Copyright"
// cTag := "Copyright"
IF nFieldType != ASCII
// alert('Wrong Type for Copyright')
// Alert( "Wrong Type for Copyright" )
ENDIF
OTHERWISE
// ?? 'Unknown'
// cTag := 'Unknown'
// ?? "Unknown"
// cTag := "Unknown"
ENDCASE
#if 0
?? PadR( cTag, 30 )
?? ' type ' + PadR( aType[ nFieldType ], 10 ) + ' count ' + hb_ntos( nCount ) + ' <'
?? " type " + PadR( aType[ nFieldType ], 10 ) + " count " + hb_ntos( nCount ) + " <"
DO CASE
CASE nFieldType == BYTE
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Asc( SubStr( cValues, nI, 1 ) ) )
?? " " + hb_ntos( Asc( SubStr( cValues, nI, 1 ) ) )
NEXT
CASE nFieldType == ASCII
?? ' '
?? " "
FOR nI := 1 TO nCount
?? SubStr( cValues, nI, 1 )
NEXT
CASE nFieldType == SHORT
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Bin2W( SubStr( cValues, ( nI - 1 ) * 2 + 1, 2 ) ) )
?? " " + hb_ntos( Bin2W( SubStr( cValues, ( nI - 1 ) * 2 + 1, 2 ) ) )
NEXT
CASE nFieldType == LONG
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 4 + 1, 4 ) ) )
?? " " + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 4 + 1, 4 ) ) )
NEXT
CASE nFieldType == RATIONAL
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 8 + 1, 4 ) ) ) + '/' + hb_ntos( Bin2L( SubStr( cValues, nI + 4, 4 ) ) )
?? " " + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 8 + 1, 4 ) ) ) + "/" + hb_ntos( Bin2L( SubStr( cValues, nI + 4, 4 ) ) )
NEXT
CASE nFieldType == SBYTE
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Asc( SubStr( cValues, nI, 1 ) ) )
?? " " + hb_ntos( Asc( SubStr( cValues, nI, 1 ) ) )
NEXT
CASE nFieldType == UNDEFINED
FOR nI := 1 TO nCount
?? ' ' + SubStr( cValues, nI, 1 )
?? " " + SubStr( cValues, nI, 1 )
NEXT
CASE nFieldType == SSHORT
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Bin2I( SubStr( cValues, ( nI - 1 ) * 2 + 1, 2 ) ) )
?? " " + hb_ntos( Bin2I( SubStr( cValues, ( nI - 1 ) * 2 + 1, 2 ) ) )
NEXT
CASE nFieldType == SLONG
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 4 + 1, 4 ) ) )
?? " " + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 4 + 1, 4 ) ) )
NEXT
CASE nFieldType == SRATIONAL
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 8 + 1, 4 ) ) ) + '/' + hb_ntos( Bin2L( SubStr( cValues, nI + 4, 4 ) ) )
?? " " + hb_ntos( Bin2L( SubStr( cValues, ( nI - 1 ) * 8 + 1, 4 ) ) ) + "/" + hb_ntos( Bin2L( SubStr( cValues, nI + 4, 4 ) ) )
NEXT
CASE nFieldType == FLOAT
CASE nFieldType == DOUBLE
FOR nI := 1 TO nCount
?? ' ' + hb_ntos( ctof( SubStr( cValues, ( nI - 1 ) * 8 + 1, 8 ) ) )
?? " " + hb_ntos( ctof( SubStr( cValues, ( nI - 1 ) * 8 + 1, 8 ) ) )
NEXT
ENDCASE
?? ' >'
?? " >"
#endif
NEXT
FRead( nHandle, @cIFDNext, 4 )
@@ -2528,7 +2528,7 @@ STATIC FUNCTION WriteData( hFile, xData )
ELSEIF HB_ISDATE( xData )
cData += I2Bin( 8 ) + DToS( xData )
ELSEIF HB_ISLOGICAL( xData )
cData += I2Bin( 1 ) + iif( xData, 'T', 'F' )
cData += I2Bin( 1 ) + iif( xData, "T", "F" )
ELSEIF HB_ISARRAY( xData )
cData += I2Bin( Len( xData ) )
ELSE
@@ -2549,7 +2549,7 @@ STATIC FUNCTION File2Array( cFile, nLen, hFile )
ENDIF
cData := Space( 3 )
FRead( hFile, @cData, 3 )
IF !( Left( cData, 1 ) == 'A' )
IF !( Left( cData, 1 ) == "A" )
RETURN aRay
ENDIF
nLen := Bin2I( Right( cData, 2 ) )
@@ -2562,7 +2562,7 @@ STATIC FUNCTION File2Array( cFile, nLen, hFile )
ENDIF
cType := PadL( cData, 1 )
nDataLen := Bin2I( Right( cData, 2 ) )
IF !( cType == 'A' )
IF !( cType == "A" )
cData := Space( nDataLen )
nBytes := FRead( hFile, @cData, nDataLen )
IF nBytes < nDataLen
@@ -2571,15 +2571,15 @@ STATIC FUNCTION File2Array( cFile, nLen, hFile )
ENDIF
nDepth++
AAdd( aRay, NIL )
IF cType == 'C'
IF cType == "C"
aRay[ nDepth ] := cData
ELSEIF cType == 'N'
ELSEIF cType == "N"
aRay[ nDepth ] := Val( cData )
ELSEIF cType == 'D'
ELSEIF cType == "D"
aRay[ nDepth ] := CToD( Left( cData, 4 ) + "/" + SubStr( cData, 5, 2 ) + "/" + SubStr( cData, 7, 2 ) ) // stod(cData)
ELSEIF cType == 'L'
aRay[ nDepth ] := ( cData == 'T' )
ELSEIF cType == 'A'
ELSEIF cType == "L"
aRay[ nDepth ] := ( cData == "T" )
ELSEIF cType == "A"
aRay[ nDepth ] := File2Array(, nDataLen, hFile )
ENDIF
ENDDO

View File

@@ -343,11 +343,11 @@ FUNCTION uhttpd_URLEncode( cString, lComplete )
CASE ( cChar >= "A" .AND. cChar <= "Z" ) .OR. ;
( cChar >= "a" .AND. cChar <= "z" ) .OR. ;
( cChar >= "0" .AND. cChar <= "9" ) .OR. ;
cChar == '.' .OR. cChar == ',' .OR. cChar == '&' .OR. ;
cChar == '/' .OR. cChar == ';' .OR. cChar == '_'
cChar == "." .OR. cChar == "," .OR. cChar == "&" .OR. ;
cChar == "/" .OR. cChar == ";" .OR. cChar == "_"
cRet += cChar
CASE iif( ! lComplete, cChar == ':' .OR. cChar == '?' .OR. cChar == '=', .F. )
CASE iif( ! lComplete, cChar == ":" .OR. cChar == "?" .OR. cChar == "=", .F. )
cRet += cChar
OTHERWISE
@@ -482,7 +482,7 @@ FUNCTION uhttpd_OutputString( cString, aTranslate, lProtected )
LOCAL cHtml
__defaultNIL( @lProtected, .F. )
__defaultNIL( @aTranslate, { { '"', '&quot;' }, { ' ', '&nbsp;' } } )
__defaultNIL( @aTranslate, { { '"', "&quot;" }, { " ", "&nbsp;" } } )
// TraceLog( "OutputString( cString, aTranslate, lProtected )", cString, aTranslate, lProtected )
IF lProtected
@@ -497,9 +497,9 @@ FUNCTION uhttpd_OutputString( cString, aTranslate, lProtected )
FUNCTION uhttpd_HtmlSpecialChars( cString, cQuote_style )
LOCAL aTranslations := { ;
{ '&', '&amp;' }, ;
{ '<', '&lt;' }, ;
{ '>', '&gt;' } }
{ "&", "&amp;" }, ;
{ "<", "&lt;" }, ;
{ ">", "&gt;" } }
RETURN uhttpd_HtmlConvertChars( cString, cQuote_style, aTranslations )

View File

@@ -65,7 +65,7 @@ FUNCTION HRBMAIN()
hGets := _REQUEST
DEFAULT hGets TO { => }
hb_default( @hGets, { => } )
IF hb_HHasKey( hGets, "page" )
@@ -116,7 +116,7 @@ FUNCTION HRBMAIN()
uhttpd_SetHeader( "Content-Type", "text/xml" )
uhttpd_Write( '<?xml version="1.0" encoding="ISO-8859-1"?>' )
uhttpd_Write( '<pages><page>No Data</page></pages>' )
uhttpd_Write( "<pages><page>No Data</page></pages>" )
ENDIF
@@ -353,7 +353,7 @@ METHOD xmlEncode( input ) CLASS TableManager
FOR i := 1 TO Len( input )
c := SubStr( input, i, 1 )
SWITCH c
CASE '&'
CASE "&"
out += "&amp;"
EXIT
CASE "'"
@@ -362,14 +362,14 @@ METHOD xmlEncode( input ) CLASS TableManager
CASE '"'
out += "&quot;"
EXIT
CASE '<'
CASE "<"
out += "&lt;"
EXIT
CASE '>'
CASE ">"
out += "&gt;"
EXIT
#if 0
CASE ' '
CASE " "
out += "&nbsp;"
EXIT
#endif

View File

@@ -272,7 +272,7 @@ METHOD Start( cSID ) CLASS uhttpd_Session
// Should we define the SID?
IF lDefine_SID
cSID := ::cName + '=' + ::cSID
cSID := ::cName + "=" + ::cSID
_REQUEST[ ::cName ] := ::cSID
ENDIF
@@ -282,7 +282,7 @@ METHOD Start( cSID ) CLASS uhttpd_Session
// Start session
IF ! ::Open( ::cSavePath, ::cName )
uhttpd_Die( 'ERROR: Failed to open session file' )
uhttpd_Die( "ERROR: Failed to open session file" )
ENDIF
// Read session data
@@ -337,11 +337,11 @@ METHOD Close() CLASS uhttpd_Session
// Save session
IF ! ::Write( ::cSID, cVal )
uhttpd_Die( 'Session could not be saved.' )
uhttpd_Die( "Session could not be saved." )
ENDIF
// Close session
IF ! Eval( ::bClose )
uhttpd_Die( 'Session could not be closed.' )
uhttpd_Die( "Session could not be closed." )
ENDIF
::nActiveSessions--
@@ -826,7 +826,7 @@ METHOD Decode( cData ) CLASS uhttpd_Session
SWITCH ValType( xVal )
#if 0
CASE 'O'
CASE "O"
// TraceLog( "Decode - xVal - Object", xVal )
IF xVal:classname == "TASSOCIATIVEARRAY"
// TraceLog( "Decode - xVal - Object - TAssociativeArray - Keys", xVal:Keys )
@@ -838,7 +838,7 @@ METHOD Decode( cData ) CLASS uhttpd_Session
EXIT
#endif
CASE 'A' // Le variabili sono conservate come array { VarName, Value }
CASE "A" // Le variabili sono conservate come array { VarName, Value }
// TraceLog( "Decode - xVal - Array", xVal )
// ::oCGI:ToLogFile( "Decode - xVal - Array = " + hb_CStr( xVal ) + ", Len = " + hb_CStr( Len( xVal ) ), "/pointtoit/tmp/log.txt" )
FOR EACH aElem IN xVal
@@ -861,24 +861,24 @@ METHOD SendCacheLimiter() CLASS uhttpd_Session
LOCAL dDate
DO CASE
CASE ::cCache_Limiter == 'nocache'
// uhttpd_SetHeader( 'Expires', 'Thu, 19 Nov 1981 08:52:00 GMT' )
uhttpd_SetHeader( 'Expires', uhttpd_DateToGMT( ,, -1, ) )
uhttpd_SetHeader( 'Cache-Control', 'no-cache' )
// uhttpd_SetHeader("Cache-Control", "no-store, no-cache, must-revalidate") // HTTP/1.1
// uhttpd_SetHeader("Cache-Control", "post-check=0, pre-check=0", .F. )
uhttpd_SetHeader( 'Pragma', 'no-cache' )
CASE ::cCache_Limiter == 'private'
uhttpd_SetHeader( 'Expires', 'Thu, 19 Nov 1981 08:52:00 GMT' )
uhttpd_SetHeader( 'Cache-Control', 'private, max-age=' + hb_ntos( ::nCache_Expire * 60 ) )
CASE ::cCache_Limiter == "nocache"
// uhttpd_SetHeader( "Expires", "Thu, 19 Nov 1981 08:52:00 GMT" )
uhttpd_SetHeader( "Expires", uhttpd_DateToGMT( ,, -1, ) )
uhttpd_SetHeader( "Cache-Control", "no-cache" )
// uhttpd_SetHeader( "Cache-Control", "no-store, no-cache, must-revalidate" ) // HTTP/1.1
// uhttpd_SetHeader( "Cache-Control", "post-check=0, pre-check=0", .F. )
uhttpd_SetHeader( "Pragma", "no-cache" )
CASE ::cCache_Limiter == "private"
uhttpd_SetHeader( "Expires", "Thu, 19 Nov 1981 08:52:00 GMT" )
uhttpd_SetHeader( "Cache-Control", "private, max-age=" + hb_ntos( ::nCache_Expire * 60 ) )
IF hb_FGetDateTime( hb_argv( 0 ), @dDate )
uhttpd_SetHeader( 'Last-Modified', uhttpd_DateToGMT( dDate ) )
uhttpd_SetHeader( "Last-Modified", uhttpd_DateToGMT( dDate ) )
ENDIF
CASE ::cCache_Limiter == 'public'
uhttpd_SetHeader( 'Expires', uhttpd_DateToGMT( ,,, ::nCache_Expire * 60 ) )
uhttpd_SetHeader( 'Cache-Control', 'public, max-age=' + hb_ntos( ::nCache_Expire * 60 ) )
CASE ::cCache_Limiter == "public"
uhttpd_SetHeader( "Expires", uhttpd_DateToGMT( ,,, ::nCache_Expire * 60 ) )
uhttpd_SetHeader( "Cache-Control", "public, max-age=" + hb_ntos( ::nCache_Expire * 60 ) )
IF hb_FGetDateTime( hb_argv( 0 ), @dDate )
uhttpd_SetHeader( 'Last-Modified', uhttpd_DateToGMT( dDate ) )
uhttpd_SetHeader( "Last-Modified", uhttpd_DateToGMT( dDate ) )
ENDIF
OTHERWISE
uhttpd_Die( "ERROR: Caching method " + ::cCache_Limiter + " not implemented." )

View File

@@ -1239,7 +1239,7 @@ STATIC FUNCTION ParseRequest( cRequest )
// hb_toOutDebug( "GET: cFields = %s, hVars = %s, _GET = %s, _REQUEST = %s\n\r", cFields, hb_ValToExp( hVars ), hb_ValToExp( _GET ), hb_ValToExp( _REQUEST ) )
// POST
IF "POST" $ Upper( _SERVER[ 'REQUEST_METHOD' ] )
IF "POST" $ Upper( _SERVER[ "REQUEST_METHOD" ] )
cFields := ATail( aRequest )
IF ! Empty( cFields )
hVars := uhttpd_GetVars( cFields )
@@ -1252,7 +1252,7 @@ STATIC FUNCTION ParseRequest( cRequest )
// hb_toOutDebug( "POST: cFields = %s, hVars = %s, _POST = %s, _REQUEST = %s\n\r", cFields, hb_ValToExp( hVars ), hb_ValToExp( _POST ), hb_ValToExp( _REQUEST ) )
// COOKIES
cFields := _SERVER[ 'HTTP_COOKIE' ]
cFields := _SERVER[ "HTTP_COOKIE" ]
IF ! Empty( cFields )
hVars := uhttpd_GetVars( cFields, ";" )
hb_HMerge( _COOKIE, hVars )
@@ -1450,7 +1450,7 @@ STATIC PROCEDURE WriteToLog( cRequest )
cAccess := _SERVER[ "REMOTE_ADDR" ] + " - - [" + Right( cDate, 2 ) + "/" + ;
aMonths[ Val( SubStr( cDate, 5, 2 ) ) ] + ;
"/" + Left( cDate, 4 ) + ":" + cTime + ' ' + cBias + '] "' + ;
"/" + Left( cDate, 4 ) + ":" + cTime + " " + cBias + '] "' + ;
Left( cRequest, At( CR_LF, cRequest ) - 1 ) + '" ' + ;
hb_ntos( t_nStatusCode ) + " " + iif( nSize == 0, "-", hb_ntos( nSize ) ) + ;
' "' + iif( Empty( cReferer ), "-", cReferer ) + '" "' + _SERVER[ "HTTP_USER_AGENT" ] + ;

View File

@@ -2998,7 +2998,7 @@ FUNCTION hbmk( aArgs, nArgTarget, /* @ */ lPause, nLevel )
/* Silently ignore these. These options can be used to store options
processed by other tools allowing them to keep additional information
in .hb? script files. */
in .hbp/.hbm script files. */
CASE Left( cParamL, Len( "-workdir=" ) ) == "-workdir="