The exit code for "echo q | dc" is 1 for dc-1.4.1;
while the exit code for "echo q | dc" is 0 for dc-1.4.

Here is the answer from k...@gnu.org:
dc-1.4 was right.  There was a rewrite of a chunk of code for 1.4.1 to
fix a corner case in the Q command, and somehow the placement of the
clean-up label for the 'q' command got misplaced on the error-handling
branch instead of the clean-exit branch.  The patch below fixes this
(it is committed for whenever the next bc/dc release gets made).

Thanks for the report,
        --Ken Pizzini

Signed-off-by: Li Zhou <li.z...@windriver.com>
---
 .../bc/bc/0001-dc-fix-exit-code-of-q-command.patch | 44 ++++++++++++++++++++++
 meta/recipes-extended/bc/bc_1.07.1.bb              |  3 +-
 2 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 
meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch

diff --git 
a/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch 
b/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch
new file mode 100644
index 0000000..1ef797d
--- /dev/null
+++ b/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch
@@ -0,0 +1,44 @@
+From e174b6e7d195d5a7465575641b7f68581f162574 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.z...@windriver.com>
+Date: Thu, 27 Jun 2019 13:10:47 +0800
+Subject: [PATCH] dc: fix exit code of q command
+
+The exit code for "echo q | dc" is 1 for dc-1.4.1;
+while the exit code for "echo q | dc" is 0 for dc-1.4.
+
+Here is the answer from k...@gnu.org:
+dc-1.4 was right.  There was a rewrite of a chunk of code for 1.4.1 to
+fix a corner case in the Q command, and somehow the placement of the
+clean-up label for the 'q' command got misplaced on the error-handling
+branch instead of the clean-exit branch.  The patch below fixes this
+(it is committed for whenever the next bc/dc release gets made).
+
+Thanks for the report,
+        --Ken Pizzini
+
+Upstream-Status: Backport [Got the solution from maintainer]
+
+Signed-off-by: Li Zhou <li.z...@windriver.com>
+---
+ dc/eval.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dc/eval.c b/dc/eval.c
+index 05a3d9e..bcab8db 100644
+--- a/dc/eval.c
++++ b/dc/eval.c
+@@ -814,10 +814,10 @@ error_fail:
+       fprintf(stderr, "%s: ", progname);
+       perror("error reading input");
+       return DC_FAIL;
+-reset_and_exit_quit:
+ reset_and_exit_fail:
+       signal(SIGINT, sigint_default);
+       return DC_FAIL;
++reset_and_exit_quit:
+ reset_and_exit_success:
+       signal(SIGINT, sigint_default);
+       return DC_SUCCESS;
+-- 
+1.9.1
+
diff --git a/meta/recipes-extended/bc/bc_1.07.1.bb 
b/meta/recipes-extended/bc/bc_1.07.1.bb
index 809b864..4a51302 100644
--- a/meta/recipes-extended/bc/bc_1.07.1.bb
+++ b/meta/recipes-extended/bc/bc_1.07.1.bb
@@ -13,7 +13,8 @@ DEPENDS = "flex-native"
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
            file://no-gen-libmath.patch \
-           file://libmath.h"
+           file://libmath.h \
+           file://0001-dc-fix-exit-code-of-q-command.patch"
 SRC_URI[md5sum] = "cda93857418655ea43590736fc3ca9fc"
 SRC_URI[sha256sum] = 
"62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a"
 
-- 
1.9.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to