- Fixed the Amiga volumes stuff in init.c, although i think it should be
removed again since it is impossible to differentiate between volumes using only a single character. - Made the OS4 "show drives" code work on all amiga platforms (hopefully) git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@468 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
f3c63fe785
commit
d287384d93
2
Makefile
2
Makefile
@ -57,7 +57,7 @@ else
|
|||||||
CP = cp
|
CP = cp
|
||||||
BIN = grafx2
|
BIN = grafx2
|
||||||
CFGBIN = gfxcfg
|
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
|
LOPT = `sdl-config --libs` -lSDL_image -lpng -ljpeg -lz $(TTFLOPT) -lft2
|
||||||
CC = gcc
|
CC = gcc
|
||||||
OBJDIR = obj/amiga
|
OBJDIR = obj/amiga
|
||||||
|
|||||||
11
files.c
11
files.c
@ -267,7 +267,7 @@ void Lire_liste_des_fichiers(byte Format_demande)
|
|||||||
Liste_Nb_elements=Liste_Nb_repertoires+Liste_Nb_fichiers;
|
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 )
|
void bstrtostr( BSTR in, STRPTR out, TEXT max )
|
||||||
{
|
{
|
||||||
STRPTR iptr;
|
STRPTR iptr;
|
||||||
@ -295,23 +295,22 @@ void Lire_liste_des_lecteurs(void)
|
|||||||
Liste_Nb_fichiers=0;
|
Liste_Nb_fichiers=0;
|
||||||
Liste_Nb_repertoires=0;
|
Liste_Nb_repertoires=0;
|
||||||
|
|
||||||
// AmigaOS4
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__)
|
||||||
#ifdef __amigaos4__
|
|
||||||
{
|
{
|
||||||
struct DosList *dl;
|
struct DosList *dl;
|
||||||
char tmp[256];
|
char tmp[256];
|
||||||
|
|
||||||
dl = IDOS->LockDosList( LDF_VOLUMES | LDF_READ );
|
dl = LockDosList( LDF_VOLUMES | LDF_READ );
|
||||||
if( dl )
|
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 );
|
bstrtostr( dl->dol_Name, tmp, 254 );
|
||||||
strcat( tmp, ":" );
|
strcat( tmp, ":" );
|
||||||
Ajouter_element_a_la_liste( tmp, 2 );
|
Ajouter_element_a_la_liste( tmp, 2 );
|
||||||
Liste_Nb_repertoires++;
|
Liste_Nb_repertoires++;
|
||||||
}
|
}
|
||||||
IDOS->UnLockDosList( LDF_VOLUMES | LDF_READ );
|
UnLockDosList( LDF_VOLUMES | LDF_READ );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
47
init.c
47
init.c
@ -36,6 +36,11 @@
|
|||||||
#include <windows.h> // GetLogicalDrives(), GetDriveType(), DRIVE_*
|
#include <windows.h> // GetLogicalDrives(), GetDriveType(), DRIVE_*
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__)
|
||||||
|
#include <proto/exec.h>
|
||||||
|
#include <proto/dos.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "struct.h"
|
#include "struct.h"
|
||||||
#include "global.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
|
// 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)
|
void Rechercher_drives(void)
|
||||||
{
|
{
|
||||||
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__)
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__)
|
||||||
|
struct DosList *dl;
|
||||||
|
char tmp[256];
|
||||||
|
|
||||||
DosList *dosList;
|
dl = LockDosList( LDF_VOLUMES | LDF_READ );
|
||||||
CONST ULONG lockDosListFlags = LDF_READ | LDF_VOLUMES;
|
if( dl )
|
||||||
|
|
||||||
dosList = LockDosList(lockDosListFlags);
|
|
||||||
if (dosList)
|
|
||||||
{
|
{
|
||||||
dosList = NextDosEntry(dosList, LDF_VOLUMES);
|
while( ( dl = NextDosEntry( dl, LDF_VOLUMES | LDF_READ ) ) )
|
||||||
while (dosList)
|
|
||||||
{
|
{
|
||||||
if (dosList->dol_Type == DLT_VOLUME dosList->dol_Name && dosList->dol_Task)
|
bstrtostr( dl->dol_Name, tmp, 254 );
|
||||||
{
|
strcat( tmp, ":" );
|
||||||
TEXT name[256];
|
Ajouter_lecteur(':',LECTEUR_HDD,tmp);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
UnLockDosList( LDF_VOLUMES | LDF_READ );
|
||||||
}
|
}
|
||||||
dosList = NextDosEntry(dosList, LDF_VOLUMES);
|
|
||||||
}
|
|
||||||
|
|
||||||
UnLockDosList(lockDosListFlags);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined (__WIN32__)
|
#elif defined (__WIN32__)
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#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 ...
|
// We don't use autoconf and all that in grafx2, so let's do the config here ...
|
||||||
#define MOUNTED_GETMNTENT1
|
#define MOUNTED_GETMNTENT1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user