bc: fix another thinko
No binary (build failed)
—
(log yok)
| @@ -7059,22 +7059,21 @@ static BC_STATUS zbc_vm_stdin(void) | |
| str = 0; | |
| for (;;) { | |
| size_t len; | |
| - | char *string; |
| bc_read_line(&buf); | |
| len = buf.len - 1; | |
| if (len == 0) // "" buf means EOF | |
| break; | |
| - | string = buf.v; |
| if (len == 1) { | |
| if (str && buf.v[0] == G.send) | |
| str -= 1; | |
| else if (buf.v[0] == G.sbgn) | |
| str += 1; | |
| } else { | |
| + | char *string = buf.v; |
| while (*string) { | |
| char c = *string; | |
| - | if (string != buf.v && string[-1] != '\\') { |
| + | if (string == buf.v || string[-1] != '\\') { |
| // checking applet type is cheaper than accessing sbgn/send | |
| if (IS_BC) // bc: sbgn = send = '"' | |
| str ^= (c == '"'); | |
| @@ -16,6 +16,16 @@ testing "bc comment 2: /*/ is not a closed comment" \ | |
| "4\n" \ | |
| "" "1 /*/ + 2 */ + 3" | |
| + | testing "bc backslash 1" \ |
| + | "bc" \ |
| + | "3\n" \ |
| + | "" "1 \\\\\n + 2" |
| + | |
| + | testing "bc string 1" \ |
| + | "bc" \ |
| + | "STR\n" \ |
| + | "" "\"STR\n\"" |
| + | |
| tar xJf bc_large.tar.xz | |
| for f in bc*.bc; do | |