diff --git a/Makefile b/Makefile index 5778f21c..a4def863 100644 --- a/Makefile +++ b/Makefile @@ -57,7 +57,7 @@ else CP = cp BIN = grafx2 CFGBIN = gfxcfg - COPT = -Wall -c -gstabs -mcrt=newlib `sdl-config --cflags` $(TTFCOPT) + COPT = -Wall -c -gstabs -mcrt=newlib `sdl-config --cflags` -D__USE_INLINE__ $(TTFCOPT) LOPT = `sdl-config --libs` -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lft2 CC = gcc OBJDIR = obj/amiga diff --git a/files.c b/files.c index 1f460b48..d926b835 100644 --- a/files.c +++ b/files.c @@ -267,7 +267,7 @@ void Lire_liste_des_fichiers(byte Format_demande) Liste_Nb_elements=Liste_Nb_repertoires+Liste_Nb_fichiers; } -#ifdef __amigaos4__ +#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) void bstrtostr( BSTR in, STRPTR out, TEXT max ) { STRPTR iptr; @@ -295,23 +295,22 @@ void Lire_liste_des_lecteurs(void) Liste_Nb_fichiers=0; Liste_Nb_repertoires=0; - // AmigaOS4 - #ifdef __amigaos4__ + #if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) { struct DosList *dl; char tmp[256]; - dl = IDOS->LockDosList( LDF_VOLUMES | LDF_READ ); + dl = LockDosList( LDF_VOLUMES | LDF_READ ); if( dl ) { - while( ( dl = IDOS->NextDosEntry( dl, LDF_VOLUMES | LDF_READ ) ) ) + while( ( dl = 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 ); + UnLockDosList( LDF_VOLUMES | LDF_READ ); } } diff --git a/init.c b/init.c index a33d5775..573b8747 100644 --- a/init.c +++ b/init.c @@ -36,6 +36,11 @@ #include // GetLogicalDrives(), GetDriveType(), DRIVE_* #endif +#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) +#include +#include +#endif + #include "const.h" #include "struct.h" #include "global.h" @@ -67,42 +72,28 @@ void Ajouter_lecteur(char Lettre, byte Type, char *Chemin) // Rechercher la liste et le type des lecteurs de la machine + +#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) +void bstrtostr( BSTR in, STRPTR out, TEXT max ); +#endif + void Rechercher_drives(void) { #if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) + struct DosList *dl; + char tmp[256]; - DosList *dosList; - CONST ULONG lockDosListFlags = LDF_READ | LDF_VOLUMES; - - dosList = LockDosList(lockDosListFlags); - if (dosList) + dl = LockDosList( LDF_VOLUMES | LDF_READ ); + if( dl ) { - dosList = NextDosEntry(dosList, LDF_VOLUMES); - while (dosList) - { - if (dosList->dol_Type == DLT_VOLUME dosList->dol_Name && dosList->dol_Task) - { - TEXT name[256]; - CONST_STRPTR volume_name = (CONST_STRPTR)BADDR(dosList->dol_Name)+1; - CONST_STRPTR device_name = (CONST_STRPTR)((struct Task *)dosList->dol_Task->mp_SigTask)->tc_Node.ln_Name; - BPTR volume_lock; - - stccpy(name, volume_name, sizeof(name)); - strncat(name, ":", sizeof(name)); - - volume_lock = Lock(name, SHARED_LOCK); - if (volume_lock) - { - Ajouter_lecteur(device_name[0],LECTEUR_HDD,name); - UnLock(volume_lock); - } - } - dosList = NextDosEntry(dosList, LDF_VOLUMES); - } - - UnLockDosList(lockDosListFlags); - } - + while( ( dl = NextDosEntry( dl, LDF_VOLUMES | LDF_READ ) ) ) + { + bstrtostr( dl->dol_Name, tmp, 254 ); + strcat( tmp, ":" ); + Ajouter_lecteur(':',LECTEUR_HDD,tmp); + } + UnLockDosList( LDF_VOLUMES | LDF_READ ); + } #elif defined (__WIN32__) diff --git a/mountlist.c b/mountlist.c index 4a2acbef..7dabb4ea 100644 --- a/mountlist.c +++ b/mountlist.c @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#if(!defined(__WIN32__)) +#if(!defined(__WIN32__))&&(!defined(__amigaos4__))&&(!defined(__AROS__))&&(!defined(__MORPHOS__)) // We don't use autoconf and all that in grafx2, so let's do the config here ... #define MOUNTED_GETMNTENT1