diff -r 3de3d670d2b6 -r f42ef9493fa9 mercurial/base85.c --- a/mercurial/base85.c Tue Jun 15 19:49:56 2010 -0300 +++ b/mercurial/base85.c Tue Jun 15 19:49:56 2010 -0300 @@ -11,6 +11,8 @@ #include +#include "util.h" + static const char b85chars[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"; static char b85dec[256]; @@ -46,10 +48,10 @@ olen++; olen += len / 4 * 5; } - if (!(out = PyString_FromStringAndSize(NULL, olen + 3))) + if (!(out = PyBytes_FromStringAndSize(NULL, olen + 3))) return NULL; - dst = PyString_AS_STRING(out); + dst = PyBytes_AsString(out); while (len) { acc = 0; @@ -68,7 +70,7 @@ } if (!pad) - _PyString_Resize(&out, olen); + _PyBytes_Resize(&out, olen); return out; } @@ -89,10 +91,10 @@ i = len % 5; if (i) olen += i - 1; - if (!(out = PyString_FromStringAndSize(NULL, olen))) + if (!(out = PyBytes_FromStringAndSize(NULL, olen))) return NULL; - dst = PyString_AS_STRING(out); + dst = PyBytes_AsString(out); i = 0; while (i < len) @@ -153,9 +155,26 @@ {NULL, NULL} }; +#ifdef IS_PY3K +static struct PyModuleDef base85_module = { + PyModuleDef_HEAD_INIT, + "base85", + base85_doc, + -1, + methods +}; + +PyMODINIT_FUNC PyInit_base85(void) +{ + b85prep(); + + return PyModule_Create(&base85_module); +} +#else PyMODINIT_FUNC initbase85(void) { Py_InitModule3("base85", methods, base85_doc); b85prep(); } +#endif