diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-03-05 13:12:12 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-03-05 13:12:12 +0000 |
commit | c1fd7f502ac50e13a6185e829bdbd03b7d0a931c (patch) | |
tree | fd39f0c38c00a28528f560159ac5f5d2f9542128 /action.c | |
parent | 6936c4e5a0bd4bddcfd7c9d08d801aba0415dbad (diff) | |
download | mandoc-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.c | 36 |
1 files changed, 28 insertions, 8 deletions
@@ -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]; |