/* Created By: Virgil Dupras * Created On: 2010-01-30 * Copyright 2010 Hardcoded Software (http://www.hardcoded.net) */ #include "Python.h" #include "structmember.h" #include "stdio.h" #include "stdlib.h" /* I know that there strtol out there, but it requires a pointer to * a char, which would in turn require me to buffer my chars around, * making the whole process slower. */ static inline long xchar_to_long(char c) { if ((c >= 48) && (c <= 57)) { /* 0-9 */ return c - 48; } else if ((c >= 65) && (c <= 70)) { /* A-F */ return c - 55; } else if ((c >= 97) && (c <= 102)) { /* a-f */ return c - 87; } return 0; } static PyObject* cache_string_to_colors(PyObject *self, PyObject *args) { char *s; Py_ssize_t char_count; PyObject *result; int i; if (!PyArg_ParseTuple(args, "s#", &s, &char_count)) { return NULL; } result = PyList_New(0); if (result == NULL) { return NULL; } char_count = (char_count / 6) * 6; for (i=0; i