kio/0004-When-executing-commands-set-the-working-directory-to.patch

49 lines
2.1 KiB
Diff

From c0217c6e5e1e7592fcd0d808f1766e8be6289db0 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
Date: Fri, 4 Jul 2014 22:59:48 +0200
Subject: [PATCH 04/10] When executing commands set the working directory to be
the current directory
if not specified by the service.
Forward port commit 89d4585 by Dawit which fixes #142597.
+ fix path() to toLocalFile().
REVIEW: 119020
---
src/widgets/krun.cpp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/widgets/krun.cpp b/src/widgets/krun.cpp
index 77708a0..bc39d83 100644
--- a/src/widgets/krun.cpp
+++ b/src/widgets/krun.cpp
@@ -176,7 +176,8 @@ bool KRun::runUrl(const QUrl &u, const QString &_mimetype, QWidget *window, bool
} else if (isExecutableFile(u, _mimetype)) {
if (u.isLocalFile() && runExecutables) {
if (KAuthorized::authorize("shell_access")) {
- return (KRun::runCommand(KShell::quoteArg(u.toLocalFile()), QString(), QString(), window, asn, u.adjusted(QUrl::RemoveFilename).path())); // just execute the url as a command
+ return (KRun::runCommand(KShell::quoteArg(u.toLocalFile()), QString(), QString(),
+ window, asn, u.adjusted(QUrl::RemoveFilename).toLocalFile())); // just execute the url as a command
// ## TODO implement deleting the file if tempFile==true
} else {
noAuth = true;
@@ -426,8 +427,13 @@ static bool runTempService(const KService &_service, const QList<QUrl> &_urls, Q
}
//qDebug() << "runTempService: KProcess args=" << args;
+ QString path(_service.path());
+ if (path.isEmpty() && !_urls.isEmpty() && _urls.first().isLocalFile()) {
+ path = _urls.first().adjusted(QUrl::RemoveFilename).toLocalFile();
+ }
+
return runCommandInternal(args.join(" "), &_service, KIO::DesktopExecParser::executablePath(_service.exec()),
- _service.name(), _service.icon(), window, asn, _service.path());
+ _service.name(), _service.icon(), window, asn, path);
}
// WARNING: don't call this from DesktopExecParser, since klauncher uses that too...
--
2.0.0