From c80f935c345de2e2fb10635202800839ca9697bf Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Thu, 20 Jan 2022 10:30:20 +0100 Subject: [PATCH] only execute diff in path --- src/dialogs/katedialogs.cpp | 5 +++-- src/dialogs/katedialogs.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dialogs/katedialogs.cpp b/src/dialogs/katedialogs.cpp index 5b949f36..63a58aee 100644 --- a/src/dialogs/katedialogs.cpp +++ b/src/dialogs/katedialogs.cpp @@ -1317,6 +1317,7 @@ KateModOnHdPrompt::KateModOnHdPrompt(KTextEditor::DocumentPrivate *doc, KTextEdi : QObject(doc) , m_doc(doc) , m_modtype(modtype) + , m_fullDiffPath(QStandardPaths::findExecutable(QStringLiteral("diff"))) , m_proc(nullptr) , m_diffFile(nullptr) , m_diffAction(nullptr) @@ -1334,7 +1335,7 @@ KateModOnHdPrompt::KateModOnHdPrompt(KTextEditor::DocumentPrivate *doc, KTextEdi m_message->addAction(aAutoReload, false); connect(aAutoReload, &QAction::triggered, this, &KateModOnHdPrompt::autoReloadTriggered); - if (!QStandardPaths::findExecutable(QStringLiteral("diff")).isEmpty()) { + if (!m_fullDiffPath.isEmpty()) { m_diffAction = new QAction(i18n("View &Difference"), this); m_diffAction->setIcon(QIcon::fromTheme(QStringLiteral("document-multiple"))); m_diffAction->setToolTip(i18n("Shows a diff of the changes")); @@ -1394,7 +1395,7 @@ void KateModOnHdPrompt::slotDiff() // Start a KProcess that creates a diff m_proc = new KProcess(this); m_proc->setOutputChannelMode(KProcess::MergedChannels); - *m_proc << QStringLiteral("diff") << QStringLiteral("-u") << QStringLiteral("-") << m_doc->url().toLocalFile(); + *m_proc << m_fullDiffPath << QStringLiteral("-u") << QStringLiteral("-") << m_doc->url().toLocalFile(); connect(m_proc, &KProcess::readyRead, this, &KateModOnHdPrompt::slotDataAvailable); connect(m_proc, &KProcess::finished, this, &KateModOnHdPrompt::slotPDone); diff --git a/src/dialogs/katedialogs.h b/src/dialogs/katedialogs.h index 80b611d9..e5574023 100644 --- a/src/dialogs/katedialogs.h +++ b/src/dialogs/katedialogs.h @@ -376,6 +376,7 @@ private: KTextEditor::DocumentPrivate *m_doc; QPointer m_message; KTextEditor::ModificationInterface::ModifiedOnDiskReason m_modtype; + QString m_fullDiffPath; KProcess *m_proc; QTemporaryFile *m_diffFile; QAction *m_diffAction; -- GitLab