dc(1): Introduce e command, equivalent to p, but writes to stderr

Obtained from:	OpenBSD
MFC after:	2 weeks
This commit is contained in:
Pedro F. Giffuni 2017-02-28 20:50:49 +00:00
parent df6186309a
commit 29dfec5294
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=314409
2 changed files with 19 additions and 1 deletions

View File

@ -69,6 +69,7 @@ static __inline struct number *pop_number(void);
static __inline char *pop_string(void);
static __inline void clear_stack(void);
static __inline void print_tos(void);
static void print_err(void);
static void pop_print(void);
static void pop_printn(void);
static __inline void print_stack(void);
@ -198,6 +199,7 @@ static const struct jump_entry jump_table_data[] = {
{ 'a', to_ascii },
{ 'c', clear_stack },
{ 'd', dup },
{ 'e', print_err },
{ 'f', print_stack },
{ 'i', set_ibase },
{ 'k', set_scale },
@ -507,6 +509,18 @@ print_tos(void)
warnx("stack empty");
}
static void
print_err(void)
{
struct value *value = tos();
if (value != NULL) {
print_value(stderr, value, "", bmachine.obase);
(void)putc('\n', stderr);
}
else
warnx("stack empty");
}
static void
pop_print(void)
{

View File

@ -35,7 +35,7 @@
.\"
.\" @(#)dc.1 8.1 (Berkeley) 6/6/93
.\"
.Dd April 16, 2014
.Dd February 27, 2017
.Dt DC 1
.Os
.Sh NAME
@ -196,6 +196,10 @@ operator is a non-portable extension.
All values on the stack are popped.
.It Ic d
The top value on the stack is duplicated.
.It Ic e
Equivalent to
.Ic p ,
except that the output is written to the standard error stream.
.It Ic f
All values on the stack are printed, separated by newlines.
.It Ic G