| @@ -347,7 +347,7 @@ static void* Tokenizer_fail_route(Tokenizer* self) | |||
| /* | |||
| Write a token to the end of the current token stack. | |||
| */ | |||
| static int Tokenizer_emit_FAST(Tokenizer* self, PyObject* token) | |||
| static int Tokenizer_emit(Tokenizer* self, PyObject* token) | |||
| { | |||
| PyObject* instance; | |||
| @@ -367,7 +367,8 @@ static int Tokenizer_emit_FAST(Tokenizer* self, PyObject* token) | |||
| /* | |||
| Write a token to the end of the current token stack. | |||
| */ | |||
| static int Tokenizer_emit(Tokenizer* self, PyObject* token, PyObject* kwargs) | |||
| static int Tokenizer_emit_kwargs(Tokenizer* self, PyObject* token, | |||
| PyObject* kwargs) | |||
| { | |||
| PyObject* instance; | |||
| @@ -592,7 +593,7 @@ static int Tokenizer_parse_template(Tokenizer* self) | |||
| return -1; | |||
| } | |||
| Py_DECREF(template); | |||
| if (Tokenizer_emit_FAST(self, TemplateClose)) | |||
| if (Tokenizer_emit(self, TemplateClose)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -621,7 +622,7 @@ static int Tokenizer_parse_argument(Tokenizer* self) | |||
| return -1; | |||
| } | |||
| Py_DECREF(argument); | |||
| if (Tokenizer_emit_FAST(self, ArgumentClose)) | |||
| if (Tokenizer_emit(self, ArgumentClose)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -720,7 +721,7 @@ static int Tokenizer_handle_template_param(Tokenizer* self) | |||
| } | |||
| else | |||
| self->topstack->context |= LC_TEMPLATE_PARAM_KEY; | |||
| if (Tokenizer_emit_FAST(self, TemplateParamSeparator)) | |||
| if (Tokenizer_emit(self, TemplateParamSeparator)) | |||
| return -1; | |||
| if (Tokenizer_push(self, self->topstack->context)) | |||
| return -1; | |||
| @@ -744,7 +745,7 @@ static int Tokenizer_handle_template_param_value(Tokenizer* self) | |||
| Py_DECREF(stack); | |||
| self->topstack->context ^= LC_TEMPLATE_PARAM_KEY; | |||
| self->topstack->context |= LC_TEMPLATE_PARAM_VALUE; | |||
| if (Tokenizer_emit_FAST(self, TemplateParamEquals)) | |||
| if (Tokenizer_emit(self, TemplateParamEquals)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -778,7 +779,7 @@ static int Tokenizer_handle_argument_separator(Tokenizer* self) | |||
| { | |||
| self->topstack->context ^= LC_ARGUMENT_NAME; | |||
| self->topstack->context |= LC_ARGUMENT_DEFAULT; | |||
| if (Tokenizer_emit_FAST(self, ArgumentSeparator)) | |||
| if (Tokenizer_emit(self, ArgumentSeparator)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -814,7 +815,7 @@ static int Tokenizer_parse_wikilink(Tokenizer* self) | |||
| } | |||
| if (!wikilink) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, WikilinkOpen)) { | |||
| if (Tokenizer_emit(self, WikilinkOpen)) { | |||
| Py_DECREF(wikilink); | |||
| return -1; | |||
| } | |||
| @@ -823,7 +824,7 @@ static int Tokenizer_parse_wikilink(Tokenizer* self) | |||
| return -1; | |||
| } | |||
| Py_DECREF(wikilink); | |||
| if (Tokenizer_emit_FAST(self, WikilinkClose)) | |||
| if (Tokenizer_emit(self, WikilinkClose)) | |||
| return -1; | |||
| if (self->topstack->context & LC_FAIL_NEXT) | |||
| self->topstack->context ^= LC_FAIL_NEXT; | |||
| @@ -837,7 +838,7 @@ static int Tokenizer_handle_wikilink_separator(Tokenizer* self) | |||
| { | |||
| self->topstack->context ^= LC_WIKILINK_TITLE; | |||
| self->topstack->context |= LC_WIKILINK_TEXT; | |||
| if (Tokenizer_emit_FAST(self, WikilinkSeparator)) | |||
| if (Tokenizer_emit(self, WikilinkSeparator)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -895,7 +896,7 @@ static int Tokenizer_parse_heading(Tokenizer* self) | |||
| } | |||
| PyDict_SetItemString(kwargs, "level", level); | |||
| Py_DECREF(level); | |||
| if (Tokenizer_emit(self, HeadingStart, kwargs)) { | |||
| if (Tokenizer_emit_kwargs(self, HeadingStart, kwargs)) { | |||
| Py_DECREF(heading->title); | |||
| free(heading); | |||
| return -1; | |||
| @@ -917,7 +918,7 @@ static int Tokenizer_parse_heading(Tokenizer* self) | |||
| } | |||
| Py_DECREF(heading->title); | |||
| free(heading); | |||
| if (Tokenizer_emit_FAST(self, HeadingEnd)) | |||
| if (Tokenizer_emit(self, HeadingEnd)) | |||
| return -1; | |||
| self->global ^= GL_HEADING; | |||
| return 0; | |||
| @@ -1000,7 +1001,7 @@ static int Tokenizer_really_parse_entity(Tokenizer* self) | |||
| return 0; \ | |||
| } | |||
| if (Tokenizer_emit_FAST(self, HTMLEntityStart)) | |||
| if (Tokenizer_emit(self, HTMLEntityStart)) | |||
| return -1; | |||
| self->head++; | |||
| this = Tokenizer_READ(self, 0); | |||
| @@ -1010,7 +1011,7 @@ static int Tokenizer_really_parse_entity(Tokenizer* self) | |||
| } | |||
| if (this == *"#") { | |||
| numeric = 1; | |||
| if (Tokenizer_emit_FAST(self, HTMLEntityNumeric)) | |||
| if (Tokenizer_emit(self, HTMLEntityNumeric)) | |||
| return -1; | |||
| self->head++; | |||
| this = Tokenizer_READ(self, 0); | |||
| @@ -1024,7 +1025,7 @@ static int Tokenizer_really_parse_entity(Tokenizer* self) | |||
| if (!kwargs) | |||
| return -1; | |||
| PyDict_SetItemString(kwargs, "char", Tokenizer_read(self, 0)); | |||
| if (Tokenizer_emit(self, HTMLEntityHex, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, HTMLEntityHex, kwargs)) | |||
| return -1; | |||
| self->head++; | |||
| } | |||
| @@ -1118,9 +1119,9 @@ static int Tokenizer_really_parse_entity(Tokenizer* self) | |||
| } | |||
| PyDict_SetItemString(kwargs, "text", textobj); | |||
| Py_DECREF(textobj); | |||
| if (Tokenizer_emit(self, Text, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, Text, kwargs)) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, HTMLEntityEnd)) | |||
| if (Tokenizer_emit(self, HTMLEntityEnd)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -1179,7 +1180,7 @@ static int Tokenizer_parse_comment(Tokenizer* self) | |||
| Tokenizer_READ(self, 2) == *">") { | |||
| if (Tokenizer_emit_first(self, CommentStart)) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, CommentEnd)) | |||
| if (Tokenizer_emit(self, CommentEnd)) | |||
| return -1; | |||
| comment = Tokenizer_pop(self); | |||
| if (!comment) | |||
| @@ -1352,7 +1353,7 @@ Tokenizer_handle_tag_data(Tokenizer* self, TagData* data, Py_UNICODE chunk) | |||
| else if (data->context & TAG_ATTR_NAME) { | |||
| if (chunk == *"=") { | |||
| data->context = TAG_ATTR_VALUE | TAG_NOTE_QUOTE; | |||
| if (Tokenizer_emit_FAST(self, TagAttrEquals)) | |||
| if (Tokenizer_emit(self, TagAttrEquals)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -1409,7 +1410,7 @@ Tokenizer_handle_tag_close_open(Tokenizer* self, TagData* data, PyObject* cls) | |||
| } | |||
| PyDict_SetItemString(kwargs, "padding", padding); | |||
| Py_DECREF(padding); | |||
| if (Tokenizer_emit(self, cls, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, cls, kwargs)) | |||
| return -1; | |||
| self->head++; | |||
| return 0; | |||
| @@ -1420,7 +1421,7 @@ Tokenizer_handle_tag_close_open(Tokenizer* self, TagData* data, PyObject* cls) | |||
| */ | |||
| static int Tokenizer_handle_tag_open_close(Tokenizer* self) | |||
| { | |||
| if (Tokenizer_emit_FAST(self, TagOpenClose)) | |||
| if (Tokenizer_emit(self, TagOpenClose)) | |||
| return -1; | |||
| if (Tokenizer_push(self, LC_TAG_CLOSE)) | |||
| return -1; | |||
| @@ -1474,7 +1475,7 @@ static PyObject* Tokenizer_handle_tag_close_close(Tokenizer* self) | |||
| return NULL; | |||
| } | |||
| Py_DECREF(closing); | |||
| if (Tokenizer_emit_FAST(self, TagCloseClose)) | |||
| if (Tokenizer_emit(self, TagCloseClose)) | |||
| return NULL; | |||
| return Tokenizer_pop(self); | |||
| } | |||
| @@ -1524,7 +1525,7 @@ static PyObject* Tokenizer_handle_single_only_tag_end(Tokenizer* self) | |||
| PyDict_SetItemString(kwargs, "padding", padding); | |||
| PyDict_SetItemString(kwargs, "implicit", Py_True); | |||
| Py_DECREF(padding); | |||
| if (Tokenizer_emit(self, TagCloseSelfclose, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, TagCloseSelfclose, kwargs)) | |||
| return NULL; | |||
| self->head--; // Offset displacement done by handle_tag_close_open | |||
| return Tokenizer_pop(self); | |||
| @@ -1588,7 +1589,7 @@ static PyObject* Tokenizer_really_parse_tag(Tokenizer* self) | |||
| TagData_dealloc(data); | |||
| return NULL; | |||
| } | |||
| if (Tokenizer_emit_FAST(self, TagOpenOpen)) { | |||
| if (Tokenizer_emit(self, TagOpenOpen)) { | |||
| TagData_dealloc(data); | |||
| return NULL; | |||
| } | |||
| @@ -1748,20 +1749,20 @@ static int Tokenizer_emit_style_tag(Tokenizer* self, const char* tag, | |||
| } | |||
| PyDict_SetItemString(kwargs, "wiki_markup", markup); | |||
| Py_DECREF(markup); | |||
| if (Tokenizer_emit(self, TagOpenOpen, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, TagOpenOpen, kwargs)) | |||
| return -1; | |||
| if (Tokenizer_emit_text(self, tag)) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, TagCloseOpen)) | |||
| if (Tokenizer_emit(self, TagCloseOpen)) | |||
| return -1; | |||
| if (Tokenizer_emit_all(self, body)) | |||
| return -1; | |||
| Py_DECREF(body); | |||
| if (Tokenizer_emit_FAST(self, TagOpenClose)) | |||
| if (Tokenizer_emit(self, TagOpenClose)) | |||
| return -1; | |||
| if (Tokenizer_emit_text(self, tag)) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, TagCloseClose)) | |||
| if (Tokenizer_emit(self, TagCloseClose)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -1965,11 +1966,11 @@ static int Tokenizer_handle_list_marker(Tokenizer* self) | |||
| if (!kwargs) | |||
| return -1; | |||
| PyDict_SetItemString(kwargs, "wiki_markup", markup); | |||
| if (Tokenizer_emit(self, TagOpenOpen, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, TagOpenOpen, kwargs)) | |||
| return -1; | |||
| if (Tokenizer_emit_text(self, GET_HTML_TAG(code))) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, TagCloseSelfclose)) | |||
| if (Tokenizer_emit(self, TagCloseSelfclose)) | |||
| return -1; | |||
| return 0; | |||
| } | |||
| @@ -2023,11 +2024,11 @@ static int Tokenizer_handle_hr(Tokenizer* self) | |||
| return -1; | |||
| PyDict_SetItemString(kwargs, "wiki_markup", markup); | |||
| Py_DECREF(markup); | |||
| if (Tokenizer_emit(self, TagOpenOpen, kwargs)) | |||
| if (Tokenizer_emit_kwargs(self, TagOpenOpen, kwargs)) | |||
| return -1; | |||
| if (Tokenizer_emit_text(self, "hr")) | |||
| return -1; | |||
| if (Tokenizer_emit_FAST(self, TagCloseSelfclose)) | |||
| if (Tokenizer_emit(self, TagCloseSelfclose)) | |||
| return -1; | |||
| return 0; | |||
| } | |||