Some mount functionality stuff.
authorRyan C. Gordon <icculus@icculus.org>
Sun, 13 Mar 2005 11:59:53 +0000
changeset 681 451025285d35
parent 680 413803699662
child 682 2b4d385e5547
Some mount functionality stuff.
makeos2.cmd
test/test_physfs.c
--- a/makeos2.cmd	Sun Mar 13 09:16:26 2005 +0000
+++ b/makeos2.cmd	Sun Mar 13 11:59:53 2005 +0000
@@ -104,6 +104,7 @@
 @echo  "PHYSFS_writeUBE64" >> bin\physfs.def
 @echo  "PHYSFS_setBuffer" >> bin\physfs.def
 @echo  "PHYSFS_flush" >> bin\physfs.def
+@echo  "PHYSFS_mount" >> bin\physfs.def
 
 @echo Building export library...
 emximp -o bin/physfs.lib bin/physfs.def
--- a/test/test_physfs.c	Sun Mar 13 09:16:26 2005 +0000
+++ b/test/test_physfs.c	Sun Mar 13 11:59:53 2005 +0000
@@ -132,6 +132,59 @@
 } /* cmd_addarchive */
 
 
+static int cmd_mount(char *args)
+{
+    char *ptr;
+    char *mntpoint = NULL;
+    int appending = 0;
+
+    if (*args == '\"')
+    {
+        args++;
+        ptr = strchr(args, '\"');
+        if (ptr == NULL)
+        {
+            printf("missing string terminator in argument.\n");
+            return(1);
+        } /* if */
+        *(ptr) = '\0';
+    } /* if */
+    else
+    {
+        ptr = strchr(args, ' ');
+        *ptr = '\0';
+    } /* else */
+
+    mntpoint = ptr + 1;
+    if (*mntpoint == '\"')
+    {
+        mntpoint++;
+        ptr = strchr(mntpoint, '\"');
+        if (ptr == NULL)
+        {
+            printf("missing string terminator in argument.\n");
+            return(1);
+        } /* if */
+        *(ptr) = '\0';
+    } /* if */
+    else
+    {
+        ptr = strchr(mntpoint, ' ');
+        *(ptr) = '\0';
+    } /* else */
+    appending = atoi(ptr + 1);
+
+    printf("[%s], [%s], [%d]\n", args, mntpoint, appending);
+
+    if (PHYSFS_mount(args, mntpoint, appending))
+        printf("Successful.\n");
+    else
+        printf("Failure. reason: %s.\n", PHYSFS_getLastError());
+
+    return(1);
+} /* cmd_mount */
+
+
 static int cmd_removearchive(char *args)
 {
     if (*args == '\"')
@@ -888,6 +941,7 @@
     { "init",           cmd_init,           1, "<argv0>"                    },
     { "deinit",         cmd_deinit,         0, NULL                         },
     { "addarchive",     cmd_addarchive,     2, "<archiveLocation> <append>" },
+    { "mount",          cmd_mount,          3, "<archiveLocation> <mntpoint> <append>" },
     { "removearchive",  cmd_removearchive,  1, "<archiveLocation>"          },
     { "enumerate",      cmd_enumerate,      1, "<dirToEnumerate>"           },
     { "ls",             cmd_enumerate,      1, "<dirToEnumerate>"           },