git: 3d5f931a771c - stable/13 - contrib/bc: update to version 4.0.2

Stefan Eßer se at FreeBSD.org
Tue Jun 1 10:39:21 UTC 2021


The branch stable/13 has been updated by se:

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

commit 3d5f931a771ce8937c0572a4fc11bf7a09323125
Author:     Stefan Eßer <se at FreeBSD.org>
AuthorDate: 2021-05-12 05:49:19 +0000
Commit:     Stefan Eßer <se at FreeBSD.org>
CommitDate: 2021-06-01 10:38:43 +0000

    contrib/bc: update to version 4.0.2
    
    Merge commit '2858419a0ee2b8f5827de72c00618bcd69ebc5fc'
    
    This update fixes the initialization of "scale" to 20 if started with
    -l and the initial statement leads to an error (e.g. contains a syntax
    error). Scale was initialized to 0 in that case.
    
    Another change is the support of job control in interactive mode with
    line editing enabled. The control characters have been interpreted as
    editing commands only, prior to this version.
    
    (cherry picked from commit 8c39e25220bb88cd027d0c3b0fe86e52f6abd150)
---
 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-all mailing list