2014-11-21 19:46:43 +01:00
|
|
|
From abee9c239f74f60a77c0931be23ad1d8670feda6 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Hrvoje Senjan <hrvoje.senjan@gmail.com>
|
|
|
|
Date: Tue, 3 Dec 2013 19:31:13 +0100
|
|
|
|
Subject: [PATCH 1/1] kdesu Add some love
|
|
|
|
|
|
|
|
From/toUTF8 in practice covers more ground than 8bit.
|
|
|
|
Furthermore, make the kdesu 'command' translatable, it's used
|
|
|
|
in openSUSE with dolphin and konsole 'Start as root'
|
|
|
|
BUG: boo#852256
|
|
|
|
---
|
2016-09-17 20:39:11 +02:00
|
|
|
kdesu/kdesu.cpp | 16 ++++++++--------
|
|
|
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
2014-11-21 19:46:43 +01:00
|
|
|
|
2018-09-15 14:29:39 +02:00
|
|
|
Index: kde-cli-tools-5.13.80git.20180712T134017~d95c4ef/kdesu/kdesu.cpp
|
2018-05-21 11:07:08 +02:00
|
|
|
===================================================================
|
2018-09-15 14:29:39 +02:00
|
|
|
--- kde-cli-tools-5.13.80git.20180712T134017~d95c4ef.orig/kdesu/kdesu.cpp
|
|
|
|
+++ kde-cli-tools-5.13.80git.20180712T134017~d95c4ef/kdesu/kdesu.cpp
|
|
|
|
@@ -157,11 +157,11 @@ int main(int argc, char *argv[])
|
2014-11-21 19:46:43 +01:00
|
|
|
|
|
|
|
if (result == 127)
|
|
|
|
{
|
2018-05-21 11:07:08 +02:00
|
|
|
- KMessageBox::sorry(nullptr, i18n("Cannot execute command '%1'.", QString::fromLocal8Bit(command)));
|
|
|
|
+ KMessageBox::sorry(nullptr, i18n("Cannot execute command '%1'.", QString::fromUtf8(command)));
|
2014-11-21 19:46:43 +01:00
|
|
|
}
|
2016-09-13 23:11:29 +02:00
|
|
|
if (result == -2)
|
|
|
|
{
|
2018-05-21 11:07:08 +02:00
|
|
|
- KMessageBox::sorry(nullptr, i18n("Cannot execute command '%1'. It contains invalid characters.", QString::fromLocal8Bit(command)));
|
|
|
|
+ KMessageBox::sorry(nullptr, i18n("Cannot execute command '%1'. It contains invalid characters.", QString::fromUtf8(command)));
|
2016-09-13 23:11:29 +02:00
|
|
|
}
|
2014-11-21 19:46:43 +01:00
|
|
|
|
|
|
|
return result;
|
2018-09-15 14:29:39 +02:00
|
|
|
@@ -196,7 +196,7 @@ static int startApp(QCommandLineParser&
|
2014-11-21 19:46:43 +01:00
|
|
|
prompt = false;
|
|
|
|
|
|
|
|
// Get target uid
|
2018-09-15 14:29:39 +02:00
|
|
|
- QByteArray user = p.value(QStringLiteral("u")).toLocal8Bit();
|
|
|
|
+ QByteArray user = p.value(QStringLiteral("u")).toUtf8();
|
2014-11-21 19:46:43 +01:00
|
|
|
QByteArray auth_user = user;
|
|
|
|
struct passwd *pw = getpwnam(user);
|
2018-05-21 11:07:08 +02:00
|
|
|
if (pw == nullptr)
|
2018-09-15 14:29:39 +02:00
|
|
|
@@ -256,7 +256,7 @@ static int startApp(QCommandLineParser&
|
2014-11-21 19:46:43 +01:00
|
|
|
// Get command
|
2018-09-15 14:29:39 +02:00
|
|
|
if (p.isSet(QStringLiteral("c")))
|
2014-11-21 19:46:43 +01:00
|
|
|
{
|
2018-09-15 14:29:39 +02:00
|
|
|
- command = p.value(QStringLiteral("c")).toLocal8Bit();
|
|
|
|
+ command = p.value(QStringLiteral("c")).toUtf8();
|
2014-11-21 19:46:43 +01:00
|
|
|
// Accepting additional arguments here is somewhat weird,
|
|
|
|
// but one can conceive use cases: have a complex command with
|
|
|
|
// redirections and additional file names which need to be quoted
|
2018-09-15 14:29:39 +02:00
|
|
|
@@ -344,7 +344,7 @@ static int startApp(QCommandLineParser&
|
2014-11-21 19:46:43 +01:00
|
|
|
// }
|
|
|
|
|
|
|
|
KUser u;
|
|
|
|
- env << (QByteArray) ("KDESU_USER=" + u.loginName().toLocal8Bit());
|
|
|
|
+ env << (QByteArray) ("KDESU_USER=" + u.loginName().toUtf8());
|
|
|
|
|
|
|
|
if (keep && !terminal && !just_started)
|
|
|
|
{
|
2018-09-15 14:29:39 +02:00
|
|
|
@@ -456,7 +456,7 @@ static int startApp(QCommandLineParser&
|
2014-11-21 19:46:43 +01:00
|
|
|
}
|
|
|
|
else if (keep && have_daemon)
|
|
|
|
{
|
|
|
|
- client.setPass(password.toLocal8Bit(), timeout);
|
|
|
|
+ client.setPass(password.toUtf8(), timeout);
|
|
|
|
client.setPriority(priority);
|
|
|
|
client.setScheduler(scheduler);
|
|
|
|
int result = client.exec(command, user, options, env);
|
2018-09-15 14:29:39 +02:00
|
|
|
@@ -475,7 +475,7 @@ static int startApp(QCommandLineParser&
|
2014-11-21 19:46:43 +01:00
|
|
|
proc.setPriority(priority);
|
|
|
|
proc.setScheduler(scheduler);
|
|
|
|
proc.setCommand(command);
|
|
|
|
- int result = proc.exec(password.toLocal8Bit());
|
|
|
|
+ int result = proc.exec(password.toUtf8());
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
return -1;
|