Add homedir functionality
This commit is contained in:
parent
05426d867b
commit
62b718de5b
10
src/main.c
10
src/main.c
|
@ -71,6 +71,8 @@ int parse_command(char **command, int status) {
|
|||
if (command[i][0] == '$') { // FIXME
|
||||
where_var[i] = 1;
|
||||
variable++;
|
||||
} else if (command[i][0] == '~') { // FIXME
|
||||
command[i] = homedir;
|
||||
}
|
||||
}
|
||||
if (variable >= 1) {
|
||||
|
@ -109,7 +111,8 @@ int parse_command(char **command, int status) {
|
|||
return 0;
|
||||
} else if (!strcmp(command[0], "cd")) {
|
||||
if (position == 1) {
|
||||
printf("HOME todo\n");
|
||||
chdir(homedir);
|
||||
getcwd(pwd, sizeof(pwd));
|
||||
} else if (position >= 3) {
|
||||
printf("orsh: cd: too many arguments\n");
|
||||
} else {
|
||||
|
@ -141,7 +144,10 @@ void init() { // Some initial tasks
|
|||
|
||||
void print_ps() {
|
||||
// TODO: add parsing config file
|
||||
printf("%s@%s %s> ", username, hostname, basename(pwd));
|
||||
if (!strcmp(pwd, homedir)) {
|
||||
printf("%s@%s %s> ", username, hostname, "~");
|
||||
} else
|
||||
printf("%s@%s %s> ", username, hostname, basename(pwd));
|
||||
}
|
||||
|
||||
void signal_handler(int sig) {
|
||||
|
|
Loading…
Reference in New Issue