From 440d61f0aeb3fb28be3bb2cf0ef739e66c080510 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 8 Oct 2007 17:36:21 +0000 Subject: [PATCH] 2007-10-08 19:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * contrib/xhb/hbcompat.ch * contrib/xhb/xhb.ch + Moved lines which do not need xhb lib itself from xhb.ch to hbcompat.ch. xhb.ch now includes hbcompat.ch and not vice versa. So now hbcompat.ch can be used as a "lighter" compatibility layer which doesn't need the lib binary. Pls test. * contrib/mysql/tmysql.prg * contrib/mysql/tsqlbrw.prg * contrib/mysql/Makefile ! Applied MySQL lib patch on behalf of Guy Roussin. --- harbour/ChangeLog | 13 ++ harbour/contrib/mysql/Makefile | 2 +- harbour/contrib/mysql/tmysql.prg | 18 ++- harbour/contrib/mysql/tsqlbrw.prg | 3 +- harbour/contrib/xhb/hbcompat.ch | 197 +++++++++++++++++++++++++++++- harbour/contrib/xhb/xhb.ch | 196 +---------------------------- 6 files changed, 228 insertions(+), 201 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 8100b414ed..c99134264d 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,19 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-10-08 19:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * contrib/xhb/hbcompat.ch + * contrib/xhb/xhb.ch + + Moved lines which do not need xhb lib itself from xhb.ch to hbcompat.ch. + xhb.ch now includes hbcompat.ch and not vice versa. + So now hbcompat.ch can be used as a "lighter" compatibility + layer which doesn't need the lib binary. Pls test. + + * contrib/mysql/tmysql.prg + * contrib/mysql/tsqlbrw.prg + * contrib/mysql/Makefile + ! Applied MySQL lib patch on behalf of Guy Roussin. + 2007-10-08 01:06 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/arrays.c ! fixed value returned by HB_RASCAN( aVal, bCode ) - it was returning diff --git a/harbour/contrib/mysql/Makefile b/harbour/contrib/mysql/Makefile index ac655aa6ff..49b2c0c20b 100644 --- a/harbour/contrib/mysql/Makefile +++ b/harbour/contrib/mysql/Makefile @@ -17,4 +17,4 @@ include $(TOP)$(ROOT)config/lib.cf # a workaround of a problem with different include directories # for mysql header files between different unix distributions -CFLAGS := -I/usr/include/mysql -I/usr/local/include/mysql +CFLAGS := -I/usr/include/mysql -DBIG_JOINS=1 diff --git a/harbour/contrib/mysql/tmysql.prg b/harbour/contrib/mysql/tmysql.prg index 0eb547fcb2..a6f9b22ab7 100644 --- a/harbour/contrib/mysql/tmysql.prg +++ b/harbour/contrib/mysql/tmysql.prg @@ -63,7 +63,7 @@ #include "common.ch" #include "dbstruct.ch" #include "mysql.ch" - +#include "set.ch" // Every single row of an answer @@ -216,11 +216,15 @@ METHOD FieldLen(nNum) CLASS TMySQLRow //DAVID: return "" return 0 - METHOD FieldDec(nNum) CLASS TMySQLRow if nNum >=1 .AND. nNum <= Len(::aFieldStruct) - return ::aFieldStruct[nNum][MYSQL_FS_DECIMALS] + if ::aFieldStruct[nNum][MYSQL_FS_TYPE] == MYSQL_FLOAT_TYPE .or. ; + ::aFieldStruct[nNum][MYSQL_FS_TYPE] == MYSQL_DOUBLE_TYPE + return set(_SET_DECIMALS) + else + return ::aFieldStruct[nNum][MYSQL_FS_DECIMALS] + endif endif //DAVID: return "" @@ -727,11 +731,15 @@ METHOD FieldLen(nNum) CLASS TMySQLQuery return 0 - METHOD FieldDec(nNum) CLASS TMySQLQuery if nNum >=1 .AND. nNum <= Len(::aFieldStruct) - return ::aFieldStruct[nNum][MYSQL_FS_DECIMALS] + if ::aFieldStruct[nNum][MYSQL_FS_TYPE] == MYSQL_FLOAT_TYPE .or. ; + ::aFieldStruct[nNum][MYSQL_FS_TYPE] == MYSQL_DOUBLE_TYPE + return set(_SET_DECIMALS) + else + return ::aFieldStruct[nNum][MYSQL_FS_DECIMALS] + endif endif return 0 diff --git a/harbour/contrib/mysql/tsqlbrw.prg b/harbour/contrib/mysql/tsqlbrw.prg index 2a8ee6f1a4..fbd6b79630 100644 --- a/harbour/contrib/mysql/tsqlbrw.prg +++ b/harbour/contrib/mysql/tsqlbrw.prg @@ -105,7 +105,7 @@ METHOD Block() CLASS TBColumnSQL do case case xType == "N" - xValue := Str(xValue, ::oBrw:oCurRow:FieldLen(::nFieldNum), ::oBrw:oCurRow:FieldDec(::nFieldNum)) + xValue := "'"+Str(xValue, ::oBrw:oCurRow:FieldLen(::nFieldNum), ::oBrw:oCurRow:FieldDec(::nFieldNum))+"'" case xType == "D" xValue := "'" + DToC(xValue) + "'" @@ -124,6 +124,7 @@ METHOD Block() CLASS TBColumnSQL xValue := "' '" otherwise + xValue := "'"+xValue+"'" endcase return &("{||" + xValue + "}") diff --git a/harbour/contrib/xhb/hbcompat.ch b/harbour/contrib/xhb/hbcompat.ch index b84654491a..5cf35b29ea 100644 --- a/harbour/contrib/xhb/hbcompat.ch +++ b/harbour/contrib/xhb/hbcompat.ch @@ -50,4 +50,199 @@ * */ -#include "xhb.ch" +#ifdef __HARBOUR__ + +#ifdef __XHARBOUR__ + #include "gtinfo.ch" + #include "gfx.ch" +#else + #include "hbgtinfo.ch" + #include "hbgfx.ch" +#endif + +#ifdef __XHARBOUR__ + + #xtranslate hb_gtSys => gtSys + #xtranslate hb_gtInfo([]) => gtInfo() + #xtranslate hb_gtVersion([]) => hb_gt_Version() + + #xtranslate hb_isregex([]) => hb_isregexstring() + #xtranslate hb_pvalue([]) => pvalue() + #xtranslate hb_methodName([])=> methodName() + #xtranslate hb_libLoad([]) => libLoad() + #xtranslate hb_libFree([]) => libFree() + #xtranslate hb_adler32([]) => hb_checksum() + #xtranslate hb_setLastKey([])=> setLastKey() + #xtranslate hb_CStr([]) => CStr() + + #xtranslate hb_HexToNum([]) => HexToNum() + #xtranslate hb_NumToHex([]) => NumToHex() + #xtranslate hb_HexToStr([]) => HexToStr() + #xtranslate hb_StrToHex([]) => StrToHex() + + #xtranslate hb_AScan([) => AScan() + #xtranslate hb_RAScan([]) => RAScan() + #xtranslate hb_AIns([]) => AIns() + #xtranslate hb_ADel([]) => ADel() + + #xtranslate hb_ISPOINTER( )=> ISPOINTER( ) + + #xtranslate hb_IniSetComment([]) => hb_SetIniComment() + #xtranslate hb_IniRead([]) => hb_ReadIni() + #xtranslate hb_IniWrite([]) => hb_WriteIni() + + /* Some statement endings */ + #xcommand ENDSEQUENCE => END + #xcommand ENDSWITCH => END + #xcommand END SWITCH => END + #xcommand ENDWITH => END + #xcommand END WITH => END + #xcommand END OBJECT => END + +#else + + #xtranslate gtSys => hb_gtSys + #xtranslate gtInfo([]) => hb_gtInfo() + #xtranslate hb_gt_Version([]) => hb_gtVersion() + + #xtranslate gtSetClipboard() => hb_gtInfo( GTI_CLIPBOARDDATA, ) + #xtranslate gtGetClipboard() => hb_gtInfo( GTI_CLIPBOARDDATA ) + #xtranslate gtGetClipBoardSize() => Len( hb_gtInfo( GTI_CLIPBOARDDATA ) ) + #xtranslate gtPasteClipBoard([]) => hb_gtInfo( GTI_CLIPBOARDPAST ) + #xtranslate gtProcessMessages() => NextKey() + #xtranslate gfxPrimitive([]) => hb_gfxPrimitive() + #xtranslate gfxText([]) => hb_gfxText() + + #xtranslate hb_isregexstring([]) => hb_isregex() + #xtranslate pvalue([]) => hb_pvalue() + #xtranslate methodName([]) => hb_methodName() + #xtranslate libLoad([]) => hb_libLoad() + #xtranslate libFree([]) => hb_libFree() + #xtranslate hb_checksum([]) => hb_adler32() + #xtranslate setLastKey([]) => hb_setLastKey() + #xtranslate CStr([]) => hb_CStr() + + #xtranslate HexToNum([]) => hb_HexToNum() + #xtranslate NumToHex([]) => hb_NumToHex() + #xtranslate HexToStr([]) => hb_HexToStr() + #xtranslate StrToHex([]) => hb_StrToHex() + + #xtranslate AScan(,,[],[],) => hb_AScan(,,,,) + #xtranslate RAScan([]) => hb_RAScan() + #xtranslate AIns(,,[]) => hb_AIns(,,) + #xtranslate ADel(,,) => hb_ADel(,,) + + #xtranslate ISPOINTER( ) => hb_ISPOINTER( ) + + #xtranslate hb_SetIniComment([]) => hb_IniSetComment() + #xtranslate hb_ReadIni([]) => hb_IniRead() + #xtranslate hb_WriteIni([]) => hb_IniWrite() + + #xtranslate Str(,[],[],)=> iif(, LTrim(Str()), Str()) + #xtranslate hb_CMDARGARGV([])=> hb_ARGV(0) + + /* Hash item functions */ + #xtranslate HASH([]) => hb_HASH() + #xtranslate HHASKEY([]) => hb_HHASKEY() + #xtranslate HGETPOS([]) => hb_HPOS() + #xtranslate HGET([]) => hb_HGET() + #xtranslate HSET([]) => hb_HSET() + #xtranslate HDEL([]) => hb_HDEL() + #xtranslate HGETKEYAT([]) => hb_HKEYAT() + #xtranslate HGETVALUEAT([]) => hb_HVALUEAT() + #xtranslate HSETVALUEAT([]) => hb_HVALUEAT() + #xtranslate HGETPAIRAT([]) => hb_HPAIRAT() + #xtranslate HDELAT([]) => hb_HDELAT() + #xtranslate HGETKEYS([]) => hb_HKEYS() + #xtranslate HGETVALUES([]) => hb_HVALUES() + #xtranslate HFILL([]) => hb_HFILL() + #xtranslate HCLONE([]) => hb_HCLONE() + #xtranslate HCOPY([]) => hb_HCOPY() + #xtranslate HMERGE([]) => hb_HMERGE() + #xtranslate HEVAL([]) => hb_HEVAL() + #xtranslate HSCAN([]) => hb_HSCAN() + #xtranslate HSETCASEMATCH([])=> hb_HSETCASEMATCH() + #xtranslate HGETCASEMATCH([])=> hb_HCASEMATCH() + #xtranslate HSETAUTOADD([]) => hb_HSETAUTOADD() + #xtranslate HGETAUTOADD([]) => hb_HAUTOADD() + #xtranslate HALLOCATE([]) => hb_HALLOCATE() + #xtranslate HDEFAULT([]) => hb_HDEFAULT() + + /* Inet functions */ + #xtranslate INETINIT([]) => hb_INETINIT() + #xtranslate INETCLEANUP([]) => hb_INETCLEANUP() + #xtranslate INETCREATE([]) => hb_INETCREATE() + #xtranslate INETCLOSE([]) => hb_INETCLOSE() + #xtranslate INETFD([]) => hb_INETFD() + #xtranslate INETSTATUS([]) => hb_INETSTATUS() + #xtranslate INETERRORCODE([]) => hb_INETERRORCODE() + #xtranslate INETERRORDESC([]) => hb_INETERRORDESC() + #xtranslate INETCLEARERROR([]) => hb_INETCLEARERROR() + #xtranslate INETCOUNT([]) => hb_INETCOUNT() + #xtranslate INETADDRESS([]) => hb_INETADDRESS() + #xtranslate INETPORT([]) => hb_INETPORT() + #xtranslate INETSETTIMEOUT([]) => hb_INETTIMEOUT() + #xtranslate INETGETTIMEOUT([]) => hb_INETTIMEOUT() + #xtranslate INETCLEARTIMEOUT([]) => hb_INETCLEARTIMEOUT() + #xtranslate INETSETTIMELIMIT([]) => hb_INETTIMELIMIT() + #xtranslate INETGETTIMELIMIT([]) => hb_INETTIMELIMIT() + #xtranslate INETCLEARTIMELIMIT([]) => hb_INETCLEARTIMELIMIT() + #xtranslate INETSETPERIODCALLBACK([]) => hb_INETPERIODCALLBACK() + #xtranslate INETGETPERIODCALLBACK([]) => hb_INETPERIODCALLBACK() + #xtranslate INETCLEARPERIODCALLBACK([]) => hb_INETCLEARPERIODCALLBACK() + #xtranslate INETRECV([]) => hb_INETRECV() + #xtranslate INETRECVALL([]) => hb_INETRECVALL() + #xtranslate INETRECVLINE([]) => hb_INETRECVLINE() + #xtranslate INETRECVENDBLOCK([]) => hb_INETRECVENDBLOCK() + #xtranslate INETDATAREADY([]) => hb_INETDATAREADY() + #xtranslate INETSEND([]) => hb_INETSEND() + #xtranslate INETSENDALL([]) => hb_INETSENDALL() + #xtranslate INETGETHOSTS([]) => hb_INETGETHOSTS() + #xtranslate INETGETALIAS([]) => hb_INETGETALIAS() + #xtranslate INETSERVER([]) => hb_INETSERVER() + #xtranslate INETACCEPT([]) => hb_INETACCEPT() + #xtranslate INETCONNECT([]) => hb_INETCONNECT() + #xtranslate INETCONNECTIP([]) => hb_INETCONNECTIP() + #xtranslate INETDGRAMBIND([]) => hb_INETDGRAMBIND() + #xtranslate INETDGRAM([]) => hb_INETDGRAM() + #xtranslate INETDGRAMSEND([]) => hb_INETDGRAMSEND() + #xtranslate INETDGRAMRECV([]) => hb_INETDGRAMRECV() + #xtranslate INETCRLF([]) => hb_INETCRLF() + #xtranslate ISINETSOCKET([]) => HB_INETISSOCKET() + #xtranslate INETDESTROY([]) => iif( HB_INETISSOCKET( ), hb_INETCLOSE( ), ) + + /* THROW => generate error */ + #xtranslate THROW() => (Eval(ErrorBlock(), ), Break()) + + /* TEXT INTO */ + #xcommand TEXT INTO => #pragma __text|+=%s+HB_OSNEWLINE();:="" + + /* SWITCH ... ; case ... ; DEFAULT ; ... ; END */ + #xcommand DEFAULT => OTHERWISE + + /* FOR EACH hb_enumIndex() */ + #xtranslate hb_enumIndex() => :__enumIndex() + + /* TRY / CATCH / FINALLY / END */ + #xcommand TRY => BEGIN SEQUENCE WITH {|oErr| Break( oErr )} + #xcommand CATCH [] => RECOVER [USING ] <-oErr-> + #xcommand FINALLY => ALWAYS + + /* EXTENDED CODEBLOCKs */ + #xtranslate \<|[]| => {|| + #xcommand > [<*x*>] => } + + + /* xHarbour operators: IN, HAS, LIKE, >>, <<, |, &, ^^ */ + #translate ( IN ) => ( () $ () ) + #translate ( HAS ) => ( HB_REGEXHAS( (), () ) ) + #translate ( LIKE ) => ( HB_REGEXLIKE( (), () ) ) + #translate ( \<\< ) => ( HB_BITSHIFT( (), () ) ) + #translate ( >> ) => ( HB_BITSHIFT( (), -() ) ) + #translate ( | ) => ( HB_BITOR( (), () ) ) + #translate ( & ) => ( HB_BITAND( (), () ) ) + #translate ( ^^ ) => ( HB_BITXOR( (), () ) ) + +#endif + +#endif /* __HARBOUR__ */ diff --git a/harbour/contrib/xhb/xhb.ch b/harbour/contrib/xhb/xhb.ch index 1a0b7875e9..e67ac4659a 100644 --- a/harbour/contrib/xhb/xhb.ch +++ b/harbour/contrib/xhb/xhb.ch @@ -53,203 +53,13 @@ #ifndef XHB__CH_ #define XHB__CH_ +#include "hbcompat.ch" + #ifdef __HARBOUR__ -#ifdef __XHARBOUR__ - #include "gtinfo.ch" - #include "gfx.ch" -#else - #include "hbgtinfo.ch" - #include "hbgfx.ch" -#endif - - -#ifdef __XHARBOUR__ - - #xtranslate hb_gtSys => gtSys - #xtranslate hb_gtInfo([]) => gtInfo() - #xtranslate hb_gtVersion([]) => hb_gt_Version() - - #xtranslate hb_isregex([]) => hb_isregexstring() - #xtranslate hb_pvalue([]) => pvalue() - #xtranslate hb_methodName([])=> methodName() - #xtranslate hb_libLoad([]) => libLoad() - #xtranslate hb_libFree([]) => libFree() - #xtranslate hb_adler32([]) => hb_checksum() - #xtranslate hb_setLastKey([])=> setLastKey() - #xtranslate hb_CStr([]) => CStr() - - #xtranslate hb_HexToNum([]) => HexToNum() - #xtranslate hb_NumToHex([]) => NumToHex() - #xtranslate hb_HexToStr([]) => HexToStr() - #xtranslate hb_StrToHex([]) => StrToHex() - - #xtranslate hb_AScan([) => AScan() - #xtranslate hb_RAScan([]) => RAScan() - #xtranslate hb_AIns([]) => AIns() - #xtranslate hb_ADel([]) => ADel() - - #xtranslate hb_ISPOINTER( )=> ISPOINTER( ) - - #xtranslate hb_IniSetComment([]) => hb_SetIniComment() - #xtranslate hb_IniRead([]) => hb_ReadIni() - #xtranslate hb_IniWrite([]) => hb_WriteIni() - - /* Some statement endings */ - #xcommand ENDSEQUENCE => END - #xcommand ENDSWITCH => END - #xcommand END SWITCH => END - #xcommand ENDWITH => END - #xcommand END WITH => END - #xcommand END OBJECT => END - -#else - +#ifndef __XHARBOUR__ #pragma -ks+ REQUEST XHB_LIB - - #xtranslate gtSys => hb_gtSys - #xtranslate gtInfo([]) => hb_gtInfo() - #xtranslate hb_gt_Version([]) => hb_gtVersion() - - #xtranslate gtSetClipboard() => hb_gtInfo( GTI_CLIPBOARDDATA, ) - #xtranslate gtGetClipboard() => hb_gtInfo( GTI_CLIPBOARDDATA ) - #xtranslate gtGetClipBoardSize() => Len( hb_gtInfo( GTI_CLIPBOARDDATA ) ) - #xtranslate gtPasteClipBoard([]) => hb_gtInfo( GTI_CLIPBOARDPAST ) - #xtranslate gtProcessMessages() => NextKey() - #xtranslate gfxPrimitive([]) => hb_gfxPrimitive() - #xtranslate gfxText([]) => hb_gfxText() - - #xtranslate hb_isregexstring([]) => hb_isregex() - #xtranslate pvalue([]) => hb_pvalue() - #xtranslate methodName([]) => hb_methodName() - #xtranslate libLoad([]) => hb_libLoad() - #xtranslate libFree([]) => hb_libFree() - #xtranslate hb_checksum([]) => hb_adler32() - #xtranslate setLastKey([]) => hb_setLastKey() - #xtranslate CStr([]) => hb_CStr() - - #xtranslate HexToNum([]) => hb_HexToNum() - #xtranslate NumToHex([]) => hb_NumToHex() - #xtranslate HexToStr([]) => hb_HexToStr() - #xtranslate StrToHex([]) => hb_StrToHex() - - #xtranslate AScan(,,[],[],) => hb_AScan(,,,,) - #xtranslate RAScan([]) => hb_RAScan() - #xtranslate AIns(,,[]) => hb_AIns(,,) - #xtranslate ADel(,,) => hb_ADel(,,) - - #xtranslate ISPOINTER( ) => hb_ISPOINTER( ) - - #xtranslate hb_SetIniComment([]) => hb_IniSetComment() - #xtranslate hb_ReadIni([]) => hb_IniRead() - #xtranslate hb_WriteIni([]) => hb_IniWrite() - - #xtranslate Str(,[],[],)=> iif(, LTrim(Str()), Str()) - #xtranslate hb_CMDARGARGV([])=> hb_ARGV(0) - - /* Hash item functions */ - #xtranslate HASH([]) => hb_HASH() - #xtranslate HHASKEY([]) => hb_HHASKEY() - #xtranslate HGETPOS([]) => hb_HPOS() - #xtranslate HGET([]) => hb_HGET() - #xtranslate HSET([]) => hb_HSET() - #xtranslate HDEL([]) => hb_HDEL() - #xtranslate HGETKEYAT([]) => hb_HKEYAT() - #xtranslate HGETVALUEAT([]) => hb_HVALUEAT() - #xtranslate HSETVALUEAT([]) => hb_HVALUEAT() - #xtranslate HGETPAIRAT([]) => hb_HPAIRAT() - #xtranslate HDELAT([]) => hb_HDELAT() - #xtranslate HGETKEYS([]) => hb_HKEYS() - #xtranslate HGETVALUES([]) => hb_HVALUES() - #xtranslate HFILL([]) => hb_HFILL() - #xtranslate HCLONE([]) => hb_HCLONE() - #xtranslate HCOPY([]) => hb_HCOPY() - #xtranslate HMERGE([]) => hb_HMERGE() - #xtranslate HEVAL([]) => hb_HEVAL() - #xtranslate HSCAN([]) => hb_HSCAN() - #xtranslate HSETCASEMATCH([])=> hb_HSETCASEMATCH() - #xtranslate HGETCASEMATCH([])=> hb_HCASEMATCH() - #xtranslate HSETAUTOADD([]) => hb_HSETAUTOADD() - #xtranslate HGETAUTOADD([]) => hb_HAUTOADD() - #xtranslate HALLOCATE([]) => hb_HALLOCATE() - #xtranslate HDEFAULT([]) => hb_HDEFAULT() - - /* Inet functions */ - #xtranslate INETINIT([]) => hb_INETINIT() - #xtranslate INETCLEANUP([]) => hb_INETCLEANUP() - #xtranslate INETCREATE([]) => hb_INETCREATE() - #xtranslate INETCLOSE([]) => hb_INETCLOSE() - #xtranslate INETFD([]) => hb_INETFD() - #xtranslate INETSTATUS([]) => hb_INETSTATUS() - #xtranslate INETERRORCODE([]) => hb_INETERRORCODE() - #xtranslate INETERRORDESC([]) => hb_INETERRORDESC() - #xtranslate INETCLEARERROR([]) => hb_INETCLEARERROR() - #xtranslate INETCOUNT([]) => hb_INETCOUNT() - #xtranslate INETADDRESS([]) => hb_INETADDRESS() - #xtranslate INETPORT([]) => hb_INETPORT() - #xtranslate INETSETTIMEOUT([]) => hb_INETTIMEOUT() - #xtranslate INETGETTIMEOUT([]) => hb_INETTIMEOUT() - #xtranslate INETCLEARTIMEOUT([]) => hb_INETCLEARTIMEOUT() - #xtranslate INETSETTIMELIMIT([]) => hb_INETTIMELIMIT() - #xtranslate INETGETTIMELIMIT([]) => hb_INETTIMELIMIT() - #xtranslate INETCLEARTIMELIMIT([]) => hb_INETCLEARTIMELIMIT() - #xtranslate INETSETPERIODCALLBACK([]) => hb_INETPERIODCALLBACK() - #xtranslate INETGETPERIODCALLBACK([]) => hb_INETPERIODCALLBACK() - #xtranslate INETCLEARPERIODCALLBACK([])=> hb_INETCLEARPERIODCALLBACK() - #xtranslate INETRECV([]) => hb_INETRECV() - #xtranslate INETRECVALL([]) => hb_INETRECVALL() - #xtranslate INETRECVLINE([]) => hb_INETRECVLINE() - #xtranslate INETRECVENDBLOCK([]) => hb_INETRECVENDBLOCK() - #xtranslate INETDATAREADY([]) => hb_INETDATAREADY() - #xtranslate INETSEND([]) => hb_INETSEND() - #xtranslate INETSENDALL([]) => hb_INETSENDALL() - #xtranslate INETGETHOSTS([]) => hb_INETGETHOSTS() - #xtranslate INETGETALIAS([]) => hb_INETGETALIAS() - #xtranslate INETSERVER([]) => hb_INETSERVER() - #xtranslate INETACCEPT([]) => hb_INETACCEPT() - #xtranslate INETCONNECT([]) => hb_INETCONNECT() - #xtranslate INETCONNECTIP([]) => hb_INETCONNECTIP() - #xtranslate INETDGRAMBIND([]) => hb_INETDGRAMBIND() - #xtranslate INETDGRAM([]) => hb_INETDGRAM() - #xtranslate INETDGRAMSEND([]) => hb_INETDGRAMSEND() - #xtranslate INETDGRAMRECV([]) => hb_INETDGRAMRECV() - #xtranslate INETCRLF([]) => hb_INETCRLF() - #xtranslate ISINETSOCKET([]) => HB_INETISSOCKET() - #xtranslate INETDESTROY([]) => IIF( HB_INETISSOCKET( ), hb_INETCLOSE( ), ) - - /* THROW => generate error */ - #xtranslate THROW() => (Eval(ErrorBlock(), ), Break()) - - /* TEXT INTO */ - #xcommand TEXT INTO => #pragma __text|+=%s+HB_OSNEWLINE();:="" - - /* SWITCH ... ; case ... ; DEFAULT ; ... ; END */ - #xcommand DEFAULT => OTHERWISE - - /* FOR EACH hb_enumIndex() */ - #xtranslate hb_enumIndex() => :__enumIndex() - - /* TRY / CATCH / FINALLY / END */ - #xcommand TRY => BEGIN SEQUENCE WITH {|oErr| Break( oErr )} - #xcommand CATCH [] => RECOVER [USING ] <-oErr-> - #xcommand FINALLY => ALWAYS - - /* EXTENDED CODEBLOCKs */ - #xtranslate \<|[]| => {|| - #xcommand > [<*x*>] => } - - - /* xHarbour operators: IN, HAS, LIKE, >>, <<, |, &, ^^ */ - #translate ( IN ) => ( () $ () ) - #translate ( HAS ) => ( HB_REGEXHAS( (), () ) ) - #translate ( LIKE ) => ( HB_REGEXLIKE( (), () ) ) - #translate ( \<\< ) => ( HB_BITSHIFT( (), () ) ) - #translate ( >> ) => ( HB_BITSHIFT( (), -() ) ) - #translate ( | ) => ( HB_BITOR( (), () ) ) - #translate ( & ) => ( HB_BITAND( (), () ) ) - #translate ( ^^ ) => ( HB_BITXOR( (), () ) ) - #endif #endif /* __HARBOUR__ */