src/platform_unix.c
changeset 990 c25717b5c165
parent 987 ae7b616e7d0e
child 995 de210c7e2b09
--- a/src/platform_unix.c	Mon Apr 13 17:58:35 2009 -0400
+++ b/src/platform_unix.c	Mon Apr 13 17:59:15 2009 -0400
@@ -40,6 +40,10 @@
 #include <mntent.h>
 #endif
 
+#ifdef PHYSFS_HAVE_SYS_MNTTAB_H
+#include <sys/mnttab.h>
+#endif
+
 #include "physfs_internal.h"
 
 
@@ -101,6 +105,28 @@
     } /* while */
 
     endmntent(mounts);
+
+#elif (defined PHYSFS_HAVE_SYS_MNTTAB_H)
+    FILE *mounts = fopen(MNTTAB, "r");
+    struct mnttab ent;
+
+    BAIL_IF_MACRO(mounts == NULL, ERR_IO_ERROR, /*return void*/);
+    while (getmntent(mounts, &ent) == 0)
+    {
+        int add_it = 0;
+        if (strcmp(ent.mnt_fstype, "hsfs") == 0)
+            add_it = 1;
+
+        /* add other mount types here */
+
+        if (add_it)
+            cb(data, ent.mnt_mountp);
+    } /* while */
+
+    fclose(mounts);
+
+#else
+#error Unknown platform. Should have defined PHYSFS_NO_CDROM_SUPPORT, perhaps.
 #endif
 } /* __PHYSFS_platformDetectAvailableCDs */