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
Usermode/libc - AcessNative hacks to separate acess and native namespaces
[tpg/acess2.git]
/
Usermode
/
Applications
/
CLIShell_src
/
main.c
diff --git
a/Usermode/Applications/CLIShell_src/main.c
b/Usermode/Applications/CLIShell_src/main.c
index
7f4ba01
..
ca06a05
100644
(file)
--- a/
Usermode/Applications/CLIShell_src/main.c
+++ b/
Usermode/Applications/CLIShell_src/main.c
@@
-49,7
+49,6
@@
int main(int argc, char *argv[], char **envp)
{
\r
char *sCommandStr;
\r
char *saArgs[32] = {0};
\r
- int length = 0;
\r
int i;
\r
int iArgCount = 0;
\r
tReadline *readline_state = Readline_Init(1);
\r
@@
-76,11
+75,11
@@
int main(int argc, char *argv[], char **envp)
if(saArgs[0]) free(saArgs[0]);
\r
\r
printf("%s$ ", gsCurrentDirectory);
\r
+ fflush(stdout);
\r
\r
// Read Command line
\r
sCommandStr = Readline( readline_state );
\r
printf("\n");
\r
- length = strlen(sCommandStr);
\r
\r
// Parse Command Line into arguments
\r
iArgCount = Parse_Args(sCommandStr, saArgs);
\r
@@
-167,15
+166,15
@@
void CallCommand(char **Args)
{
\r
GeneratePath(exefile, gsCurrentDirectory, sTmpBuffer);
\r
// Check file existence
\r
- fd =
o
pen(sTmpBuffer, OPENFLAG_EXEC);
\r
+ fd =
_SysO
pen(sTmpBuffer, OPENFLAG_EXEC);
\r
if(fd == -1) {
\r
printf("Unknown Command: `%s'\n", Args[0]); // Error Message
\r
return ;
\r
}
\r
\r
// Get File info and close file
\r
-
fi
nfo( fd, &info, 0 );
\r
-
c
lose( fd );
\r
+
_SysFI
nfo( fd, &info, 0 );
\r
+
_SysC
lose( fd );
\r
\r
// Check if the file is a directory
\r
if(info.flags & FILEFLAG_DIRECTORY) {
\r
@@
-191,10
+190,10
@@
void CallCommand(char **Args)
for( i = 0; i < giNumPathDirs; i++ )
\r
{
\r
GeneratePath(exefile, gasPathDirs[i], sTmpBuffer);
\r
- fd =
o
pen(sTmpBuffer, OPENFLAG_EXEC);
\r
+ fd =
_SysO
pen(sTmpBuffer, OPENFLAG_EXEC);
\r
if(fd == -1) continue;
\r
-
fi
nfo( fd, &info, 0 );
\r
-
c
lose( fd );
\r
+
_SysFI
nfo( fd, &info, 0 );
\r
+
_SysC
lose( fd );
\r
if(info.flags & FILEFLAG_DIRECTORY) continue;
\r
// Woohoo! We found a valid command
\r
break;
\r
@@
-208,19
+207,14
@@
void CallCommand(char **Args)
}
\r
\r
// Create new process
\r
- pid = clone(CLONE_VM, 0);
\r
- // Start Task
\r
- if(pid == 0) {
\r
- execve(sTmpBuffer, Args, gasEnvironment);
\r
- printf("Execve returned, ... oops\n");
\r
- exit(-1);
\r
- }
\r
+ int fds[] = {0, 1, 2};
\r
+ pid = _SysSpawn(sTmpBuffer, (const char **)Args, (const char **)gasEnvironment, 3, fds, NULL);
\r
if(pid <= 0) {
\r
printf("Unable to create process: `%s'\n", sTmpBuffer); // Error Message
\r
}
\r
else {
\r
int status;
\r
-
waittid
(pid, &status);
\r
+
_SysWaitTID
(pid, &status);
\r
}
\r
}
\r
\r
@@
-258,7
+252,7
@@
void Command_Help(int argc, char **argv)
*/
\r
void Command_Clear(int argc, char **argv)
\r
{
\r
-
write(_stdout, "\x1B[2J", 4);
//Clear Screen
\r
+
_SysWrite(_stdout, "\x1B[2J", 4);
//Clear Screen
\r
}
\r
\r
/**
\r
@@
-279,13
+273,13
@@
void Command_Cd(int argc, char **argv)
\r
GeneratePath(argv[1], gsCurrentDirectory, tmpPath);
\r
\r
- fp =
o
pen(tmpPath, 0);
\r
+ fp =
_SysO
pen(tmpPath, 0);
\r
if(fp == -1) {
\r
printf("Directory does not exist\n");
\r
return;
\r
}
\r
-
fi
nfo(fp, &stats, 0);
\r
-
c
lose(fp);
\r
+
_SysFI
nfo(fp, &stats, 0);
\r
+
_SysC
lose(fp);
\r
\r
if( !(stats.flags & FILEFLAG_DIRECTORY) ) {
\r
printf("Not a Directory\n");
\r
@@
-297,7
+291,7
@@
void Command_Cd(int argc, char **argv)
strcpy(gsCurrentDirectory, tmpPath);
\r
\r
// Register change with kernel
\r
-
c
hdir( gsCurrentDirectory );
\r
+
_SysC
hdir( gsCurrentDirectory );
\r
}
\r
\r
/**
\r
@@
-323,7
+317,7
@@
void Command_Dir(int argc, char **argv)
dirLen = strlen(tmpPath);
\r
\r
// Open Directory
\r
- dp =
o
pen(tmpPath, OPENFLAG_READ);
\r
+ dp =
_SysO
pen(tmpPath, OPENFLAG_READ);
\r
// Check if file opened
\r
if(dp == -1)
\r
{
\r
@@
-331,16
+325,16
@@
void Command_Dir(int argc, char **argv)
return;
\r
}
\r
// Get File Stats
\r
- if(
fi
nfo(dp, &info, 0) == -1 )
\r
+ if(
_SysFI
nfo(dp, &info, 0) == -1 )
\r
{
\r
-
c
lose(dp);
\r
+
_SysC
lose(dp);
\r
printf("stat Failed, Bad File Descriptor\n");
\r
return;
\r
}
\r
// Check if it's a directory
\r
if(!(info.flags & FILEFLAG_DIRECTORY))
\r
{
\r
-
c
lose(dp);
\r
+
_SysC
lose(dp);
\r
printf("Unable to open directory `%s', Not a directory\n", tmpPath);
\r
return;
\r
}
\r
@@
-354,7
+348,7
@@
void Command_Dir(int argc, char **argv)
\r
fileName = (char*)(tmpPath+dirLen);
\r
// Read Directory Content
\r
- while( (fp =
readd
ir(dp, fileName)) )
\r
+ while( (fp =
_SysReadD
ir(dp, fileName)) )
\r
{
\r
if(fp < 0)
\r
{
\r
@@
-363,10
+357,10
@@
void Command_Dir(int argc, char **argv)
break;
\r
}
\r
// Open File
\r
- fp =
o
pen(tmpPath, 0);
\r
+ fp =
_SysO
pen(tmpPath, 0);
\r
if(fp == -1) continue;
\r
// Get File Stats
\r
-
fi
nfo(fp, &info, 0);
\r
+
_SysFI
nfo(fp, &info, 0);
\r
\r
if(info.flags & FILEFLAG_DIRECTORY)
\r
printf("d");
\r
@@
-393,7
+387,7
@@
void Command_Dir(int argc, char **argv)
if(acl.perms & 2) modeStr[7] = 'w'; else modeStr[7] = '-';
\r
if(acl.perms & 8) modeStr[8] = 'x'; else modeStr[8] = '-';
\r
printf(modeStr);
\r
-
c
lose(fp);
\r
+
_SysC
lose(fp);
\r
\r
// Colour Code
\r
if(info.flags & FILEFLAG_DIRECTORY) // Directory: Green
\r
@@
-414,5
+408,5
@@
void Command_Dir(int argc, char **argv)
printf("\n");
\r
}
\r
// Close Directory
\r
-
c
lose(dp);
\r
+
_SysC
lose(dp);
\r
}
\r
UCC
git Repository :: git.ucc.asn.au