aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Eßer <se@FreeBSD.org>2020-08-03 18:55:39 +0000
committerStefan Eßer <se@FreeBSD.org>2020-08-03 18:55:39 +0000
commita68dea2ff90f2e77fe8c6a9e022aa1ac258106b7 (patch)
tree14083ae0377e0e7df842ba66878bd3f26c9491c7
parentee177a09be9c81bf1c3e00326e1d38e6edb8e2a4 (diff)
downloadsrc-a68dea2ff90f2e77fe8c6a9e022aa1ac258106b7.tar.gz
src-a68dea2ff90f2e77fe8c6a9e022aa1ac258106b7.zip
Import version 3.1.4vendor/bc/3.1.4
This version makes dc exit after processing all commands passed via -e or -f instead of waiting for more input on STDIN (add "-f -" to the command line to emulate the behavior of versionm 3.1.3 and earlier, if desired). The version and copyright message are no longer printed for interactive sessions as was the case with the prior implementation in the FreeBSD base system. Obtained from: https://git.yzena.com/gavin/bc
Notes
Notes: svn path=/vendor/bc/dist/; revision=363807 svn path=/vendor/bc/3.1.4/; revision=363808; tag=vendor/bc/3.1.4
-rw-r--r--Makefile.in2
-rw-r--r--NEWS.md19
-rw-r--r--README.md8
-rw-r--r--include/bc.h3
-rw-r--r--include/vm.h18
-rw-r--r--manuals/bc.1.md.in26
-rw-r--r--manuals/bc/A.135
-rw-r--r--manuals/bc/A.1.md26
-rw-r--r--manuals/bc/E.135
-rw-r--r--manuals/bc/E.1.md26
-rw-r--r--manuals/bc/EH.135
-rw-r--r--manuals/bc/EH.1.md26
-rw-r--r--manuals/bc/EHN.135
-rw-r--r--manuals/bc/EHN.1.md26
-rw-r--r--manuals/bc/EHNP.135
-rw-r--r--manuals/bc/EHNP.1.md26
-rw-r--r--manuals/bc/EHP.135
-rw-r--r--manuals/bc/EHP.1.md26
-rw-r--r--manuals/bc/EN.135
-rw-r--r--manuals/bc/EN.1.md26
-rw-r--r--manuals/bc/ENP.135
-rw-r--r--manuals/bc/ENP.1.md26
-rw-r--r--manuals/bc/EP.135
-rw-r--r--manuals/bc/EP.1.md26
-rw-r--r--manuals/bc/H.135
-rw-r--r--manuals/bc/H.1.md26
-rw-r--r--manuals/bc/HN.135
-rw-r--r--manuals/bc/HN.1.md26
-rw-r--r--manuals/bc/HNP.135
-rw-r--r--manuals/bc/HNP.1.md26
-rw-r--r--manuals/bc/HP.135
-rw-r--r--manuals/bc/HP.1.md26
-rw-r--r--manuals/bc/N.135
-rw-r--r--manuals/bc/N.1.md26
-rw-r--r--manuals/bc/NP.135
-rw-r--r--manuals/bc/NP.1.md26
-rw-r--r--manuals/bc/P.135
-rw-r--r--manuals/bc/P.1.md26
-rw-r--r--manuals/dc.1.md.in12
-rw-r--r--manuals/dc/A.117
-rw-r--r--manuals/dc/A.1.md12
-rw-r--r--manuals/dc/E.117
-rw-r--r--manuals/dc/E.1.md12
-rw-r--r--manuals/dc/EH.117
-rw-r--r--manuals/dc/EH.1.md12
-rw-r--r--manuals/dc/EHN.117
-rw-r--r--manuals/dc/EHN.1.md12
-rw-r--r--manuals/dc/EHNP.117
-rw-r--r--manuals/dc/EHNP.1.md12
-rw-r--r--manuals/dc/EHP.117
-rw-r--r--manuals/dc/EHP.1.md12
-rw-r--r--manuals/dc/EN.117
-rw-r--r--manuals/dc/EN.1.md12
-rw-r--r--manuals/dc/ENP.117
-rw-r--r--manuals/dc/ENP.1.md12
-rw-r--r--manuals/dc/EP.117
-rw-r--r--manuals/dc/EP.1.md12
-rw-r--r--manuals/dc/H.117
-rw-r--r--manuals/dc/H.1.md12
-rw-r--r--manuals/dc/HN.117
-rw-r--r--manuals/dc/HN.1.md12
-rw-r--r--manuals/dc/HNP.117
-rw-r--r--manuals/dc/HNP.1.md12
-rw-r--r--manuals/dc/HP.117
-rw-r--r--manuals/dc/HP.1.md12
-rw-r--r--manuals/dc/N.117
-rw-r--r--manuals/dc/N.1.md12
-rw-r--r--manuals/dc/NP.117
-rw-r--r--manuals/dc/NP.1.md12
-rw-r--r--manuals/dc/P.117
-rw-r--r--manuals/dc/P.1.md12
-rw-r--r--src/args.c14
-rw-r--r--src/bc/bc.c2
-rw-r--r--src/bc/parse.c18
-rw-r--r--src/dc/dc.c2
-rw-r--r--src/vm.c74
-rw-r--r--tests/bc/all.txt2
l---------tests/bc/misc6.txt1
l---------tests/bc/misc6_results.txt1
l---------tests/bc/misc7.txt1
l---------tests/bc/misc7_results.txt1
-rw-r--r--tests/bc/stdin1.txt2
-rw-r--r--tests/bc/stdin1_results.txt1
-rw-r--r--tests/bc/stdin2.txt1
-rw-r--r--tests/bc/stdin2_results.txt3
85 files changed, 737 insertions, 914 deletions
diff --git a/Makefile.in b/Makefile.in
index 2c67e92d13de..fa087ad67aff 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -29,7 +29,7 @@
#
.POSIX:
-VERSION = 3.1.3
+VERSION = 3.1.4
SRC = %%SRC%%
OBJ = %%OBJ%%
diff --git a/NEWS.md b/NEWS.md
index 64e8deb9853d..ba528dbe907b 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,24 @@
# News
+## 3.1.4
+
+This is a production release that fixes one bug, changes two behaviors, and
+removes one environment variable.
+
+The bug is like the one in the last release except it applies if files are being
+executed. I also made the fix more general.
+
+The behavior that was changed is that `bc` now exits when given `-e`, `-f`,
+`--expression` or `--file`. However, if the last one of those is `-f-` (using
+`stdin` as the file), `bc` does not exit. If `-f-` exists and is not the last of
+the `-e` and `-f` options (and equivalents), `bc` gives a fatal error and exits.
+
+Next, I removed the `BC_EXPR_EXIT` and `DC_EXPR_EXIT` environment variables
+since their use is not needed with the behavior change.
+
+Finally, I made it so `bc` does not print the header, though the `-q` and
+`--quiet` options were kept for compatibility with GNU `bc`.
+
## 3.1.3
This is a production release that fixes one minor bug: if `bc` was invoked like
diff --git a/README.md b/README.md
index f2165e554221..8aacb21b004c 100644
--- a/README.md
+++ b/README.md
@@ -262,8 +262,8 @@ Other projects based on this bc are:
toybox `bc` should be reported there.
* [FreeBSD `bc`][23]. While the `bc` in FreeBSD is kept up-to-date, it is better
- to report bugs there, and the maintainers of the package will contact me if
- necessary.
+ to [report bugs there][24], as well as [submit patches][25], and the
+ maintainers of the package will contact me if necessary.
## Language
@@ -332,4 +332,6 @@ Folders:
[20]: https://git.yzena.com/gavin/bc
[21]: https://gavinhoward.com/2020/04/i-am-moving-away-from-github/
[22]: https://www.deepl.com/translator
-[23]: https://github.com/freebsd/freebsd/tree/master/contrib/bc
+[23]: https://svnweb.freebsd.org/base/head/contrib/bc/
+[24]: https://bugs.freebsd.org/
+[25]: https://reviews.freebsd.org/
diff --git a/include/bc.h b/include/bc.h
index ade18c828c28..4423525bad3e 100644
--- a/include/bc.h
+++ b/include/bc.h
@@ -159,9 +159,6 @@ void bc_parse_expr(BcParse *p, uint8_t flags);
void bc_parse_parse(BcParse *p);
void bc_parse_expr_status(BcParse *p, uint8_t flags, BcParseNext next);
-// This is necessary to clear up for if statements at the end of files.
-void bc_parse_noElse(BcParse *p);
-
extern const char bc_sig_msg[];
extern const uchar bc_sig_msg_len;
diff --git a/include/vm.h b/include/vm.h
index cdadfc8bed13..f178c0390853 100644
--- a/include/vm.h
+++ b/include/vm.h
@@ -102,11 +102,10 @@
#define BC_FLAG_G (UINTMAX_C(1)<<4)
#endif // BC_ENABLED
-#define BC_FLAG_Q (UINTMAX_C(1)<<5)
-#define BC_FLAG_I (UINTMAX_C(1)<<6)
-#define BC_FLAG_P (UINTMAX_C(1)<<7)
-#define BC_FLAG_TTYIN (UINTMAX_C(1)<<8)
-#define BC_FLAG_TTY (UINTMAX_C(1)<<9)
+#define BC_FLAG_I (UINTMAX_C(1)<<5)
+#define BC_FLAG_P (UINTMAX_C(1)<<6)
+#define BC_FLAG_TTYIN (UINTMAX_C(1)<<7)
+#define BC_FLAG_TTY (UINTMAX_C(1)<<8)
#define BC_TTYIN (vm.flags & BC_FLAG_TTYIN)
#define BC_TTY (vm.flags & BC_FLAG_TTY)
@@ -279,12 +278,6 @@
#define BC_VM_INVALID_CATALOG ((nl_catd) -1)
-// dc does not use is_stdin.
-#if !BC_ENABLED
-#define bc_vm_process(text, is_stdin) bc_vm_process(text)
-#else // BC_ENABLED
-#endif // BC_ENABLED
-
typedef struct BcVm {
volatile sig_atomic_t status;
@@ -310,6 +303,7 @@ typedef struct BcVm {
uint16_t nchars;
uint16_t line_len;
+ bool no_exit_exprs;
bool eof;
BcBigDig maxes[BC_PROG_GLOBALS_LEN + BC_ENABLE_EXTRA_MATH];
@@ -360,7 +354,7 @@ typedef struct BcVm {
void bc_vm_info(const char* const help);
void bc_vm_boot(int argc, char *argv[], const char *env_len,
- const char* const env_args, const char* env_exp_quit);
+ const char* const env_args);
void bc_vm_shutdown(void);
void bc_vm_printf(const char *fmt, ...);
diff --git a/manuals/bc.1.md.in b/manuals/bc.1.md.in
index ed2fa8beae7b..80892e742345 100644
--- a/manuals/bc.1.md.in
+++ b/manuals/bc.1.md.in
@@ -195,10 +195,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -229,9 +229,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -241,9 +242,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1615,12 +1615,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/A.1 b/manuals/bc/A.1
index 6421238febb6..f0966ba9d877 100644
--- a/manuals/bc/A.1
+++ b/manuals/bc/A.1
@@ -187,13 +187,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -231,10 +231,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -246,10 +248,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1915,14 +1916,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/A.1.md b/manuals/bc/A.1.md
index 31b491a3bc70..e67c20656e23 100644
--- a/manuals/bc/A.1.md
+++ b/manuals/bc/A.1.md
@@ -153,10 +153,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -187,9 +187,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -199,9 +200,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1524,12 +1524,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/E.1 b/manuals/bc/E.1
index 70afc2b716f4..d85db650606c 100644
--- a/manuals/bc/E.1
+++ b/manuals/bc/E.1
@@ -148,13 +148,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -192,10 +192,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -207,10 +209,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1161,14 +1162,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/E.1.md b/manuals/bc/E.1.md
index 4b5b95ab4d27..ab432274fa52 100644
--- a/manuals/bc/E.1.md
+++ b/manuals/bc/E.1.md
@@ -137,10 +137,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -171,9 +171,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -183,9 +184,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -920,12 +920,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EH.1 b/manuals/bc/EH.1
index 90708661143a..c9b196f7452a 100644
--- a/manuals/bc/EH.1
+++ b/manuals/bc/EH.1
@@ -145,13 +145,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -189,10 +189,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -204,10 +206,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1158,14 +1159,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EH.1.md b/manuals/bc/EH.1.md
index 60efac2dd904..32ef6e0d009f 100644
--- a/manuals/bc/EH.1.md
+++ b/manuals/bc/EH.1.md
@@ -134,10 +134,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -168,9 +168,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -180,9 +181,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -917,12 +917,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EHN.1 b/manuals/bc/EHN.1
index 203cc531e8b7..0117a4cd0b68 100644
--- a/manuals/bc/EHN.1
+++ b/manuals/bc/EHN.1
@@ -145,13 +145,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -189,10 +189,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -204,10 +206,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1158,14 +1159,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EHN.1.md b/manuals/bc/EHN.1.md
index 6264e7bf5c81..38b7cf78d76a 100644
--- a/manuals/bc/EHN.1.md
+++ b/manuals/bc/EHN.1.md
@@ -134,10 +134,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -168,9 +168,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -180,9 +181,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -917,12 +917,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EHNP.1 b/manuals/bc/EHNP.1
index da6a25888ce0..02b96492075d 100644
--- a/manuals/bc/EHNP.1
+++ b/manuals/bc/EHNP.1
@@ -140,13 +140,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -184,10 +184,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -199,10 +201,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1153,14 +1154,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EHNP.1.md b/manuals/bc/EHNP.1.md
index 917b7bc6665c..df608db015b4 100644
--- a/manuals/bc/EHNP.1.md
+++ b/manuals/bc/EHNP.1.md
@@ -130,10 +130,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -164,9 +164,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -176,9 +177,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -913,12 +913,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EHP.1 b/manuals/bc/EHP.1
index 3352c2ee5610..cc2920f84403 100644
--- a/manuals/bc/EHP.1
+++ b/manuals/bc/EHP.1
@@ -140,13 +140,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -184,10 +184,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -199,10 +201,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1153,14 +1154,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EHP.1.md b/manuals/bc/EHP.1.md
index 30e411236e46..0ce1f5209c21 100644
--- a/manuals/bc/EHP.1.md
+++ b/manuals/bc/EHP.1.md
@@ -130,10 +130,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -164,9 +164,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -176,9 +177,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -913,12 +913,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EN.1 b/manuals/bc/EN.1
index a662d40fdda9..d7f967d96cd5 100644
--- a/manuals/bc/EN.1
+++ b/manuals/bc/EN.1
@@ -148,13 +148,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -192,10 +192,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -207,10 +209,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1161,14 +1162,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EN.1.md b/manuals/bc/EN.1.md
index cefe8630da75..55ca344ddeb2 100644
--- a/manuals/bc/EN.1.md
+++ b/manuals/bc/EN.1.md
@@ -137,10 +137,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -171,9 +171,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -183,9 +184,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -920,12 +920,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/ENP.1 b/manuals/bc/ENP.1
index b98a2a2ce2fe..736e26bd9acd 100644
--- a/manuals/bc/ENP.1
+++ b/manuals/bc/ENP.1
@@ -143,13 +143,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -187,10 +187,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -202,10 +204,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1156,14 +1157,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/ENP.1.md b/manuals/bc/ENP.1.md
index 6d7194f31cf6..1eae3dee00d1 100644
--- a/manuals/bc/ENP.1.md
+++ b/manuals/bc/ENP.1.md
@@ -133,10 +133,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -167,9 +167,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -179,9 +180,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -916,12 +916,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EP.1 b/manuals/bc/EP.1
index 9c841d8bab4b..107342a54361 100644
--- a/manuals/bc/EP.1
+++ b/manuals/bc/EP.1
@@ -143,13 +143,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -187,10 +187,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -202,10 +204,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1156,14 +1157,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/EP.1.md b/manuals/bc/EP.1.md
index 090b07f0a2d0..7e3d6aca7384 100644
--- a/manuals/bc/EP.1.md
+++ b/manuals/bc/EP.1.md
@@ -133,10 +133,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -167,9 +167,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -179,9 +180,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -916,12 +916,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/H.1 b/manuals/bc/H.1
index 17a913896886..48ccfb55b962 100644
--- a/manuals/bc/H.1
+++ b/manuals/bc/H.1
@@ -182,13 +182,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -226,10 +226,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -241,10 +243,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1910,14 +1911,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/H.1.md b/manuals/bc/H.1.md
index 089953f9706a..413032534554 100644
--- a/manuals/bc/H.1.md
+++ b/manuals/bc/H.1.md
@@ -149,10 +149,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -183,9 +183,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -195,9 +196,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1520,12 +1520,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/HN.1 b/manuals/bc/HN.1
index f275ceaffb9b..9126c9209da5 100644
--- a/manuals/bc/HN.1
+++ b/manuals/bc/HN.1
@@ -182,13 +182,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -226,10 +226,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -241,10 +243,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1910,14 +1911,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/HN.1.md b/manuals/bc/HN.1.md
index 2e1935a12539..c9ac146efbb2 100644
--- a/manuals/bc/HN.1.md
+++ b/manuals/bc/HN.1.md
@@ -149,10 +149,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -183,9 +183,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -195,9 +196,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1520,12 +1520,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/HNP.1 b/manuals/bc/HNP.1
index e3583a545c74..ad09513f0528 100644
--- a/manuals/bc/HNP.1
+++ b/manuals/bc/HNP.1
@@ -177,13 +177,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -221,10 +221,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -236,10 +238,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1905,14 +1906,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/HNP.1.md b/manuals/bc/HNP.1.md
index 7501316421d6..dc8c70ac09a9 100644
--- a/manuals/bc/HNP.1.md
+++ b/manuals/bc/HNP.1.md
@@ -145,10 +145,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -179,9 +179,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -191,9 +192,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1516,12 +1516,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/HP.1 b/manuals/bc/HP.1
index 9c7d0abab262..3ede3a2d5ca8 100644
--- a/manuals/bc/HP.1
+++ b/manuals/bc/HP.1
@@ -177,13 +177,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -221,10 +221,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -236,10 +238,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1905,14 +1906,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/HP.1.md b/manuals/bc/HP.1.md
index cafab919d324..2c4053a302d0 100644
--- a/manuals/bc/HP.1.md
+++ b/manuals/bc/HP.1.md
@@ -145,10 +145,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -179,9 +179,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -191,9 +192,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1516,12 +1516,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/N.1 b/manuals/bc/N.1
index 83049e7c7b14..5c3e86157ba7 100644
--- a/manuals/bc/N.1
+++ b/manuals/bc/N.1
@@ -187,13 +187,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -231,10 +231,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -246,10 +248,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1915,14 +1916,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/N.1.md b/manuals/bc/N.1.md
index 49aaf0fbbcfd..9eabb2591eab 100644
--- a/manuals/bc/N.1.md
+++ b/manuals/bc/N.1.md
@@ -153,10 +153,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -187,9 +187,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -199,9 +200,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1524,12 +1524,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/NP.1 b/manuals/bc/NP.1
index a50dfe2dcc17..8c2a2994a17f 100644
--- a/manuals/bc/NP.1
+++ b/manuals/bc/NP.1
@@ -182,13 +182,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -226,10 +226,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -241,10 +243,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1910,14 +1911,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/NP.1.md b/manuals/bc/NP.1.md
index a5aa258659d2..be11fe236209 100644
--- a/manuals/bc/NP.1.md
+++ b/manuals/bc/NP.1.md
@@ -149,10 +149,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -183,9 +183,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -195,9 +196,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1520,12 +1520,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/P.1 b/manuals/bc/P.1
index 4f6b4ece227c..db807e440c28 100644
--- a/manuals/bc/P.1
+++ b/manuals/bc/P.1
@@ -182,13 +182,13 @@ This is a \f[B]non\-portable extension\f[].
.RE
.TP
.B \f[B]\-q\f[], \f[B]\-\-quiet\f[]
-Do not print copyright header.
-bc(1) will also suppress the header in non\-interactive mode.
+This option is for compatibility with the GNU
+bc(1) (https://www.gnu.org/software/bc/); it is a no\-op.
+Without this option, GNU bc(1) prints a copyright header.
+This bc(1) only prints the copyright header if one or more of the
+\f[B]\-v\f[], \f[B]\-V\f[], or \f[B]\-\-version\f[] options are given.
.RS
.PP
-This is mostly for compatibility with the GNU
-bc(1) (https://www.gnu.org/software/bc/).
-.PP
This is a \f[B]non\-portable extension\f[].
.RE
.TP
@@ -226,10 +226,12 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -241,10 +243,9 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other bc(1) implementations, this option causes the program to
-execute the files and then exit.
-This bc(1) does not, unless the \f[B]BC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, bc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -1910,14 +1911,6 @@ the backslash (\f[B]\\\f[]).
The default line length is \f[B]70\f[].
.RS
.RE
-.TP
-.B \f[B]BC_EXPR_EXIT\f[]
-If this variable exists (no matter the contents), bc(1) will exit
-immediately after executing expressions and files given by the
-\f[B]\-e\f[] and/or \f[B]\-f\f[] command\-line options (and any
-equivalents).
-.RS
-.RE
.SH EXIT STATUS
.PP
bc(1) returns the following exit statuses:
diff --git a/manuals/bc/P.1.md b/manuals/bc/P.1.md
index 1f7379ebfe41..1058a91aa6d2 100644
--- a/manuals/bc/P.1.md
+++ b/manuals/bc/P.1.md
@@ -149,10 +149,10 @@ The following are the options that bc(1) accepts.
**-q**, **--quiet**
-: Do not print copyright header. bc(1) will also suppress the header in
- non-interactive mode.
-
- This is mostly for compatibility with the [GNU bc(1)][2].
+: This option is for compatibility with the [GNU bc(1)][2]; it is a no-op.
+ Without this option, GNU bc(1) prints a copyright header. This bc(1) only
+ prints the copyright header if one or more of the **-v**, **-V**, or
+ **--version** options are given.
This is a **non-portable extension**.
@@ -183,9 +183,10 @@ The following are the options that bc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other bc(1) implementations, this option causes the program to execute
- the expressions and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
@@ -195,9 +196,8 @@ The following are the options that bc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other bc(1) implementations, this option causes the program to execute
- the files and then exit. This bc(1) does not, unless the
- **BC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, bc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -1520,12 +1520,6 @@ bc(1) recognizes the following environment variables:
lines to that length, including the backslash (**\\**). The default line
length is **70**.
-**BC_EXPR_EXIT**
-
-: If this variable exists (no matter the contents), bc(1) will exit
- immediately after executing expressions and files given by the **-e** and/or
- **-f** command-line options (and any equivalents).
-
# EXIT STATUS
bc(1) returns the following exit statuses:
diff --git a/manuals/dc.1.md.in b/manuals/dc.1.md.in
index b6d252a2276e..abb1c4aac773 100644
--- a/manuals/dc.1.md.in
+++ b/manuals/dc.1.md.in
@@ -106,9 +106,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -118,9 +117,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/A.1 b/manuals/dc/A.1
index 10627cb197ec..001fe5a1f2c5 100644
--- a/manuals/dc/A.1
+++ b/manuals/dc/A.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/A.1.md b/manuals/dc/A.1.md
index 36b20862c57f..50c7c8f08c6b 100644
--- a/manuals/dc/A.1.md
+++ b/manuals/dc/A.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/E.1 b/manuals/dc/E.1
index 7f11a33bb18a..f5b1f194f206 100644
--- a/manuals/dc/E.1
+++ b/manuals/dc/E.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/E.1.md b/manuals/dc/E.1.md
index 028e61b42bcc..bb2ab4b0366d 100644
--- a/manuals/dc/E.1.md
+++ b/manuals/dc/E.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/EH.1 b/manuals/dc/EH.1
index d7efbd649a76..9c5cf7d14c92 100644
--- a/manuals/dc/EH.1
+++ b/manuals/dc/EH.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/EH.1.md b/manuals/dc/EH.1.md
index 774ba6e32b3a..e1a0540d1243 100644
--- a/manuals/dc/EH.1.md
+++ b/manuals/dc/EH.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/EHN.1 b/manuals/dc/EHN.1
index a77032398174..4d95b4a1ac96 100644
--- a/manuals/dc/EHN.1
+++ b/manuals/dc/EHN.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/EHN.1.md b/manuals/dc/EHN.1.md
index b4845bf77d86..1fe5ab8cac09 100644
--- a/manuals/dc/EHN.1.md
+++ b/manuals/dc/EHN.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/EHNP.1 b/manuals/dc/EHNP.1
index fb350b8ed2f9..aceea91027ad 100644
--- a/manuals/dc/EHNP.1
+++ b/manuals/dc/EHNP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/EHNP.1.md b/manuals/dc/EHNP.1.md
index 71a24ac4e635..97585bba14bb 100644
--- a/manuals/dc/EHNP.1.md
+++ b/manuals/dc/EHNP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/EHP.1 b/manuals/dc/EHP.1
index 2a47184695cb..70e45ae52363 100644
--- a/manuals/dc/EHP.1
+++ b/manuals/dc/EHP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/EHP.1.md b/manuals/dc/EHP.1.md
index 5445e17e5811..d101695a1c89 100644
--- a/manuals/dc/EHP.1.md
+++ b/manuals/dc/EHP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/EN.1 b/manuals/dc/EN.1
index cc6ec8baaefd..4c57b0dd03e3 100644
--- a/manuals/dc/EN.1
+++ b/manuals/dc/EN.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/EN.1.md b/manuals/dc/EN.1.md
index 114c4d1916b1..e1826daa4e18 100644
--- a/manuals/dc/EN.1.md
+++ b/manuals/dc/EN.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/ENP.1 b/manuals/dc/ENP.1
index 01a49aff21ae..2e8e2341a739 100644
--- a/manuals/dc/ENP.1
+++ b/manuals/dc/ENP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/ENP.1.md b/manuals/dc/ENP.1.md
index df9c398527c8..cc5eea424fb2 100644
--- a/manuals/dc/ENP.1.md
+++ b/manuals/dc/ENP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/EP.1 b/manuals/dc/EP.1
index 00d29fc3ff9c..f97f2a8ae98f 100644
--- a/manuals/dc/EP.1
+++ b/manuals/dc/EP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/EP.1.md b/manuals/dc/EP.1.md
index 99bb462fb0a0..cd58549b17a5 100644
--- a/manuals/dc/EP.1.md
+++ b/manuals/dc/EP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/H.1 b/manuals/dc/H.1
index 02825b898261..44617c0b1a3c 100644
--- a/manuals/dc/H.1
+++ b/manuals/dc/H.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/H.1.md b/manuals/dc/H.1.md
index ab3b13fbf758..327e27a0c893 100644
--- a/manuals/dc/H.1.md
+++ b/manuals/dc/H.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/HN.1 b/manuals/dc/HN.1
index cb97ca4cafb3..8b032e82f1f9 100644
--- a/manuals/dc/HN.1
+++ b/manuals/dc/HN.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/HN.1.md b/manuals/dc/HN.1.md
index a4d3b9f6ca9e..f128840138a5 100644
--- a/manuals/dc/HN.1.md
+++ b/manuals/dc/HN.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/HNP.1 b/manuals/dc/HNP.1
index fefaa2a56c9d..f5152fa781d4 100644
--- a/manuals/dc/HNP.1
+++ b/manuals/dc/HNP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/HNP.1.md b/manuals/dc/HNP.1.md
index b97a4a118d89..fc71488f8b53 100644
--- a/manuals/dc/HNP.1.md
+++ b/manuals/dc/HNP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/HP.1 b/manuals/dc/HP.1
index 45b0cc111be8..eeae02949fc0 100644
--- a/manuals/dc/HP.1
+++ b/manuals/dc/HP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/HP.1.md b/manuals/dc/HP.1.md
index fb7569dab186..88e0914d6266 100644
--- a/manuals/dc/HP.1.md
+++ b/manuals/dc/HP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/N.1 b/manuals/dc/N.1
index a4fb86637c1f..a7ca5b5fec27 100644
--- a/manuals/dc/N.1
+++ b/manuals/dc/N.1
@@ -118,10 +118,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -133,10 +132,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/N.1.md b/manuals/dc/N.1.md
index ac7e27b6e5a3..6e843649b37d 100644
--- a/manuals/dc/N.1.md
+++ b/manuals/dc/N.1.md
@@ -101,9 +101,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -113,9 +112,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/NP.1 b/manuals/dc/NP.1
index 9b0b407bb327..bfd1c0e59d4f 100644
--- a/manuals/dc/NP.1
+++ b/manuals/dc/NP.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/NP.1.md b/manuals/dc/NP.1.md
index f521c3df205e..b83d20a806bb 100644
--- a/manuals/dc/NP.1.md
+++ b/manuals/dc/NP.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/manuals/dc/P.1 b/manuals/dc/P.1
index 4ba6c64322d9..6f5cd4cec1d3 100644
--- a/manuals/dc/P.1
+++ b/manuals/dc/P.1
@@ -113,10 +113,9 @@ This means that if a file is given before an expression, the file is
read in and evaluated first.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the expressions and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
.PP
This is a \f[B]non\-portable extension\f[].
.RE
@@ -128,10 +127,12 @@ If expressions are also given (see above), the expressions are evaluated
in the order given.
.RS
.PP
-In other dc(1) implementations, this option causes the program to
-execute the files and then exit.
-This dc(1) does not, unless the \f[B]DC_EXPR_EXIT\f[] is defined (see
-the \f[B]ENVIRONMENT VARIABLES\f[] section).
+After processing all expressions and files, dc(1) will exit, unless
+\f[B]\-\f[] (\f[B]stdin\f[]) was given as an argument at least once to
+\f[B]\-f\f[] or \f[B]\-\-file\f[].
+However, if any other \f[B]\-e\f[], \f[B]\-\-expression\f[],
+\f[B]\-f\f[], or \f[B]\-\-file\f[] arguments are given after that, bc(1)
+will give a fatal error and exit.
.PP
This is a \f[B]non\-portable extension\f[].
.RE
diff --git a/manuals/dc/P.1.md b/manuals/dc/P.1.md
index dc6d3d950067..41aad658bb3d 100644
--- a/manuals/dc/P.1.md
+++ b/manuals/dc/P.1.md
@@ -98,9 +98,8 @@ The following are the options that dc(1) accepts.
evaluated in the order given. This means that if a file is given before an
expression, the file is read in and evaluated first.
- In other dc(1) implementations, this option causes the program to execute
- the expressions and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
This is a **non-portable extension**.
@@ -110,9 +109,10 @@ The following are the options that dc(1) accepts.
through **stdin**. If expressions are also given (see above), the
expressions are evaluated in the order given.
- In other dc(1) implementations, this option causes the program to execute
- the files and then exit. This dc(1) does not, unless the
- **DC_EXPR_EXIT** is defined (see the **ENVIRONMENT VARIABLES** section).
+ After processing all expressions and files, dc(1) will exit, unless **-**
+ (**stdin**) was given as an argument at least once to **-f** or **--file**.
+ However, if any other **-e**, **--expression**, **-f**, or **--file**
+ arguments are given after that, bc(1) will give a fatal error and exit.
This is a **non-portable extension**.
diff --git a/src/args.c b/src/args.c
index 1626ad4944e4..029237627786 100644
--- a/src/args.c
+++ b/src/args.c
@@ -108,13 +108,20 @@ void bc_args(int argc, char *argv[]) {
case 'e':
{
+ if (vm.no_exit_exprs)
+ bc_vm_verr(BC_ERROR_FATAL_OPTION, "-e (--expression)");
bc_args_exprs(opts.optarg);
break;
}
case 'f':
{
- bc_args_file(opts.optarg);
+ if (!strcmp(opts.optarg, "-")) vm.no_exit_exprs = true;
+ else {
+ if (vm.no_exit_exprs)
+ bc_vm_verr(BC_ERROR_FATAL_OPTION, "-f (--file)");
+ bc_args_file(opts.optarg);
+ }
break;
}
@@ -155,7 +162,7 @@ void bc_args(int argc, char *argv[]) {
case 'q':
{
assert(BC_IS_BC);
- vm.flags |= BC_FLAG_Q;
+ // Do nothing.
break;
}
@@ -205,9 +212,8 @@ void bc_args(int argc, char *argv[]) {
if (version) bc_vm_info(NULL);
if (do_exit) exit((int) vm.status);
- if (vm.exprs.len > 1 || BC_IS_DC) vm.flags |= BC_FLAG_Q;
- if (opts.optind < (size_t) argc)
+ if (opts.optind < (size_t) argc && vm.files.v == NULL)
bc_vec_init(&vm.files, sizeof(char*), NULL);
for (i = opts.optind; i < (size_t) argc; ++i)
diff --git a/src/bc/bc.c b/src/bc/bc.c
index ef0fc3d6865d..3d488b5640c8 100644
--- a/src/bc/bc.c
+++ b/src/bc/bc.c
@@ -52,6 +52,6 @@ void bc_main(int argc, char **argv) {
vm.parse = bc_parse_parse;
vm.expr = bc_parse_expr;
- bc_vm_boot(argc, argv, "BC_LINE_LENGTH", "BC_ENV_ARGS", "BC_EXPR_EXIT");
+ bc_vm_boot(argc, argv, "BC_LINE_LENGTH", "BC_ENV_ARGS");
}
#endif // BC_ENABLED
diff --git a/src/bc/parse.c b/src/bc/parse.c
index 2aa9d97468ff..329c1a84b419 100644
--- a/src/bc/parse.c
+++ b/src/bc/parse.c
@@ -179,10 +179,10 @@ static void bc_parse_params(BcParse *p, uint8_t flags) {
bc_lex_next(&p->l);
- for (nparams = 0; p->l.t != BC_LEX_RPAREN; ++nparams) {
+ flags &= ~(BC_PARSE_PRINT | BC_PARSE_REL);
+ flags |= (BC_PARSE_ARRAY | BC_PARSE_NEEDVAL);
- flags &= ~(BC_PARSE_PRINT | BC_PARSE_REL);
- flags |= (BC_PARSE_ARRAY | BC_PARSE_NEEDVAL);
+ for (nparams = 0; p->l.t != BC_LEX_RPAREN; ++nparams) {
bc_parse_expr_status(p, flags, bc_parse_next_param);
@@ -516,6 +516,12 @@ static void bc_parse_return(BcParse *p) {
}
}
+static void bc_parse_noElse(BcParse *p) {
+ uint16_t *flag_ptr = BC_PARSE_TOP_FLAG_PTR(p);
+ *flag_ptr = (*flag_ptr & ~(BC_PARSE_FLAG_IF_END));
+ bc_parse_setLabel(p);
+}
+
static void bc_parse_endBody(BcParse *p, bool brace) {
bool has_brace, new_else = false;
@@ -610,12 +616,6 @@ static void bc_parse_startBody(BcParse *p, uint16_t flags) {
bc_vec_push(&p->flags, &flags);
}
-void bc_parse_noElse(BcParse *p) {
- uint16_t *flag_ptr = BC_PARSE_TOP_FLAG_PTR(p);
- *flag_ptr = (*flag_ptr & ~(BC_PARSE_FLAG_IF_END));
- bc_parse_setLabel(p);
-}
-
static void bc_parse_if(BcParse *p) {
size_t idx;
diff --git a/src/dc/dc.c b/src/dc/dc.c
index 21d7bfbd4385..8c03ccf0e414 100644
--- a/src/dc/dc.c
+++ b/src/dc/dc.c
@@ -52,6 +52,6 @@ void dc_main(int argc, char **argv) {
vm.parse = dc_parse_parse;
vm.expr = dc_parse_expr;
- bc_vm_boot(argc, argv, "DC_LINE_LENGTH", "DC_ENV_ARGS", "DC_EXPR_EXIT");
+ bc_vm_boot(argc, argv, "DC_LINE_LENGTH", "DC_ENV_ARGS");
}
#endif // DC_ENABLED
diff --git a/src/vm.c b/src/vm.c
index 905613563e8d..9818ce4f35f4 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -452,7 +452,7 @@ static void bc_vm_clean(void) {
}
}
-static void bc_vm_process(const char *text, bool is_stdin) {
+static void bc_vm_process(const char *text) {
bc_parse_text(&vm.prs, text);
@@ -464,21 +464,6 @@ static void bc_vm_process(const char *text, bool is_stdin) {
while (BC_PARSE_CAN_PARSE(vm.prs)) vm.parse(&vm.prs);
-#if BC_ENABLED
- if (BC_IS_BC) {
-
- uint16_t *flags = BC_PARSE_TOP_FLAG_PTR(&vm.prs);
-
- if (!is_stdin && vm.prs.flags.len == 1 &&
- *flags == BC_PARSE_FLAG_IF_END)
- {
- bc_parse_noElse(&vm.prs);
- }
-
- if (BC_PARSE_NO_EXEC(&vm.prs)) return;
- }
-#endif // BC_ENABLED
-
bc_program_exec(&vm.prog);
assert(BC_IS_DC || vm.prog.results.len == 0);
@@ -488,6 +473,28 @@ static void bc_vm_process(const char *text, bool is_stdin) {
} while (vm.prs.l.t != BC_LEX_EOF);
}
+#if BC_ENABLED
+static void bc_vm_endif(void) {
+
+ size_t i;
+ bool good;
+
+ if (BC_NO_ERR(!BC_PARSE_NO_EXEC(&vm.prs))) return;
+
+ good = true;
+
+ for (i = 0; good && i < vm.prs.flags.len; ++i) {
+ uint16_t flag = *((uint16_t*) bc_vec_item(&vm.prs.flags, i));
+ good = ((flag & BC_PARSE_FLAG_BRACE) != BC_PARSE_FLAG_BRACE);
+ }
+
+ if (good) {
+ while (BC_PARSE_IF_END(&vm.prs)) bc_vm_process("else {}");
+ }
+ else bc_parse_err(&vm.prs, BC_ERROR_PARSE_BLOCK);
+}
+#endif // BC_ENABLED
+
static void bc_vm_file(const char *file) {
char *data = NULL;
@@ -504,11 +511,10 @@ static void bc_vm_file(const char *file) {
BC_SIG_UNLOCK;
- bc_vm_process(data, false);
+ bc_vm_process(data);
#if BC_ENABLED
- if (BC_IS_BC && BC_ERR(BC_PARSE_NO_EXEC(&vm.prs)))
- bc_parse_err(&vm.prs, BC_ERROR_PARSE_BLOCK);
+ if (BC_IS_BC) bc_vm_endif();
#endif // BC_ENABLED
err:
@@ -589,7 +595,7 @@ restart:
if (vm.history.stdin_has_data) continue;
#endif // BC_ENABLE_HISTORY
- bc_vm_process(buffer.v, true);
+ bc_vm_process(buffer.v);
bc_vec_empty(&buffer);
if (vm.eof) break;
@@ -602,21 +608,7 @@ restart:
else if (BC_ERR(string))
bc_parse_err(&vm.prs, BC_ERROR_PARSE_STRING);
#if BC_ENABLED
- else if (BC_IS_BC && BC_ERR(BC_PARSE_NO_EXEC(&vm.prs))) {
-
- size_t i;
- bool good = true;
-
- for (i = 0; good && i < vm.prs.flags.len; ++i) {
- uint16_t flag = *((uint16_t*) bc_vec_item(&vm.prs.flags, i));
- good = ((flag & BC_PARSE_FLAG_BRACE) != BC_PARSE_FLAG_BRACE);
- }
-
- if (good) {
- while (BC_PARSE_IF_END(&vm.prs)) bc_vm_process("else {}", true);
- }
- else bc_parse_err(&vm.prs, BC_ERROR_PARSE_BLOCK);
- }
+ else if (BC_IS_BC) bc_vm_endif();
#endif // BC_ENABLED
}
@@ -706,7 +698,7 @@ static void bc_vm_gettext(void) {
#endif // BC_ENABLE_NLS
}
-static void bc_vm_exec(const char* env_exp_exit) {
+static void bc_vm_exec(void) {
size_t i;
bool has_file = false;
@@ -743,7 +735,7 @@ static void bc_vm_exec(const char* env_exp_exit) {
more = bc_read_buf(&buf, vm.exprs.v, &len);
bc_vec_pushByte(&buf, '\0');
- bc_vm_process(buf.v, false);
+ bc_vm_process(buf.v);
bc_vec_npop(&buf, buf.len);
@@ -758,7 +750,7 @@ static void bc_vm_exec(const char* env_exp_exit) {
BC_SIG_UNLOCK;
- if (getenv(env_exp_exit) != NULL) return;
+ if (!vm.no_exit_exprs) return;
}
for (i = 0; i < vm.files.len; ++i) {
@@ -784,7 +776,7 @@ err:
}
void bc_vm_boot(int argc, char *argv[], const char *env_len,
- const char* const env_args, const char* env_exp_exit)
+ const char* const env_args)
{
int ttyin, ttyout, ttyerr;
struct sigaction sa;
@@ -863,9 +855,7 @@ void bc_vm_boot(int argc, char *argv[], const char *env_len,
vm.maxes[BC_PROG_GLOBALS_IBASE] = BC_NUM_MAX_IBASE;
#endif // BC_ENABLED
- if (BC_IS_BC && BC_I && !(vm.flags & BC_FLAG_Q)) bc_vm_info(NULL);
-
BC_SIG_UNLOCK;
- bc_vm_exec(env_exp_exit);
+ bc_vm_exec();
}
diff --git a/tests/bc/all.txt b/tests/bc/all.txt
index 069e60942404..b623e8a11b71 100644
--- a/tests/bc/all.txt
+++ b/tests/bc/all.txt
@@ -39,6 +39,8 @@ misc2
misc3
misc4
misc5
+misc6
+misc7
void
rand
lib2
diff --git a/tests/bc/misc6.txt b/tests/bc/misc6.txt
new file mode 120000
index 000000000000..1ddbfa42bea4
--- /dev/null
+++ b/tests/bc/misc6.txt
@@ -0,0 +1 @@
+stdin1.txt \ No newline at end of file
diff --git a/tests/bc/misc6_results.txt b/tests/bc/misc6_results.txt
new file mode 120000
index 000000000000..a0374545ed82
--- /dev/null
+++ b/tests/bc/misc6_results.txt
@@ -0,0 +1 @@
+stdin1_results.txt \ No newline at end of file
diff --git a/tests/bc/misc7.txt b/tests/bc/misc7.txt
new file mode 120000
index 000000000000..17ea58ae3ffd
--- /dev/null
+++ b/tests/bc/misc7.txt
@@ -0,0 +1 @@
+stdin2.txt \ No newline at end of file
diff --git a/tests/bc/misc7_results.txt b/tests/bc/misc7_results.txt
new file mode 120000
index 000000000000..394d3e9d57c1
--- /dev/null
+++ b/tests/bc/misc7_results.txt
@@ -0,0 +1 @@
+stdin2_results.txt \ No newline at end of file
diff --git a/tests/bc/stdin1.txt b/tests/bc/stdin1.txt
new file mode 100644
index 000000000000..3721c265baa2
--- /dev/null
+++ b/tests/bc/stdin1.txt
@@ -0,0 +1,2 @@
+if (1 < 3)
+ if (2 < 3) 1
diff --git a/tests/bc/stdin1_results.txt b/tests/bc/stdin1_results.txt
new file mode 100644
index 000000000000..d00491fd7e5b
--- /dev/null
+++ b/tests/bc/stdin1_results.txt
@@ -0,0 +1 @@
+1
diff --git a/tests/bc/stdin2.txt b/tests/bc/stdin2.txt
new file mode 100644
index 000000000000..f260cfa7dbcf
--- /dev/null
+++ b/tests/bc/stdin2.txt
@@ -0,0 +1 @@
+for (i = 0; i < 3; ++i) if (2 < 3) 1
diff --git a/tests/bc/stdin2_results.txt b/tests/bc/stdin2_results.txt
new file mode 100644
index 000000000000..e8183f05f5db
--- /dev/null
+++ b/tests/bc/stdin2_results.txt
@@ -0,0 +1,3 @@
+1
+1
+1