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

* tests/uc16_gen.prg
    ! restored
This commit is contained in:
Viktor Szakats
2012-11-16 16:44:37 +00:00
parent bfa8bdc68e
commit a7ef583443
2 changed files with 56 additions and 52 deletions

View File

@@ -16,6 +16,10 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-11-16 17:44 UTC+0100 Viktor Szakats (harbour syenar.net)
* tests/uc16_gen.prg
! restored
2012-11-16 17:42 UTC+0100 Viktor Szakats (harbour syenar.net)
* extras/hbvpdf/hbvpdf.hbx
! correction

View File

@@ -37,25 +37,25 @@ proc main()
local nWarning := 2
local lConvAll := .f.
aLower := AFill( array( 0x10000 ), 0 )
aUpper := AFill( array( 0x10000 ), 0 )
aFlags := AFill( array( 0x10000 ), 0 )
aLower := afill( array( 0x10000 ), 0 )
aUpper := afill( array( 0x10000 ), 0 )
aFlags := afill( array( 0x10000 ), 0 )
nMaxCh := nMaxUp := nMaxLo := 0x0000
nMinCh := nMinUp := nMinLo := 0xFFFF
nUppers := nLowers := 0
for each cLine in hb_ATokens( hb_memoRead( "UnicodeData.txt" ), hb_eol() )
if ! Empty( cLine )
aLine := hb_ATokens( cLine, ";" )
if Len( aLine ) == 15
nCode := hb_HexToNum( aLine[ 1 ] )
for each cLine in hb_aTokens( hb_memoRead( "UnicodeData.txt" ), hb_eol() )
if ! empty( cLine )
aLine := hb_aTokens( cLine, ";" )
if len( aLine ) == 15
nCode := hb_hexToNum( aLine[ 1 ] )
if nCode > 0 .and. nCode < 0xFFFF
nUpper := hb_HexToNum( aLine[ 13 ] )
nLower := hb_HexToNum( aLine[ 14 ] )
nUpper := hb_hexToNum( aLine[ 13 ] )
nLower := hb_hexToNum( aLine[ 14 ] )
nFlags := 0
cGenCat := aLine[ 3 ]
if "Lu" $ cGenCat
nFlags := hb_bitOr( nFlags, HB_CDP_ALPHA, HB_CDP_UPPER )
nFlags := hb_bitOR( nFlags, HB_CDP_ALPHA, HB_CDP_UPPER )
if "Lt" $ cGenCat
? "title + upper, line:", cLine:__enumIndex()
endif
@@ -70,7 +70,7 @@ proc main()
if "Lt" $ cGenCat
? "title + lower, line:", cLine:__enumIndex()
endif
nFlags := hb_bitOr( nFlags, HB_CDP_ALPHA, HB_CDP_LOWER )
nFlags := hb_bitOR( nFlags, HB_CDP_ALPHA, HB_CDP_LOWER )
elseif nUpper != 0
if "Lt" $ cGenCat .or. ! lConvAll
nUpper := 0
@@ -78,8 +78,8 @@ proc main()
? "upper for non lower, line:", cLine:__enumIndex()
endif
endif
if nCode >= Asc( "0" ) .and. nCode <= Asc( "9" )
nFlags := hb_bitOr( nFlags, HB_CDP_DIGIT )
if nCode >= asc( "0" ) .and. nCode <= asc( "9" )
nFlags := hb_bitOR( nFlags, HB_CDP_DIGIT )
endif
if nUpper >= 0xFFFF
? "Lower out of range, line:", cLine:__enumIndex()
@@ -131,7 +131,7 @@ proc main()
? "TOUPPER tables."
? "raw size:", hb_ntos( ( nMaxUp - nMinUp + 1 ) * 2 )
#ifndef DO_START_OPT
nMinUp := Min( nMinUp, 48 ) // optimal
nMinUp := min( nMinUp, 48 ) // optimal
#endif
n := min_size16( aUpper, @nMinUp, nMaxUp, @nBitUp )
? "minimal size:", hb_ntos( n ), ;
@@ -144,7 +144,7 @@ proc main()
? "TOLOWER tables."
? "raw size:", hb_ntos( ( nMaxLo - nMinLo + 1 ) * 2 )
#ifndef DO_START_OPT
nMinLo := Min( nMinLo, 32 ) // optimal
nMinLo := min( nMinLo, 32 ) // optimal
#endif
n := min_size16( aLower, @nMinLo, nMaxLo, @nBitLo )
? "minimal size:", hb_ntos( n ), ;
@@ -156,7 +156,7 @@ proc main()
? "ATTR tables."
? "raw size:", hb_ntos( int( ( nMaxCh - nMinCh + 2 ) / 2 ) )
#ifndef DO_START_OPT
nMinCh := Min( nMinCh, 0 ) // optimal
nMinCh := min( nMinCh, 0 ) // optimal
#endif
n := min_size04( aFlags, @nMinCh, nMaxCh, @nBitCh )
? "minimal size:", hb_ntos( n ), ;
@@ -186,8 +186,8 @@ proc main()
cResult += hb_eol()
cResult += "#define HB_UCUP_FIRST 0x" + hb_NumToHex( nMinUp, 4 ) + hb_eol()
cResult += "#define HB_UCUP_LAST 0x" + hb_NumToHex( nMaxUp, 4 ) + hb_eol()
cResult += "#define HB_UCUP_FIRST 0x" + hb_numToHex( nMinUp, 4 ) + hb_eol()
cResult += "#define HB_UCUP_LAST 0x" + hb_numToHex( nMaxUp, 4 ) + hb_eol()
cResult += "#define HB_UCUP_BITS " + hb_ntos( nBitUp ) + hb_eol()
cResult += hb_eol()
@@ -204,8 +204,8 @@ proc main()
cResult += hb_eol()
cResult += "#define HB_UCLO_FIRST 0x" + hb_NumToHex( nMinLo, 4 ) + hb_eol()
cResult += "#define HB_UCLO_LAST 0x" + hb_NumToHex( nMaxLo, 4 ) + hb_eol()
cResult += "#define HB_UCLO_FIRST 0x" + hb_numToHex( nMinLo, 4 ) + hb_eol()
cResult += "#define HB_UCLO_LAST 0x" + hb_numToHex( nMaxLo, 4 ) + hb_eol()
cResult += "#define HB_UCLO_BITS " + hb_ntos( nBitLo ) + hb_eol()
cResult += hb_eol()
@@ -222,8 +222,8 @@ proc main()
cResult += hb_eol()
cResult += "#define HB_UCFL_FIRST 0x" + hb_NumToHex( nMinCh, 4 ) + hb_eol()
cResult += "#define HB_UCFL_LAST 0x" + hb_NumToHex( nMaxCh, 4 ) + hb_eol()
cResult += "#define HB_UCFL_FIRST 0x" + hb_numToHex( nMinCh, 4 ) + hb_eol()
cResult += "#define HB_UCFL_LAST 0x" + hb_numToHex( nMaxCh, 4 ) + hb_eol()
cResult += "#define HB_UCFL_BITS " + hb_ntos( nBitCh ) + hb_eol()
cResult += hb_eol()
@@ -239,7 +239,7 @@ proc main()
"HB_UCFL_FIRST", "HB_UCFL_LAST", "HB_UCFL_BITS" )
hb_MemoWrit( "uc16def.c", cResult )
hb_memowrit( "uc16def.c", cResult )
return
static function array_to_code( aVal, cName, nn )
@@ -247,10 +247,10 @@ static function array_to_code( aVal, cName, nn )
cResult := "static const " + ;
iif( nn == 1, "HB_BYTE", "HB_USHORT" ) + " " + ;
cName + "[ " + hb_ntos( Len( aVal ) ) + " ] =" + hb_eol()
cName + "[ " + hb_ntos( len( aVal ) ) + " ] =" + hb_eol()
cResult += "{" + hb_eol()
l := 0
for n := 1 to Len( aVal )
for n := 1 to len( aVal )
if ++l > iif( nn == 1, 12, 8 )
l := 1
cResult += ","
@@ -262,7 +262,7 @@ static function array_to_code( aVal, cName, nn )
cResult += ", "
endif
cResult += "0x"
cResult += hb_NumToHex( aVal[ n ], nn * 2 )
cResult += hb_numToHex( aVal[ n ], nn * 2 )
next
cResult += hb_eol()
cResult += "};" + hb_eol()
@@ -271,8 +271,8 @@ return cResult;
static function hash_to_array16( hVal )
local aVal := {}, cLine, n
for each cLine in hVal
for n := 1 to Len( cLine ) step( 2 )
AAdd( aVal, Bin2W( substr( cLine, n, 2 ) ) )
for n := 1 to len( cLine ) step( 2 )
aadd( aVal, bin2w( substr( cLine, n, 2 ) ) )
next
next
return aVal
@@ -281,7 +281,7 @@ static function hash_to_array04( hVal )
local aVal := {}, cLine, c
for each cLine in hVal
for each c in cLine
AAdd( aVal, Asc( c ) )
aadd( aVal, asc( c ) )
next
next
return aVal
@@ -296,7 +296,7 @@ static function index_func16( cName, cNameInd, cNameConv, cMin, cMax, cBit )
" {" + hb_eol() + ;
" return " + cNameConv + "[ ( " + cNameInd + ;
"[ n >> " + cBit + " ] << " + cBit + " ) +" + hb_eol() + ;
Space( Len( cNameConv ) + 15 ) + ;
space( len( cNameConv ) + 15 ) + ;
"( n & ( ( 1 << " + cBit + " ) - 1 ) ) ];" + hb_eol() + ;
" }" + hb_eol() + ;
" return 0;" + hb_eol() + ;
@@ -315,7 +315,7 @@ static function index_func04( cName, cNameInd, cNameConv, cMin, cMax, cBit )
" HB_BYTE v;" + hb_eol() + ;
" v = " + cNameConv + "[ ( " + cNameInd + ;
"[ n >> " + cBit + " ] << ( " + cBit + " - 1 ) ) +" + hb_eol() + ;
Space( Len( cNameConv ) + 12 ) + ;
space( len( cNameConv ) + 12 ) + ;
"( ( n & ( ( 1 << " + cBit + " ) - 1 ) ) >> 1 ) ];" + hb_eol() + ;
" return n & 1 ? v >> 4 : v & 0x0F;" + hb_eol() + ;
" }" + hb_eol() + ;
@@ -353,12 +353,12 @@ function calc_size16( aVal, nMin, nMax, nBit, hVal, aInd, nn )
cLine := ""
hVal := {=>}
aInd := {}
hb_HKeepOrder( hVal, .t. )
hb_hKeepOrder( hVal, .t. )
for n := nMin to nMax
cLine += I2Bin( iif( n == 0, 0, aVal[ n ] ) )
if Len( cLine ) == nLine
cLine += i2bin( iif( n == 0, 0, aVal[ n ] ) )
if len( cLine ) == nLine
hVal[ cLine ] := cLine
AAdd( aInd, hb_HPos( hVal, cLine ) - 1 )
aadd( aInd, hb_hpos( hVal, cLine ) - 1 )
cLine := ""
endif
next
@@ -370,12 +370,12 @@ function calc_size16( aVal, nMin, nMax, nBit, hVal, aInd, nn )
endif
next
hVal[ cLine ] := cLine
AAdd( aInd, hb_HPos( hVal, cLine ) - 1 )
aadd( aInd, hb_hpos( hVal, cLine ) - 1 )
endif
nn := iif( Len( aInd ) > 256, 2, 1 )
n := Len( aInd ) * nn
nn := iif( len( aInd ) > 256, 2, 1 )
n := len( aInd ) * nn
for each c in hVal
n += Len( c )
n += len( c )
next
return n
@@ -409,12 +409,12 @@ function calc_size04( aVal, nMin, nMax, nBit, hVal, aInd, nn )
cLine := ""
hVal := {=>}
aInd := {}
hb_HKeepOrder( hVal, .t. )
hb_hKeepOrder( hVal, .t. )
for n := nMin to nMax step 2
cLine += Chr( iif( n == 0, 0, aVal[ n ] ) + aVal[ n + 1 ] * 16 )
if Len( cLine ) == nLine
cLine += chr( iif( n == 0, 0, aVal[ n ] ) + aVal[ n + 1 ] * 16 )
if len( cLine ) == nLine
hVal[ cLine ] := cLine
AAdd( aInd, hb_HPos( hVal, cLine ) - 1 )
aadd( aInd, hb_hpos( hVal, cLine ) - 1 )
cLine := ""
endif
next
@@ -426,12 +426,12 @@ function calc_size04( aVal, nMin, nMax, nBit, hVal, aInd, nn )
endif
next
hVal[ cLine ] := cLine
AAdd( aInd, hb_HPos( hVal, cLine ) - 1 )
aadd( aInd, hb_hpos( hVal, cLine ) - 1 )
endif
nn := iif( Len( aInd ) > 256, 2, 1 )
n := Len( aInd ) * nn
nn := iif( len( aInd ) > 256, 2, 1 )
n := len( aInd ) * nn
for each c in hVal
n += Len( c )
n += len( c )
next
return n
@@ -447,10 +447,10 @@ return 0
static function check_conv16( aConv, aInd, aVal, nMin, nMax, nBit )
local n, nVal
for n := 1 to Len( aConv )
for n := 1 to len( aConv )
nVal := conv_get16( n, aInd, aVal, nMin, nMax, nBit )
if aConv[ n ] != nVal
? "Wrong decoding:", n, aConv[ n ], nVal, Len( aConv ), nMax //, hb_eol()
? "Wrong decoding:", n, aConv[ n ], nVal, len( aConv ), nMax //, hb_eol()
break
// exit
endif
@@ -479,10 +479,10 @@ return 0
static function check_conv04( aConv, aInd, aVal, nMin, nMax, nBit )
local n, nVal
for n := 1 to Len( aConv )
for n := 1 to len( aConv )
nVal := conv_get04( n, aInd, aVal, nMin, nMax, nBit )
if aConv[ n ] != nVal
? "Wrong decoding:", n, aConv[ n ], nVal, Len( aConv ), nMax //, hb_eol()
? "Wrong decoding:", n, aConv[ n ], nVal, len( aConv ), nMax //, hb_eol()
// break
// exit
endif