Usermode/CLIShell - Updated 'dir' command to use OpenChild
authorJohn Hodge <[email protected]>
Mon, 22 Jul 2013 12:15:14 +0000 (20:15 +0800)
committerJohn Hodge <[email protected]>
Mon, 22 Jul 2013 12:15:14 +0000 (20:15 +0800)
Usermode/Applications/CLIShell_src/main.c

index ca06a05..501359a 100644 (file)
@@ -300,27 +300,23 @@ void Command_Cd(int argc, char **argv)
  */\r
 void Command_Dir(int argc, char **argv)\r
 {\r
-        int    dp, fp, dirLen;\r
+        int    dp, fp;\r
        char    modeStr[11] = "RWXrwxRWX ";\r
-       char    tmpPath[1024];\r
-       char    *fileName;\r
+       char    fileName[256];\r
        t_sysFInfo      info;\r
        t_sysACL        acl;\r
        \r
+\r
+       // -- Generate and open directory --\r
        // Generate Directory Path\r
+       char    tmpPath[1024];\r
        if(argc > 1)\r
-               dirLen = GeneratePath(argv[1], gsCurrentDirectory, tmpPath);\r
+               GeneratePath(argv[1], gsCurrentDirectory, tmpPath);\r
        else\r
-       {\r
                strcpy(tmpPath, gsCurrentDirectory);\r
-       }\r
-       dirLen = strlen(tmpPath);\r
-       \r
        // Open Directory\r
        dp = _SysOpen(tmpPath, OPENFLAG_READ);\r
-       // Check if file opened\r
-       if(dp == -1)\r
-       {\r
+       if(dp == -1) {\r
                printf("Unable to open directory `%s', File cannot be found\n", tmpPath);\r
                return;\r
        }\r
@@ -339,15 +335,7 @@ void Command_Dir(int argc, char **argv)
                return;\r
        }\r
        \r
-       // Append Shash for file paths\r
-       if(tmpPath[dirLen-1] != '/')\r
-       {\r
-               tmpPath[dirLen++] = '/';\r
-               tmpPath[dirLen] = '\0';\r
-       }\r
-       \r
-       fileName = (char*)(tmpPath+dirLen);\r
-       // Read Directory Content\r
+       // -- Read Directory Contents --\r
        while( (fp = _SysReadDir(dp, fileName)) )\r
        {\r
                if(fp < 0)\r
@@ -357,7 +345,7 @@ void Command_Dir(int argc, char **argv)
                        break;\r
                }\r
                // Open File\r
-               fp = _SysOpen(tmpPath, 0);\r
+               fp = _SysOpenChild(dp, fileName, 0);\r
                if(fp == -1)    continue;\r
                // Get File Stats\r
                _SysFInfo(fp, &info, 0);\r

UCC git Repository :: git.ucc.asn.au