From 2e9acdf20a01c7c5d12babc9ad4dde54cbd0ccdd Mon Sep 17 00:00:00 2001 From: "Alexander S.Kresin" Date: Mon, 24 Mar 2003 12:47:25 +0000 Subject: [PATCH] 2003-03-24 15:35 UTC+0300 Alexander Kresin --- harbour/ChangeLog | 6 ++++++ harbour/source/rdd/dbcmd.c | 7 ++++++- harbour/source/rtl/cdpapi.c | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 997b7c5b07..d54f4245b4 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,12 @@ 2002-12-01 23:12 UTC+0100 Foo Bar */ +2003-03-24 15:35 UTC+0300 Alexander Kresin + * source/rdd/dbcmd.c + ! bug fixed with improper using of hb_strUpper() - reported by Lorenzo Fiorini + * source/rtl/cdpapi.c + ! fix, provided by Przemyslaw Czerpak + 2003-03-22 11:25 UTC+0100 Antonio Linares * source/compiler/harbour.y * fix on recent If() changes diff --git a/harbour/source/rdd/dbcmd.c b/harbour/source/rdd/dbcmd.c index b0fad67979..98f7860549 100644 --- a/harbour/source/rdd/dbcmd.c +++ b/harbour/source/rdd/dbcmd.c @@ -3601,7 +3601,9 @@ static LPAREANODE GetTheOtherArea( char *szDriver, char * szFileName, BOOL creat if( pFields ) { USHORT i; + int iLen; char *ptr; + char *szFieldName = hb_xgrab( ((AREAP) s_pCurrArea->pArea)->uiMaxFieldNameLength ); uiFields = ( USHORT ) hb_arrayLen( pFields ); for ( i=0; iitem.asString.value; + iLen = strlen( ptr ); + hb_strncpyUpper( szFieldName, ptr, iLen ); if( ( uiCount = hb_rddFieldIndex( (AREAP) s_pCurrArea->pArea, - hb_strUpper( ptr,strlen(ptr)) ) ) != 0 ) + szFieldName ) ) != 0 ) AddField( pFieldArray, pItem, pData, uiCount ); } + hb_xfree( szFieldName ); } else for( uiCount = 1; uiCount <= uiFields; uiCount++ ) diff --git a/harbour/source/rtl/cdpapi.c b/harbour/source/rtl/cdpapi.c index a27eea509f..6d77b3c6d4 100644 --- a/harbour/source/rtl/cdpapi.c +++ b/harbour/source/rtl/cdpapi.c @@ -118,6 +118,11 @@ BOOL hb_cdpRegister( PHB_CODEPAGE cdpage ) cdpage->s_upper[i] = toupper( (BYTE) i&255 ); cdpage->s_lower[i] = tolower( (BYTE) i&255 ); } + if( strpbrk(cdpage->CharsUpper, "~.") != NULL ) + { + ptrUpper = cdpage->CharsUpper = strdup(cdpage->CharsUpper); + ptrLower = cdpage->CharsLower = strdup(cdpage->CharsLower); + } for( i=1; *ptrUpper; i++,ptrUpper++,ptrLower++ ) { if( *ptrUpper == '~' )