git: e5092308d94e - main - Vendor import of Gavin D. Howard's bc version 4.0.2

Stefan Eßer se at FreeBSD.org
Wed May 12 05:18:03 UTC 2021


The branch main has been updated by se:

URL: https://cgit.FreeBSD.org/src/commit/?id=e5092308d94ef05d9af0ea4d5edfe8b0ce323ec3

commit e5092308d94ef05d9af0ea4d5edfe8b0ce323ec3
Author:     Stefan Eßer <se at FreeBSD.org>
AuthorDate: 2021-05-12 05:15:24 +0000
Commit:     Stefan Eßer <se at FreeBSD.org>
CommitDate: 2021-05-12 05:17:15 +0000

    Vendor import of Gavin D. Howard's bc version 4.0.2
---
 contrib/bc/NEWS.md           | 9 +++++++++
 contrib/bc/include/history.h | 1 +
 contrib/bc/include/version.h | 2 +-
 contrib/bc/src/history.c     | 5 ++++-
 contrib/bc/src/vm.c          | 2 ++
 contrib/bc/tests/other.sh    | 5 ++---
 6 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/contrib/bc/NEWS.md b/contrib/bc/NEWS.md
index c66e7b164c8a..c78bddd27e76 100644
--- a/contrib/bc/NEWS.md
+++ b/contrib/bc/NEWS.md
@@ -1,5 +1,14 @@
 # News
 
+## 4.0.2
+
+This is a production release that fixes two bugs:
+
+1.	If no files are used and the first statement on `stdin` is invalid, `scale`
+	would not be set to `20` even if `-l` was used.
+2.	When using history, `bc` failed to respond properly to `SIGSTOP` and
+	`SIGTSTP`.
+
 ## 4.0.1
 
 This is a production release that only adds one thing: flushing output when it
diff --git a/contrib/bc/include/history.h b/contrib/bc/include/history.h
index 469785a118a9..444a2a107ac5 100644
--- a/contrib/bc/include/history.h
+++ b/contrib/bc/include/history.h
@@ -165,6 +165,7 @@ typedef enum BcHistoryAction {
 	BC_ACTION_ENTER = 13,
 	BC_ACTION_CTRL_N = 14,
 	BC_ACTION_CTRL_P = 16,
+	BC_ACTION_CTRL_S = 19,
 	BC_ACTION_CTRL_T = 20,
 	BC_ACTION_CTRL_U = 21,
 	BC_ACTION_CTRL_W = 23,
diff --git a/contrib/bc/include/version.h b/contrib/bc/include/version.h
index ab4823bd7c2a..42eb3a11d2c0 100644
--- a/contrib/bc/include/version.h
+++ b/contrib/bc/include/version.h
@@ -36,6 +36,6 @@
 #ifndef BC_VERSION_H
 #define BC_VERSION_H
 
-#define VERSION 4.0.1
+#define VERSION 4.0.2
 
 #endif // BC_VERSION_H
diff --git a/contrib/bc/src/history.c b/contrib/bc/src/history.c
index c0d54fe35234..317d9193036c 100644
--- a/contrib/bc/src/history.c
+++ b/contrib/bc/src/history.c
@@ -1281,8 +1281,11 @@ static BcStatus bc_history_edit(BcHistory *h, const char *prompt) {
 
 			default:
 			{
-				if (c >= BC_ACTION_CTRL_A && c <= BC_ACTION_CTRL_Z)
+				if (c >= BC_ACTION_CTRL_A && c <= BC_ACTION_CTRL_Z) {
 					bc_history_printCtrl(h, c);
+					if (c == BC_ACTION_CTRL_Z) raise(SIGTSTP);
+					if (c == BC_ACTION_CTRL_S) raise(SIGSTOP);
+				}
 				else bc_history_edit_insert(h, cbuf, nread);
 				break;
 			}
diff --git a/contrib/bc/src/vm.c b/contrib/bc/src/vm.c
index e7ee8d35ba54..d01c8fd6860f 100644
--- a/contrib/bc/src/vm.c
+++ b/contrib/bc/src/vm.c
@@ -835,6 +835,8 @@ static void bc_vm_exec(void) {
 #if BC_ENABLE_EXTRA_MATH
 		if (!BC_IS_POSIX) bc_vm_load(bc_lib2_name, bc_lib2);
 #endif // BC_ENABLE_EXTRA_MATH
+
+		bc_program_exec(&vm.prog);
 	}
 #endif // BC_ENABLED
 
diff --git a/contrib/bc/tests/other.sh b/contrib/bc/tests/other.sh
index d2ef4f6d0694..e13891fcad89 100755
--- a/contrib/bc/tests/other.sh
+++ b/contrib/bc/tests/other.sh
@@ -138,7 +138,7 @@ else
 
 	set +e
 
-	printf 'three\n' | head -c3 > /dev/null
+	printf 'three\n' | cut -c1-3 > /dev/null
 	err=$?
 
 	if [ "$err" -eq 0 ]; then
@@ -156,8 +156,7 @@ else
 
 		printf '4 April 2021\n' > "$easter_res"
 
-		"$testdir/dc/scripts/easter.sh" "$exe" 2021 | head -c12 > "$easter_out"
-		printf '\n' >> "$easter_out"
+		"$testdir/dc/scripts/easter.sh" "$exe" 2021 | cut -c1-12 > "$easter_out"
 		err="$?"
 
 		checktest "$d" "$err" "Easter script" "$easter_res" "$easter_out"


More information about the dev-commits-src-main mailing list