aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--mlg.c24
-rw-r--r--roff.c14
-rw-r--r--roff.h8
3 files changed, 38 insertions, 8 deletions
diff --git a/mlg.c b/mlg.c
index 9d101aed..984a3f80 100644
--- a/mlg.c
+++ b/mlg.c
@@ -1,4 +1,4 @@
-/* $Id: mlg.c,v 1.13 2008/12/06 13:18:44 kristaps Exp $ */
+/* $Id: mlg.c,v 1.14 2008/12/06 16:50:18 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -426,6 +426,17 @@ mlg_roffspecial(void *arg, int tok, const char *start, char **more)
p = (struct md_mlg *)arg;
switch (tok) {
+ case (ROFF_Bt):
+ assert(NULL == *more);
+ if ( ! mlg_begintag(p, MD_NS_INLINE, tok, NULL, NULL))
+ return(0);
+ if ( ! ml_puts(p->mbuf, "is currently in beta "
+ "test.", &p->pos))
+ return(0);
+ if ( ! mlg_endtag(p, MD_NS_INLINE, tok))
+ return(0);
+ break;
+
case (ROFF_Xr):
if ( ! *more) {
mlg_err(p, start, start, "missing argument");
@@ -495,6 +506,17 @@ mlg_roffspecial(void *arg, int tok, const char *start, char **more)
return(0);
break;
+ case (ROFF_Ud):
+ assert(NULL == *more);
+ if ( ! mlg_begintag(p, MD_NS_INLINE, tok, NULL, NULL))
+ return(0);
+ if ( ! ml_puts(p->mbuf, "currently under "
+ "development.", &p->pos))
+ return(0);
+ if ( ! mlg_endtag(p, MD_NS_INLINE, tok))
+ return(0);
+ break;
+
default:
mlg_err(p, start, start, "`%s' not yet supported",
toknames[tok]);
diff --git a/roff.c b/roff.c
index db17d769..26c9ef4d 100644
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/* $Id: roff.c,v 1.44 2008/12/06 13:18:44 kristaps Exp $ */
+/* $Id: roff.c,v 1.45 2008/12/06 16:50:18 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -660,6 +660,16 @@ roffspecial(struct rofftree *tree, int tok,
return(0);
}
break;
+
+ case (ROFF_Ud):
+ /* FALLTHROUGH */
+ case (ROFF_Bt):
+ if (0 != sz) {
+ roff_err(tree, start, "`%s' expects no args",
+ toknames[tok]);
+ return(0);
+ }
+ break;
default:
break;
}
@@ -1170,8 +1180,6 @@ roff_layout(ROFFCALL_ARGS)
static int
roff_ordered(ROFFCALL_ARGS)
{
- /* FIXME: the tail-switch statement is in two different places:
- * consolidate. */
int i, first, c, argcp[ROFF_MAXLINEARG];
char *ordp[ROFF_MAXLINEARG], *p,
*argvp[ROFF_MAXLINEARG];
diff --git a/roff.h b/roff.h
index af0a91dd..c13cd037 100644
--- a/roff.h
+++ b/roff.h
@@ -1,4 +1,4 @@
-/* $Id: roff.h,v 1.2 2008/12/06 13:18:44 kristaps Exp $ */
+/* $Id: roff.h,v 1.3 2008/12/06 16:50:18 kristaps Exp $ */
/*
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -199,10 +199,10 @@ static const struct rofftok tokens[ROFF_MAX] = {
{ roff_noop, NULL, roffparent_Oc, NULL, ROFF_Oo, ROFF_LAYOUT, 0 }, /* Oc */
{ roff_layout, roffarg_Bk, NULL, NULL, 0, ROFF_LAYOUT, 0 }, /* Bk */
{ roff_noop, NULL, NULL, NULL, ROFF_Bk, ROFF_LAYOUT, 0 }, /* Ek */
- { NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Bt */
+/*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Bt */
{ NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Hf */
- { roff_depr, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Fr */
- { NULL, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ud */
+/*Ok*/ { roff_depr, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Fr */
+/*Ok*/ {roff_ordered, NULL, NULL, NULL, 0, ROFF_TEXT, 0 }, /* Ud */
};
#define ROFF_VALUE (1 << 0)