version 1.2, 2008/11/30 23:05:57 |
version 1.5, 2008/12/01 16:01:28 |
|
|
#include "libmdocml.h" |
#include "libmdocml.h" |
#include "private.h" |
#include "private.h" |
|
|
#define INDENT 4 |
#define MAXINDENT 8 |
#define COLUMNS 60 |
#define COLUMNS 60 |
|
|
#ifdef __linux__ /* FIXME */ |
#ifdef __linux__ /* FIXME */ |
|
|
MD_BLKOUT, |
MD_BLKOUT, |
MD_IN, |
MD_IN, |
MD_OUT, |
MD_OUT, |
MD_TEXT |
MD_TEXT, |
|
MD_OVERRIDE |
}; |
}; |
|
|
struct md_xml { |
struct md_xml { |
Line 140 mbuf_indent(struct md_xml *p) |
|
Line 141 mbuf_indent(struct md_xml *p) |
|
assert(p->pos == 0); |
assert(p->pos == 0); |
|
|
/* LINTED */ |
/* LINTED */ |
for (i = 0; i < MIN(p->indent, INDENT); i++) |
for (i = 0; i < MIN(p->indent, MAXINDENT); i++) |
if ( ! md_buf_putstring(p->mbuf, " ")) |
if ( ! md_buf_putstring(p->mbuf, " ")) |
return(0); |
return(0); |
|
|
p->pos += i * INDENT; |
p->pos += i * 4; |
return(1); |
return(1); |
} |
} |
|
|
Line 194 mbuf_data(struct md_xml *p, int space, char *buf) |
|
Line 195 mbuf_data(struct md_xml *p, int space, char *buf) |
|
return(0); |
return(0); |
if ( ! mbuf_nputstring(p, bufp, sz)) |
if ( ! mbuf_nputstring(p, bufp, sz)) |
return(0); |
return(0); |
if (p->indent * INDENT + sz >= COLUMNS) { |
if (p->indent * MAXINDENT + sz >= COLUMNS) { |
if ( ! mbuf_newline(p)) |
if ( ! mbuf_newline(p)) |
return(0); |
return(0); |
continue; |
continue; |
Line 329 rofftail(void *arg) |
|
Line 330 rofftail(void *arg) |
|
static int |
static int |
roffspecial(void *arg, int tok) |
roffspecial(void *arg, int tok) |
{ |
{ |
|
struct md_xml *p; |
|
|
/* FIXME */ |
assert(arg); |
|
p = (struct md_xml *)arg; |
|
|
|
switch (tok) { |
|
case (ROFF_Ns): |
|
p->last = MD_OVERRIDE; |
|
break; |
|
default: |
|
break; |
|
} |
|
|
return(1); |
return(1); |
} |
} |
|
|
Line 481 roffout(void *arg, int tok) |
|
Line 493 roffout(void *arg, int tok) |
|
assert(arg); |
assert(arg); |
p = (struct md_xml *)arg; |
p = (struct md_xml *)arg; |
|
|
|
/* Continue with a regular out token. */ |
|
|
if (0 == p->pos && ! mbuf_indent(p)) |
if (0 == p->pos && ! mbuf_indent(p)) |
return(0); |
return(0); |
|
|
Line 543 roffdata(void *arg, int space, char *buf) |
|
Line 557 roffdata(void *arg, int space, char *buf) |
|
p->last = MD_TEXT; |
p->last = MD_TEXT; |
return(1); |
return(1); |
} |
} |
|
|