static void hb_trace_message( char * buffer, HB_SIZE nSize, int iParam, int iCount ) { int iFirst = iParam; buffer[ 0 ] = '\0'; while( iParam <= iCount && nSize > 1 ) { char * pszString; HB_SIZE nLen; HB_BOOL fFree; if( iParam > iFirst ) { *buffer++ = ' '; --nSize; } pszString = hb_itemString( hb_param( iParam, HB_IT_ANY ), &nLen, &fFree ); hb_strncpy( buffer, pszString, nSize ); nLen = strlen( buffer ); nSize -= nLen; buffer += nLen; if( fFree ) hb_xfree( pszString ); iParam++; } }
static char * hb_itemStringCon( PHB_ITEM pItem, HB_SIZE * pnLen, HB_BOOL * pfFreeReq ) { /* logical values in device output (not console, stdout or stderr) are shown as single letter */ if( HB_IS_LOGICAL( pItem ) ) { *pnLen = 1; *pfFreeReq = HB_FALSE; return ( char * ) ( hb_itemGetL( pItem ) ? "T" : "F" ); } return hb_itemString( pItem, pnLen, pfFreeReq ); }