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.senjan@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 (srhaque@theiet.org)
+# Copyright 2016 Stephen Kelly
+#
+# 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 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 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 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 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.
"%1</a>"),
- NULL, 0);
+ nullptr, 0);
SET_PATTERN(LINK, QSL("url"), PlainText,
ki18nc("tag-format-pattern 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 rich\n"
"%1 is the descriptive text, %2 is the URL",
// i18n: KUIT pattern, see the comment to the first of these entries above.
"%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 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 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.
"<%1>"),
- 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.
"<<i>%1</i>>"),
- 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.
"<%1>"),
- 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.
"<%1</a>>"),
- NULL, 0);
+ nullptr, 0);
SET_PATTERN(QSL("email"), QSL("address"), PlainText,
ki18nc("tag-format-pattern plain\n"
"%1 is name, %2 is address",
// i18n: KUIT pattern, see the comment to the first of these entries above.
"%1 <%2>"),
- NULL, 0);
+ nullptr, 0);
SET_PATTERN(QSL("email"), QSL("address"), RichText,
ki18nc("tag-format-pattern rich\n"
"%1 is name, %2 is address",
// i18n: KUIT pattern, see the comment to the first of these entries above.
"%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);
/**