Commit 28ed5574 authored by Friedrich W. H. Kossebau's avatar Friedrich W. H. Kossebau
Browse files

Change QLatin1String("") -> QString() (where isNull() is not relevant)

parent 6df7ff98
......@@ -410,7 +410,7 @@ int main( int argc, char *argv[] )
aboutData.addCredit( i18n("The KWrite authors"), i18n( "Kate editor component" ), QStringLiteral("kwrite-devel@kde.org") );
aboutData.addCredit( i18n("Nokia Corporation/Qt Software"), i18n( "Designer code" ), QStringLiteral("qt-info@nokia.com") );
aboutData.addCredit( i18n("Contributors to older versions:"), QString(), QLatin1String("") );
aboutData.addCredit( i18n("Contributors to older versions:"), QString(), QString() );
aboutData.addCredit( i18n("Bernd Gehrmann"), i18n( "Initial idea, basic architecture, much initial source code" ), QStringLiteral("bernd@kdevelop.org") );
aboutData.addCredit( i18n("Caleb Tennis"), i18n( "KTabBar, bugfixes" ), QStringLiteral("caleb@aei-tech.com") );
aboutData.addCredit( i18n("Richard Dale"), i18n( "Java & Objective C support" ), QStringLiteral("Richard_Dale@tipitina.demon.co.uk") );
......
......@@ -33,7 +33,7 @@ ProjectFolder::ProjectFolder( NodesModelInterface* a_model, IProject* project )
}
ProjectFolder::ProjectFolder( NodesModelInterface* a_model )
: DocumentClassesFolder( QLatin1String(""), a_model )
: DocumentClassesFolder(QString(), a_model)
, m_project( nullptr )
{
}
......
......@@ -185,7 +185,7 @@ void TestDUChain::testStringSets() {
{
{
qDebug() << "SET a:";
QString dbg = QLatin1String("");
QString dbg;
for(std::set<Index>::const_iterator it = realSets[a].begin(); it != realSets[a].end(); ++it)
dbg += QStringLiteral("%1 ").arg(*it);
qDebug() << dbg;
......@@ -194,7 +194,7 @@ void TestDUChain::testStringSets() {
}
{
qDebug() << "SET b:";
QString dbg = QLatin1String("");
QString dbg;
for(std::set<Index>::const_iterator it = realSets[b].begin(); it != realSets[b].end(); ++it)
dbg += QStringLiteral("%1 ").arg(*it);
qDebug() << dbg;
......@@ -802,8 +802,8 @@ void TestDUChain::testIdentifiers()
QCOMPARE(aj2.at(1), Identifier(QStringLiteral("jump")));
QVERIFY(aj != aj2);
QVERIFY(QualifiedIdentifier(QLatin1String("")) == QualifiedIdentifier());
QVERIFY(QualifiedIdentifier(QLatin1String("")).index() == QualifiedIdentifier().index());
QVERIFY(QualifiedIdentifier(QString()) == QualifiedIdentifier());
QVERIFY(QualifiedIdentifier(QString()).index() == QualifiedIdentifier().index());
QualifiedIdentifier ajt(QStringLiteral("Area::jump::test"));
QualifiedIdentifier jt(QStringLiteral("jump::test"));
......
......@@ -689,7 +689,7 @@ IDocument* DocumentController::openDocument( const QUrl & inputUrl,
DocumentActivationParams activationParams,
const QString& encoding, IDocument* buddy)
{
return d->openDocumentInternal( inputUrl, QLatin1String(""), range, encoding, activationParams, buddy);
return d->openDocumentInternal(inputUrl, QString(), range, encoding, activationParams, buddy);
}
......
......@@ -155,7 +155,7 @@ public:
{
KConfigGroup grp = Core::self()->activeSession()->config()->group( Strings::LaunchConfigurationsGroup() );
LaunchConfiguration* l = static_cast<LaunchConfiguration*>( currentTargetAction->currentAction()->data().value<void*>() );
grp.writeEntry( Strings::CurrentLaunchConfigProjectEntry(), l->project() ? l->project()->name() : QLatin1String("") );
grp.writeEntry( Strings::CurrentLaunchConfigProjectEntry(), l->project() ? l->project()->name() : QString() );
grp.writeEntry( Strings::CurrentLaunchConfigNameEntry(), l->configGroupName() );
grp.sync();
}
......@@ -413,7 +413,7 @@ KJob* RunController::execute(const QString& runMode, ILaunchConfiguration* launc
KMessageBox::error(
qApp->activeWindow(),
i18n("The current launch configuration does not support the '%1' mode.", runMode),
QLatin1String(""));
QString());
return nullptr;
}
......
......@@ -87,7 +87,7 @@ void TestDocumentController::testOpeningNewDocumentFromText()
QSignalSpy openedSpy(m_subject, SIGNAL(documentOpened(KDevelop::IDocument*)));
QVERIFY(openedSpy.isValid());
IDocument* document = m_subject->openDocumentFromText(QLatin1String(""));
IDocument* document = m_subject->openDocumentFromText(QString());
QVERIFY(document != nullptr);
QCOMPARE(createdSpy.count(), 1);
......@@ -151,8 +151,8 @@ void TestDocumentController::testSaveAllDocuments()
void TestDocumentController::testCloseAllDocuments()
{
// create documents
m_subject->openDocumentFromText(QLatin1String(""));
m_subject->openDocumentFromText(QLatin1String(""));
m_subject->openDocumentFromText(QString());
m_subject->openDocumentFromText(QString());
QVERIFY(!m_subject->openDocuments().empty());
m_subject->closeAllDocuments();
......
......@@ -111,7 +111,7 @@ void TestShellDocumentOperation::testKateDocumentAndViewCreation()
{
//create one document
IDocumentController *documentController = Core::self()->documentController();
documentController->openDocumentFromText(QLatin1String(""));
documentController->openDocumentFromText(QString());
QCOMPARE(documentController->openDocuments().count(), 1);
//assure we have only one kate view for the newly created document
......
......@@ -251,7 +251,7 @@ void MainWindow::loadSettings()
{
HoldUpdates hu(this);
qCDebug(SUBLIME) << "loading settings for " << (area() ? area()->objectName() : QLatin1String(""));
qCDebug(SUBLIME) << "loading settings for " << (area() ? area()->objectName() : QString());
QString group = QStringLiteral("MainWindow");
if (area())
group += QLatin1Char('_') + area()->objectName();
......
......@@ -46,7 +46,7 @@ Area::WalkerMode AreaViewsPrinter::operator()(Sublime::AreaIndex *index)
QString AreaViewsPrinter::printIndentation(Sublime::AreaIndex *index) const
{
QString i = QLatin1String("");
QString i;
while ((index = index->parent()))
i += QLatin1String(" ");
return i;
......
......@@ -314,7 +314,7 @@ void TestAreaOperation::areaCloning()
Walks all Views and checks if they got a widget.
hasWidget will be set to false if any View lacks a widget.*/
struct AreaWidgetChecker {
AreaWidgetChecker(): failureMessage(QLatin1String("")) {}
AreaWidgetChecker() = default;
Area::WalkerMode operator()(AreaIndex *index)
{
foreach (View *view, index->views())
......
......@@ -543,7 +543,7 @@ void TestPath::testPathCd_data()
QTest::addColumn<QString>("change");
const QVector<QString> bases{
QLatin1String(""),
QString(),
#ifndef Q_OS_WIN
QStringLiteral("/foo"), QStringLiteral("/foo/bar/asdf"),
#else
......
......@@ -153,7 +153,7 @@ QString AStylePlugin::previewText(const SourceFormatterStyle& /*style*/, const Q
AStylePlugin::Indentation AStylePlugin::indentation(const QUrl& url) const
{
// Call formatSource first, to initialize the m_formatter data structures according to the URL
formatSource( QLatin1String(""), url, QMimeDatabase().mimeTypeForUrl(url), QString(), QString() );
formatSource(QString(), url, QMimeDatabase().mimeTypeForUrl(url), QString(), QString());
Indentation ret;
......
......@@ -283,7 +283,7 @@ void TestAstyle::testContext()
QCOMPARE(formattedSource, QString(" "));
formattedSource = formatter->formatSource(
QLatin1String(""), leftContext + " if(", "q )" + rightContext );
QString(), leftContext + " if(", "q )" + rightContext );
// qDebug() << formattedSource;
// Normalize padding: from 0 to 1
......@@ -294,7 +294,7 @@ void TestAstyle::testContext()
// qDebug() << formattedSource;
// Reduce padding as much as possible
QCOMPARE(formattedSource, QLatin1String(""));
QCOMPARE(formattedSource, QString());
delete formatter;
}
......
......@@ -306,7 +306,7 @@ ProblemPointer findStaticAssistantProblem(const QVector<ProblemPointer>& problem
void TestAssistants::testRenameAssistant()
{
QFETCH(QString, fileContents);
Testbed testbed(QLatin1String(""), fileContents);
Testbed testbed(QString(), fileContents);
const auto document = testbed.document(Testbed::CppDoc);
QVERIFY(document);
......@@ -348,7 +348,7 @@ void TestAssistants::testRenameAssistant()
void TestAssistants::testRenameAssistantUndoRename()
{
Testbed testbed(QLatin1String(""), QStringLiteral("int foo(int i)\n { i = 0; return i; }"));
Testbed testbed(QString(), QStringLiteral("int foo(int i)\n { i = 0; return i; }"));
testbed.changeDocument(Testbed::CppDoc, Range(0,13,0,13), QStringLiteral("d"), true);
const auto document = testbed.document(Testbed::CppDoc);
......@@ -369,7 +369,7 @@ void TestAssistants::testRenameAssistantUndoRename()
QVERIFY(r);
// now rename the variable back to its original identifier
testbed.changeDocument(Testbed::CppDoc, Range(0,13,0,14), QLatin1String(""));
testbed.changeDocument(Testbed::CppDoc, Range(0,13,0,14), QString());
// there should be no assistant anymore
QVERIFY(!assistant || assistant->actions().isEmpty());
}
......@@ -409,7 +409,7 @@ void TestAssistants::testSignatureAssistant_data()
QTest::newRow("change_default_parameter")
<< "class Foo {\nint bar(int a, char* b, int c = 10); \n};"
<< "int Foo::bar(int a, char* b, int c)\n{ a = c; b = new char; return a + *b; }"
<< (QList<StateChange>() << StateChange(Testbed::HeaderDoc, Range(1,29,1,34), QLatin1String(""), NO_ASSIST))
<< (QList<StateChange>() << StateChange(Testbed::HeaderDoc, Range(1,29,1,34), QString(), NO_ASSIST))
<< "class Foo {\nint bar(int a, char* b, int c); \n};"
<< "int Foo::bar(int a, char* b, int c)\n{ a = c; b = new char; return a + *b; }";
......@@ -432,7 +432,7 @@ void TestAssistants::testSignatureAssistant_data()
QTest::newRow("change_function_constness")
<< "class Foo {\nvoid bar(const Foo&) const;\n};"
<< "void Foo::bar(const Foo&) const\n{}"
<< (QList<StateChange>() << StateChange(Testbed::CppDoc, Range(0,25,0,31), QLatin1String(""), SHOULD_ASSIST))
<< (QList<StateChange>() << StateChange(Testbed::CppDoc, Range(0,25,0,31), QString(), SHOULD_ASSIST))
<< "class Foo {\nvoid bar(const Foo&);\n};"
<< "void Foo::bar(const Foo&)\n{}";
......
......@@ -1402,7 +1402,7 @@ void TestCodeCompletion::testIgnoreGccBuiltins()
m_projectController->addProject(project);
{
TestFile file(QLatin1String(""), QStringLiteral("cpp"), project, dir.path());
TestFile file(QString(), QStringLiteral("cpp"), project, dir.path());
QVERIFY(file.parseAndWait(TopDUContext::AllDeclarationsContextsUsesAndAST));
......
......@@ -35,7 +35,7 @@ CMakeExtraArgumentsHistory::CMakeExtraArgumentsHistory(KComboBox* widget)
if (m_arguments) {
KConfigGroup config = KSharedConfig::openConfig()->group("CMakeBuildDirChooser");
QStringList lastExtraArguments = config.readEntry("LastExtraArguments", QStringList());;
m_arguments->addItem(QLatin1String(""));
m_arguments->addItem(QString());
m_arguments->addItems(lastExtraArguments);
m_arguments->setInsertPolicy(QComboBox::InsertAtTop);
KCompletion *comp = m_arguments->completionObject();
......
......@@ -169,7 +169,6 @@ void CustomBuildSystemConfigWidget::changeCurrentConfig( int idx )
void CustomBuildSystemConfigWidget::addConfig()
{
CustomBuildSystemConfig c;
c.title = QLatin1String("");
configs.append( c );
ui->currentConfig->addItem( c.title );
ui->currentConfig->setCurrentIndex( ui->currentConfig->count() - 1 );
......
......@@ -100,7 +100,7 @@ bool DefinesModel::setData( const QModelIndex& index, const QVariant& value, int
if( index.row() == m_defines.count() ) {
if( index.column() == 0 && !value.toString().isEmpty() ) {
beginInsertRows( QModelIndex(), m_defines.count(), m_defines.count() );
m_defines << qMakePair<QString,QString>( value.toString(), QLatin1String("") );
m_defines << qMakePair<QString,QString>(value.toString(), QString());
endInsertRows();
}
} else {
......
......@@ -66,7 +66,7 @@ void TestDefinesAndIncludes::loadSimpleProject()
QCOMPARE( actualIncludes, Path::List() << Path( "/usr/include/mydir") );
Defines defines;
defines.insert( QStringLiteral("_DEBUG"), QLatin1String("") );
defines.insert( QStringLiteral("_DEBUG"), QString() );
defines.insert( QStringLiteral("VARIABLE"), QStringLiteral("VALUE") );
QCOMPARE( actualDefines, defines );
......@@ -84,7 +84,7 @@ void TestDefinesAndIncludes::loadMultiPathProject()
QHash<QString,QString> defines;
defines.insert(QStringLiteral("SOURCE"), QStringLiteral("CONTENT"));
defines.insert(QStringLiteral("_COPY"), QLatin1String(""));
defines.insert(QStringLiteral("_COPY"), QString());
QCOMPARE( manager->includes( s_currentProject->projectItem(), IDefinesAndIncludesManager::UserDefined ), includes );
QCOMPARE( manager->defines( s_currentProject->projectItem(), IDefinesAndIncludesManager::UserDefined ), defines );
......
......@@ -437,7 +437,7 @@ CustomScriptPlugin::Indentation CustomScriptPlugin::indentation(const QUrl& url)
ret.indentWidth = indent[0].count(' ');
}
if (!indent.join(QLatin1String("")).contains(' ')) {
if (!indent.join(QString()).contains(' ')) {
ret.indentationTabWidth = -1; // Tabs are not used for indentation
}
if (indent[0] == QLatin1String(" ")) {
......
......@@ -294,7 +294,7 @@ public:
QString cmdToSend() override
{
return QLatin1String("");
return QString();
}
private:
......
......@@ -65,7 +65,7 @@ MIDebugSession * MIFrameStackModel::session()
void MIFrameStackModel::fetchThreads()
{
session()->addCommand(ThreadInfo, QLatin1String(""), this, &MIFrameStackModel::handleThreadInfo);
session()->addCommand(ThreadInfo, QString(), this, &MIFrameStackModel::handleThreadInfo);
}
void MIFrameStackModel::handleThreadInfo(const ResultRecord& r)
......
......@@ -41,7 +41,7 @@ class MIVariable : public KDevelop::Variable
public:
MIVariable(MIDebugSession *session, KDevelop::TreeModel* model, KDevelop::TreeItem* parent,
const QString& expression, const QString& display = QLatin1String(""));
const QString& expression, const QString& display = QString());
~MIVariable() override;
......
......@@ -185,7 +185,7 @@ bool IRegisterController::initializeRegisters()
return false;
}
m_debugSession->addCommand(DataListRegisterNames, QLatin1String(""), this, &IRegisterController::registerNamesHandler);
m_debugSession->addCommand(DataListRegisterNames, QString(), this, &IRegisterController::registerNamesHandler);
return true;
}
......
......@@ -74,7 +74,7 @@ void ArchitectureParser::determineArchitecture(MIDebugSession* debugSession)
return;
}
debugSession->addCommand(DataListRegisterNames, QLatin1String(""), this, &ArchitectureParser::registerNamesHandler);
debugSession->addCommand(DataListRegisterNames, QString(), this, &ArchitectureParser::registerNamesHandler);
}
RegistersManager::RegistersManager(QWidget* parent)
......
......@@ -198,7 +198,7 @@ QStringList RegistersView::activeViews()
void RegistersView::clear()
{
for (int i = 0; i < TABLES_COUNT; i++) {
tabWidget->setTabText(i, QLatin1String(""));
tabWidget->setTabText(i, QString());
}
}
......
......@@ -128,7 +128,6 @@ static int chownpty(int fd, int grant)
STTY::STTY(bool ext, const QString &termAppName)
: QObject(),
ttySlave(QLatin1String("")),
m_externalTerminal(nullptr),
external_(ext)
{
......
......@@ -200,7 +200,7 @@ DisassembleWidget::DisassembleWidget(MIDebuggerPlugin* plugin, QWidget *parent)
m_disassembleWindow->setUniformRowHeights(true);
m_disassembleWindow->setRootIsDecorated(false);
m_disassembleWindow->setHeaderLabels(QStringList() << QLatin1String("") << i18n("Address") << i18n("Function") << i18n("Instruction"));
m_disassembleWindow->setHeaderLabels(QStringList() << QString() << i18n("Address") << i18n("Function") << i18n("Instruction"));
m_splitter->setStretchFactor(0, 1);
m_splitter->setContentsMargins(0, 0, 0, 0);
......
......@@ -149,7 +149,7 @@ QString ExecutePlugin::environmentProfileName(KDevelop::ILaunchConfiguration* cf
{
if( !cfg )
{
return QLatin1String("");
return QString();
}
return cfg->config().readEntry(ExecutePlugin::environmentProfileEntry, QString());
......
......@@ -322,7 +322,7 @@ void GDBOutputWidget::flushPending()
QTextCursor cursor(document);
cursor.movePosition(QTextCursor::End);
cursor.insertHtml(m_pendingOutput);
m_pendingOutput = QLatin1String("");
m_pendingOutput.clear();
m_gdbView->verticalScrollBar()->setValue(m_gdbView->verticalScrollBar()->maximum());
m_gdbView->setUpdatesEnabled(true);
......
......@@ -38,7 +38,7 @@ class GdbVariable : public KDevMI::MIVariable
public:
GdbVariable(DebugSession *session, KDevelop::TreeModel* model, KDevelop::TreeItem* parent,
const QString& expression, const QString& display = QLatin1String(QLatin1String("")));
const QString& expression, const QString& display = QString());
};
} // end of namespace GDB
......
......@@ -1845,7 +1845,7 @@ void GdbTest::testThreadAndFrameInfo()
QSignalSpy outputSpy(session, &TestDebugSession::debuggerUserCommandOutput);
session->addCommand(new MI::UserCommand(MI::ThreadInfo,QLatin1String("")));
session->addCommand(new MI::UserCommand(MI::ThreadInfo, QString()));
session->addCommand(new MI::UserCommand(MI::StackListLocals, QStringLiteral("0")));
WAIT_FOR_STATE_AND_IDLE(session, DebugSession::PausedState); // wait for command finish
......@@ -1982,7 +1982,7 @@ void GdbTest::testRegularExpressionBreakpoint()
WAIT_FOR_STATE(session, DebugSession::PausedState);
QCOMPARE(breakpoints()->breakpoints().count(), 3);
session->addCommand(MI::BreakDelete, QLatin1String(""));
session->addCommand(MI::BreakDelete, QString());
session->run();
WAIT_FOR_STATE(session, DebugSession::EndedState);
}
......
......@@ -75,7 +75,7 @@ ProviderWidget::ProviderWidget(QWidget *parent)
fillCombo();
topLayout->addWidget(m_combo);
QPushButton *settings = new QPushButton(QIcon::fromTheme(QStringLiteral("configure")), QLatin1String(""), this);
QPushButton *settings = new QPushButton(QIcon::fromTheme(QStringLiteral("configure")), QString(), this);
settings->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
settings->setToolTip(i18n("Click this button to configure your GitHub account"));
connect(settings, &QPushButton::clicked, this, &ProviderWidget::showSettings);
......
......@@ -104,7 +104,7 @@ inline QStringList filepatterns() { return QStringList()
inline QStringList excludepatterns() { return QStringList()
<< QStringLiteral("/CVS/,/SCCS/,/.svn/,/_darcs/,/build/,/.git/")
<< QLatin1String("");
<< QString();
}
///Separator used to separate search paths.
......
......@@ -71,7 +71,7 @@ void LldbFrameStackModel::fetchThreads()
// that's causing std::logic_error when executing -thread-info with
// more than one threads. Find a workaround for this (and report bug
// if it truly is).
session()->addCommand(ThreadInfo, QLatin1String(""), this, &LldbFrameStackModel::handleThreadInfo);
session()->addCommand(ThreadInfo, QString(), this, &LldbFrameStackModel::handleThreadInfo);
}
void LldbFrameStackModel::handleThreadInfo(const ResultRecord& r)
......
......@@ -38,7 +38,7 @@ class LldbVariable : public MIVariable
public:
LldbVariable(DebugSession *session, KDevelop::TreeModel* model, KDevelop::TreeItem* parent,
const QString& expression, const QString& display = QLatin1String(""));
const QString& expression, const QString& display = QString());
void handleRawUpdate(const MI::ResultRecord &r);
......
......@@ -39,7 +39,7 @@ public:
void update() override;
LldbVariable* createVariable(KDevelop::TreeModel* model, KDevelop::TreeItem* parent,
const QString& expression,
const QString& display = QLatin1String("")) override;
const QString& display = QString()) override;
private:
DebugSession* debugSession() const;
};
......
......@@ -47,17 +47,17 @@ QString LldbCommand::miCommand() const
// TODO: find alternatives to the following command which are not supported in lldb-mi
switch(type()) {
case BreakCommands:
command = QLatin1String("");
// empty command
break;
case BreakInfo:
command = QLatin1String("");
// empty command
break;
case BreakInsert: // in lldb-mi, '-f' must be the last option switch right before location
command = QStringLiteral("break-insert");
isMI = true;
break;
case BreakList:
command = QLatin1String("");
// empty command
break;
case BreakWatch:
command = QStringLiteral("break set var");
......
......@@ -965,7 +965,7 @@ void LldbTest::testRegularExpressionBreakpoint()
QCOMPARE(breakpoints()->breakpoints().count(), 3);
session->addCommand(MI::BreakDelete, QLatin1String(""));
session->addCommand(MI::BreakDelete, QString());
session->run();
WAIT_FOR_STATE(session, DebugSession::EndedState);
}
......
......@@ -84,8 +84,8 @@ void QMakeFileVisitor::visitFunctionCall(QMake::FunctionCallAST* node)
return;
QStringList arguments = getValueList(node->args);
ifDebug(qCDebug(KDEV_QMAKE) << "found include" << node->identifier->value << arguments;) QString argument
= arguments.join(QLatin1String("")).trimmed();
ifDebug(qCDebug(KDEV_QMAKE) << "found include" << node->identifier->value << arguments;)
QString argument = arguments.join(QString()).trimmed();
if (!argument.isEmpty() && QFileInfo(argument).isRelative()) {
argument = QFileInfo(m_baseFile->absoluteDir() + '/' + argument).canonicalFilePath();
}
......
......@@ -413,7 +413,7 @@ QList<QMakeProjectFile::DefinePair> QMakeProjectFile::defines() const
d.append(DefinePair(def.left(pos), def.right(def.length() - (pos + 1))));
} else {
// a value-less define
d.append(DefinePair(def, QLatin1String("")));
d.append(DefinePair(def, QString()));
}
}
return d;
......
......@@ -246,7 +246,7 @@ void TestQMakeFile::defines_data()
QTest::addColumn<DefineHash>("expectedDefines");
{
DefineHash list;
list.insert(QStringLiteral("VAR1"), QLatin1String(""));
list.insert(QStringLiteral("VAR1"), QString());
QTest::newRow("Simple define") << "DEFINES += VAR1" << list;
}
{
......@@ -257,7 +257,7 @@ void TestQMakeFile::defines_data()
{
DefineHash list;
list.insert(QStringLiteral("ANSWER"), QStringLiteral("42"));
list.insert(QStringLiteral("ANOTHER_DEFINE"), QLatin1String(""));
list.insert(QStringLiteral("ANOTHER_DEFINE"), QString());
QTest::newRow("Multiple defines") << "DEFINES += ANSWER=42 ANOTHER_DEFINE" << list;
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment