diff --git a/files.c b/files.c index dca827d6..072fe1f9 100644 --- a/files.c +++ b/files.c @@ -35,9 +35,14 @@ #include #include +#ifdef __amigaos4__ +#include +#endif + #include "erreurs.h" #include "linux.h" + #ifdef __linux__ #include #define isHidden(Enreg) ((Enreg)->d_name[0]=='.') @@ -306,6 +311,22 @@ void Lire_liste_des_fichiers(byte Format_demande) Liste_Nb_elements=Liste_Nb_repertoires+Liste_Nb_fichiers; } + +#ifdef __amigaos4__ +void bstrtostr( BSTR in, STRPTR out, TEXT max ) +{ + STRPTR iptr; + uint32 i; + + iptr = BADDR( in ); + + if( max > iptr[0] ) max = iptr[0]; + + for( i=0; iLockDosList( LDF_VOLUMES | LDF_READ ); + if( dl ) + { + while( ( dl = IDOS->NextDosEntry( dl, LDF_VOLUMES | LDF_READ ) ) ) + { + bstrtostr( dl->dol_Name, tmp, 254 ); + strcat( tmp, ":" ); + Ajouter_element_a_la_liste( tmp, 2 ); + Liste_Nb_repertoires++; + } + IDOS->UnLockDosList( LDF_VOLUMES | LDF_READ ); + } + } // Other platforms: simply read the "static" list of Drives. #else