X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Fls_src%2Fmain.c;h=973013b0dbcf03c6fb6c1e6471465fbaf60334e8;hb=45ff232a1db704623e0c4baed011d12cbd44b06e;hp=db5161306a98f5d1edfc5c11654b22af799a4deb;hpb=a98b0e6ff33593616a21337492bb2fd48e9e5845;p=tpg%2Facess2.git diff --git a/Usermode/Applications/ls_src/main.c b/Usermode/Applications/ls_src/main.c index db516130..973013b0 100644 --- a/Usermode/Applications/ls_src/main.c +++ b/Usermode/Applications/ls_src/main.c @@ -51,17 +51,17 @@ int main(int argc, char *argv[]) ParseArguments(argc, argv); // Open Directory - fd = open(gsDirectory, OPENFLAG_READ|OPENFLAG_EXEC); + fd = _SysOpen(gsDirectory, OPENFLAG_READ|OPENFLAG_EXEC); if(fd == -1) { printf("Unable to open '%s' for reading\n", gsDirectory); return EXIT_FAILURE; } // Check that it is a directory - finfo(fd, &info, 0); + _SysFInfo(fd, &info, 0); if( !(info.flags & FILEFLAG_DIRECTORY) ) { fprintf(stderr, "'%s' is not a directory\n", gsDirectory); - close(fd); + _SysClose(fd); return EXIT_FAILURE; } @@ -75,11 +75,11 @@ int main(int argc, char *argv[]) } // Traverse Directory - while( (tmp = readdir(fd, buf)) > 0 ) + while( (tmp = _SysReadDir(fd, buf)) > 0 ) { // Error check if(tmp < 0) { - close(fd); + _SysClose(fd); return EXIT_FAILURE; } @@ -89,7 +89,7 @@ int main(int argc, char *argv[]) space += 16; gFileList = realloc(gFileList, space*sizeof(char*)); if(gFileList == NULL) { - close(fd); + _SysClose(fd); return EXIT_FAILURE; } } @@ -105,7 +105,7 @@ int main(int argc, char *argv[]) DisplayFile( gFileList[i] ); } - close(fd); + _SysClose(fd); printf("\n"); return EXIT_SUCCESS; @@ -152,7 +152,7 @@ void ParseArguments(int argc, char *argv[]) // Human readable sizes case 'h': gbViewHumanReadable = 1; continue; default: - fprintf(stderr, "%s: Unknown option '%c'\n", *str); + fprintf(stderr, "%s: Unknown option '%c'\n", argv[0], *str); ShowUsage(argv[0]); exit(EXIT_FAILURE); } @@ -218,13 +218,13 @@ void DisplayFile(char *Filename) strcpy(&path[dirLen+1], Filename); // Get file type - fd = open(path, 0); + fd = _SysOpen(path, 0); if(fd == -1) { fprintf(stderr, "Unable to open '%s'\n", path); } else { // Get Info - finfo(fd, &info, 0); + _SysFInfo(fd, &info, 0); // Get Type if(info.flags & FILEFLAG_DIRECTORY) { type = FTYPE_DIR; @@ -243,26 +243,26 @@ void DisplayFile(char *Filename) // Get Permissions // - Owner - acl.group = 0; acl.id = info.uid; + acl.object = info.uid; _SysGetACL(fd, &acl); if(acl.perms & 1) perms |= 0400; // R if(acl.perms & 2) perms |= 0200; // W if(acl.perms & 8) perms |= 0100; // X // - Group - acl.group = 1; acl.id = info.gid; + acl.object = info.gid | 0x80000000; _SysGetACL(fd, &acl); if(acl.perms & 1) perms |= 0040; // R if(acl.perms & 2) perms |= 0020; // W if(acl.perms & 8) perms |= 0010; // X // - World - acl.group = 1; acl.id = -1; + acl.object = 0xFFFFFFFF; _SysGetACL(fd, &acl); if(acl.perms & 1) perms |= 0004; // R if(acl.perms & 2) perms |= 0002; // W if(acl.perms & 8) perms |= 0001; // X // Close file - close(fd); + _SysClose(fd); } free(path); // We're finished with it @@ -283,22 +283,22 @@ void DisplayFile(char *Filename) printf("%s %4i %4i ", permStr, owner, group); if(gbViewHumanReadable && type != FTYPE_DIR) { if(size < 2048) { // < 2 KiB - printf("%4i B ", size); + printf("%4lli B ", size); } else if(size < 2048*1024) { // < 2 MiB - printf("%4i KiB ", size>>10); + printf("%4lli KiB ", size>>10); } else if(size < (uint64_t)2048*1024*1024) { // < 2 GiB - printf("%4i MiB ", size>>20); + printf("%4lli MiB ", size>>20); } else if(size < (uint64_t)2048*1024*1024*1024) { // < 2 TiB - printf("%4i GiB ", size>>30); + printf("%4lli GiB ", size>>30); } else { // Greater than 2 TiB (if your files are larger than this, you are Doing It Wrong [TM]) - printf("%4i TiB ", size>>40); + printf("%4lli TiB ", size>>40); } } else { - printf("%8i ", size); + printf("%8lli ", size); } }