PHB_ITEM hb_errPutFileName( PHB_ITEM pError, const char * szFileName ) { HB_TRACE( HB_TR_DEBUG, ( "hb_errPutFileName(%p, %s)", pError, szFileName ) ); hb_arraySetC( pError, HB_TERROR_FILENAME, szFileName ); return pError; }
PHB_ITEM hb_errPutSubSystem( PHB_ITEM pError, const char * szSubSystem ) { HB_TRACE( HB_TR_DEBUG, ( "hb_errPutSubSytem(%p, %s)", pError, szSubSystem ) ); hb_arraySetC( pError, HB_TERROR_SUBSYSTEM, szSubSystem ); return pError; }
PHB_ITEM hb_errPutDescription( PHB_ITEM pError, const char * szDescription ) { HB_TRACE( HB_TR_DEBUG, ( "hb_errPutDescription(%p, %s)", pError, szDescription ) ); hb_arraySetC( pError, HB_TERROR_DESCRIPTION, szDescription ); return pError; }
static HB_ERRCODE s_waList( AREAP pArea, void * Cargo ) { PHB_ITEM pArray = ( PHB_ITEM ) Cargo; HB_SIZE nLen = hb_arrayLen( pArray ) + 1; hb_arraySize( pArray, nLen ); hb_arraySetC( pArray, nLen, hb_dynsymName( ( PHB_DYNS ) pArea->atomAlias ) ); return HB_SUCCESS; }
PHB_ITEM hb_errPutOperation( PHB_ITEM pError, const char * szOperation ) { HB_TRACE( HB_TR_DEBUG, ( "hb_errPutOperation(%p, %s)", pError, szOperation == HB_ERR_FUNCNAME ? "HB_ERR_FUNCNAME" : szOperation ) ); if( szOperation == HB_ERR_FUNCNAME ) { PHB_SYMB pSym = hb_itemGetSymbol( hb_stackBaseItem() ); if( pSym ) szOperation = pSym->szName; } hb_arraySetC( pError, HB_TERROR_OPERATION, szOperation ); return pError; }
PHB_ITEM wvg_logfontTOarray( LPLOGFONT lf, HB_BOOL bEmpty ) { PHB_ITEM aFont = hb_itemNew( NULL ); hb_arrayNew( aFont, 15 ); if( bEmpty ) { hb_arraySetC( aFont, 1, NULL ); hb_arraySetNL( aFont, 2, 0 ); hb_arraySetNL( aFont, 3, 0 ); hb_arraySetNL( aFont, 4, 0 ); hb_arraySetL( aFont, 5, 0 ); hb_arraySetL( aFont, 6, 0 ); hb_arraySetL( aFont, 7, 0 ); hb_arraySetNI( aFont, 8, 0 ); hb_arraySetNI( aFont, 9, 0 ); hb_arraySetNI( aFont, 10, 0 ); hb_arraySetNI( aFont, 11, 0 ); hb_arraySetNI( aFont, 12, 0 ); hb_arraySetNI( aFont, 13, 0 ); hb_arraySetNI( aFont, 14, 0 ); hb_arraySetNInt( aFont, 15, 0 ); } else { HB_ARRAYSETSTR( aFont, 1, lf->lfFaceName ); hb_arraySetNL( aFont, 2, lf->lfHeight ); hb_arraySetNL( aFont, 3, lf->lfWidth ); hb_arraySetNL( aFont, 4, lf->lfWeight ); hb_arraySetL( aFont, 5, lf->lfItalic ); hb_arraySetL( aFont, 6, lf->lfUnderline ); hb_arraySetL( aFont, 7, lf->lfStrikeOut ); hb_arraySetNI( aFont, 8, lf->lfCharSet ); hb_arraySetNI( aFont, 9, lf->lfEscapement ); hb_arraySetNI( aFont, 10, lf->lfOrientation ); hb_arraySetNI( aFont, 11, lf->lfOutPrecision ); hb_arraySetNI( aFont, 12, lf->lfClipPrecision ); hb_arraySetNI( aFont, 13, lf->lfQuality ); hb_arraySetNI( aFont, 14, lf->lfPitchAndFamily ); } return aFont; }
PHB_ITEM hb_fsDirectory( const char * pszDirSpec, const char * pszAttributes, HB_BOOL fDateTime ) { PHB_ITEM pDir = hb_itemArrayNew( 0 ); char * pszFree = NULL; PHB_FFIND ffind; HB_FATTR ulMask; /* Get the passed attributes and convert them to Harbour Flags */ ulMask = HB_FA_ARCHIVE | HB_FA_READONLY; if( pszAttributes && *pszAttributes ) ulMask |= hb_fsAttrEncode( pszAttributes ); if( pszDirSpec && *pszDirSpec ) { if( ulMask != HB_FA_LABEL ) { /* CA-Cl*pper compatible behavior - add all file mask when * last character is directory or drive separator */ HB_SIZE nLen = strlen( pszDirSpec ) - 1; #ifdef HB_OS_HAS_DRIVE_LETTER if( pszDirSpec[ nLen ] == HB_OS_PATH_DELIM_CHR || pszDirSpec[ nLen ] == HB_OS_DRIVE_DELIM_CHR ) #else if( pszDirSpec[ nLen ] == HB_OS_PATH_DELIM_CHR ) #endif pszDirSpec = pszFree = hb_xstrcpy( NULL, pszDirSpec, HB_OS_ALLFILE_MASK, NULL ); } } else pszDirSpec = HB_OS_ALLFILE_MASK; /* Get the file list */ if( ( ffind = hb_fsFindFirst( pszDirSpec, ulMask ) ) != NULL ) { PHB_ITEM pSubarray = hb_itemNew( NULL ); do { char buffer[ 32 ]; hb_arrayNew ( pSubarray, F_LEN ); hb_arraySetC ( pSubarray, F_NAME, ffind->szName ); hb_arraySetNInt( pSubarray, F_SIZE, ffind->size ); hb_arraySetC ( pSubarray, F_TIME, ffind->szTime ); hb_arraySetC ( pSubarray, F_ATTR, hb_fsAttrDecode( ffind->attr, buffer ) ); if( fDateTime ) hb_arraySetTDT( pSubarray, F_DATE, ffind->lDate, ffind->lTime ); else hb_arraySetDL ( pSubarray, F_DATE, ffind->lDate ); /* Don't exit when array limit is reached */ hb_arrayAddForward( pDir, pSubarray ); } while( hb_fsFindNext( ffind ) ); hb_itemRelease( pSubarray ); hb_fsFindClose( ffind ); } if( pszFree ) hb_xfree( pszFree ); return pDir; }