+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++;
+ }
+}