- 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
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#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 );
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										47
									
								
								init.c
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								init.c
									
									
									
									
									
								
							@ -36,6 +36,11 @@
 | 
			
		||||
  #include <windows.h> // GetLogicalDrives(), GetDriveType(), DRIVE_*
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__)
 | 
			
		||||
#include <proto/exec.h>
 | 
			
		||||
#include <proto/dos.h>
 | 
			
		||||
#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)
 | 
			
		||||
      while( ( dl = NextDosEntry( dl, LDF_VOLUMES | LDF_READ ) ) )
 | 
			
		||||
      {
 | 
			
		||||
            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);
 | 
			
		||||
        bstrtostr( dl->dol_Name, tmp, 254 );
 | 
			
		||||
        strcat( tmp, ":" );
 | 
			
		||||
        Ajouter_lecteur(':',LECTEUR_HDD,tmp);
 | 
			
		||||
      }
 | 
			
		||||
      UnLockDosList( LDF_VOLUMES | LDF_READ );
 | 
			
		||||
    }
 | 
			
		||||
            dosList = NextDosEntry(dosList, LDF_VOLUMES);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        UnLockDosList(lockDosListFlags);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  #elif defined (__WIN32__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   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 ...
 | 
			
		||||
#define MOUNTED_GETMNTENT1
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user