From 06bdeb00db891a3aa684deb0c5477f7ad681df8d Mon Sep 17 00:00:00 2001 From: Paul Tucker Date: Sat, 8 Apr 2000 18:39:36 +0000 Subject: [PATCH] 20000408-14:38 DST --- harbour/ChangeLog | 5 +++++ harbour/source/rtl/strcase.c | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index fe1bfc08f0..45d1594154 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,8 @@ +20000408-14:38 DST Paul Tucker + * source/rtl/strcase.c + * some compilers impliment toupper() as a macro, so toupper( pSrc++ ) + * does not work properly. + 20000408-20:45 GMT+1 Ryszard Glab *source/rtl/gtcrs/gtcrs.c diff --git a/harbour/source/rtl/strcase.c b/harbour/source/rtl/strcase.c index 4ce4644369..a52bb119f8 100644 --- a/harbour/source/rtl/strcase.c +++ b/harbour/source/rtl/strcase.c @@ -69,15 +69,17 @@ char * hb_strUpper( char * szText, ULONG ulLen ) */ char * hb_strncpyUpper( char * pDest, const char * pSource, ULONG ulLen ) { - char * pStart = pDest; - HB_TRACE(HB_TR_DEBUG, ("hb_strncpyUpper(%p, %s, %lu)", pDest, pSource, ulLen)); pDest[ ulLen ] ='\0'; while( ulLen-- ) - *pDest++ = toupper( *pSource++ ); + { + /* some compilers impliment toupper as a macro, and this has side effects! */ + /* *pDest++ = toupper( *pSource++ ); */ + pDest[ulLen] = toupper( pSource[ulLen] ); + } - return pStart; + return pDest; } /* converts string to lower case */