aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--eqn.714
-rw-r--r--eqn.c19
2 files changed, 28 insertions, 5 deletions
diff --git a/eqn.7 b/eqn.7
index 6770594d..595d040d 100644
--- a/eqn.7
+++ b/eqn.7
@@ -1,4 +1,4 @@
-.\" $Id: eqn.7,v 1.17 2011/07/22 14:55:07 kristaps Exp $
+.\" $Id: eqn.7,v 1.18 2011/07/22 14:59:02 kristaps Exp $
.\"
.\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
@@ -66,6 +66,7 @@ eqn : box | eqn box
box : text
| "{" eqn "}"
| "define" text text
+ | "gfont" text
| "gsize" text
| "set" text text
| "undef" text
@@ -142,18 +143,25 @@ foo bar 'baz'
.Ed
.Pp
Self-referencing definitions will raise an error.
+.It Cm gfont
+Set the default font of subsequent output.
+Its syntax is as follows:
+.Pp
+.D1 gfont Ar font
+.Pp
+In mandoc, this value is discarded.
.It Cm gsize
Set the default size of subsequent output.
Its syntax is as follows:
.Pp
-.D1 define Ar size
+.D1 gsize Ar size
.Pp
The
.Ar size
value should be an integer.
.It Cm set
Set an equation mode.
-Both arguments are thrown away.
+In mandoc, both arguments are thrown away.
Its syntax is as follows:
.Pp
.D1 set Ar key val
diff --git a/eqn.c b/eqn.c
index 8c178293..9fa4602a 100644
--- a/eqn.c
+++ b/eqn.c
@@ -1,4 +1,4 @@
-/* $Id: eqn.c,v 1.29 2011/07/22 14:55:07 kristaps Exp $ */
+/* $Id: eqn.c,v 1.30 2011/07/22 14:59:02 kristaps Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -126,6 +126,7 @@ enum eqnpartt {
EQN_DEFINE = 0,
EQN_SET,
EQN_UNDEF,
+ EQN_GFONT,
EQN_GSIZE,
EQN__MAX
};
@@ -136,6 +137,7 @@ static struct eqn_box *eqn_box_alloc(struct eqn_node *,
static void eqn_box_free(struct eqn_box *);
static struct eqn_def *eqn_def_find(struct eqn_node *,
const char *, size_t);
+static int eqn_do_gfont(struct eqn_node *);
static int eqn_do_gsize(struct eqn_node *);
static int eqn_do_define(struct eqn_node *);
static int eqn_do_set(struct eqn_node *);
@@ -152,7 +154,8 @@ static const struct eqnpart eqnparts[EQN__MAX] = {
{ { "define", 6 }, eqn_do_define }, /* EQN_DEFINE */
{ { "set", 3 }, eqn_do_set }, /* EQN_SET */
{ { "undef", 5 }, eqn_do_undef }, /* EQN_UNDEF */
- { { "gsize", 5 }, eqn_do_gsize }, /* EQN_UNDEF */
+ { { "gfont", 5 }, eqn_do_gfont }, /* EQN_GFONT */
+ { { "gsize", 5 }, eqn_do_gsize }, /* EQN_GSIZE */
};
static const struct eqnstr eqnmarks[EQNMARK__MAX] = {
@@ -765,6 +768,18 @@ eqn_do_define(struct eqn_node *ep)
}
static int
+eqn_do_gfont(struct eqn_node *ep)
+{
+ const char *start;
+
+ if (NULL == (start = eqn_nextrawtok(ep, NULL))) {
+ EQN_MSG(MANDOCERR_EQNEOF, ep);
+ return(0);
+ }
+ return(1);
+}
+
+static int
eqn_do_gsize(struct eqn_node *ep)
{
const char *start;