summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-12 16:25:01 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-03-12 21:23:30 +0100
commit3bfcc368b70181fb8baea37b83db2ed99f5cad40 (patch)
tree25d575625d5ff2bab67cee84aecdca49211c2005 /src
parent10d52f4f24f80835d28d8278df84d8bd500bd347 (diff)
downloadpintos-3bfcc368b70181fb8baea37b83db2ed99f5cad40.tar.gz
step over spaces in args
Diffstat (limited to 'src')
-rw-r--r--src/userprog/build/fail2
-rw-r--r--src/userprog/process.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/src/userprog/build/fail b/src/userprog/build/fail
index e1df1c1..d20593f 100644
--- a/src/userprog/build/fail
+++ b/src/userprog/build/fail
@@ -1,5 +1,3 @@
-FAIL tests/userprog/args-none
-FAIL tests/userprog/args-dbl-space
FAIL tests/userprog/sc-bad-sp
FAIL tests/userprog/sc-bad-arg
FAIL tests/userprog/create-null
diff --git a/src/userprog/process.c b/src/userprog/process.c
index fadd14d..fbf2f50 100644
--- a/src/userprog/process.c
+++ b/src/userprog/process.c
@@ -352,9 +352,11 @@ load (const char *file_name, void (**eip) (void), void **esp)
esp_argv_entry++;
for (i = 0; i < argc - 1; i++) {
- // find next \0 in cmd
+ // step until a \0 is found
while (*(++esp_cmd) != '\0') {}
- *esp_argv_entry = esp_cmd + 1; // point to next character
+ // step over any ' '
+ while (*(++esp_cmd) == ' ') {}
+ *esp_argv_entry = esp_cmd; // point to next character
esp_argv_entry++;
}