- 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 );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										53
									
								
								init.c
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								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)
 | 
					      {
 | 
				
			||||||
        {
 | 
					        bstrtostr( dl->dol_Name, tmp, 254 );
 | 
				
			||||||
            if (dosList->dol_Type == DLT_VOLUME dosList->dol_Name && dosList->dol_Task)
 | 
					        strcat( tmp, ":" );
 | 
				
			||||||
            {
 | 
					        Ajouter_lecteur(':',LECTEUR_HDD,tmp);
 | 
				
			||||||
                TEXT name[256];
 | 
					      }
 | 
				
			||||||
                CONST_STRPTR volume_name = (CONST_STRPTR)BADDR(dosList->dol_Name)+1;
 | 
					      UnLockDosList( LDF_VOLUMES | LDF_READ );
 | 
				
			||||||
                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);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  #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