Commit 463ec5ca authored by louiz’'s avatar louiz’

Accept NULL bytes in strings to be cut by the poopt module

fix #2296
parent 4b537d34
......@@ -33,10 +33,11 @@ PyDoc_STRVAR(poopt_cut_text_doc, "cut_text(text, width)\n\n\nReturn a list of tw
static PyObject *poopt_cut_text(PyObject *self, PyObject *args)
{
unsigned char *buffer;
int width;
const unsigned char *buffer;
const int width;
const size_t buffer_len;
if (PyArg_ParseTuple(args, "si", &buffer, &width) == 0)
if (PyArg_ParseTuple(args, "is#", &width, &buffer, &buffer_len) == 0)
return NULL;
int bpos = 0; /* the real position in the char* */
......@@ -48,7 +49,7 @@ static PyObject *poopt_cut_text(PyObject *self, PyObject *args)
of colors attribute be ignored */
PyObject* retlist = PyList_New(0);
while (buffer[bpos])
while (bpos < buffer_len)
{
if (buffer[bpos] == ' ')
last_space = spos;
......
......@@ -909,7 +909,7 @@ class TextWin(Win):
offset += 1
if get_theme().CHAR_TIME_RIGHT and message.str_time:
offset += 1
lines = cut_text(txt, self.width-offset)
lines = cut_text(self.width-offset, txt)
prepend = ''
attrs = []
for line in lines:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment