version 1.26, 2009/10/07 15:06:03 |
version 1.32, 2009/10/18 19:03:37 |
|
|
#include "out.h" |
#include "out.h" |
#include "html.h" |
#include "html.h" |
#include "mdoc.h" |
#include "mdoc.h" |
|
#include "main.h" |
|
|
#define INDENT 5 |
#define INDENT 5 |
#define HALFINDENT 3 |
#define HALFINDENT 3 |
Line 49 static void print_mdoc_nodelist(MDOC_ARGS); |
|
Line 50 static void print_mdoc_nodelist(MDOC_ARGS); |
|
|
|
static void a2width(const char *, struct roffsu *); |
static void a2width(const char *, struct roffsu *); |
static void a2offs(const char *, struct roffsu *); |
static void a2offs(const char *, struct roffsu *); |
|
|
static int a2list(const struct mdoc_node *); |
static int a2list(const struct mdoc_node *); |
|
|
static void mdoc_root_post(MDOC_ARGS); |
static void mdoc_root_post(MDOC_ARGS); |
static int mdoc_root_pre(MDOC_ARGS); |
static int mdoc_root_pre(MDOC_ARGS); |
static int mdoc_it_block_pre(MDOC_ARGS, int, |
|
struct roffsu *, int, |
|
struct roffsu *); |
|
static int mdoc_it_head_pre(MDOC_ARGS, int, |
|
struct roffsu *); |
|
static int mdoc_it_body_pre(MDOC_ARGS, int); |
|
|
|
static void mdoc__x_post(MDOC_ARGS); |
static void mdoc__x_post(MDOC_ARGS); |
static int mdoc__x_pre(MDOC_ARGS); |
static int mdoc__x_pre(MDOC_ARGS); |
Line 96 static void mdoc_fo_post(MDOC_ARGS); |
|
Line 92 static void mdoc_fo_post(MDOC_ARGS); |
|
static int mdoc_fo_pre(MDOC_ARGS); |
static int mdoc_fo_pre(MDOC_ARGS); |
static int mdoc_ic_pre(MDOC_ARGS); |
static int mdoc_ic_pre(MDOC_ARGS); |
static int mdoc_in_pre(MDOC_ARGS); |
static int mdoc_in_pre(MDOC_ARGS); |
|
static int mdoc_it_block_pre(MDOC_ARGS, int, int, |
|
struct roffsu *, struct roffsu *); |
|
static int mdoc_it_head_pre(MDOC_ARGS, int, |
|
struct roffsu *); |
|
static int mdoc_it_body_pre(MDOC_ARGS, int); |
static int mdoc_it_pre(MDOC_ARGS); |
static int mdoc_it_pre(MDOC_ARGS); |
static int mdoc_lb_pre(MDOC_ARGS); |
static int mdoc_lb_pre(MDOC_ARGS); |
static int mdoc_li_pre(MDOC_ARGS); |
static int mdoc_li_pre(MDOC_ARGS); |
|
|
a2width(const char *p, struct roffsu *su) |
a2width(const char *p, struct roffsu *su) |
{ |
{ |
|
|
if (a2roffsu(p, su)) |
if ( ! a2roffsu(p, su, SCALE_MAX)) { |
return; |
su->unit = SCALE_EM; |
su->unit = SCALE_EM; |
su->scale = (int)strlen(p); |
su->scale = (int)strlen(p); |
} |
} |
} |
|
|
|
|
|
|
a2offs(const char *p, struct roffsu *su) |
a2offs(const char *p, struct roffsu *su) |
{ |
{ |
|
|
|
/* FIXME: "right"? */ |
|
|
if (0 == strcmp(p, "left")) |
if (0 == strcmp(p, "left")) |
SCALE_HS_INIT(su, 0); |
SCALE_HS_INIT(su, 0); |
else if (0 == strcmp(p, "indent")) |
else if (0 == strcmp(p, "indent")) |
SCALE_HS_INIT(su, INDENT); |
SCALE_HS_INIT(su, INDENT); |
else if (0 == strcmp(p, "indent-two")) |
else if (0 == strcmp(p, "indent-two")) |
SCALE_HS_INIT(su, INDENT * 2); |
SCALE_HS_INIT(su, INDENT * 2); |
else if ( ! a2roffsu(p, su)) { |
else if ( ! a2roffsu(p, su, SCALE_MAX)) { |
su->unit = SCALE_EM; |
su->unit = SCALE_EM; |
su->scale = (int)strlen(p); |
su->scale = (int)strlen(p); |
} |
} |
Line 855 mdoc_bx_pre(MDOC_ARGS) |
|
Line 858 mdoc_bx_pre(MDOC_ARGS) |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static int |
static int |
mdoc_it_block_pre(MDOC_ARGS, int type, struct roffsu *offs, |
mdoc_it_block_pre(MDOC_ARGS, int type, int comp, |
int comp, struct roffsu *width) |
struct roffsu *offs, struct roffsu *width) |
{ |
{ |
struct htmlpair tag; |
struct htmlpair tag; |
const struct mdoc_node *nn; |
const struct mdoc_node *nn; |
Line 1081 mdoc_it_pre(MDOC_ARGS) |
|
Line 1084 mdoc_it_pre(MDOC_ARGS) |
|
if (MDOC_BODY == n->type) |
if (MDOC_BODY == n->type) |
return(mdoc_it_body_pre(m, n, h, type)); |
return(mdoc_it_body_pre(m, n, h, type)); |
if (MDOC_BLOCK == n->type) |
if (MDOC_BLOCK == n->type) |
return(mdoc_it_block_pre(m, n, h, type, |
return(mdoc_it_block_pre(m, n, h, type, comp, |
&offs, comp, &width)); |
&offs, &width)); |
|
|
/* Override column widths. */ |
/* Override column widths. */ |
|
|
Line 1356 mdoc_bd_pre(MDOC_ARGS) |
|
Line 1359 mdoc_bd_pre(MDOC_ARGS) |
|
case (MDOC_Compact): |
case (MDOC_Compact): |
comp = 1; |
comp = 1; |
break; |
break; |
|
case (MDOC_Centred): |
|
/* FALLTHROUGH */ |
case (MDOC_Ragged): |
case (MDOC_Ragged): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case (MDOC_Filled): |
case (MDOC_Filled): |
Line 1365 mdoc_bd_pre(MDOC_ARGS) |
|
Line 1370 mdoc_bd_pre(MDOC_ARGS) |
|
case (MDOC_Literal): |
case (MDOC_Literal): |
type = bl->args->argv[i].arg; |
type = bl->args->argv[i].arg; |
break; |
break; |
|
default: |
|
break; |
} |
} |
|
|
|
/* FIXME: -centered, etc. formatting. */ |
|
|
if (MDOC_BLOCK == n->type) { |
if (MDOC_BLOCK == n->type) { |
bufcat_su(h, "margin-left", &su); |
bufcat_su(h, "margin-left", &su); |
for (nn = n; nn && ! comp; nn = nn->parent) { |
for (nn = n; nn && ! comp; nn = nn->parent) { |
Line 1455 mdoc_cd_pre(MDOC_ARGS) |
|
Line 1464 mdoc_cd_pre(MDOC_ARGS) |
|
{ |
{ |
struct htmlpair tag; |
struct htmlpair tag; |
|
|
|
print_otag(h, TAG_DIV, 0, NULL); |
PAIR_CLASS_INIT(&tag, "config"); |
PAIR_CLASS_INIT(&tag, "config"); |
print_otag(h, TAG_SPAN, 1, &tag); |
print_otag(h, TAG_SPAN, 1, &tag); |
return(1); |
return(1); |