version 1.56, 2015/02/20 13:33:52 |
version 1.59, 2015/02/23 15:12:06 |
|
|
char *outbuf; /* text buffered for output */ |
char *outbuf; /* text buffered for output */ |
size_t outbufsz; /* allocated size of outbuf */ |
size_t outbufsz; /* allocated size of outbuf */ |
size_t outbuflen; /* current length of outbuf */ |
size_t outbuflen; /* current length of outbuf */ |
|
size_t outlnlen; /* chars so far on this output line */ |
}; |
}; |
|
|
enum fmt { |
enum fmt { |
Line 208 outbuf_flush(struct state *st) |
|
Line 209 outbuf_flush(struct state *st) |
|
if (0 == st->outbuflen) |
if (0 == st->outbuflen) |
return; |
return; |
|
|
|
st->outlnlen += st->outbuflen; |
|
if (OUST_TXT == st->oust && st->wantws) { |
|
if (++st->outlnlen > 72) { |
|
putchar('\n'); |
|
st->oust = OUST_NL; |
|
st->outlnlen = st->outbuflen; |
|
} |
|
} |
if (OUST_NL != st->oust && st->wantws) |
if (OUST_NL != st->oust && st->wantws) |
putchar(' '); |
putchar(' '); |
|
|
Line 233 mdoc_newln(struct state *st) |
|
Line 242 mdoc_newln(struct state *st) |
|
putchar('\n'); |
putchar('\n'); |
last = '\n'; |
last = '\n'; |
st->oust = OUST_NL; |
st->oust = OUST_NL; |
|
st->outlnlen = 0; |
st->wantws = 1; |
st->wantws = 1; |
} |
} |
|
|
Line 637 formatcode(struct state *st, const char *buf, size_t * |
|
Line 647 formatcode(struct state *st, const char *buf, size_t * |
|
*/ |
*/ |
|
|
switch (fmt) { |
switch (fmt) { |
case (FMT_ITALIC): |
|
fputs("Em", stdout); |
|
break; |
|
case (FMT_BOLD): |
case (FMT_BOLD): |
if (SECT_SYNOPSIS == st->sect) { |
if (SECT_SYNOPSIS == st->sect) { |
if (1 == dsz && '-' == buf[*start]) |
if (1 == dsz && '-' == buf[*start]) |
Line 650 formatcode(struct state *st, const char *buf, size_t * |
|
Line 657 formatcode(struct state *st, const char *buf, size_t * |
|
fputs("Ar", stdout); |
fputs("Ar", stdout); |
break; |
break; |
} |
} |
|
/* FALLTHROUGH */ |
|
case (FMT_ITALIC): |
i = 0; |
i = 0; |
uc = buf[*start]; |
uc = buf[*start]; |
while (isalnum(uc) || '_' == uc || ' ' == uc) |
while (isalnum(uc) || '_' == uc || ' ' == uc) |
Line 668 formatcode(struct state *st, const char *buf, size_t * |
|
Line 677 formatcode(struct state *st, const char *buf, size_t * |
|
fputs("Vt", stdout); |
fputs("Vt", stdout); |
break; |
break; |
default: |
default: |
fputs("Sy", stdout); |
fputs(FMT_BOLD == fmt ? "Sy" : "Em", stdout); |
break; |
break; |
} |
} |
break; |
break; |
Line 1440 ordinary(struct state *st, const char *buf, size_t sta |
|
Line 1449 ordinary(struct state *st, const char *buf, size_t sta |
|
while (start < end && |
while (start < end && |
isspace((unsigned char)buf[start])) |
isspace((unsigned char)buf[start])) |
start++; |
start++; |
|
while (start < end && '.' == buf[end - 1]) |
|
end--; |
formatcodeln(st, "Nd", buf, &start, end, 1); |
formatcodeln(st, "Nd", buf, &start, end, 1); |
mdoc_newln(st); |
mdoc_newln(st); |
return; |
return; |
Line 1630 ordinary(struct state *st, const char *buf, size_t sta |
|
Line 1641 ordinary(struct state *st, const char *buf, size_t sta |
|
} |
} |
} else if (start < end && '\n' == buf[start]) { |
} else if (start < end && '\n' == buf[start]) { |
outbuf_flush(st); |
outbuf_flush(st); |
mdoc_newln(st); |
st->wantws = 1; |
if (++start >= end) |
if (++start >= end) |
continue; |
continue; |
/* |
/* |
Line 1641 ordinary(struct state *st, const char *buf, size_t sta |
|
Line 1652 ordinary(struct state *st, const char *buf, size_t sta |
|
* have a macro subsequent it, which may be |
* have a macro subsequent it, which may be |
* possible if we have an escape next. |
* possible if we have an escape next. |
*/ |
*/ |
if (' ' == buf[start] || '\t' == buf[start]) |
if (' ' == buf[start] || '\t' == buf[start]) { |
|
mdoc_newln(st); |
puts(".br"); |
puts(".br"); |
|
} |
for ( ; start < end; start++) |
for ( ; start < end; start++) |
if (' ' != buf[start] && '\t' != buf[start]) |
if (' ' != buf[start] && '\t' != buf[start]) |
break; |
break; |