Hello community,

here is the log from the commit of package ki18n for openSUSE:Factory checked 
in at 2017-03-03 15:43:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ki18n (Old)
 and      /work/SRC/openSUSE:Factory/.ki18n.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ki18n"

Fri Mar  3 15:43:05 2017 rev:41 rq:461428 version:5.31.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ki18n/ki18n.changes      2017-02-03 
17:45:03.966154163 +0100
+++ /work/SRC/openSUSE:Factory/.ki18n.new/ki18n.changes 2017-03-03 
15:43:06.423984062 +0100
@@ -1,0 +2,7 @@
+Thu Feb  9 09:29:10 UTC 2017 - hrvoje.sen...@gmail.com
+
+- Update to 5.31.0
+  * For more details please see:
+    https://www.kde.org/announcements/kde-frameworks-5.31.0.php
+
+-------------------------------------------------------------------

Old:
----
  ki18n-5.30.0.tar.xz

New:
----
  ki18n-5.31.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ki18n.spec ++++++
--- /var/tmp/diff_new_pack.Qya6ZB/_old  2017-03-03 15:43:07.155880444 +0100
+++ /var/tmp/diff_new_pack.Qya6ZB/_new  2017-03-03 15:43:07.159879878 +0100
@@ -18,9 +18,9 @@
 
 %bcond_without lang
 %define lname   libKF5I18n5
-%define _tar_path 5.30
+%define _tar_path 5.31
 Name:           ki18n
-Version:        5.30.0
+Version:        5.31.0
 Release:        0
 BuildRequires:  cmake >= 3.0
 BuildRequires:  extra-cmake-modules >= %{_tar_path}
@@ -28,11 +28,11 @@
 BuildRequires:  gettext-runtime
 BuildRequires:  kf5-filesystem
 BuildRequires:  python
-BuildRequires:  cmake(Qt5Concurrent) >= 5.5.0
-BuildRequires:  cmake(Qt5Core) >= 5.5.0
-BuildRequires:  cmake(Qt5Qml) >= 5.5.0
-BuildRequires:  cmake(Qt5Script) >= 5.5.0
-BuildRequires:  cmake(Qt5Test) >= 5.5.0
+BuildRequires:  cmake(Qt5Concurrent) >= 5.6.0
+BuildRequires:  cmake(Qt5Core) >= 5.6.0
+BuildRequires:  cmake(Qt5Qml) >= 5.6.0
+BuildRequires:  cmake(Qt5Script) >= 5.6.0
+BuildRequires:  cmake(Qt5Test) >= 5.6.0
 Summary:        KDE Gettext-based UI text internationalization
 License:        LGPL-2.1+
 Group:          System/GUI/KDE

++++++ ki18n-5.30.0.tar.xz -> ki18n-5.31.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/CMakeLists.txt 
new/ki18n-5.31.0/CMakeLists.txt
--- old/ki18n-5.30.0/CMakeLists.txt     2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/CMakeLists.txt     2017-02-05 11:59:21.000000000 +0100
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.30.0") # handled by release scripts
+set(KF5_VERSION "5.31.0") # handled by release scripts
 project(KI18n VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.30.0  NO_MODULE)
+find_package(ECM 5.31.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -26,7 +26,7 @@
   SOVERSION 5)
 
 # Dependencies
-set(REQUIRED_QT_VERSION 5.5.0)
+set(REQUIRED_QT_VERSION 5.6.0)
 
 find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/autotests/klocalizedstringtest.cpp 
new/ki18n-5.31.0/autotests/klocalizedstringtest.cpp
--- old/ki18n-5.30.0/autotests/klocalizedstringtest.cpp 2017-01-09 
09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/autotests/klocalizedstringtest.cpp 2017-02-05 
11:59:21.000000000 +0100
@@ -43,7 +43,7 @@
     m_hasFrench = true;
     if (m_hasFrench) {
         setlocale(LC_ALL, "fr_FR.utf8");
-        if (setlocale(LC_ALL, NULL) != QByteArray("fr_FR.utf8")) {
+        if (setlocale(LC_ALL, nullptr) != QByteArray("fr_FR.utf8")) {
             qDebug() << "Failed to set locale to fr_FR.utf8.";
             m_hasFrench = false;
         }
@@ -471,7 +471,7 @@
 void KLocalizedStringTest::translateQt()
 {
     KLocalizedString::insertQtDomain("ki18n-test-qt");
-    QString result = KLocalizedString::translateQt("QPrintPreviewDialog", 
"Landscape", 0, 0);
+    QString result = KLocalizedString::translateQt("QPrintPreviewDialog", 
"Landscape", nullptr, 0);
     // When we use the default language, translateQt returns an empty string.
     QString expected = m_hasFrench ? QString("Paysage") : QString();
     QCOMPARE(result, expected);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/autotests/ktranscriptcleantest.cpp 
new/ki18n-5.31.0/autotests/ktranscriptcleantest.cpp
--- old/ki18n-5.30.0/autotests/ktranscriptcleantest.cpp 2017-01-09 
09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/autotests/ktranscriptcleantest.cpp 2017-02-05 
11:59:21.000000000 +0100
@@ -29,7 +29,7 @@
 QTEST_MAIN(KTranscriptCleanTest)
 
 KTranscriptCleanTest::KTranscriptCleanTest()
-    : m_transcript(0)
+    : m_transcript(nullptr)
 {
 }
 
@@ -41,7 +41,7 @@
 void KTranscriptCleanTest::cleanup()
 {
     autotestDestroyKTranscriptImp();
-    m_transcript = 0;
+    m_transcript = nullptr;
 }
 
 void KTranscriptCleanTest::test_data()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/autotests/ktranscripttest.cpp 
new/ki18n-5.31.0/autotests/ktranscripttest.cpp
--- old/ki18n-5.30.0/autotests/ktranscripttest.cpp      2017-01-09 
09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/autotests/ktranscripttest.cpp      2017-02-05 
11:59:21.000000000 +0100
@@ -37,7 +37,7 @@
 }
 
 KTranscriptTest::KTranscriptTest()
-    : m_transcript(0)
+    : m_transcript(nullptr)
 {
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/autotests/pythontest.py 
new/ki18n-5.31.0/autotests/pythontest.py
--- old/ki18n-5.30.0/autotests/pythontest.py    1970-01-01 01:00:00.000000000 
+0100
+++ new/ki18n-5.31.0/autotests/pythontest.py    2017-02-05 11:59:21.000000000 
+0100
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+#-*- coding: utf-8 -*-
+
+from __future__ import print_function
+
+import sys
+
+sys.path.append(sys.argv[1])
+
+from PyQt5 import QtCore
+from PyQt5 import QtWidgets
+
+from PyKF5 import KI18n
+
+def main():
+    app = QtWidgets.QApplication(sys.argv)
+
+    assert(KI18n.i18n("foo".encode('utf-8')) == "foo")
+
+if __name__ == '__main__':
+    sys.exit(main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/cmake/rules_PyKF5.py 
new/ki18n-5.31.0/cmake/rules_PyKF5.py
--- old/ki18n-5.30.0/cmake/rules_PyKF5.py       1970-01-01 01:00:00.000000000 
+0100
+++ new/ki18n-5.31.0/cmake/rules_PyKF5.py       2017-02-05 11:59:21.000000000 
+0100
@@ -0,0 +1,201 @@
+#=============================================================================
+# Copyright 2016 by Shaheed Haque (srha...@theiet.org)
+# Copyright 2016 Stephen Kelly <steve...@gmail.com>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#=============================================================================
+
+import os, sys
+
+import rules_engine
+sys.path.append(os.path.dirname(os.path.dirname(rules_engine.__file__)))
+import Qt5Ruleset
+
+from clang.cindex import CursorKind
+
+def i18n_ellipsis(container, function, sip, matcher):
+    if len(sip["template_parameters"]) == 0:
+        sip["parameters"] += ["..."]
+    else:
+        sip["name"] = ""
+
+def i18np_ellipsis(container, function, sip, matcher):
+    if len(sip["template_parameters"]) == 1:
+        sip["parameters"][-1] = "..."
+        sip["template_parameters"] = ""
+    else:
+        sip["name"] = ""
+
+def local_function_rules():
+    return [
+        ["KLocalizedString", "subs", ".*", ".*", ".*unsigned int.*", 
rules_engine.function_discard],
+        ["KLocalizedString", "subs", ".*", ".*", ".*long.*", 
rules_engine.function_discard],
+        ["KLocalizedString", "subs", ".*", ".*", ".*unsigned long.*", 
rules_engine.function_discard],
+        ["KLocalizedString", "subs", ".*", ".*", ".*unsigned long long.*", 
rules_engine.function_discard],
+        ["KLocalizedString", "subs", ".*", ".*", ".*QChar.*", 
rules_engine.function_discard],
+        ["Kuit", "setupForDomain", ".*", ".*", ".*", 
rules_engine.function_discard],
+        ["KuitSetup", "setTagPattern", ".*", ".*", ".*", 
rules_engine.function_discard],
+
+        ["klocalizedstring.h", "i18n", ".*", ".*", ".*", i18n_ellipsis],
+        ["klocalizedstring.h", "i18nc", ".*", ".*", ".*", i18n_ellipsis],
+        ["klocalizedstring.h", "i18np", ".*", ".*", ".*", i18np_ellipsis],
+        ["klocalizedstring.h", "i18ncp", ".*", ".*", ".*", i18np_ellipsis],
+    ]
+
+def local_typedef_rules():
+    return [
+        [".*", "TagFormatter", rules_engine.typedef_discard],
+    ]
+
+def _klocalizedstring_add_template_code(filename, sip, entry):
+    sip["code"] = """
+%ModuleCode
+QString klocalizedstring_i18n_template(KLocalizedString base, PyObject 
*list,int *sipIsErr) {
+    KLocalizedString result = base;
+    QString *arg;
+    long long_arg;
+    double double_arg;
+    int iserr = 0;
+
+    for (int i=0; i < PyTuple_Size(list); i++) {
+        PyObject *pyarg = PyTuple_GET_ITEM (list, i);
+#if PY_MAJOR_VERSION >= 3
+        if (PyLong_Check(pyarg)) {
+            long_arg = PyLong_AsLong(pyarg);
+#else
+        if (PyInt_Check(pyarg)) {
+            long_arg = PyInt_AsLong(pyarg);
+#endif
+            if (long_arg==-1 && PyErr_Occurred()) {
+                *sipIsErr = 1;
+                return QString();
+            }
+            result = result.subs(long_arg);
+
+#if PY_MAJOR_VERSION >= 3
+        } else if (PyNumber_Check(pyarg)) {
+            PyObject *long_py = PyNumber_Long(pyarg);
+            long_arg = PyLong_AsLong(long_py);
+            Py_DECREF(long_py);
+#else
+        } else if (PyLong_Check(pyarg)) {
+            long_arg = PyLong_AsLong(pyarg);
+#endif
+            if (long_arg==-1 && PyErr_Occurred()) {
+                *sipIsErr = 1;
+                return QString();
+            }
+            result = result.subs(long_arg);
+
+        } else if (PyFloat_Check(pyarg)) {
+            double_arg = PyFloat_AsDouble(pyarg);
+            result = result.subs(double_arg);
+
+        } else {
+          int state = 0;
+          arg = (QString *)sipForceConvertToType(pyarg, sipType_QString, NULL, 
SIP_NOT_NONE, &state, &iserr);
+          if (iserr) {
+              *sipIsErr = 1;
+              return QString();
+          }
+
+          result = result.subs(*arg);
+          sipReleaseType(arg,sipType_QString,state);
+          arg = 0;
+          }
+    }
+
+    return result.toString();
+}
+%End\n
+"""
+
+class RuleSet(Qt5Ruleset.RuleSet):
+    """
+    SIP file generator rules. This is a set of (short, non-public) functions
+    and regular expression-based matching rules.
+    """
+    def __init__(self):
+        Qt5Ruleset.RuleSet.__init__(self)
+        self._fn_db = rules_engine.FunctionRuleDb(lambda: 
local_function_rules() + Qt5Ruleset.function_rules())
+        self._typedef_db = rules_engine.TypedefRuleDb(lambda: 
local_typedef_rules())
+        self._methodcode = rules_engine.MethodCodeDb({
+            "klocalizedstring.h": {
+                "i18n":
+                {
+                    "code":
+                    """
+                    %MethodCode
+                        QString result = 
klocalizedstring_i18n_template(ki18n(a0),a1,&sipIsErr);
+                        if (!sipIsErr) {
+                            sipRes = new QString(result);
+                        }
+                    %End
+                    """
+                },
+                "i18nc":
+                {
+                    "code":
+                    """
+                    %MethodCode
+                        QString result = 
klocalizedstring_i18n_template(ki18nc(a0,a1),a2,&sipIsErr);
+                        if (!sipIsErr) {
+                            sipRes = new QString(result);
+                        }
+                    %End
+                    """
+                },
+                "i18np":
+                {
+                    "code":
+                    """
+                    %MethodCode
+                        QString result = 
klocalizedstring_i18n_template(ki18np(a0,a1),a2,&sipIsErr);
+                        if (!sipIsErr) {
+                            sipRes = new QString(result);
+                        }
+                    %End
+                    """
+                },
+                "i18ncp":
+                {
+                    "code":
+                    """
+                    %MethodCode
+                        QString result = 
klocalizedstring_i18n_template(ki18ncp(a0,a1,a2),a3,&sipIsErr);
+                        if (!sipIsErr) {
+                            sipRes = new QString(result);
+                        }
+                    %End
+                    """
+                },
+            }
+        })
+
+        self._modulecode = rules_engine.ModuleCodeDb({
+            "klocalizedstring.h":
+            {
+                "code": _klocalizedstring_add_template_code,
+            },
+            })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/po/gl/ki18n5.po 
new/ki18n-5.31.0/po/gl/ki18n5.po
--- old/ki18n-5.30.0/po/gl/ki18n5.po    2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/po/gl/ki18n5.po    2017-02-05 11:59:21.000000000 +0100
@@ -250,7 +250,7 @@
 #, kde-format
 msgctxt "keyboard-key-name"
 msgid "Shift"
-msgstr "Maiúsc"
+msgstr "Maiús"
 
 #: kuitmarkup.cpp:357
 #, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/CMakeLists.txt 
new/ki18n-5.31.0/src/CMakeLists.txt
--- old/ki18n-5.30.0/src/CMakeLists.txt 2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/src/CMakeLists.txt 2017-02-05 11:59:21.000000000 +0100
@@ -37,6 +37,26 @@
     REQUIRED_HEADERS KI18n_HEADERS
 )
 
+find_package(PythonModuleGeneration)
+
+if (PythonModuleGeneration_FOUND)
+  ecm_generate_python_binding(
+    TARGET KF5::I18n
+    PYTHONNAMESPACE PyKF5
+    MODULENAME KI18n
+    RULES_FILE "${CMAKE_SOURCE_DIR}/cmake/rules_PyKF5.py"
+    INSTALL_DIR_SUFFIX ${KDE_INSTALL_PYTHONBINDINGSDIR}
+    SIP_DEPENDS
+      QtCore/QtCoremod.sip
+    HEADERS
+      klocalizedcontext.h
+      klocalizedstring.h
+      klocalizedtranslator.h
+      kuitmarkup.h
+      kuitsetup.h
+  )
+endif()
+
 install(FILES
     ${KI18n_HEADERS}
     ${CMAKE_CURRENT_BINARY_DIR}/ki18n_export.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/gettext.h 
new/ki18n-5.31.0/src/gettext.h
--- old/ki18n-5.30.0/src/gettext.h      2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/src/gettext.h      2017-02-05 11:59:21.000000000 +0100
@@ -119,7 +119,7 @@
         (msgctxt_len + msgid_len <= sizeof(buf)
          ? buf
          : (char *) malloc(msgctxt_len + msgid_len));
-    if (msg_ctxt_id != NULL)
+    if (msg_ctxt_id != nullptr)
 #endif
     {
         memcpy(msg_ctxt_id, msgctxt, msgctxt_len - 1);
@@ -169,7 +169,7 @@
         (msgctxt_len + msgid_len <= sizeof(buf)
          ? buf
          : (char *) malloc(msgctxt_len + msgid_len));
-    if (msg_ctxt_id != NULL)
+    if (msg_ctxt_id != nullptr)
 #endif
     {
         memcpy(msg_ctxt_id, msgctxt, msgctxt_len - 1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/kcatalog.cpp 
new/ki18n-5.31.0/src/kcatalog.cpp
--- old/ki18n-5.30.0/src/kcatalog.cpp   2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/src/kcatalog.cpp   2017-02-05 11:59:21.000000000 +0100
@@ -45,7 +45,7 @@
 extern "C" int Q_DECL_IMPORT _nl_msg_cat_cntr;
 #endif
 
-static char *langenv = 0;
+static char *langenv = nullptr;
 static const int langenvMaxlen = 42;
 // = "LANGUAGE=" + 32 chars for language code + terminating zero
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/klocalizedcontext.h 
new/ki18n-5.31.0/src/klocalizedcontext.h
--- old/ki18n-5.30.0/src/klocalizedcontext.h    2017-01-09 09:18:05.000000000 
+0100
+++ new/ki18n-5.31.0/src/klocalizedcontext.h    2017-02-05 11:59:21.000000000 
+0100
@@ -59,7 +59,7 @@
     Q_PROPERTY(QString translationDomain READ translationDomain WRITE 
setTranslationDomain NOTIFY translationDomainChanged)
 
 public:
-    explicit KLocalizedContext(QObject *parent = Q_NULLPTR);
+    explicit KLocalizedContext(QObject *parent = nullptr);
     ~KLocalizedContext() Q_DECL_OVERRIDE;
 
     QString translationDomain() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/klocalizedstring.cpp 
new/ki18n-5.31.0/src/klocalizedstring.cpp
--- old/ki18n-5.30.0/src/klocalizedstring.cpp   2017-01-09 09:18:05.000000000 
+0100
+++ new/ki18n-5.31.0/src/klocalizedstring.cpp   2017-02-05 11:59:21.000000000 
+0100
@@ -320,7 +320,7 @@
     , scriptModulesToLoad()
 
     , loadTranscriptCalled(false)
-    , ktrs(NULL)
+    , ktrs(nullptr)
 
     , formatters()
 
@@ -641,7 +641,7 @@
 
     // Execute any scripted post calls; they cannot modify the final result,
     // but are used to set states.
-    if (s->ktrs != NULL) {
+    if (s->ktrs != nullptr) {
         QStringList pcalls = s->ktrs->postCalls(language);
         foreach (const QString &pcall, pcalls) {
             postTranscript(pcall, language, country, finalTranslation,
@@ -810,7 +810,7 @@
 {
     KLocalizedStringPrivateStatics *s = staticsKLSP();
 
-    if (s->ktrs == NULL) {
+    if (s->ktrs == nullptr) {
         // Scripting engine not available.
         return QString();
     }
@@ -1072,7 +1072,7 @@
 {
     KLocalizedStringPrivateStatics *s = staticsKLSP();
 
-    if (s->ktrs == NULL) {
+    if (s->ktrs == nullptr) {
         // Scripting engine not available.
         // (Though this cannot happen, we wouldn't be here then.)
         return QString();
@@ -1392,7 +1392,7 @@
     QMutexLocker lock(&s->klspMutex);
 
     s->loadTranscriptCalled = true;
-    s->ktrs = NULL; // null indicates that Transcript is not available
+    s->ktrs = nullptr; // null indicates that Transcript is not available
 
     // QPluginLoader is just used to find the plugin
     QPluginLoader loader(QStringLiteral("kf5/ktranscript"));
@@ -1501,18 +1501,18 @@
         if (comment && comment[0]) {
             // Comment given, go for context call.
             KLocalizedStringPrivate::translateRaw(domain, s->languages,
-                                                  comment, sourceText, 0, 0,
+                                                  comment, sourceText, 
nullptr, 0,
                                                   language, translation);
         } else {
             // Comment not given, go for try-fallback with context.
             if (context && context[0]) {
                 KLocalizedStringPrivate::translateRaw(domain, s->languages,
-                                                      context, sourceText, 0, 
0,
+                                                      context, sourceText, 
nullptr, 0,
                                                       language, translation);
             }
             if (language.isEmpty() || language == s->codeLanguage) {
                 KLocalizedStringPrivate::translateRaw(domain, s->languages,
-                                                      0, sourceText, 0, 0,
+                                                      nullptr, sourceText, 
nullptr, 0,
                                                       language, translation);
             }
         }
@@ -1556,40 +1556,40 @@
 
 KLocalizedString ki18n(const char *text)
 {
-    return KLocalizedString(NULL, NULL, text, NULL, false);
+    return KLocalizedString(nullptr, nullptr, text, nullptr, false);
 }
 
 KLocalizedString ki18nc(const char *context, const char *text)
 {
-    return KLocalizedString(NULL, context, text, NULL, false);
+    return KLocalizedString(nullptr, context, text, nullptr, false);
 }
 
 KLocalizedString ki18np(const char *singular, const char *plural)
 {
-    return KLocalizedString(NULL, NULL, singular, plural, false);
+    return KLocalizedString(nullptr, nullptr, singular, plural, false);
 }
 
 KLocalizedString ki18ncp(const char *context,
                          const char *singular, const char *plural)
 {
-    return KLocalizedString(NULL, context, singular, plural, false);
+    return KLocalizedString(nullptr, context, singular, plural, false);
 }
 
 KLocalizedString ki18nd(const char *domain, const char *text)
 {
-    return KLocalizedString(domain, NULL, text, NULL, false);
+    return KLocalizedString(domain, nullptr, text, nullptr, false);
 }
 
 KLocalizedString ki18ndc(const char *domain, const char *context,
                          const char *text)
 {
-    return KLocalizedString(domain, context, text, NULL, false);
+    return KLocalizedString(domain, context, text, nullptr, false);
 }
 
 KLocalizedString ki18ndp(const char *domain,
                          const char *singular, const char *plural)
 {
-    return KLocalizedString(domain, NULL, singular, plural, false);
+    return KLocalizedString(domain, nullptr, singular, plural, false);
 }
 
 KLocalizedString ki18ndcp(const char *domain, const char *context,
@@ -1600,40 +1600,40 @@
 
 KLocalizedString kxi18n(const char *text)
 {
-    return KLocalizedString(NULL, NULL, text, NULL, true);
+    return KLocalizedString(nullptr, nullptr, text, nullptr, true);
 }
 
 KLocalizedString kxi18nc(const char *context, const char *text)
 {
-    return KLocalizedString(NULL, context, text, NULL, true);
+    return KLocalizedString(nullptr, context, text, nullptr, true);
 }
 
 KLocalizedString kxi18np(const char *singular, const char *plural)
 {
-    return KLocalizedString(NULL, NULL, singular, plural, true);
+    return KLocalizedString(nullptr, nullptr, singular, plural, true);
 }
 
 KLocalizedString kxi18ncp(const char *context,
                           const char *singular, const char *plural)
 {
-    return KLocalizedString(NULL, context, singular, plural, true);
+    return KLocalizedString(nullptr, context, singular, plural, true);
 }
 
 KLocalizedString kxi18nd(const char *domain, const char *text)
 {
-    return KLocalizedString(domain, NULL, text, NULL, true);
+    return KLocalizedString(domain, nullptr, text, nullptr, true);
 }
 
 KLocalizedString kxi18ndc(const char *domain, const char *context,
                           const char *text)
 {
-    return KLocalizedString(domain, context, text, NULL, true);
+    return KLocalizedString(domain, context, text, nullptr, true);
 }
 
 KLocalizedString kxi18ndp(const char *domain,
                           const char *singular, const char *plural)
 {
-    return KLocalizedString(domain, NULL, singular, plural, true);
+    return KLocalizedString(domain, nullptr, singular, plural, true);
 }
 
 KLocalizedString kxi18ndcp(const char *domain, const char *context,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/klocalizedstring.h 
new/ki18n-5.31.0/src/klocalizedstring.h
--- old/ki18n-5.30.0/src/klocalizedstring.h     2017-01-09 09:18:05.000000000 
+0100
+++ new/ki18n-5.31.0/src/klocalizedstring.h     2017-02-05 11:59:21.000000000 
+0100
@@ -603,7 +603,7 @@
      *             with roundtrip TS->PO->TS through
      *             Qt's \c lupdate and \c lconvert commands.
      */
-    static QString translateQt(const char *context, const char *text,
+    KI18N_DEPRECATED static QString translateQt(const char *context, const 
char *text,
                                const char *comment, int n) Q_REQUIRED_RESULT;
 
     /**
@@ -616,7 +616,7 @@
      *
      * \deprecated
      */
-    static void insertQtDomain(const char *domain);
+    KI18N_DEPRECATED static void insertQtDomain(const char *domain);
 
     /**
      * Remove a domain from Qt translation lookup.
@@ -634,7 +634,7 @@
      *
      * \deprecated
      */
-    static void removeQtDomain(const char *domain);
+    KI18N_DEPRECATED static void removeQtDomain(const char *domain);
 
 private:
     KLocalizedString(const char *domain,
@@ -1013,7 +1013,7 @@
  * \param comment Qt equivalent of disambiguation context
  * \return translated string
  */
-inline QString tr2i18n(const char *text, const char *comment = 0)
+inline QString tr2i18n(const char *text, const char *comment = nullptr)
 {
     if (comment && comment[0] && text && text[0]) {
         return ki18nc(comment, text).toString();
@@ -1035,7 +1035,7 @@
  * \return translated string
  */
 inline QString tr2i18nd(const char *domain,
-                        const char *text, const char *comment = 0)
+                        const char *text, const char *comment = nullptr)
 {
     if (comment && comment[0] && text && text[0]) {
         return ki18ndc(domain, comment, text).toString();
@@ -1055,7 +1055,7 @@
  * \param comment Qt equivalent of disambiguation context
  * \return translated string
  */
-inline QString tr2xi18n(const char *text, const char *comment = 0)
+inline QString tr2xi18n(const char *text, const char *comment = nullptr)
 {
     if (comment && comment[0] && text && text[0]) {
         return kxi18nc(comment, text).toString();
@@ -1077,7 +1077,7 @@
  * \return translated string
  */
 inline QString tr2xi18nd(const char *domain,
-                         const char *text, const char *comment = 0)
+                         const char *text, const char *comment = nullptr)
 {
     if (comment && comment[0] && text && text[0]) {
         return kxi18ndc(domain, comment, text).toString();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/klocalizedtranslator.h 
new/ki18n-5.31.0/src/klocalizedtranslator.h
--- old/ki18n-5.30.0/src/klocalizedtranslator.h 2017-01-09 09:18:05.000000000 
+0100
+++ new/ki18n-5.31.0/src/klocalizedtranslator.h 2017-02-05 11:59:21.000000000 
+0100
@@ -66,9 +66,9 @@
 {
     Q_OBJECT
 public:
-    explicit KLocalizedTranslator(QObject *parent = 0);
+    explicit KLocalizedTranslator(QObject *parent = nullptr);
     virtual ~KLocalizedTranslator();
-    QString translate(const char *context, const char *sourceText, const char 
*disambiguation = 0, int n = -1) const Q_DECL_OVERRIDE;
+    QString translate(const char *context, const char *sourceText, const char 
*disambiguation = nullptr, int n = -1) const Q_DECL_OVERRIDE;
 
     /**
      * Sets the @p translationDomain to be used.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/ktranscript.cpp 
new/ki18n-5.31.0/src/ktranscript.cpp
--- old/ki18n-5.30.0/src/ktranscript.cpp        2017-01-09 09:18:05.000000000 
+0100
+++ new/ki18n-5.31.0/src/ktranscript.cpp        2017-02-05 11:59:21.000000000 
+0100
@@ -90,7 +90,7 @@
 {
     Q_OBJECT
 public:
-    explicit Scriptface(const TsConfigGroup &config, QObject *parent = 0);
+    explicit Scriptface(const TsConfigGroup &config, QObject *parent = 
nullptr);
     ~Scriptface();
 
     // Interface functions.
@@ -431,7 +431,7 @@
 
 // ----------------------------------------------------------------------
 // Test build creation/destruction hooks
-static KTranscriptImp *s_transcriptInstance = 0;
+static KTranscriptImp *s_transcriptInstance = nullptr;
 
 KTranscriptImp *globalKTI()
 {
@@ -440,16 +440,16 @@
 
 KTranscript *autotestCreateKTranscriptImp()
 {
-    Q_ASSERT(s_transcriptInstance == 0);
+    Q_ASSERT(s_transcriptInstance == nullptr);
     s_transcriptInstance = new KTranscriptImp;
     return s_transcriptInstance;
 }
 
 void autotestDestroyKTranscriptImp()
 {
-    Q_ASSERT(s_transcriptInstance != 0);
+    Q_ASSERT(s_transcriptInstance != nullptr);
     delete s_transcriptInstance;
-    s_transcriptInstance = 0;
+    s_transcriptInstance = nullptr;
 }
 
 #else
@@ -698,7 +698,7 @@
 }
 
 Scriptface::Scriptface(const TsConfigGroup &config_, QObject *parent)
-    : QObject(parent), scriptEngine(new QScriptEngine(this)), 
fallbackRequest(0), config(config_)
+    : QObject(parent), scriptEngine(new QScriptEngine(this)), 
fallbackRequest(nullptr), config(config_)
 {
     QScriptEngine::QObjectWrapOptions wrapOptions;
     wrapOptions |= QScriptEngine::ExcludeSuperClassContents;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/kuitmarkup.cpp 
new/ki18n-5.31.0/src/kuitmarkup.cpp
--- old/ki18n-5.30.0/src/kuitmarkup.cpp 2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/src/kuitmarkup.cpp 2017-02-05 11:59:21.000000000 +0100
@@ -463,7 +463,7 @@
     if (patterns.contains(attribKey) && 
patterns.value(attribKey).contains(format)) {
         QString modText;
         Kuit::TagFormatter formatter = 
formatters.value(attribKey).value(format);
-        if (formatter != NULL) {
+        if (formatter != nullptr) {
             modText = formatter(languages, name, attributes, text, tagPath, 
format);
         } else {
             modText = text;
@@ -709,12 +709,12 @@
                 HI18NC("tag-format-pattern <> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(INTERNAL_TOP_TAG_NAME, QString(), RichText,
                 HI18NC("tag-format-pattern <> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Title
     setTagClass(TITLE, StructTag);
@@ -729,12 +729,12 @@
                        // - the proper quotes, those used in msgid are 
English-standard
                        // - the <i> and <b> tags, does your language script 
work well with them?
                        "== %1 =="),
-                NULL, 2);
+                nullptr, 2);
     SET_PATTERN(TITLE, QString(), RichText,
                 ki18nc("tag-format-pattern <title> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<h2>%1</h2>"),
-                NULL, 2);
+                nullptr, 2);
 
     // -------> Subtitle
     setTagClass(QSL("subtitle"), StructTag);
@@ -742,12 +742,12 @@
                 ki18nc("tag-format-pattern <subtitle> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "~ %1 ~"),
-                NULL, 2);
+                nullptr, 2);
     SET_PATTERN(QSL("subtitle"), QString(), RichText,
                 ki18nc("tag-format-pattern <subtitle> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<h3>%1</h3>"),
-                NULL, 2);
+                nullptr, 2);
 
     // -------> Para
     setTagClass(QSL("para"), StructTag);
@@ -755,12 +755,12 @@
                 ki18nc("tag-format-pattern <para> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 2);
+                nullptr, 2);
     SET_PATTERN(QSL("para"), QString(), RichText,
                 ki18nc("tag-format-pattern <para> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<p>%1</p>"),
-                NULL, 2);
+                nullptr, 2);
 
     // -------> List
     setTagClass(QSL("list"), StructTag);
@@ -768,12 +768,12 @@
                 ki18nc("tag-format-pattern <list> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 1);
+                nullptr, 1);
     SET_PATTERN(QSL("list"), QString(), RichText,
                 ki18nc("tag-format-pattern <list> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<ul>%1</ul>"),
-                NULL, 1);
+                nullptr, 1);
 
     // -------> Item
     setTagClass(QSL("item"), StructTag);
@@ -781,84 +781,84 @@
                 ki18nc("tag-format-pattern <item> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "  * %1"),
-                NULL, 1);
+                nullptr, 1);
     SET_PATTERN(QSL("item"), QString(), RichText,
                 ki18nc("tag-format-pattern <item> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<li>%1</li>"),
-                NULL, 1);
+                nullptr, 1);
 
     // -------> Note
     SET_PATTERN(NOTE, QString(), PlainText,
                 ki18nc("tag-format-pattern <note> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "Note: %1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(NOTE, QString(), RichText,
                 ki18nc("tag-format-pattern <note> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<i>Note</i>: %1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(NOTE, QSL("label"), PlainText,
                 ki18nc("tag-format-pattern <note label=> plain\n"
                        "%1 is the text, %2 is the note label",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%2: %1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(NOTE, QSL("label"), RichText,
                 ki18nc("tag-format-pattern <note label=> rich\n"
                        "%1 is the text, %2 is the note label",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<i>%2</i>: %1"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Warning
     SET_PATTERN(WARNING, QString(), PlainText,
                 ki18nc("tag-format-pattern <warning> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "WARNING: %1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(WARNING, QString(), RichText,
                 ki18nc("tag-format-pattern <warning> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<b>Warning</b>: %1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(WARNING, QSL("label"), PlainText,
                 ki18nc("tag-format-pattern <warning label=> plain\n"
                        "%1 is the text, %2 is the warning label",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%2: %1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(WARNING, QSL("label"), RichText,
                 ki18nc("tag-format-pattern <warning label=> rich\n"
                        "%1 is the text, %2 is the warning label",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<b>%2</b>: %1"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Link
     SET_PATTERN(LINK, QString(), PlainText,
                 ki18nc("tag-format-pattern <link> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(LINK, QString(), RichText,
                 ki18nc("tag-format-pattern <link> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<a href=\"%1\">%1</a>"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(LINK, QSL("url"), PlainText,
                 ki18nc("tag-format-pattern <link url=> plain\n"
                        "%1 is the descriptive text, %2 is the URL",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1 (%2)"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(LINK, QSL("url"), RichText,
                 ki18nc("tag-format-pattern <link url=> rich\n"
                        "%1 is the descriptive text, %2 is the URL",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<a href=\"%2\">%1</a>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Filename
     SET_PATTERN(QSL("filename"), QString(), PlainText,
@@ -877,72 +877,72 @@
                 ki18nc("tag-format-pattern <application> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("application"), QString(), RichText,
                 ki18nc("tag-format-pattern <application> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Command
     SET_PATTERN(COMMAND, QString(), PlainText,
                 ki18nc("tag-format-pattern <command> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(COMMAND, QString(), RichText,
                 ki18nc("tag-format-pattern <command> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<tt>%1</tt>"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(COMMAND, QSL("section"), PlainText,
                 ki18nc("tag-format-pattern <command section=> plain\n"
                        "%1 is the command name, %2 is its man section",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1(%2)"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(COMMAND, QSL("section"), RichText,
                 ki18nc("tag-format-pattern <command section=> rich\n"
                        "%1 is the command name, %2 is its man section",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<tt>%1(%2)</tt>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Resource
     SET_PATTERN(QSL("resource"), QString(), PlainText,
                 ki18nc("tag-format-pattern <resource> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "“%1”"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("resource"), QString(), RichText,
                 ki18nc("tag-format-pattern <resource> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "“%1”"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Icode
     SET_PATTERN(QSL("icode"), QString(), PlainText,
                 ki18nc("tag-format-pattern <icode> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "“%1”"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("icode"), QString(), RichText,
                 ki18nc("tag-format-pattern <icode> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<tt>%1</tt>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Bcode
     SET_PATTERN(QSL("bcode"), QString(), PlainText,
                 ki18nc("tag-format-pattern <bcode> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "\n%1\n"),
-                NULL, 2);
+                nullptr, 2);
     SET_PATTERN(QSL("bcode"), QString(), RichText,
                 ki18nc("tag-format-pattern <bcode> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<pre>%1</pre>"),
-                NULL, 2);
+                nullptr, 2);
 
     // -------> Shortcut
     SET_PATTERN(QSL("shortcut"), QString(), PlainText,
@@ -973,94 +973,94 @@
                 ki18nc("tag-format-pattern <emphasis> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "*%1*"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(EMPHASIS, QString(), RichText,
                 ki18nc("tag-format-pattern <emphasis> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<i>%1</i>"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(EMPHASIS, QSL("strong"), PlainText,
                 ki18nc("tag-format-pattern <emphasis-strong> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "**%1**"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(EMPHASIS, QSL("strong"), RichText,
                 ki18nc("tag-format-pattern <emphasis-strong> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<b>%1</b>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Placeholder
     SET_PATTERN(QSL("placeholder"), QString(), PlainText,
                 ki18nc("tag-format-pattern <placeholder> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "&lt;%1&gt;"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("placeholder"), QString(), RichText,
                 ki18nc("tag-format-pattern <placeholder> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "&lt;<i>%1</i>&gt;"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Email
     SET_PATTERN(QSL("email"), QString(), PlainText,
                 ki18nc("tag-format-pattern <email> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "&lt;%1&gt;"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("email"), QString(), RichText,
                 ki18nc("tag-format-pattern <email> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "&lt;<a href=\"mailto:%1\";>%1</a>&gt;"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("email"), QSL("address"), PlainText,
                 ki18nc("tag-format-pattern <email address=> plain\n"
                        "%1 is name, %2 is address",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1 &lt;%2&gt;"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("email"), QSL("address"), RichText,
                 ki18nc("tag-format-pattern <email address=> rich\n"
                        "%1 is name, %2 is address",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<a href=\"mailto:%2\";>%1</a>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Envar
     SET_PATTERN(QSL("envar"), QString(), PlainText,
                 ki18nc("tag-format-pattern <envar> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "$%1"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("envar"), QString(), RichText,
                 ki18nc("tag-format-pattern <envar> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<tt>$%1</tt>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Message
     SET_PATTERN(QSL("message"), QString(), PlainText,
                 ki18nc("tag-format-pattern <message> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "/%1/"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("message"), QString(), RichText,
                 ki18nc("tag-format-pattern <message> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "<i>%1</i>"),
-                NULL, 0);
+                nullptr, 0);
 
     // -------> Nl
     SET_PATTERN(QSL("nl"), QString(), PlainText,
                 ki18nc("tag-format-pattern <nl> plain",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1\n"),
-                NULL, 0);
+                nullptr, 0);
     SET_PATTERN(QSL("nl"), QString(), RichText,
                 ki18nc("tag-format-pattern <nl> rich",
                        // i18n: KUIT pattern, see the comment to the first of 
these entries above.
                        "%1<br/>"),
-                NULL, 0);
+                nullptr, 0);
 }
 
 void KuitSetupPrivate::setDefaultFormats()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ki18n-5.30.0/src/kuitmarkup.h 
new/ki18n-5.31.0/src/kuitmarkup.h
--- old/ki18n-5.30.0/src/kuitmarkup.h   2017-01-09 09:18:05.000000000 +0100
+++ new/ki18n-5.31.0/src/kuitmarkup.h   2017-02-05 11:59:21.000000000 +0100
@@ -157,7 +157,7 @@
                        const QStringList &attribNames,
                        Kuit::VisualFormat format,
                        const KLocalizedString &pattern,
-                       Kuit::TagFormatter formatter = NULL,
+                       Kuit::TagFormatter formatter = nullptr,
                        int leadingNewlines = 0);
 
     /**


Reply via email to