diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-11-29 14:56:43 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-11-29 14:56:43 +0000 |
commit | 5c8d5a8cd342f90796637f556e972777198be148 (patch) | |
tree | f9a8267da30ac9340319102a429d322b69c9b0e2 | |
parent | 81280424219ca468fec2fafeedd0eaaf6938c2fc (diff) | |
download | mandoc-5c8d5a8cd342f90796637f556e972777198be148.tar.gz |
Move `Lb' handling from mdoc_action.c into mdoc_validate.c.
-rw-r--r-- | mdoc_action.c | 36 | ||||
-rw-r--r-- | mdoc_validate.c | 29 |
2 files changed, 26 insertions, 39 deletions
diff --git a/mdoc_action.c b/mdoc_action.c index 9ae5a9e9..b2e69fc0 100644 --- a/mdoc_action.c +++ b/mdoc_action.c @@ -58,7 +58,6 @@ static int post_bl_width(POST_ARGS); static int post_dd(POST_ARGS); static int post_display(POST_ARGS); static int post_dt(POST_ARGS); -static int post_lb(POST_ARGS); static int post_nm(POST_ARGS); static int post_os(POST_ARGS); static int post_pa(POST_ARGS); @@ -176,7 +175,7 @@ static const struct actions mdoc_actions[MDOC_MAX] = { { NULL, NULL }, /* Hf */ { NULL, NULL }, /* Fr */ { NULL, NULL }, /* Ud */ - { NULL, post_lb }, /* Lb */ + { NULL, NULL }, /* Lb */ { NULL, NULL }, /* Lp */ { NULL, NULL }, /* Lk */ { NULL, NULL }, /* Mt */ @@ -331,39 +330,6 @@ post_nm(POST_ARGS) return(1); } - -/* - * Look up the value of `Lb' for matching predefined strings. If it has - * one, then substitute the current value for the formatted value. Note - * that the lookup may fail (we can provide arbitrary strings). - */ -/* ARGSUSED */ -static int -post_lb(POST_ARGS) -{ - const char *p; - char *buf; - size_t sz; - - assert(MDOC_TEXT == n->child->type); - p = mdoc_a2lib(n->child->string); - - if (p) { - free(n->child->string); - n->child->string = mandoc_strdup(p); - return(1); - } - - sz = strlen(n->child->string) + - 2 + strlen("\\(lqlibrary\\(rq"); - buf = mandoc_malloc(sz); - snprintf(buf, sz, "library \\(lq%s\\(rq", n->child->string); - free(n->child->string); - n->child->string = buf; - return(1); -} - - /* * Substitute the value of `St' for the corresponding formatted string. * We're guaranteed that this exists (it's been verified during the diff --git a/mdoc_validate.c b/mdoc_validate.c index 21db9889..0668521d 100644 --- a/mdoc_validate.c +++ b/mdoc_validate.c @@ -1077,16 +1077,37 @@ post_bf(POST_ARGS) return(1); } - static int post_lb(POST_ARGS) { + const char *p; + char *buf; + size_t sz; + + assert(mdoc->last->child); + assert(MDOC_TEXT == mdoc->last->child->type); + + p = mdoc_a2lib(mdoc->last->child->string); - if (mdoc_a2lib(mdoc->last->child->string)) + /* If lookup ok, replace with table value. */ + + if (p) { + free(mdoc->last->child->string); + mdoc->last->child->string = mandoc_strdup(p); return(1); - return(mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_BADLIB)); -} + } + /* If not, use "library ``xxxx''. */ + + sz = strlen(mdoc->last->child->string) + + 2 + strlen("\\(lqlibrary\\(rq"); + buf = mandoc_malloc(sz); + snprintf(buf, sz, "library \\(lq%s\\(rq", + mdoc->last->child->string); + free(mdoc->last->child->string); + mdoc->last->child->string = buf; + return(1); +} static int post_eoln(POST_ARGS) |