aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-09-01 11:38:14 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:50 -0300
commit8e43e10f4e901851069be5557ec0f3dad72dc954 (patch)
tree436cc339242a2c169aa35ac9b69d5f3893fe403d
parent7ee30db078e15913c0a50016deb33113f06aa5dd (diff)
Fix other QIODevice read functions stopping at null bytes.
-rw-r--r--PySide/QtCore/typesystem_core.xml2
-rw-r--r--tests/QtCore/bug_994.py4
2 files changed, 5 insertions, 1 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml
index 8271a1b3e..f450a2901 100644
--- a/PySide/QtCore/typesystem_core.xml
+++ b/PySide/QtCore/typesystem_core.xml
@@ -2066,7 +2066,7 @@
%out = -1;
} else {
%out = PyString_GET_SIZE((PyObject*)%PYARG_0);
- qstrncpy(%1, PyString_AS_STRING((PyObject*)%PYARG_0), %out + 1);
+ memcpy(%1, PyString_AS_STRING((PyObject*)%PYARG_0), %out);
}
</conversion-rule>
</modify-argument>
diff --git a/tests/QtCore/bug_994.py b/tests/QtCore/bug_994.py
index 74e352c8f..5f12a967b 100644
--- a/tests/QtCore/bug_994.py
+++ b/tests/QtCore/bug_994.py
@@ -5,6 +5,9 @@ class MyIODevice (QIODevice):
def readData(self, amount):
return "\0a" * (amount/2)
+ def readLineData(self, maxSize):
+ return "\0b" * 4
+
def atEnd(self):
return False
@@ -15,6 +18,7 @@ class TestBug944 (unittest.TestCase):
device.open(QIODevice.ReadOnly)
s = QTextStream(device)
self.assertEqual(s.read(4), "\0a\0a")
+ self.assertEqual(device.readLine(), "\0b\0b\0b\0b")
if __name__ == "__main__":
unittest.main()