Commit 2ec4f154 authored by Guido van Rossum's avatar Guido van Rossum

Mark Hammond should get his act into gear (his words :-). Zero length

strings _are_ valid!
parent 1e6e8d9d
...@@ -1554,7 +1554,7 @@ PyObject *PyUnicode_DecodeMBCS(const char *s, ...@@ -1554,7 +1554,7 @@ PyObject *PyUnicode_DecodeMBCS(const char *s,
/* First get the size of the result */ /* First get the size of the result */
DWORD usize = MultiByteToWideChar(CP_ACP, 0, s, size, NULL, 0); DWORD usize = MultiByteToWideChar(CP_ACP, 0, s, size, NULL, 0);
if (usize==0) if (size > 0 && usize==0)
return PyErr_SetFromWindowsErrWithFilename(0, NULL); return PyErr_SetFromWindowsErrWithFilename(0, NULL);
v = _PyUnicode_New(usize); v = _PyUnicode_New(usize);
...@@ -1577,9 +1577,14 @@ PyObject *PyUnicode_EncodeMBCS(const Py_UNICODE *p, ...@@ -1577,9 +1577,14 @@ PyObject *PyUnicode_EncodeMBCS(const Py_UNICODE *p,
{ {
PyObject *repr; PyObject *repr;
char *s; char *s;
DWORD mbcssize;
/* If there are no characters, bail now! */
if (size==0)
return PyString_FromString("");
/* First get the size of the result */ /* First get the size of the result */
DWORD mbcssize = WideCharToMultiByte(CP_ACP, 0, p, size, NULL, 0, NULL, NULL); mbcssize = WideCharToMultiByte(CP_ACP, 0, p, size, NULL, 0, NULL, NULL);
if (mbcssize==0) if (mbcssize==0)
return PyErr_SetFromWindowsErrWithFilename(0, NULL); return PyErr_SetFromWindowsErrWithFilename(0, NULL);
......
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