commit - bff58270a8ffa0e66ce97234e440b545ba9290d3
commit + df2db2149a21ac230e2961435f2b3011bae12d41
blob - 6096ef855d97f397cf4a1cb0c4521cdf43eca476
blob + 174d291acae8533ddd33ce821c32214b578043a4
--- proxy.c
+++ proxy.c
default:
log_warnx("unknown message %d", imsg->hdr.type);
return (-1);
- }
-
- return (0);
-}
-
-static inline int
-printurl(struct client *clt, const char *str)
-{
- for (; *str; ++str) {
- switch (*str) {
- case ' ':
- case '\t':
- case '\'':
- case '\\':
- if (clt_printf(clt, "%2X", (unsigned char)*str) == -1)
- return (-1);
- break;
- default:
- if (clt_putc(clt, *str) == -1)
- return (-1);
- break;
- }
- }
-
- return (0);
-}
-
-static inline int
-htmlescape(struct client *clt, const char *str)
-{
- int r;
-
- for (; *str; ++str) {
- switch (*str) {
- case '<':
- r = clt_puts(clt, "<");
- break;
- case '>':
- r = clt_puts(clt, ">");
- break;
- case '&':
- r = clt_puts(clt, "&");
- break;
- default:
- r = clt_putc(clt, *str);
- break;
- }
-
- if (r == -1)
- return (-1);
}
return (0);
return (clt_puts(clt, "</pre>"));
}
- if (htmlescape(clt, line) == -1)
+ if (tp_htmlescape(clt->clt_tp, line) == -1)
return (-1);
return (clt_putc(clt, '\n'));
}
}
if (clt_puts(clt, "<li>") == -1 ||
- htmlescape(clt, line + 2) == -1 ||
+ tp_htmlescape(clt->clt_tp, line + 2) == -1 ||
clt_puts(clt, "</li>") == -1)
return (-1);
return (0);
}
if (clt_puts(clt, "<li><a href='") == -1 ||
- printurl(clt, line) == -1 ||
+ tp_urlescape(clt->clt_tp, line) == -1 ||
clt_puts(clt, "'>") == -1 ||
- htmlescape(clt, label) == -1 ||
+ tp_htmlescape(clt->clt_tp, label) == -1 ||
clt_puts(clt, "</a></li>") == -1)
return (-1);
/* citation block */
if (*line == '>') {
if (clt_puts(clt, "<blockquote>") == -1 ||
- htmlescape(clt, line + 1) == -1 ||
+ tp_htmlescape(clt->clt_tp, line + 1) == -1 ||
clt_puts(clt, "</blockquote>") == -1)
return (-1);
return (0);
/* headings */
if (!strncmp(line, "###", 3)) {
if (clt_puts(clt, "<h3>") == -1 ||
- htmlescape(clt, line + 3) == -1 ||
+ tp_htmlescape(clt->clt_tp, line + 3) == -1 ||
clt_puts(clt, "</h3>") == -1)
return (-1);
return (0);
}
if (!strncmp(line, "##", 2)) {
if (clt_puts(clt, "<h2>") == -1 ||
- htmlescape(clt, line + 2) == -1 ||
+ tp_htmlescape(clt->clt_tp, line + 2) == -1 ||
clt_puts(clt, "</h2>") == -1)
return (-1);
return (0);
}
if (!strncmp(line, "#", 1)) {
if (clt_puts(clt, "<h1>") == -1 ||
- htmlescape(clt, line + 1) == -1 ||
+ tp_htmlescape(clt->clt_tp, line + 1) == -1 ||
clt_puts(clt, "</h1>") == -1)
return (-1);
return (0);
/* paragraph */
if (clt_puts(clt, "<p>") == -1 ||
- htmlescape(clt, line) == -1 ||
+ tp_htmlescape(clt->clt_tp, line) == -1 ||
clt_puts(clt, "</p>") == -1)
return (-1);