Changeset 2886:8b05947b0d4c in livinglogic.python.xist

Show
Ignore:
Timestamp:
08/14/07 14:29:52 (12 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

csstokenizer.css: Replace int with Py_ssize_t where appropriate.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/ll/xist/csstokenizer.cxx

    r2884 r2886  
    2929*/ 
    3030 
     31#define PY_SSIZE_T_CLEAN 
    3132#include "Python.h" 
    3233 
     
    191192static bool isCSSHexadecimalCharacter(int c) 
    192193{ 
    193     return isxdigit(c); 
     194    return (c < 128) && isxdigit(c); 
    194195} 
    195196 
     
    209210    public: 
    210211        const Py_UNICODE *buffer; 
    211         int buflen; /* the size of the buffer */ 
    212         int line; /* The current line. */ 
    213         int column; /* The current column. */ 
    214         int current; /* The current char. */ 
    215         int position; /* The current position in the buffer. */ 
     212        Py_ssize_t buflen; /* the size of the buffer */ 
     213        Py_ssize_t line; /* The current line. */ 
     214        Py_ssize_t column; /* The current column. */ 
     215        Py_ssize_t current; /* The current char. */ 
     216        Py_ssize_t position; /* The current position in the buffer. */ 
    216217        enum Token type; /* The type of the current lexical unit. */ 
    217         int start; /* The start offset of the last lexical unit. */ 
    218         int end; /* The end offset of the last lexical unit. */ 
    219         int blankCharacters; /* The characters to skip to create the string which represents the current token. */ 
     218        Py_ssize_t start; /* The start offset of the last lexical unit. */ 
     219        Py_ssize_t end; /* The end offset of the last lexical unit. */ 
     220        Py_ssize_t blankCharacters; /* The characters to skip to create the string which represents the current token. */ 
    220221 
    221222    public: 
    222         Scanner(const Py_UNICODE *s, int ibuflen) : 
     223        Scanner(const Py_UNICODE *s, Py_ssize_t ibuflen) : 
    223224            buffer(s), 
    224225            buflen(ibuflen), 
     
    235236        } 
    236237 
    237         int getLine() 
     238        Py_ssize_t getLine() 
    238239        { 
    239240            return line; 
    240241        } 
    241242 
    242         int getColumn() 
     243        Py_ssize_t getColumn() 
    243244        { 
    244245            return column; 
    245246        } 
    246247 
    247         int getStart() 
     248        Py_ssize_t getStart() 
    248249        { 
    249250            return start; 
    250251        } 
    251252 
    252         int getEnd() 
     253        Py_ssize_t getEnd() 
    253254        { 
    254255            return end; 
     
    316317                return current = -1; 
    317318 
    318             if (current != 10) 
     319            if (current != '\n') 
    319320                ++column; 
    320321            else 
     
    965966                    if (current == -1) 
    966967                    { 
    967                         PyErr_Format(PyExc_ValueError,"eof while looking for end of comment at line %d column %d", getLine(), getColumn()); 
     968                        PyErr_Format(PyExc_ValueError, "eof while looking for end of comment at line %d column %d", getLine(), getColumn()); 
    968969                        return 0; 
    969970                    } 
     
    979980                    if (current != '!') 
    980981                    { 
    981                         PyErr_Format(PyExc_ValueError,"wrong char while looking for ! at line %d column %d", getLine(), getColumn()); 
     982                        PyErr_Format(PyExc_ValueError, "wrong char while looking for ! at line %d column %d", getLine(), getColumn()); 
    982983                        return 0; 
    983984                    } 
     
    993994                        } 
    994995                    } 
    995                     PyErr_Format(PyExc_ValueError,"wrong char while looking for ! at line %d column %d", getLine(), getColumn()); 
     996                    PyErr_Format(PyExc_ValueError, "wrong char while looking for ! at line %d column %d", getLine(), getColumn()); 
    996997                    return 0; 
    997998                case '-': 
     
    10091010                        return -1; 
    10101011                    } 
    1011                     PyErr_Format(PyExc_ValueError,"wrong char while looking for - or > at line %d column %d", getLine(), getColumn()); 
     1012                    PyErr_Format(PyExc_ValueError, "wrong char while looking for - or > at line %d column %d", getLine(), getColumn()); 
    10121013                    return 0; 
    10131014                case '|': 
     
    10191020                        return -1; 
    10201021                    } 
    1021                     PyErr_Format(PyExc_ValueError,"wrong char while looking for = in |= at line %d column %d", getLine(), getColumn()); 
     1022                    PyErr_Format(PyExc_ValueError, "wrong char while looking for = in |= at line %d column %d", getLine(), getColumn()); 
    10221023                    return 0; 
    10231024                case '~': 
     
    10291030                        return -1; 
    10301031                    } 
    1031                     PyErr_Format(PyExc_ValueError,"wrong char while looking for = in ~= at line %d column %d", getLine(), getColumn()); 
     1032                    PyErr_Format(PyExc_ValueError, "wrong char while looking for = in ~= at line %d column %d", getLine(), getColumn()); 
    10321033                    return 0; 
    10331034                case '#': 
     
    10481049                        return -1; 
    10491050                    } 
    1050                     PyErr_Format(PyExc_ValueError,"wrong char in # at line %d column %d", getLine(), getColumn()); 
     1051                    PyErr_Format(PyExc_ValueError, "wrong char in # at line %d column %d", getLine(), getColumn()); 
    10511052                    return 0; 
    10521053                case '@': 
     
    14181419*/ 
    14191420 
    1420 static int calltoken(CSSTokenizer *self, const char *token, int tokenlen, const Py_UNICODE *data, int datalen) 
     1421static int calltoken(CSSTokenizer *self, const char *token, Py_ssize_t tokenlen, const Py_UNICODE *data, Py_ssize_t datalen, Py_ssize_t line, Py_ssize_t col) 
    14211422{ 
    14221423    if (self->token) 
    14231424    { 
    1424         PyObject *res = PyObject_CallFunction(self->token, "s#u#", token, tokenlen, data, datalen); 
     1425        PyObject *res = PyObject_CallFunction(self->token, "s#u#nn", token, tokenlen, data, datalen, line, col); 
    14251426        if (!res) 
    14261427            return 0; 
     
    14521453{ 
    14531454    const Py_UNICODE *s; 
    1454     int len; 
     1455    Py_ssize_t len; 
    14551456 
    14561457    if (!PyArg_ParseTuple(args, "u#:parse", &s, &len)) 
     
    14681469    { 
    14691470        if (!calltoken(self, token_names[t], strlen(token_names[t]), 
    1470                 scanner.buffer+scanner.start, scanner.end-scanner.start)) 
     1471                scanner.buffer+scanner.start, scanner.end-scanner.start, 
     1472                scanner.getLine(), scanner.getColumn())) 
    14711473            return NULL; 
    14721474        if (!scanner.next())