2003-06-17 21:50 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>

This commit is contained in:
Alexander S.Kresin
2003-06-17 17:47:10 +00:00
parent d0cdd9fae0
commit 504dba8167
4 changed files with 25 additions and 7 deletions

View File

@@ -8,6 +8,15 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2003-06-17 21:50 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* source/rtl/cdpapi.c
! Bug fixed in hb_cdpTranslate() and hb_cdpnTranslate()
* source/rdd/dbf1.c
* RDD works Ok now, if field names in dbf are in lower case ( this
may be if dbf created by other dbms )
* source/codepage/cdprukoi.c
! Bug fixed.
2003-06-17 17:22 UTC+0100 Antonio Linares <alinares@fivetechsoft.com>
* source/debug/debugger.prg
* source/debug/dbgwa.prg

View File

@@ -59,7 +59,7 @@
#include "hbapicdp.h"
static HB_CODEPAGE s_codepage = { "RUKOI8",32,
"áâ÷çäåöúéêë.öú.ìíîïðòóôõæèãþûýÿùøüàñ","ÁÂ×ÇÄÅÖÚÉÊË.ÖÚ.ÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝßÙØÜÀÑ",
"áâ÷çäåöúéêëìíîïðòóôõæèãþûýÿùøüàñ","ÁÂ×ÇÄÅÖÚÉÊËÌÍÎÏÐÒÓÔÕÆÈÃÞÛÝßÙØÜÀÑ",
0,0,0,0,NULL,NULL,NULL,NULL,0,NULL };
HB_CODEPAGE_ANNOUNCE( RUKOI8 );

View File

@@ -1894,6 +1894,7 @@ ERRCODE hb_dbfOpen( DBFAREAP pArea, LPDBOPENINFO pOpenInfo )
{
pField = ( LPDBFFIELD ) ( pBuffer + uiCount * sizeof( DBFFIELD ) );
pFieldInfo.atomName = pField->bName;
hb_strUpper( pFieldInfo.atomName,11 );
pFieldInfo.uiLen = pField->bLen;
pFieldInfo.uiDec = 0;
switch( pField->bType )

View File

@@ -266,13 +266,16 @@ void hb_cdpTranslate( char* psz, PHB_CODEPAGE cdpIn, PHB_CODEPAGE cdpOut )
if( cdpIn != cdpOut && cdpIn->nChars == cdpOut->nChars )
{
int nAddLower = (cdpIn->lLatin)? 6:0;
for( ; *psz; psz++ )
{
if( ( n = (int)cdpIn->s_chars[ ((int)*psz)&255 ] ) != 0 )
if( ( ( n = (int)cdpIn->s_chars[ ((int)*psz)&255 ] ) != 0 ) &&
( n <= cdpIn->nChars || ( n > (cdpOut->nChars+nAddLower) ) &&
( n <= (cdpOut->nChars*2+nAddLower) ) ) )
{
n--;
*psz = ( n>=cdpOut->nChars )?
cdpOut->CharsLower[n-cdpOut->nChars-((cdpIn->lLatin)? 6:0)]:cdpOut->CharsUpper[n];
*psz = ( n >= (cdpOut->nChars+nAddLower) )?
cdpOut->CharsLower[n-cdpOut->nChars-nAddLower]:cdpOut->CharsUpper[n];
}
}
}
@@ -284,15 +287,20 @@ void hb_cdpnTranslate( char* psz, PHB_CODEPAGE cdpIn, PHB_CODEPAGE cdpOut, unsig
unsigned int i;
if( cdpIn != cdpOut && cdpIn->nChars == cdpOut->nChars )
{
int nAddLower = (cdpIn->lLatin)? 6:0;
for( i=0; i<nChars; i++,psz++ )
{
if( ( n = (int)cdpIn->s_chars[ ((int)*psz)&255 ] ) != 0 )
if( ( ( n = (int)cdpIn->s_chars[ ((int)*psz)&255 ] ) != 0 ) &&
( n <= cdpIn->nChars || ( n > (cdpOut->nChars+nAddLower) ) &&
( n <= (cdpOut->nChars*2+nAddLower) ) ) )
{
n--;
*psz = ( n>=cdpOut->nChars )?
cdpOut->CharsLower[n-cdpOut->nChars-((cdpIn->lLatin)? 6:0)]:cdpOut->CharsUpper[n];
*psz = ( n >= (cdpOut->nChars+nAddLower) )?
cdpOut->CharsLower[n-cdpOut->nChars-nAddLower]:cdpOut->CharsUpper[n];
}
}
}
}
int hb_cdpcmp( char* szFirst, char* szSecond, ULONG ulLen, PHB_CODEPAGE cdpage, ULONG* piCounter )