version 1.183, 2014/12/02 10:08:06 |
version 1.185, 2015/01/21 20:33:25 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2011-2015 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
Line 121 static const char *const roffscales[SCALE_MAX] = { |
|
Line 121 static const char *const roffscales[SCALE_MAX] = { |
|
}; |
}; |
|
|
static void bufncat(struct html *, const char *, size_t); |
static void bufncat(struct html *, const char *, size_t); |
static void print_ctag(struct html *, enum htmltag); |
static void print_ctag(struct html *, struct tag *); |
static int print_escape(char); |
static int print_escape(char); |
static int print_encode(struct html *, const char *, int); |
static int print_encode(struct html *, const char *, int); |
static void print_metaf(struct html *, enum mandoc_esc); |
static void print_metaf(struct html *, enum mandoc_esc); |
Line 307 html_strlen(const char *cp) |
|
Line 307 html_strlen(const char *cp) |
|
case ESCAPE_NUMBERED: |
case ESCAPE_NUMBERED: |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case ESCAPE_SPECIAL: |
case ESCAPE_SPECIAL: |
|
/* FALLTHROUGH */ |
|
case ESCAPE_OVERSTRIKE: |
if (skip) |
if (skip) |
skip = 0; |
skip = 0; |
else |
else |
Line 433 print_encode(struct html *h, const char *p, int norecu |
|
Line 435 print_encode(struct html *h, const char *p, int norecu |
|
if ('\0' == *p) |
if ('\0' == *p) |
nospace = 1; |
nospace = 1; |
continue; |
continue; |
|
case ESCAPE_OVERSTRIKE: |
|
if (len == 0) |
|
continue; |
|
c = seq[len - 1]; |
|
break; |
default: |
default: |
continue; |
continue; |
} |
} |
Line 511 print_otag(struct html *h, enum htmltag tag, |
|
Line 518 print_otag(struct html *h, enum htmltag tag, |
|
} |
} |
|
|
static void |
static void |
print_ctag(struct html *h, enum htmltag tag) |
print_ctag(struct html *h, struct tag *tag) |
{ |
{ |
|
|
printf("</%s>", htmltags[tag].name); |
/* |
if (HTML_CLRLINE & htmltags[tag].flags) { |
* Remember to close out and nullify the current |
|
* meta-font and table, if applicable. |
|
*/ |
|
if (tag == h->metaf) |
|
h->metaf = NULL; |
|
if (tag == h->tblt) |
|
h->tblt = NULL; |
|
|
|
printf("</%s>", htmltags[tag->tag].name); |
|
if (HTML_CLRLINE & htmltags[tag->tag].flags) { |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
putchar('\n'); |
putchar('\n'); |
} |
} |
|
|
|
h->tags.head = tag->next; |
|
free(tag); |
} |
} |
|
|
void |
void |
Line 580 print_tagq(struct html *h, const struct tag *until) |
|
Line 599 print_tagq(struct html *h, const struct tag *until) |
|
struct tag *tag; |
struct tag *tag; |
|
|
while ((tag = h->tags.head) != NULL) { |
while ((tag = h->tags.head) != NULL) { |
/* |
print_ctag(h, tag); |
* Remember to close out and nullify the current |
|
* meta-font and table, if applicable. |
|
*/ |
|
if (tag == h->metaf) |
|
h->metaf = NULL; |
|
if (tag == h->tblt) |
|
h->tblt = NULL; |
|
print_ctag(h, tag->tag); |
|
h->tags.head = tag->next; |
|
free(tag); |
|
if (until && tag == until) |
if (until && tag == until) |
return; |
return; |
} |
} |
Line 604 print_stagq(struct html *h, const struct tag *suntil) |
|
Line 613 print_stagq(struct html *h, const struct tag *suntil) |
|
while ((tag = h->tags.head) != NULL) { |
while ((tag = h->tags.head) != NULL) { |
if (suntil && tag == suntil) |
if (suntil && tag == suntil) |
return; |
return; |
/* |
print_ctag(h, tag); |
* Remember to close out and nullify the current |
|
* meta-font and table, if applicable. |
|
*/ |
|
if (tag == h->metaf) |
|
h->metaf = NULL; |
|
if (tag == h->tblt) |
|
h->tblt = NULL; |
|
print_ctag(h, tag->tag); |
|
h->tags.head = tag->next; |
|
free(tag); |
|
} |
} |
} |
} |
|
|