contrib/bc: update to version 5.2.5

This is a production release that fixes this bc's behavior on ^D to
match GNU bc.

Merge commit 'ed0603704174b01c25b49efc08c82e1532dc5622'

MFC after:	3 days
This commit is contained in:
Stefan Eßer 2022-05-10 15:14:25 +02:00
commit bbd60e2c94
6 changed files with 37 additions and 7 deletions

View File

@ -1,5 +1,10 @@
# News
## 5.2.5
This is a production release that fixes this `bc`'s behavior on `^D` to match
GNU `bc`.
## 5.2.4
This is a production release that fixes two bugs in history:

View File

@ -37,6 +37,6 @@
#define BC_VERSION_H
/// The current version.
#define VERSION 5.2.4
#define VERSION 5.2.5
#endif // BC_VERSION_H

View File

@ -35,6 +35,7 @@
# * git
# * stat
# * tar
# * gzip
# * xz
# * sha512sum
# * sha256sum
@ -182,6 +183,14 @@ cd ..
parent="$repo/.."
# Cleanup old stuff.
if [ -f "$projver.tar.gz" ]; then
rm -rf "$projver.tar.gz"
fi
if [ -f "$projver.tar.gz.sig" ]; then
rm -rf "$projver.tar.gz.sig"
fi
if [ -f "$projver.tar.xz" ]; then
rm -rf "$projver.tar.xz"
fi
@ -192,6 +201,8 @@ fi
# Tar and compress and move into the parent directory of the repo.
tar cf "$projver.tar" "$projver/"
gzip -k "$projver.tar"
mv "$projver.tar.gz" "$parent"
xz -z -v -9 -e "$projver.tar" > /dev/null 2> /dev/null
mv "$projver.tar.xz" "$parent"
@ -242,6 +253,8 @@ rm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.vcxproj.FileListA
# Zip the Windows stuff.
zip -r $projver-windows.zip windows > /dev/null
printf '\n'
shasum "$projver.tar.gz"
printf '\n'
shasum "$projver.tar.xz"
printf '\n'

View File

@ -601,6 +601,7 @@ clang_flags="-Weverything -Wno-padded -Wno-switch-enum -Wno-format-nonliteral"
clang_flags="$clang_flags -Wno-cast-align -Wno-missing-noreturn -Wno-disabled-macro-expansion"
clang_flags="$clang_flags -Wno-unreachable-code -Wno-unreachable-code-return"
clang_flags="$clang_flags -Wno-implicit-fallthrough -Wno-unused-macros -Wno-gnu-label-as-value"
clang_flags="$clang_flags -Wno-declaration-after-statement"
# -Wno-undef is here because Clang seems to think BC_C11 is undefined, when it's defined.
clang_flags="$clang_flags -Wno-undef"
gcc_flags="-Wno-maybe-uninitialized -Wno-clobbered"

View File

@ -1535,12 +1535,20 @@ static BcStatus bc_history_edit(BcHistory *h, const char *prompt) {
}
#ifndef _WIN32
// Act as end-of-file.
// Act as end-of-file or delete-forward-char.
case BC_ACTION_CTRL_D:
{
bc_history_printCtrl(h, c);
BC_SIG_UNLOCK;
return BC_STATUS_EOF;
// Act as EOF if there's no chacters, otherwise emulate Emacs
// delete next character to match historical gnu bc behavior.
if (BC_HIST_BUF_LEN(h) == 0) {
bc_history_printCtrl(h, c);
BC_SIG_UNLOCK;
return BC_STATUS_EOF;
}
bc_history_edit_delete(h);
break;
}
#endif // _WIN32

View File

@ -282,8 +282,11 @@ def test_eof(exe, args, env):
child = pexpect.spawn(exe, args=args, env=env)
try:
send(child, "\t")
expect(child, " ")
send(child, "123")
expect(child, "123")
send(child, "\x01")
send(child, "\x04")
send(child, "\x04")
send(child, "\x04")
wait(child)
except pexpect.TIMEOUT: