# HG changeset patch # User Siddharth Agarwal <sid0@fb.com> # Date 2015-03-31 17:28:17 # Node ID fe173106e7fea7f09bdb9a0093fbb06318a6306c # Parent a62e957413f7d24d7d0cd14561033337d09e1dca parsers: make _asciilower a generic _asciitransform function We can now pass in whatever table we like. For example, an upcoming patch will introduce asciiupper. diff --git a/mercurial/parsers.c b/mercurial/parsers.c --- a/mercurial/parsers.c +++ b/mercurial/parsers.c @@ -93,7 +93,8 @@ PyObject *unhexlify(const char *str, int return ret; } -static inline PyObject *_asciilower(PyObject *str_obj) +static inline PyObject *_asciitransform(PyObject *str_obj, + const char table[128]) { char *str, *newstr; Py_ssize_t i, len; @@ -119,7 +120,7 @@ static inline PyObject *_asciilower(PyOb Py_XDECREF(err); goto quit; } - newstr[i] = lowertable[(unsigned char)c]; + newstr[i] = table[(unsigned char)c]; } ret = newobj; @@ -134,7 +135,7 @@ static PyObject *asciilower(PyObject *se PyObject *str_obj; if (!PyArg_ParseTuple(args, "O!:asciilower", &PyBytes_Type, &str_obj)) return NULL; - return _asciilower(str_obj); + return _asciitransform(str_obj, lowertable); } /*