version 1.211, 2014/04/20 19:40:13 |
version 1.212, 2014/04/20 20:48:53 |
Line 1044 post_bf(POST_ARGS) |
|
Line 1044 post_bf(POST_ARGS) |
|
static int |
static int |
post_lb(POST_ARGS) |
post_lb(POST_ARGS) |
{ |
{ |
const char *p; |
struct mdoc_node *n; |
char *buf; |
const char *stdlibname; |
size_t sz; |
char *libname; |
|
|
check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 1); |
check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 1); |
|
|
assert(mdoc->last->child); |
n = mdoc->last->child; |
assert(MDOC_TEXT == mdoc->last->child->type); |
|
|
|
p = mdoc_a2lib(mdoc->last->child->string); |
assert(n); |
|
assert(MDOC_TEXT == n->type); |
|
|
/* If lookup ok, replace with table value. */ |
if (NULL == (stdlibname = mdoc_a2lib(n->string))) |
|
mandoc_asprintf(&libname, |
|
"library \\(lq%s\\(rq", n->string); |
|
else |
|
libname = mandoc_strdup(stdlibname); |
|
|
if (p) { |
free(n->string); |
free(mdoc->last->child->string); |
n->string = libname; |
mdoc->last->child->string = mandoc_strdup(p); |
|
return(1); |
|
} |
|
|
|
/* 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); |
return(1); |
} |
} |
|
|