-
-static size_t
-a2height(const struct mdoc_node *n)
-{
- struct roffsu su;
-
- assert(MDOC_TEXT == n->type);
- assert(n->string);
- if ( ! a2roffsu(n->string, &su, SCALE_VS))
- SCALE_VS_INIT(&su, strlen(n->string));
-
- return(term_vspan(&su));
-}
-
-
-static size_t
-a2width(const struct mdoc_argv *arg, int pos)
-{
- struct roffsu su;
-
- assert(arg->value[pos]);
- if ( ! a2roffsu(arg->value[pos], &su, SCALE_MAX))
- SCALE_HS_INIT(&su, strlen(arg->value[pos]));
-
- return(term_hspan(&su));
-}
-
-
-static size_t
-a2offs(const char *v)
-{
- struct roffsu su;
-
- if ('\0' == *v)
- return(0);
- else if (0 == strcmp(v, "left"))
- return(0);
- else if (0 == strcmp(v, "indent"))
- return(INDENT + 1);
- else if (0 == strcmp(v, "indent-two"))
- return((INDENT + 1) * 2);
- else if ( ! a2roffsu(v, &su, SCALE_MAX))
- SCALE_HS_INIT(&su, strlen(v));
-
- return(term_hspan(&su));
-}
-
-
-/*
- * Return 1 if an argument has a particular argument value or 0 if it
- * does not. See arg_getattr().
- */
-static int
-arg_hasattr(int arg, const struct mdoc_node *n)
-{
-
- return(-1 != arg_getattr(arg, n));
-}
-
-
-/*
- * Get the index of an argument in a node's argument list or -1 if it
- * does not exist. See arg_getattrs().
- */
-static int
-arg_getattr(int v, const struct mdoc_node *n)
-{
- int val;
-
- return(arg_getattrs(&v, &val, 1, n) ? val : -1);
-}
-
-
-/*
- * Walk through the argument list for a node and fill an array "vals"
- * with the positions of the argument structures listed in "keys".
- * Return the number of elements that were written into "vals", which
- * can be zero.
- */