- free(buf);
-}
-
-
-/* FIXME: put in utility file for front-ends. */
-static size_t
-arg_width(const struct mdoc_argv *arg, int pos)
-{
- int i, len;
- const char *p;
-
- assert(pos < (int)arg->sz && pos >= 0);
- assert(arg->value[pos]);
-
- p = arg->value[pos];
-
- if (0 == (len = (int)strlen(p)))
- return(0);
-
- for (i = 0; i < len - 1; i++)
- if ( ! isdigit((u_char)p[i]))
- break;
-
- if (i == len - 1)
- if ('n' == p[len - 1] || 'm' == p[len - 1])
- return((size_t)atoi(p) + 2);
-
- return((size_t)len + 2);
-}
-
-
-/* FIXME: put in utility file for front-ends. */
-static int
-arg_listtype(const struct mdoc_node *n)
-{
- int i, len;
-
- assert(MDOC_BLOCK == n->type);
-
- len = (int)(n->args ? n->args->argc : 0);
-
- for (i = 0; i < len; i++)
- switch (n->args->argv[i].arg) {
- case (MDOC_Bullet):
- /* FALLTHROUGH */
- case (MDOC_Dash):
- /* FALLTHROUGH */
- case (MDOC_Enum):
- /* FALLTHROUGH */
- case (MDOC_Hyphen):
- /* FALLTHROUGH */
- case (MDOC_Tag):
- /* FALLTHROUGH */
- case (MDOC_Inset):
- /* FALLTHROUGH */
- case (MDOC_Diag):
- /* FALLTHROUGH */
- case (MDOC_Item):
- /* FALLTHROUGH */
- case (MDOC_Column):
- /* FALLTHROUGH */
- case (MDOC_Hang):
- /* FALLTHROUGH */
- case (MDOC_Ohang):
- return(n->args->argv[i].arg);
- default:
- break;
- }
-
- return(-1);
-}
-
-
-/* FIXME: put in utility file for front-ends. */
-static size_t
-arg_offset(const struct mdoc_argv *arg)
-{
- int len, i;
- const char *p;
-
- assert(*arg->value);
- p = *arg->value;
-
- if (0 == strcmp(p, "left"))
- return(0);
- if (0 == strcmp(p, "indent"))
- return(INDENT + 1);
- if (0 == strcmp(p, "indent-two"))
- return((INDENT + 1) * 2);
-
- if (0 == (len = (int)strlen(p)))
- return(0);
-
- for (i = 0; i < len - 1; i++)
- if ( ! isdigit((u_char)p[i]))
- break;
-
- if (i == len - 1)
- if ('n' == p[len - 1] || 'm' == p[len - 1])
- return((size_t)atoi(p));
-
- return((size_t)len);
-}
-
-
-static int
-arg_hasattr(int arg, const struct mdoc_node *n)
-{
-
- return(-1 != arg_getattr(arg, n));
-}
-
-
-static int
-arg_getattr(int v, const struct mdoc_node *n)
-{
- int val;
-
- return(arg_getattrs(&v, &val, 1, n) ? val : -1);