| @@ -1499,16 +1499,17 @@ Tokenizer_handle_tag_space(Tokenizer* self, TagOpenData* data, Py_UNICODE text) | |||||
| data->context = TAG_ATTR_READY; | data->context = TAG_ATTR_READY; | ||||
| else if (ctx & TAG_ATTR_NAME) { | else if (ctx & TAG_ATTR_NAME) { | ||||
| data->context |= TAG_NOTE_EQUALS; | data->context |= TAG_NOTE_EQUALS; | ||||
| Textbuffer_write(&(data->pad_before_eq), text); | |||||
| if (Textbuffer_write(&(data->pad_before_eq), text)) | |||||
| return -1; | |||||
| } | } | ||||
| if (ctx & TAG_QUOTED && !(ctx & TAG_NOTE_SPACE)) { | if (ctx & TAG_QUOTED && !(ctx & TAG_NOTE_SPACE)) { | ||||
| if (Tokenizer_emit_text(self, text)) | if (Tokenizer_emit_text(self, text)) | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| else if (data->context & TAG_ATTR_READY) | else if (data->context & TAG_ATTR_READY) | ||||
| Textbuffer_write(&(data->pad_first), text); | |||||
| return Textbuffer_write(&(data->pad_first), text); | |||||
| else if (data->context & TAG_ATTR_VALUE) | else if (data->context & TAG_ATTR_VALUE) | ||||
| Textbuffer_write(&(data->pad_after_eq), text); | |||||
| return Textbuffer_write(&(data->pad_after_eq), text); | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -1518,7 +1519,24 @@ Tokenizer_handle_tag_space(Tokenizer* self, TagOpenData* data, Py_UNICODE text) | |||||
| static int | static int | ||||
| Tokenizer_handle_tag_text(Tokenizer* self, Py_UNICODE text) | Tokenizer_handle_tag_text(Tokenizer* self, Py_UNICODE text) | ||||
| { | { | ||||
| return 0; | |||||
| Py_UNICODE next = Tokenizer_READ(self, 1); | |||||
| int i, is_marker = 0; | |||||
| for (i = 0; i < NUM_MARKERS; i++) { | |||||
| if (*MARKERS[i] == text) { | |||||
| is_marker = 1; | |||||
| break; | |||||
| } | |||||
| } | |||||
| if (!is_marker || !Tokenizer_CAN_RECURSE(self)) | |||||
| return Tokenizer_emit_text(self, text); | |||||
| else if (text == next && next == *"{") | |||||
| return Tokenizer_parse_template_or_argument(self); | |||||
| else if (text == next && next == *"[") | |||||
| return Tokenizer_parse_wikilink(self); | |||||
| else if (text == *"<") | |||||
| return Tokenizer_parse_tag(self); | |||||
| return Tokenizer_emit_text(self, text); | |||||
| } | } | ||||
| /* | /* | ||||
| @@ -1527,7 +1545,22 @@ Tokenizer_handle_tag_text(Tokenizer* self, Py_UNICODE text) | |||||
| static PyObject* | static PyObject* | ||||
| Tokenizer_handle_blacklisted_tag(Tokenizer* self) | Tokenizer_handle_blacklisted_tag(Tokenizer* self) | ||||
| { | { | ||||
| return NULL; | |||||
| Py_UNICODE this, next; | |||||
| while (1) { | |||||
| this = Tokenizer_READ(self, 0); | |||||
| next = Tokenizer_READ(self, 1); | |||||
| self->head++; | |||||
| if (this == *"") | |||||
| return Tokenizer_fail_route(self); | |||||
| else if (this == *"<" && next == *"/") { | |||||
| if (Tokenizer_handle_tag_open_close(self)) | |||||
| return NULL; | |||||
| return Tokenizer_parse(self, 0, 0); | |||||
| } | |||||
| if (Tokenizer_emit_text(self, this)) | |||||
| return NULL; | |||||
| } | |||||
| } | } | ||||
| /* | /* | ||||