X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcli_hush.c;h=296542f4c2d62b7094694a40c79c7d2fe9fdf545;hb=49891df661acf164460ba3ada60fccfc5a53ea71;hp=0f069b010a2d39975635574fdbd5dc36554c09d4;hpb=90b51c33f362926e17d4c07dcef1ce822abaa89f;p=u-boot diff --git a/common/cli_hush.c b/common/cli_hush.c index 0f069b010a..296542f4c2 100644 --- a/common/cli_hush.c +++ b/common/cli_hush.c @@ -1840,7 +1840,7 @@ static int run_list_real(struct pipe *pi) if (rmode == RES_DO) { if (!flag_rep) continue; } - if ((rmode == RES_DONE)) { + if (rmode == RES_DONE) { if (flag_rep) { flag_restore = 1; } else { @@ -3162,7 +3162,7 @@ static int parse_stream_outer(struct in_str *inp, int flag) o_string temp=NULL_O_STRING; int rcode; #ifdef __U_BOOT__ - int code = 0; + int code = 1; #endif do { ctx.type = flag; @@ -3170,7 +3170,8 @@ static int parse_stream_outer(struct in_str *inp, int flag) update_ifs_map(); if (!(flag & FLAG_PARSE_SEMICOLON) || (flag & FLAG_REPARSING)) mapset((uchar *)";$&|", 0); inp->promptmode=1; - rcode = parse_stream(&temp, &ctx, inp, '\n'); + rcode = parse_stream(&temp, &ctx, inp, + flag & FLAG_CONT_ON_NEWLINE ? -1 : '\n'); #ifdef __U_BOOT__ if (rcode == 1) flag_repeat = 0; #endif @@ -3215,7 +3216,9 @@ static int parse_stream_outer(struct in_str *inp, int flag) free_pipe_list(ctx.list_head,0); } b_free(&temp); - } while (rcode != -1 && !(flag & FLAG_EXIT_FROM_LOOP)); /* loop on syntax errors, return on EOF */ + /* loop on syntax errors, return on EOF */ + } while (rcode != -1 && !(flag & FLAG_EXIT_FROM_LOOP) && + (inp->peek != static_peek || b_peek(inp))); #ifndef __U_BOOT__ return 0; #else @@ -3233,8 +3236,10 @@ int parse_string_outer(const char *s, int flag) #ifdef __U_BOOT__ char *p = NULL; int rcode; - if ( !s || !*s) + if (!s) return 1; + if (!*s) + return 0; if (!(p = strchr(s, '\n')) || *++p) { p = xmalloc(strlen(s) + 2); strcpy(p, s); @@ -3567,7 +3572,7 @@ static char **make_list_in(char **inp, char *name) p3 = insert_var_value(inp[i]); p1 = p3; while (*p1) { - if ((*p1 == ' ')) { + if (*p1 == ' ') { p1++; continue; }