fix(Message::appendText): QRegularExpression whitespace bug #376
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello, sending a fix for a bug I ran into recently with Qt6 (https://phabricator.wikimedia.org/T383968)
It turns out that unlike QRegExp, when a QRegularExpression starts with \s, it may match whitespace including newlines.
So when looking for the start of a section, we might match "\n\n == January 2025 ==" instead of " == January 2025 =="
Then the logic that tries to skip past the header, would instead skip past the first \n, which is still before the header. Then we would think the target header is the start of the next section, and we would end up inserting a message just before the section it was intended to be appended to.
QRegularExpression is available since Qt 5.0 and is recommended. This gets rid of the old QRegExp and fixes the QRegularExpression usage in message.cpp (there's other uses of QRexExp/QRegularExpression elsewhere, but I haven't checked them for now)
Also includes some minor formatting changes. Let me know if I missed anything or if you'd like me to make some changes to the PR.
Cheers