dc(1): Introduce e command, equivalent to p, but writes to stderr
Obtained from: OpenBSD MFC after: 2 weeks
This commit is contained in:
parent
df6186309a
commit
29dfec5294
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=314409
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user