2017-01-25 13:11:38 |
Robie Basak |
description |
# Test Case
$ python3
>>> from PyQt5.QtGui import QTextDocument
>>> d = QTextDocument()
>>> d.setPlainText('÷ Σ')
>>> d.toPlainText()
'÷ £'
This should not happen. d.toPlainText() should return '÷ Σ'.
# Impact
The bug was initially reported upstream: https://www.riverbankcomputing.com/pipermail/pyqt/2015-March/035627.html.
Some time ago I got the same issue in ReText CI, which uses Ubuntu Trusty. The test failure was observed at https://travis-ci.org/retext-project/retext/builds/186945524. With the proposed upload, the failure disappears.
This can also affect other editors which allow to input unicode, like eric.
# Proposed Fix
The fix which I am uploading to -proposed is taken from this upstream changeset:
2014-04-15 Phil Thompson <phil@riverbankcomputing.com>
* qpy/QtCore/qpycore_qstring.cpp:
Fixed a bug in the conversion of QStrings with surrogate pairs.
[16a9c19d08cf] <5.2-maint>
It is present in all releases since v5.3.
# Regression Potential
The patch is small, should not introduce any regressions. |
# Test Case
$ python3
>>> from PyQt5.QtGui import QTextDocument
>>> d = QTextDocument()
>>> d.setPlainText('÷ Σ')
>>> d.toPlainText()
'÷ £'
This should not happen. d.toPlainText() should return '÷ Σ'.
# Impact
The bug was initially reported upstream: https://www.riverbankcomputing.com/pipermail/pyqt/2015-March/035627.html.
Some time ago I got the same issue in ReText CI, which uses Ubuntu Trusty. The test failure was observed at https://travis-ci.org/retext-project/retext/builds/186945524. With the proposed upload, the failure disappears.
This can also affect other editors which allow to input unicode, like eric.
# Proposed Fix
The fix which I am uploading to -proposed is taken from this upstream changeset:
2014-04-15 Phil Thompson <phil@riverbankcomputing.com>
* qpy/QtCore/qpycore_qstring.cpp:
Fixed a bug in the conversion of QStrings with surrogate pairs.
[16a9c19d08cf] <5.2-maint>
It is present in all releases since v5.3.
# Regression Potential
The patch is small, should not introduce any regressions. If there is a regression, it is likely to be in the area that converts QStrings to Python Unicode objects, with the edge cases being different length strings between ASCII, 16-bit code points and code points that require surrogate pairs. |
|