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.
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
hb_mutexNotifyAll( <pMtx> [, <xVal>] ) -> NIL
|
||||
hb_mutexSubscribe( <pMtx>, [ <nTimeOut> ] [, @<xSubscribed> ] ) -> <lSubscribed>
|
||||
hb_mutexSubscribeNow( <pMtx>, [ <nTimeOut> ] [, @<xSubscribed> ] ) -> <lSubscribed>
|
||||
hb_mutexEval( <pMtx>, <bCode> | <@sFunc()> ) -> <xCodeResult>
|
||||
** hb_mutexQueueInfo( <pMtx>, [ @<nWaitersCount> ], [ @<nQueueLength> ] ) -> .T.
|
||||
hb_criticalCode( <pMtx>, <bCode> | <@sFunc()> ) -> <xCodeResult>
|
||||
hb_mtVM() -> <lMultiThreadVM>
|
||||
|
||||
* - 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
|
||||
|
||||
@@ -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 # <CJK>
|
||||
0xA4CA 0x5345 # <CJK>
|
||||
|
||||
|
||||
# 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 # <CJK>
|
||||
0xA2CE 0x5345 # <CJK>
|
||||
|
||||
# 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 # <CJK>
|
||||
0xA2CE 0x5345 # <CJK>
|
||||
|
||||
*************************************************************************** */
|
||||
|
||||
|
||||
proc main()
|
||||
local cLine, aVal, aVal2, aValU, aValU2, hVal, aInd, ;
|
||||
n, nn, nBG5, nU16, nMin, nMax, nUMin, nUMax, cResult, nBit
|
||||
|
||||
Reference in New Issue
Block a user