summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-02 20:16:52 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-05 15:43:35 +0100
commita0c421c118abde7636d4d2b9bee93ca78e656d30 (patch)
treeb78e216f281b49f20d574da91ed01b0390b9ff43
parent71e1fc6b376e1fde2c3b0dbcf94c4261eed9c6c5 (diff)
bc: simplify bc_vm_stdin()
function old new delta bc_vm_run 2020 2006 -14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--miscutils/bc.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 63b745dc7..78c64355b 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -7005,11 +7005,10 @@ err:
static BcStatus bc_vm_stdin(void)
{
- BcStatus s = BC_STATUS_SUCCESS;
+ BcStatus s;
BcVec buf, buffer;
- char c;
size_t len, i, str = 0;
- bool comment = false, notend;
+ bool comment = false;
G.prog.file = bc_program_stdin_name;
bc_lex_file(&G.prs.l, bc_program_stdin_name);
@@ -7022,7 +7021,7 @@ static BcStatus bc_vm_stdin(void)
// with a backslash to the parser. The reason for that is because the parser
// treats a backslash+newline combo as whitespace, per the bc spec. In that
// case, and for strings and comments, the parser will expect more stuff.
- for (s = bc_read_line(&buf, ">>> "); !s; s = bc_read_line(&buf, ">>> ")) {
+ while ((s = bc_read_line(&buf, ">>> ")) == BC_STATUS_SUCCESS) {
char *string = buf.v;
@@ -7038,8 +7037,8 @@ static BcStatus bc_vm_stdin(void)
for (i = 0; i < len; ++i) {
- notend = len > i + 1;
- c = string[i];
+ bool notend = len > i + 1;
+ char c = string[i];
if (i - 1 > len || string[i - 1] != '\\') {
if (G.sbgn == G.send)