diff options
| author | Warner Losh <imp@FreeBSD.org> | 2007-03-28 21:18:45 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2007-03-28 21:18:45 +0000 |
| commit | 89e75021fa591cada8147f107d72a1633503c310 (patch) | |
| tree | d3d65ca5ef771aff7eb7e34493e3f2aacce01999 /sys/boot | |
| parent | 5a8da39aa73168170bfbf37924f592d72d4ef4e5 (diff) | |
Notes
Diffstat (limited to 'sys/boot')
| -rw-r--r-- | sys/boot/arm/at91/boot2/boot2.c | 13 |
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; |
