XMLState *xml_begin(CSSStyleSheet *style_sheet, int flags, CSSAbortFunc *abort_func, void *abort_opaque, const char *filename, QECharset *charset) { XMLState *s; s = malloc(sizeof(XMLState)); if (!s) return NULL; memset(s, 0, sizeof(*s)); s->flags = flags; s->is_html = flags & XML_HTML; s->html_syntax = flags & XML_HTML_SYNTAX; s->ignore_case = flags & XML_IGNORE_CASE; s->state = XML_STATE_TEXT; s->box = NULL; s->style_sheet = style_sheet; strbuf_init(&s->str); s->abort_func = abort_func; s->abort_opaque = abort_opaque; s->base_font = 3; s->line_num = 1; pstrcpy(s->filename, sizeof(s->filename), filename); s->charset = charset; if (charset) { charset_decode_init(&s->charset_state, charset); } return s; }
void eb_set_charset(EditBuffer *b, QECharset *charset) { if (b->charset) { charset_decode_close(&b->charset_state); } b->charset = charset; charset_decode_init(&b->charset_state, charset); }