From fa097d3df280b2adb39ec3b99fd44d324aa2fbb1 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Fri, 22 Jul 2011 14:59:02 +0000 Subject: Check for and throw away `gfont' eqn macros. --- eqn.7 | 14 +++++++++++--- eqn.c | 19 +++++++++++++++++-- 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 .\" @@ -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 * @@ -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] = { @@ -764,6 +767,18 @@ eqn_do_define(struct eqn_node *ep) return(1); } +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) { -- cgit v1.2.3