aboutsummaryrefslogtreecommitdiff
path: root/sys/boot
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2007-03-28 21:18:45 +0000
committerWarner Losh <imp@FreeBSD.org>2007-03-28 21:18:45 +0000
commit89e75021fa591cada8147f107d72a1633503c310 (patch)
treed3d65ca5ef771aff7eb7e34493e3f2aacce01999 /sys/boot
parent5a8da39aa73168170bfbf37924f592d72d4ef4e5 (diff)
Notes
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/arm/at91/boot2/boot2.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/boot/arm/at91/boot2/boot2.c b/sys/boot/arm/at91/boot2/boot2.c
index 5292f5792f60..d336f40f001f 100644
--- a/sys/boot/arm/at91/boot2/boot2.c
+++ b/sys/boot/arm/at91/boot2/boot2.c
@@ -114,12 +114,10 @@ getstr(int c)
char *s;
s = cmd;
- if (c)
- *s++ = c;
- for (;;) {
+ if (c == 0)
c = getc(10000);
-
- switch (c = getc(10000)) {
+ for (;;) {
+ switch (c) {
case 0:
break;
case '\177':
@@ -138,6 +136,7 @@ getstr(int c)
*s++ = c;
xputchar(c);
}
+ c = getc(10000);
}
}
@@ -170,7 +169,8 @@ main(void)
/* Present the user with the boot2 prompt. */
- strcpy(kname, PATH_KERNEL);
+ if (*kname == '\0')
+ strcpy(kname, PATH_KERNEL);
for (;;) {
printf("\nDefault: %s\nboot: ", kname);
if (!autoboot || (c = getc(2)) != -1)
@@ -252,6 +252,7 @@ parse()
opts ^= OPT_SET(flags[i]);
}
} else {
+ arg--;
if ((i = ep - arg)) {
if ((size_t)i >= sizeof(kname))
return -1;