From kde-commits Sun Nov 30 20:33:21 2014 From: Kai Uwe Broulik Date: Sun, 30 Nov 2014 20:33:21 +0000 To: kde-commits Subject: [plasma-workspace] dataengines/notifications: Escape ampersands in notifications Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=141737961210743 Git commit b68652358f433b5be42e2055c8b7eb7432e3b7a4 by Kai Uwe Broulik. Committed on 30/11/2014 at 20:32. Pushed by broulik into branch 'master'. Escape ampersands in notifications REVIEW: 121296 M +5 -1 dataengines/notifications/notificationsengine.cpp http://commits.kde.org/plasma-workspace/b68652358f433b5be42e2055c8b7eb7432e= 3b7a4 diff --git a/dataengines/notifications/notificationsengine.cpp b/dataengine= s/notifications/notificationsengine.cpp index 8bc50e7..d4b7f19 100644 --- a/dataengines/notifications/notificationsengine.cpp +++ b/dataengines/notifications/notificationsengine.cpp @@ -215,8 +215,12 @@ uint NotificationsEngine::Notify(const QString &app_na= me, uint replaces_id, = const QString source =3D QString("notification %1").arg(id); = - QString bodyFinal =3D partOf =3D=3D 0 ? body : _body; + QString bodyFinal =3D (partOf =3D=3D 0 ? body : _body); bodyFinal =3D bodyFinal.replace(QLatin1String("\n"), QLatin1String("")); + // This fancy RegExp escapes every occurence of & since QtQuick Text w= ill blatantly cut off + // text where it finds a stray ampersand. + // Only &{apos, quot, gt, lt, amp}; as well as { character referen= ces will be allowed + bodyFinal.replace(QRegularExpression("&(?!(?:apos|quot|[gl]t|amp);|#)"= ), QLatin1String("&")); = Plasma::DataEngine::Data notificationData; notificationData.insert("id", QString::number(id));