2007-08-31 11:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbhex.c
+ added HB_HEXTOSTR() and HB_STRTOHEX() - they are compatible with
HEXTOSTR() and STRTOHEX() in xHarbour
* harbour/include/hbcompat.ch
+ added translations for HB_HEXTOSTR(), HB_STRTOHEX()
* harbour/include/hbextern.ch
+ added new functions
* harbour/contrib/libct/ctextern.ch
* updated function list
This commit is contained in:
@@ -8,6 +8,20 @@
|
||||
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2007-08-31 11:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/rtl/hbhex.c
|
||||
+ added HB_HEXTOSTR() and HB_STRTOHEX() - they are compatible with
|
||||
HEXTOSTR() and STRTOHEX() in xHarbour
|
||||
|
||||
* harbour/include/hbcompat.ch
|
||||
+ added translations for HB_HEXTOSTR(), HB_STRTOHEX()
|
||||
|
||||
* harbour/include/hbextern.ch
|
||||
+ added new functions
|
||||
|
||||
* harbour/contrib/libct/ctextern.ch
|
||||
* updated function list
|
||||
|
||||
2007-08-31 03:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/rtl/dircmd.prg
|
||||
* changed STOD() to HB_STOD()
|
||||
|
||||
@@ -69,6 +69,7 @@ EXTERNAL ATREPL
|
||||
EXTERNAL ATTOKEN
|
||||
EXTERNAL BEFORATNUM
|
||||
EXTERNAL BITTOC
|
||||
EXTERNAL BLANK
|
||||
EXTERNAL BOM
|
||||
EXTERNAL BOQ
|
||||
EXTERNAL BOY
|
||||
@@ -88,6 +89,7 @@ EXTERNAL CHARODD
|
||||
EXTERNAL CHARONE
|
||||
EXTERNAL CHARONLY
|
||||
EXTERNAL CHAROR
|
||||
EXTERNAL CHARPACK
|
||||
EXTERNAL CHARRELA
|
||||
EXTERNAL CHARRELREP
|
||||
EXTERNAL CHARREM
|
||||
@@ -98,15 +100,27 @@ EXTERNAL CHARSHL
|
||||
EXTERNAL CHARSHR
|
||||
EXTERNAL CHARSLIST
|
||||
EXTERNAL CHARSORT
|
||||
EXTERNAL CHARSPREAD
|
||||
EXTERNAL CHARSUB
|
||||
EXTERNAL CHARSWAP
|
||||
EXTERNAL CHARUNPACK
|
||||
EXTERNAL CHARWIN
|
||||
EXTERNAL CHARXOR
|
||||
EXTERNAL CHECKSUM
|
||||
EXTERNAL CLEARBIT
|
||||
EXTERNAL CLEAREOL
|
||||
EXTERNAL CLEARSLOW
|
||||
EXTERNAL CLEARWIN
|
||||
EXTERNAL CLEOL
|
||||
EXTERNAL CLWIN
|
||||
EXTERNAL COLORREPL
|
||||
EXTERNAL COLORTON
|
||||
EXTERNAL COLORWIN
|
||||
EXTERNAL COMPLEMENT
|
||||
EXTERNAL COS
|
||||
EXTERNAL COSH
|
||||
EXTERNAL COT
|
||||
EXTERNAL COUNTGETS
|
||||
EXTERNAL COUNTLEFT
|
||||
EXTERNAL COUNTRIGHT
|
||||
EXTERNAL CRYPT
|
||||
@@ -116,6 +130,7 @@ EXTERNAL CSETCENT
|
||||
EXTERNAL CSETCURS
|
||||
EXTERNAL CSETKEY
|
||||
EXTERNAL CSETREF
|
||||
EXTERNAL CSETSAFETY
|
||||
EXTERNAL CTCEXIT
|
||||
EXTERNAL CTCINIT
|
||||
EXTERNAL CTEXIT
|
||||
@@ -126,46 +141,95 @@ EXTERNAL CTOF
|
||||
EXTERNAL CTOMONTH
|
||||
EXTERNAL CTON
|
||||
EXTERNAL CTWINIT
|
||||
EXTERNAL CURRENTGET
|
||||
EXTERNAL DAYSINMONTH
|
||||
EXTERNAL DAYSTOMONTH
|
||||
EXTERNAL DBFSIZE
|
||||
EXTERNAL DELETEFILE
|
||||
EXTERNAL DIRMAKE
|
||||
EXTERNAL DIRNAME
|
||||
EXTERNAL DMY
|
||||
EXTERNAL DOSPARAM
|
||||
EXTERNAL DOY
|
||||
EXTERNAL DRIVETYPE
|
||||
EXTERNAL DTOR
|
||||
EXTERNAL ENHANCED
|
||||
EXTERNAL EOM
|
||||
EXTERNAL EOQ
|
||||
EXTERNAL EOY
|
||||
EXTERNAL EXENAME
|
||||
EXTERNAL EXPAND
|
||||
EXTERNAL EXPONENT
|
||||
EXTERNAL FACT
|
||||
EXTERNAL FAHRENHEIT
|
||||
EXTERNAL FIELDDECI
|
||||
EXTERNAL FIELDNUM
|
||||
EXTERNAL FIELDSIZE
|
||||
EXTERNAL FILEAPPEND
|
||||
EXTERNAL FILEATTR
|
||||
EXTERNAL FILECCLOSE
|
||||
EXTERNAL FILECCONT
|
||||
EXTERNAL FILECDATI
|
||||
EXTERNAL FILECOPEN
|
||||
EXTERNAL FILECOPY
|
||||
EXTERNAL FILEDATE
|
||||
EXTERNAL FILEDELETE
|
||||
EXTERNAL FILEMOVE
|
||||
EXTERNAL FILESCREEN
|
||||
EXTERNAL FILESEEK
|
||||
EXTERNAL FILESIZE
|
||||
EXTERNAL FILESMAX
|
||||
EXTERNAL FILESTR
|
||||
EXTERNAL FILETIME
|
||||
EXTERNAL FLOOR
|
||||
EXTERNAL FTOC
|
||||
EXTERNAL FV
|
||||
EXTERNAL GETCLEARA
|
||||
EXTERNAL GETCLEARB
|
||||
EXTERNAL GETFLDCOL
|
||||
EXTERNAL GETFLDROW
|
||||
EXTERNAL GETFLDVAR
|
||||
EXTERNAL GETINPUT
|
||||
EXTERNAL GETPREC
|
||||
EXTERNAL GETSECRET
|
||||
EXTERNAL GETVOLINFO
|
||||
EXTERNAL _HB_CTDSPTIME
|
||||
EXTERNAL HB_GT_CTW
|
||||
EXTERNAL HB_GT_CTW_DEFAULT
|
||||
EXTERNAL INFINITY
|
||||
EXTERNAL INVERTATTR
|
||||
EXTERNAL INVERTWIN
|
||||
EXTERNAL ISBIT
|
||||
EXTERNAL ISLEAP
|
||||
EXTERNAL JUSTLEFT
|
||||
EXTERNAL JUSTRIGHT
|
||||
EXTERNAL KBDSTAT
|
||||
EXTERNAL KEYSEC
|
||||
EXTERNAL KEYTIME
|
||||
EXTERNAL KSETCAPS
|
||||
EXTERNAL KSETINS
|
||||
EXTERNAL KSETNUM
|
||||
EXTERNAL KSETSCROLL
|
||||
EXTERNAL LASTDAYOM
|
||||
EXTERNAL LIKE
|
||||
EXTERNAL LOG10
|
||||
EXTERNAL LTOC
|
||||
EXTERNAL LTON
|
||||
EXTERNAL MANTISSA
|
||||
EXTERNAL MAXLINE
|
||||
EXTERNAL MDY
|
||||
EXTERNAL MILLISEC
|
||||
EXTERNAL NTOC
|
||||
EXTERNAL NTOCDOW
|
||||
EXTERNAL NTOCMONTH
|
||||
EXTERNAL NTOCOLOR
|
||||
EXTERNAL NUL
|
||||
EXTERNAL NUMAND
|
||||
EXTERNAL NUMAT
|
||||
EXTERNAL NUMCOUNT
|
||||
EXTERNAL NUMDISKL
|
||||
EXTERNAL NUMHIGH
|
||||
EXTERNAL NUMLINE
|
||||
EXTERNAL NUMLOW
|
||||
EXTERNAL NUMMIRR
|
||||
EXTERNAL NUMNOT
|
||||
@@ -189,6 +253,7 @@ EXTERNAL POSRANGE
|
||||
EXTERNAL POSREPL
|
||||
EXTERNAL POSUPPER
|
||||
EXTERNAL PRINTREADY
|
||||
EXTERNAL PRINTSEND
|
||||
EXTERNAL PRINTSTAT
|
||||
EXTERNAL PV
|
||||
EXTERNAL QUARTER
|
||||
@@ -198,33 +263,56 @@ EXTERNAL RATE
|
||||
EXTERNAL REMALL
|
||||
EXTERNAL REMLEFT
|
||||
EXTERNAL REMRIGHT
|
||||
EXTERNAL RENAMEFILE
|
||||
EXTERNAL REPLALL
|
||||
EXTERNAL REPLLEFT
|
||||
EXTERNAL REPLRIGHT
|
||||
EXTERNAL RESTCURSOR
|
||||
EXTERNAL RESTGETS
|
||||
EXTERNAL RESTSETKEY
|
||||
EXTERNAL RESTTOKEN
|
||||
EXTERNAL RTOD
|
||||
EXTERNAL SAVECURSOR
|
||||
EXTERNAL SAVEGETS
|
||||
EXTERNAL SAVESETKEY
|
||||
EXTERNAL SAVETOKEN
|
||||
EXTERNAL SAYDOWN
|
||||
EXTERNAL SAYMOVEIN
|
||||
EXTERNAL SAYSCREEN
|
||||
EXTERNAL SAYSPREAD
|
||||
EXTERNAL SCREENATTR
|
||||
EXTERNAL SCREENFILE
|
||||
EXTERNAL SCREENMARK
|
||||
EXTERNAL SCREENMIX
|
||||
EXTERNAL SCREENSTR
|
||||
EXTERNAL SCREENTEXT
|
||||
EXTERNAL SECTOTIME
|
||||
EXTERNAL SETATLIKE
|
||||
EXTERNAL SETBIT
|
||||
EXTERNAL SETCLEARA
|
||||
EXTERNAL SETCLEARB
|
||||
EXTERNAL SETDATE
|
||||
EXTERNAL SETFATTR
|
||||
EXTERNAL SETFCREATE
|
||||
EXTERNAL SETFDATI
|
||||
EXTERNAL SETLASTKEY
|
||||
EXTERNAL SETPREC
|
||||
EXTERNAL SETTIME
|
||||
EXTERNAL SHOWTIME
|
||||
EXTERNAL SIGN
|
||||
EXTERNAL SIN
|
||||
EXTERNAL SINH
|
||||
EXTERNAL STANDARD
|
||||
EXTERNAL STRDIFF
|
||||
EXTERNAL STRFILE
|
||||
EXTERNAL STRSCREEN
|
||||
EXTERNAL STRSWAP
|
||||
EXTERNAL TABEXPAND
|
||||
EXTERNAL TABPACK
|
||||
EXTERNAL TAN
|
||||
EXTERNAL TANH
|
||||
EXTERNAL TIMETOSEC
|
||||
EXTERNAL TIMEVALID
|
||||
EXTERNAL TOKEN
|
||||
EXTERNAL TOKENAT
|
||||
EXTERNAL TOKENEND
|
||||
@@ -235,9 +323,14 @@ EXTERNAL TOKENNEXT
|
||||
EXTERNAL TOKENNUM
|
||||
EXTERNAL TOKENSEP
|
||||
EXTERNAL TOKENUPPER
|
||||
EXTERNAL TRUENAME
|
||||
EXTERNAL UNSELECTED
|
||||
EXTERNAL UNTEXTWIN
|
||||
EXTERNAL VALPOS
|
||||
EXTERNAL VOLSERIAL
|
||||
EXTERNAL VOLUME
|
||||
EXTERNAL WACLOSE
|
||||
EXTERNAL WAITPERIOD
|
||||
EXTERNAL WBOARD
|
||||
EXTERNAL WBOX
|
||||
EXTERNAL WCENTER
|
||||
@@ -254,6 +347,7 @@ EXTERNAL WLASTROW
|
||||
EXTERNAL WMODE
|
||||
EXTERNAL WMOVE
|
||||
EXTERNAL WNUM
|
||||
EXTERNAL WOM
|
||||
EXTERNAL WOPEN
|
||||
EXTERNAL WORDONE
|
||||
EXTERNAL WORDONLY
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
#xtranslate hb_CStr([<x,...>]) => CStr(<x>)
|
||||
#xtranslate hb_adler32([<x,...>]) => hb_checksum(<x>)
|
||||
|
||||
#xtranslate hb_setLastKey([<x,...>])=> setLastKey(<x>)
|
||||
#else
|
||||
|
||||
#xtranslate gtSys => hb_gtSys
|
||||
@@ -97,6 +98,7 @@
|
||||
#xtranslate libFree([<x,...>]) => hb_libFree(<x>)
|
||||
|
||||
#xtranslate hb_checksum([<x,...>]) => hb_adler32(<x>)
|
||||
#xtranslate setLastKey([<x,...>]) => hb_setLastKey(<x>)
|
||||
|
||||
#xtranslate CStr([<x,...>]) => hb_CStr(<x>)
|
||||
#xtranslate str(<x>,[<y>],[<y>],<z>)=> iif(<z>, ltrim(str(<x>)), str(<x>))
|
||||
@@ -129,6 +131,8 @@
|
||||
|
||||
#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 RASCAN([<x,...>]) => HB_RASCAN(<x>)
|
||||
|
||||
|
||||
|
||||
@@ -346,6 +346,8 @@ EXTERNAL HB_ARGSTRING
|
||||
EXTERNAL HB_ARGV
|
||||
EXTERNAL HB_COLORINDEX
|
||||
EXTERNAL HB_COMPILER
|
||||
EXTERNAL HB_PCODEVER
|
||||
EXTERNAL HB_BUILDDATE
|
||||
EXTERNAL HB_FNAMEMERGE
|
||||
EXTERNAL HB_FNAMESPLIT
|
||||
EXTERNAL HB_LANGNAME
|
||||
@@ -405,6 +407,8 @@ EXTERNAL HB_SERIALIZE
|
||||
EXTERNAL HB_DESERIALIZE
|
||||
EXTERNAL HB_HEXTONUM
|
||||
EXTERNAL HB_NUMTOHEX
|
||||
EXTERNAL HB_HEXTOSTR
|
||||
EXTERNAL HB_STRTOHEX
|
||||
|
||||
EXTERNAL HBCLASS
|
||||
EXTERNAL HBOBJECT
|
||||
@@ -964,10 +968,14 @@ EXTERNAL HB_NTOCOLOR
|
||||
EXTERNAL HB_DISKSPACE
|
||||
EXTERNAL HB_FCREATE
|
||||
EXTERNAL HB_FSIZE
|
||||
EXTERNAL HB_FEOF
|
||||
EXTERNAL HB_FCOMMIT
|
||||
EXTERNAL HB_FTEMPCREATE
|
||||
EXTERNAL HB_GCALL
|
||||
EXTERNAL HB_KEYPUT
|
||||
EXTERNAL HB_OEMTOANSI
|
||||
EXTERNAL HB_OSERROR
|
||||
EXTERNAL HB_OSDRIVESEPARATOR
|
||||
EXTERNAL HB_OSPATHDELIMITERS
|
||||
EXTERNAL HB_OSPATHLISTSEPARATOR
|
||||
EXTERNAL HB_OSPATHSEPARATOR
|
||||
|
||||
@@ -70,9 +70,9 @@ HB_FUNC( HB_HEXTONUM )
|
||||
if ( c >= '0' && c <= '9' )
|
||||
iDigit = c - '0';
|
||||
else if ( c >= 'A' && c <= 'F' )
|
||||
iDigit = c - 'A' + 10;
|
||||
iDigit = c - ( 'A' - 10 );
|
||||
else if ( c >= 'a' && c <= 'f' )
|
||||
iDigit = c - 'a' + 10;
|
||||
iDigit = c - ( 'a' - 10 );
|
||||
else
|
||||
{
|
||||
ulNum = 0;
|
||||
@@ -126,3 +126,105 @@ HB_FUNC( HB_NUMTOHEX )
|
||||
|
||||
hb_retc( &ret[ iLen ] );
|
||||
}
|
||||
|
||||
HB_FUNC( HB_STRTOHEX )
|
||||
{
|
||||
char * szStr = hb_parc( 1 ), * szSep = "";
|
||||
ULONG ulStr, ulSep = 0;
|
||||
|
||||
if( hb_pcount() > 1 )
|
||||
{
|
||||
szSep = hb_parc( 2 );
|
||||
ulSep = hb_parclen( 2 );
|
||||
}
|
||||
|
||||
if( !szStr || !szSep )
|
||||
{
|
||||
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, &hb_errFuncName, HB_ERR_ARGS_BASEPARAMS );
|
||||
return;
|
||||
}
|
||||
|
||||
ulStr = hb_parclen( 1 );
|
||||
if( ulStr )
|
||||
{
|
||||
ULONG ulDest = ( ulStr << 1 ) + ( ulStr - 1 ) * ulSep;
|
||||
char * szDest, * szPtr;
|
||||
|
||||
szPtr = szDest = ( char * ) hb_xgrab( ulDest + 1 );
|
||||
do
|
||||
{
|
||||
UCHAR uc = ( UCHAR ) *szStr++, ud;
|
||||
ud = uc >> 4;
|
||||
*szPtr++ = ud + ( ud < 10 ? '0' : 'A' - 10 );
|
||||
ud = uc & 0x0F;
|
||||
*szPtr++ = ud + ( ud < 10 ? '0' : 'A' - 10 );
|
||||
if( --ulStr && ulSep )
|
||||
{
|
||||
memcpy( szPtr, szSep, ulSep );
|
||||
ulStr += ulSep;
|
||||
}
|
||||
}
|
||||
while( ulStr );
|
||||
hb_retclen_buffer( szDest, ulDest );
|
||||
}
|
||||
else
|
||||
hb_retc( NULL );
|
||||
}
|
||||
|
||||
HB_FUNC( HB_HEXTOSTR )
|
||||
{
|
||||
char * szStr = hb_parc( 1 );
|
||||
ULONG ulStr;
|
||||
|
||||
if( !szStr )
|
||||
{
|
||||
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, &hb_errFuncName, HB_ERR_ARGS_BASEPARAMS );
|
||||
return;
|
||||
}
|
||||
|
||||
ulStr = hb_parclen( 1 );
|
||||
if( ulStr > 1 )
|
||||
{
|
||||
ULONG ulDest, ul;
|
||||
char * szDest, * szPtr;
|
||||
UCHAR uc;
|
||||
|
||||
szDest = szStr;
|
||||
ul = ulStr;
|
||||
ulDest = 0;
|
||||
do
|
||||
{
|
||||
char c = *szDest++;
|
||||
if( ( c >= '0' && c <= '9' ) ||
|
||||
( c >= 'A' && c <= 'F' ) ||
|
||||
( c >= 'a' && c <= 'f' ) )
|
||||
++ulDest;
|
||||
}
|
||||
while( --ul );
|
||||
|
||||
ulDest >>= 1;
|
||||
if( ulDest )
|
||||
{
|
||||
szPtr = szDest = ( char * ) hb_xgrab( ulDest + 1 );
|
||||
uc = 0;
|
||||
for( ul = 0; ul < ulStr; ++ul )
|
||||
{
|
||||
char c = szStr[ ul ];
|
||||
if( c >= '0' && c <= '9' )
|
||||
uc += c - '0';
|
||||
else if( c >= 'A' && c <= 'F' )
|
||||
uc += c - ( 'A' - 10 );
|
||||
else if( c >= 'a' && c <= 'f' )
|
||||
uc += c - ( 'a' - 10 );
|
||||
if( ul & 1 )
|
||||
*szPtr++ = ( char ) uc;
|
||||
else
|
||||
uc <<= 4;
|
||||
}
|
||||
hb_retclen_buffer( szDest, ulDest );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
hb_retc( NULL );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user