git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of
[email protected]
:acess2
[tpg/acess2.git]
/
Usermode
/
Applications
/
ls_src
/
main.c
diff --git
a/Usermode/Applications/ls_src/main.c
b/Usermode/Applications/ls_src/main.c
index
fc99a40
..
db51613
100644
(file)
--- a/
Usermode/Applications/ls_src/main.c
+++ b/
Usermode/Applications/ls_src/main.c
@@
-60,7
+60,7
@@
int main(int argc, char *argv[])
// Check that it is a directory
finfo(fd, &info, 0);
if( !(info.flags & FILEFLAG_DIRECTORY) ) {
// Check that it is a directory
finfo(fd, &info, 0);
if( !(info.flags & FILEFLAG_DIRECTORY) ) {
- fprintf(stderr, "'%s' is a directory\n", gsDirectory);
+ fprintf(stderr, "'%s' is
not
a directory\n", gsDirectory);
close(fd);
return EXIT_FAILURE;
}
close(fd);
return EXIT_FAILURE;
}
@@
-75,7
+75,7
@@
int main(int argc, char *argv[])
}
// Traverse Directory
}
// Traverse Directory
- while( (tmp = readdir(fd, buf)) )
+ while( (tmp = readdir(fd, buf))
> 0
)
{
// Error check
if(tmp < 0) {
{
// Error check
if(tmp < 0) {
@@
-167,8
+167,6
@@
void ParseArguments(int argc, char *argv[])
// Apply Defaults
if(!gsDirectory) gsDirectory = ".";
// Apply Defaults
if(!gsDirectory) gsDirectory = ".";
-
- printf("gsDirectory = '%s'\n", gsDirectory);
}
/**
}
/**
@@
-262,6
+260,9
@@
void DisplayFile(char *Filename)
if(acl.perms & 1) perms |= 0004; // R
if(acl.perms & 2) perms |= 0002; // W
if(acl.perms & 8) perms |= 0001; // X
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);
}
free(path); // We're finished with it
}
free(path); // We're finished with it
@@
-280,26
+281,33
@@
void DisplayFile(char *Filename)
if(perms & 0002) permStr[8] = 'w';
if(perms & 0001) permStr[9] = 'x';
printf("%s %4i %4i ", permStr, owner, group);
if(perms & 0002) permStr[8] = 'w';
if(perms & 0001) permStr[9] = 'x';
printf("%s %4i %4i ", permStr, owner, group);
- if(gbViewHumanReadable) {
+ if(gbViewHumanReadable
&& type != FTYPE_DIR
) {
if(size < 2048) { // < 2 KiB
if(size < 2048) { // < 2 KiB
- printf("%
8ll
i B ", size);
+ printf("%
4
i B ", size);
}
else if(size < 2048*1024) { // < 2 MiB
}
else if(size < 2048*1024) { // < 2 MiB
- printf("%
8ll
i KiB ", size>>10);
+ printf("%
4
i KiB ", size>>10);
}
else if(size < (uint64_t)2048*1024*1024) { // < 2 GiB
}
else if(size < (uint64_t)2048*1024*1024) { // < 2 GiB
- printf("%
8ll
i MiB ", size>>20);
+ printf("%
4
i MiB ", size>>20);
}
else if(size < (uint64_t)2048*1024*1024*1024) { // < 2 TiB
}
else if(size < (uint64_t)2048*1024*1024*1024) { // < 2 TiB
- printf("%
8ll
i GiB ", size>>30);
+ printf("%
4
i GiB ", size>>30);
}
}
- else { // Greater than 2 TiB
- printf("%
8
i TiB ", size>>40);
+ else { // Greater than 2 TiB
(if your files are larger than this, you are Doing It Wrong [TM])
+ printf("%
4
i TiB ", size>>40);
}
} else {
printf("%8i ", size);
}
}
}
} else {
printf("%8i ", size);
}
}
- printf("%s\n", Filename);
+ switch(type)
+ {
+ case FTYPE_DIR: printf("\x1B[32m"); break; // Green
+ case FTYPE_SYMLINK: printf("\x1B[34m"); break; // Blue
+ case FTYPE_NORMAL: break;
+ }
+ printf("%s%s\n", Filename, (type==FTYPE_DIR?"/":""));
+ printf("\x1B[00m"); // Reset
}
}
UCC
git Repository :: git.ucc.asn.au