diff options
Diffstat (limited to '02_exercise/shell.c')
-rw-r--r-- | 02_exercise/shell.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/02_exercise/shell.c b/02_exercise/shell.c index dd0085d..ea1b13f 100644 --- a/02_exercise/shell.c +++ b/02_exercise/shell.c @@ -28,18 +28,19 @@ int main(void) { } if (strspn(line, " \n\t") == strlen(line)) { + // skip empty lines - empty being just spaces or tabs continue; } line[length - 1] = '\0'; // cut the line feed - Process * processes = NULL; + process *processes = NULL; parse_line(line, &processes); if (strcmp(processes[0].argv[0], "cd") == 0) { - - if(arrayLen(processes) != 1) { + if (arrayLen(processes) != 1) { perror("Can't chain cd with other processes"); } + if (arrayLen(processes[0].argv) != 3) { fprintf(stderr, "usage: cd <path>"); goto clean; @@ -56,9 +57,8 @@ int main(void) { } else if (strcmp(processes[0].argv[0], "exit") == 0) { done = true; } else { - int ret; for (size_t i = 0; i < arrayLen(processes); ++i) { - ret = exec_command(processes[i]); + int ret = exec_command(processes[i]); if (ret) printf("[%i] ", ret); } |