version 1.246, 2018/12/15 19:30:26 |
version 1.249, 2019/01/06 04:55:09 |
|
|
/* $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-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2011-2015, 2017-2019 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 78 static const struct htmldata htmltags[TAG_MAX] = { |
|
Line 78 static const struct htmldata htmltags[TAG_MAX] = { |
|
{"dl", HTML_NLALL | HTML_INDENT}, |
{"dl", HTML_NLALL | HTML_INDENT}, |
{"dt", HTML_NLAROUND}, |
{"dt", HTML_NLAROUND}, |
{"dd", HTML_NLAROUND | HTML_INDENT}, |
{"dd", HTML_NLAROUND | HTML_INDENT}, |
|
{"p", HTML_NLAROUND | HTML_INDENT}, |
{"pre", HTML_NLALL | HTML_NOINDENT}, |
{"pre", HTML_NLALL | HTML_NOINDENT}, |
{"var", 0}, |
{"var", 0}, |
{"cite", 0}, |
{"cite", 0}, |
Line 117 static void print_ctag(struct html *, struct tag *); |
|
Line 118 static void print_ctag(struct html *, struct tag *); |
|
static int print_escape(struct html *, char); |
static int print_escape(struct html *, char); |
static int print_encode(struct html *, const char *, const char *, int); |
static int print_encode(struct html *, const char *, const char *, int); |
static void print_href(struct html *, const char *, const char *, int); |
static void print_href(struct html *, const char *, const char *, int); |
static void print_metaf(struct html *, enum mandoc_esc); |
|
|
|
|
|
void * |
void * |
Line 210 print_gen_head(struct html *h) |
|
Line 210 print_gen_head(struct html *h) |
|
print_tagq(h, t); |
print_tagq(h, t); |
} |
} |
|
|
static void |
void |
print_metaf(struct html *h, enum mandoc_esc deco) |
print_metaf(struct html *h, enum mandoc_esc deco) |
{ |
{ |
enum htmlfont font; |
enum htmlfont font; |
Line 236 print_metaf(struct html *h, enum mandoc_esc deco) |
|
Line 236 print_metaf(struct html *h, enum mandoc_esc deco) |
|
font = HTMLFONT_NONE; |
font = HTMLFONT_NONE; |
break; |
break; |
default: |
default: |
abort(); |
return; |
} |
} |
|
|
if (h->metaf) { |
if (h->metaf) { |
Line 264 print_metaf(struct html *h, enum mandoc_esc deco) |
|
Line 264 print_metaf(struct html *h, enum mandoc_esc deco) |
|
default: |
default: |
break; |
break; |
} |
} |
|
} |
|
|
|
void |
|
html_close_paragraph(struct html *h) |
|
{ |
|
struct tag *t; |
|
|
|
for (t = h->tag; t != NULL; t = t->next) { |
|
if (t->tag == TAG_P) { |
|
print_tagq(h, t); |
|
break; |
|
} |
|
} |
|
} |
|
|
|
/* |
|
* ROFF_nf switches to no-fill mode, ROFF_fi to fill mode. |
|
* TOKEN_NONE does not switch. The old mode is returned. |
|
*/ |
|
enum roff_tok |
|
html_fillmode(struct html *h, enum roff_tok want) |
|
{ |
|
struct tag *t; |
|
enum roff_tok had; |
|
|
|
for (t = h->tag; t != NULL; t = t->next) |
|
if (t->tag == TAG_PRE) |
|
break; |
|
|
|
had = t == NULL ? ROFF_fi : ROFF_nf; |
|
|
|
if (want != had) { |
|
switch (want) { |
|
case ROFF_fi: |
|
print_tagq(h, t); |
|
break; |
|
case ROFF_nf: |
|
html_close_paragraph(h); |
|
print_otag(h, TAG_PRE, ""); |
|
break; |
|
case TOKEN_NONE: |
|
break; |
|
default: |
|
abort(); |
|
} |
|
} |
|
return had; |
} |
} |
|
|
char * |
char * |