version 1.24, 2009/02/26 14:56:27 |
version 1.26, 2009/02/27 08:20:15 |
|
|
* PERFORMANCE OF THIS SOFTWARE. |
* PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
#include <assert.h> |
#include <assert.h> |
|
#include <ctype.h> |
#include <err.h> |
#include <err.h> |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
|
|
#include "term.h" |
#include "term.h" |
|
|
#define INDENT 4 |
#define INDENT 6 |
|
|
/* |
/* |
* Performs actions on nodes of the abstract syntax tree. Both pre- and |
* Performs actions on nodes of the abstract syntax tree. Both pre- and |
Line 276 const struct termact *termacts = __termacts; |
|
Line 277 const struct termact *termacts = __termacts; |
|
static size_t |
static size_t |
arg_width(const struct mdoc_arg *arg) |
arg_width(const struct mdoc_arg *arg) |
{ |
{ |
|
size_t len, i, v; |
|
|
/* TODO */ |
|
assert(*arg->value); |
assert(*arg->value); |
|
if (0 == strcmp(*arg->value, "indent")) |
|
return(INDENT); |
|
if (0 == strcmp(*arg->value, "indent-two")) |
|
return(INDENT * 2); |
|
|
|
len = strlen(*arg->value); |
|
assert(len > 0); |
|
|
|
for (i = 0; i < len - 1; i++) |
|
if ( ! isdigit((int)(*arg->value)[i])) |
|
break; |
|
|
|
if (i == len - 1) { |
|
if ('n' == (*arg->value)[len - 1]) { |
|
v = (size_t)atoi(*arg->value); |
|
return(v); |
|
} |
|
|
|
} |
return(strlen(*arg->value)); |
return(strlen(*arg->value)); |
} |
} |
|
|
Line 293 arg_offset(const struct mdoc_arg *arg) |
|
Line 313 arg_offset(const struct mdoc_arg *arg) |
|
return(INDENT); |
return(INDENT); |
if (0 == strcmp(*arg->value, "indent-two")) |
if (0 == strcmp(*arg->value, "indent-two")) |
return(INDENT * 2); |
return(INDENT * 2); |
|
|
return(strlen(*arg->value)); |
return(strlen(*arg->value)); |
} |
} |
|
|
Line 1310 termp_bq_pre(DECL_ARGS) |
|
Line 1329 termp_bq_pre(DECL_ARGS) |
|
|
|
if (MDOC_BODY != node->type) |
if (MDOC_BODY != node->type) |
return(1); |
return(1); |
word(p, "["); |
word(p, "\\["); |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
return(1); |
return(1); |
} |
} |
Line 1334 termp_pq_pre(DECL_ARGS) |
|
Line 1353 termp_pq_pre(DECL_ARGS) |
|
|
|
if (MDOC_BODY != node->type) |
if (MDOC_BODY != node->type) |
return(1); |
return(1); |
word(p, "("); |
word(p, "\\&("); |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
return(1); |
return(1); |
} |
} |