diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f359ce4532..7ed102ca5e 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,19 @@ The license applies to all entries newer than 2009-04-28. */ +2011-04-14 20:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/src/vm/thread.c + * renamed hb_criticalCode() to hb_mutexEval() + + * harbour/src/rtl/cdpapi.c + * added HB_CODEPAGE_ANNOUNCE( UTF8 ) so user can use + REQUEST HB_CODEPAGE_UTF8 + in PRG code. + + * harbour/tests/big5_gen.prg + ; added note about characters mapped to U+FFFD REPLACEMENT CHARACTER + in BIG5.TXT and iconv mapping for the same characters. + 2011-04-14 15:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/vm/thread.c + added new function: diff --git a/harbour/src/rtl/cdpapi.c b/harbour/src/rtl/cdpapi.c index 6bd4736a91..3c0f8f2728 100644 --- a/harbour/src/rtl/cdpapi.c +++ b/harbour/src/rtl/cdpapi.c @@ -128,6 +128,8 @@ static HB_CODEPAGE s_utf8_codepage = HB_FALSE, hb_cdpUTF8_get, hb_cdpUTF8_put, hb_cdpUTF8_len, 0, 0, NULL, NULL, NULL }; +HB_CODEPAGE_ANNOUNCE( UTF8 ) + static HB_CODEPAGE s_en_codepage = { "EN", "English CP-437", HB_UNITB_437, NULL, NULL, NULL, NULL, NULL, 0, diff --git a/harbour/src/vm/thread.c b/harbour/src/vm/thread.c index cddccbdeba..e1a7e11669 100644 --- a/harbour/src/vm/thread.c +++ b/harbour/src/vm/thread.c @@ -71,8 +71,8 @@ hb_mutexNotifyAll( [, ] ) -> NIL hb_mutexSubscribe( , [ ] [, @ ] ) -> hb_mutexSubscribeNow( , [ ] [, @ ] ) -> + hb_mutexEval( , | <@sFunc()> ) -> ** hb_mutexQueueInfo( , [ @ ], [ @ ] ) -> .T. - hb_criticalCode( , | <@sFunc()> ) -> hb_mtVM() -> * - this function call can be ignored by the destination thread in some @@ -2590,25 +2590,7 @@ HB_FUNC( HB_MUTEXSUBSCRIBENOW ) } } -HB_FUNC( HB_MUTEXQUEUEINFO ) -{ - PHB_ITEM pItem = hb_mutexParam( 1 ); - - if( pItem ) - { - PHB_MUTEX pMutex = hb_mutexPtr( pItem ); - - if( pMutex ) - { - HB_STACK_TLS_PRELOAD - hb_storni( pMutex->waiters, 2 ); - hb_storns( pMutex->events ? hb_arrayLen( pMutex->events ) : 0, 3 ); - hb_retl( HB_TRUE ); - } - } -} - -HB_FUNC( HB_CRITICALCODE ) +HB_FUNC( HB_MUTEXEVAL ) { PHB_ITEM pItem = hb_mutexParam( 1 ); @@ -2631,6 +2613,24 @@ HB_FUNC( HB_CRITICALCODE ) } } +HB_FUNC( HB_MUTEXQUEUEINFO ) +{ + PHB_ITEM pItem = hb_mutexParam( 1 ); + + if( pItem ) + { + PHB_MUTEX pMutex = hb_mutexPtr( pItem ); + + if( pMutex ) + { + HB_STACK_TLS_PRELOAD + hb_storni( pMutex->waiters, 2 ); + hb_storns( pMutex->events ? hb_arrayLen( pMutex->events ) : 0, 3 ); + hb_retl( HB_TRUE ); + } + } +} + HB_FUNC( HB_MTVM ) { HB_STACK_TLS_PRELOAD diff --git a/harbour/tests/big5_gen.prg b/harbour/tests/big5_gen.prg index dbea713e0b..073ee2d421 100644 --- a/harbour/tests/big5_gen.prg +++ b/harbour/tests/big5_gen.prg @@ -12,6 +12,47 @@ * */ + +/* *************************************************************************** + +these characters are mapped to U+FFFD REPLACEMENT CHARACTER in BIG5.TXT: + 0xA15A SPACING UNDERSCORE duplicates A1C4 + 0xA1C3 SPACING HEAVY OVERSCORE not in Unicode + 0xA1C5 SPACING HEAVY UNDERSCORE not in Unicode + 0xA1FE LT DIAG UP RIGHT TO LOW LEFT duplicates A2AC + 0xA240 LT DIAG UP LEFT TO LOW RIGHT duplicates A2AD + 0xA2CC HANGZHOU NUMERAL TEN conflicts with A451 mapping + 0xA2CE HANGZHOU NUMERAL THIRTY conflicts with A4CA mapping + +duplicated character has the following mapping in BIG5.TXT: + 0xA1C4 0xFF3F # FULLWIDTH LOW LINE + 0xA2AC 0x2571 # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT + 0xA2AD 0x2572 # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT + 0xA451 0x5341 # + 0xA4CA 0x5345 # + + +# iconv using the following mapping for them: +0xA15A 0x2574 # BOX DRAWINGS LIGHT LEFT +0xA1C3 0xFFE3 # FULLWIDTH MACRON +0xA1C5 0x02CD # MODIFIER LETTER LOW MACRON +0xA1FE 0xFF0F # FULLWIDTH SOLIDUS +0xA240 0xFF3C # FULLWIDTH REVERSE SOLIDUS +0xA2CC 0x5341 # +0xA2CE 0x5345 # + +# this seems to be closer mapping: +0xA15A 0xFF3F # FULLWIDTH LOW LINE +0xA1C3 0xFFE3 # FULLWIDTH MACRON +0xA1C5 0x02CD # MODIFIER LETTER LOW MACRON +0xA1FE 0x2571 # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT +0xA240 0x2572 # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT +0xA2CC 0x5341 # +0xA2CE 0x5345 # + +*************************************************************************** */ + + proc main() local cLine, aVal, aVal2, aValU, aValU2, hVal, aInd, ; n, nn, nBG5, nU16, nMin, nMax, nUMin, nUMax, cResult, nBit