bc: upgrade to version 3.3.4

This upgrade performs an implicit flush of the output if the script
funcion read() is called, to make sure a prompt that does not end in a
new-line is correctly displayed in line-buffered output mode.

Merge commit '893ecb52db5ed47d6c1e8698334d34e0df651612'
This commit is contained in:
Stefan Eßer 2021-03-19 09:46:12 +01:00
commit 9300e88039
4 changed files with 15 additions and 10 deletions

View File

@ -29,7 +29,7 @@
#
.POSIX:
VERSION = 3.3.3
VERSION = 3.3.4
SRC = %%SRC%%
OBJ = %%OBJ%%

View File

@ -1,5 +1,14 @@
# News
## 3.3.4
This is a production release that fixes a small bug.
The bug was that output was not flushed before a `read()` call, so prompts
without a newline on the end were not flushed before the `read()` call.
This is such a tiny bug that users only need to upgrade if they are affected.
## 3.3.3
This is a production release with one tweak and fixes for manuals.

View File

@ -42,8 +42,7 @@ Systems that are known to work:
* HP-UX* (except for history)
Please submit bug reports if this `bc` does not build out of the box on any
system besides Windows. If Windows binaries are needed, they can be found at
[xstatic][6].
system besides Windows.
## Build
@ -52,12 +51,6 @@ This `bc` should build unmodified on any POSIX-compliant system.
For more complex build requirements than the ones below, see the
[build manual][5].
### Pre-built Binaries
It is possible to download pre-compiled binaries for a wide list of platforms,
including Linux- and Windows-based systems, from [xstatic][6]. This link always
points to the latest release of `bc`.
### Default
For the default build with optimization, use the following commands in the root
@ -329,7 +322,6 @@ Folders:
[1]: https://www.gnu.org/software/bc/
[4]: ./LICENSE.md
[5]: ./manuals/build.md
[6]: https://pkg.musl.cc/bc/
[7]: ./manuals/algorithms.md
[8]: https://git.busybox.net/busybox/tree/miscutils/bc.c
[9]: https://github.com/landley/toybox/blob/master/toys/pending/bc.c

View File

@ -1928,6 +1928,10 @@ void bc_program_exec(BcProgram *p) {
case BC_INST_READ:
{
// We want to flush output before
// this in case there is a prompt.
bc_file_flush(&vm.fout);
bc_program_read(p);
ip = bc_vec_top(&p->stack);