summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/kwboot.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/kwboot.c b/tools/kwboot.c
index 4636622a6c..2f4c61bed6 100644
--- a/tools/kwboot.c
+++ b/tools/kwboot.c
@@ -382,10 +382,12 @@ _is_xm_reply(char c)
}
static int
-kwboot_xm_recv_reply(int fd, char *c, int allow_non_xm)
+kwboot_xm_recv_reply(int fd, char *c, int allow_non_xm, int *non_xm_print)
{
int rc;
+ *non_xm_print = 0;
+
while (1) {
rc = kwboot_tty_recv(fd, c, 1, blk_rsp_timeo);
if (rc) {
@@ -405,6 +407,7 @@ kwboot_xm_recv_reply(int fd, char *c, int allow_non_xm)
if (allow_non_xm) {
putchar(*c);
fflush(stdout);
+ *non_xm_print = 1;
}
}
@@ -415,6 +418,7 @@ static int
kwboot_xm_sendblock(int fd, struct kwboot_block *block, int allow_non_xm,
int *done_print)
{
+ int non_xm_print;
int rc, retries;
char c;
@@ -432,7 +436,7 @@ kwboot_xm_sendblock(int fd, struct kwboot_block *block, int allow_non_xm,
*done_print = 1;
}
- rc = kwboot_xm_recv_reply(fd, &c, allow_non_xm);
+ rc = kwboot_xm_recv_reply(fd, &c, allow_non_xm, &non_xm_print);
if (rc)
return rc;
@@ -440,6 +444,9 @@ kwboot_xm_sendblock(int fd, struct kwboot_block *block, int allow_non_xm,
kwboot_progress(-1, '+');
} while (c == NAK && retries-- > 0);
+ if (non_xm_print)
+ kwboot_printv("\n");
+
rc = -1;
switch (c) {