void buffer_strcat(BUFFER *wb, const char *txt)
{
+ // buffer_sprintf(wb, "%s", txt);
+
if(unlikely(!txt || !*txt)) return;
buffer_need_bytes(wb, 1);
}
}
+void buffer_strcat_htmlescape(BUFFER *wb, const char *txt)
+{
+ char b[2] = { [0] = '\0', [1] = '\0' };
+
+ while(*txt) {
+ switch(*txt) {
+ case '&': buffer_strcat(wb, "&"); break;
+ case '<': buffer_strcat(wb, "<"); break;
+ case '>': buffer_strcat(wb, ">"); break;
+ case '"': buffer_strcat(wb, """); break;
+ case '/': buffer_strcat(wb, "/"); break;
+ case '\'': buffer_strcat(wb, "'"); break;
+ default: {
+ b[0] = *txt;
+ buffer_strcat(wb, b);
+ }
+ }
+ txt++;
+ }
+}
void buffer_snprintf(BUFFER *wb, size_t len, const char *fmt, ...)
{
return(b);
}
-void buffer_free(BUFFER *b)
-{
+void buffer_free(BUFFER *b) {
+ if(unlikely(!b)) return;
+
buffer_overflow_check(b);
debug(D_WEB_BUFFER, "Freeing web buffer of size %zu.", b->size);