summaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-03-05 13:12:12 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-03-05 13:12:12 +0000
commitc1fd7f502ac50e13a6185e829bdbd03b7d0a931c (patch)
treefd39f0c38c00a28528f560159ac5f5d2f9542128 /action.c
parent6936c4e5a0bd4bddcfd7c9d08d801aba0415dbad (diff)
downloadmandoc-c1fd7f502ac50e13a6185e829bdbd03b7d0a931c.tar.gz
Cleaned up ctype functions (netbsd).
Fixed .Ex/.Rv -std usage. Made Ar provide default value.
Diffstat (limited to 'action.c')
-rw-r--r--action.c36
1 files changed, 28 insertions, 8 deletions
diff --git a/action.c b/action.c
index 06b93509..87f641b0 100644
--- a/action.c
+++ b/action.c
@@ -36,15 +36,16 @@ struct actions {
/* Per-macro action routines. */
+static int post_ar(struct mdoc *);
static int post_bl(struct mdoc *);
static int post_bl_width(struct mdoc *);
static int post_bl_tagwidth(struct mdoc *);
static int post_dd(struct mdoc *);
static int post_dt(struct mdoc *);
-static int post_ex(struct mdoc *);
static int post_nm(struct mdoc *);
static int post_os(struct mdoc *);
static int post_sh(struct mdoc *);
+static int post_ex(struct mdoc *);
static int post_prologue(struct mdoc *);
@@ -67,7 +68,7 @@ const struct actions mdoc_actions[MDOC_MAX] = {
{ NULL }, /* It */
{ NULL }, /* Ad */
{ NULL }, /* An */
- { NULL }, /* Ar */
+ { post_ar }, /* Ar */
{ NULL }, /* Cd */
{ NULL }, /* Cm */
{ NULL }, /* Dv */
@@ -171,14 +172,10 @@ post_ex(struct mdoc *mdoc)
if (0 == mdoc->last->data.elem.argc)
return(1);
-
- assert(1 == mdoc->last->data.elem.argc);
- if (1 == mdoc->last->data.elem.argv[0].sz)
+ if (mdoc->last->data.elem.argv[0].sz)
return(1);
- assert(0 == mdoc->last->data.elem.argv[0].sz);
- if (NULL == mdoc->meta.name)
- return(mdoc_err(mdoc, "default name not yet set"));
+ assert(mdoc->meta.name);
mdoc_msg(mdoc, "writing %s argument: %s",
mdoc_argnames[MDOC_Std], mdoc->meta.name);
@@ -484,6 +481,29 @@ post_bl(struct mdoc *mdoc)
static int
+post_ar(struct mdoc *mdoc)
+{
+ struct mdoc_node *n;
+
+ if (mdoc->last->child)
+ return(1);
+
+ n = mdoc->last;
+
+ mdoc->next = MDOC_NEXT_CHILD;
+ mdoc_word_alloc(mdoc, mdoc->last->line,
+ mdoc->last->pos, "file");
+ mdoc->next = MDOC_NEXT_SIBLING;
+ mdoc_word_alloc(mdoc, mdoc->last->line,
+ mdoc->last->pos, "...");
+
+ mdoc->last = n;
+ mdoc->next = MDOC_NEXT_SIBLING;
+ return(1);
+}
+
+
+static int
post_dd(struct mdoc *mdoc)
{
char buf[64];