Pārlūkot izejas kodu

More unification.

tags/v0.3
Ben Kurtovic pirms 11 gadiem
vecāks
revīzija
8923d96a57
2 mainītis faili ar 8 papildinājumiem un 10 dzēšanām
  1. +6
    -10
      mwparserfromhell/parser/tokenizer.c
  2. +2
    -0
      mwparserfromhell/parser/tokenizer.h

+ 6
- 10
mwparserfromhell/parser/tokenizer.c Parādīt failu

@@ -835,11 +835,7 @@ static int Tokenizer_parse_heading(Tokenizer* self)
self->global ^= GL_HEADING; self->global ^= GL_HEADING;
return 0; return 0;
} }
#ifdef IS_PY3K
level = PyLong_FromSsize_t(heading->level);
#else
level = PyInt_FromSsize_t(heading->level);
#endif
level = NEW_INT_FUNC(heading->level);
if (!level) { if (!level) {
Py_DECREF(heading->title); Py_DECREF(heading->title);
free(heading); free(heading);
@@ -2279,7 +2275,11 @@ static PyObject* Tokenizer_tokenize(Tokenizer* self, PyObject* args)
{ {
PyObject *text, *temp; PyObject *text, *temp;


if (!PyArg_ParseTuple(args, "U", &text)) {
if (PyArg_ParseTuple(args, "U", &text)) {
Py_XDECREF(self->text);
self->text = PySequence_Fast(text, "expected a sequence");
}
else {
const char* encoded; const char* encoded;
Py_ssize_t size; Py_ssize_t size;
/* Failed to parse a Unicode object; try a string instead. */ /* Failed to parse a Unicode object; try a string instead. */
@@ -2294,10 +2294,6 @@ static PyObject* Tokenizer_tokenize(Tokenizer* self, PyObject* args)
Py_XDECREF(temp); Py_XDECREF(temp);
self->text = text; self->text = text;
} }
else {
Py_XDECREF(self->text);
self->text = PySequence_Fast(text, "expected a sequence");
}
self->head = self->global = self->depth = self->cycles = 0; self->head = self->global = self->depth = self->cycles = 0;
self->length = PyList_GET_SIZE(self->text); self->length = PyList_GET_SIZE(self->text);
return Tokenizer_parse(self, 0, 1); return Tokenizer_parse(self, 0, 1);


+ 2
- 0
mwparserfromhell/parser/tokenizer.h Parādīt failu

@@ -255,12 +255,14 @@ static PyObject* Tokenizer_tokenize(Tokenizer*, PyObject*);
/* Macros for Python 2/3 compatibility: */ /* Macros for Python 2/3 compatibility: */


#ifdef IS_PY3K #ifdef IS_PY3K
#define NEW_INT_FUNC PyLong_FromSsize_t
#define IMPORT_NAME_FUNC PyUnicode_FromString #define IMPORT_NAME_FUNC PyUnicode_FromString
#define CREATE_MODULE PyModule_Create(&module_def); #define CREATE_MODULE PyModule_Create(&module_def);
#define ENTITYDEFS_MODULE "html.entities" #define ENTITYDEFS_MODULE "html.entities"
#define INIT_FUNC_NAME PyInit__tokenizer #define INIT_FUNC_NAME PyInit__tokenizer
#define INIT_ERROR return NULL #define INIT_ERROR return NULL
#else #else
#define NEW_INT_FUNC PyInt_FromSsize_t
#define IMPORT_NAME_FUNC PyBytes_FromString #define IMPORT_NAME_FUNC PyBytes_FromString
#define CREATE_MODULE Py_InitModule("_tokenizer", NULL); #define CREATE_MODULE Py_InitModule("_tokenizer", NULL);
#define ENTITYDEFS_MODULE "htmlentitydefs" #define ENTITYDEFS_MODULE "htmlentitydefs"


Notiek ielāde…
Atcelt
Saglabāt