[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdecore
From: Oswald Buddenhagen <ossi () kde ! org>
Date: 2010-11-14 0:51:28
Message-ID: 20101114005128.F0D10AC89E () svn ! kde ! org
[Download RAW message or body]
SVN commit 1196752 by ossi:
remove kcmdwrapper hack
with the introduction of QProcess::setNativeArguments() in Qt 4.7, this
somewhat arcane indirection meant for bypassing QProcess' argument
quoting became obsolete. advantages are a slight performance gain, sane
KProcess::kill() behavior, and less bizarreness in general.
M +0 -10 CMakeLists.txt
D io/kcmdwrapper.cpp
M +18 -10 io/kprocess.cpp
--- trunk/KDE/kdelibs/kdecore/CMakeLists.txt #1196751:1196752
@@ -478,16 +478,6 @@
########### next target ###############
-if (WIN32 AND NOT WINCE)
- kde4_add_executable(kcmdwrapper NOGUI io/kcmdwrapper.cpp )
-
- target_link_libraries(kcmdwrapper kernel32 shell32 )
-
- install(TARGETS kcmdwrapper DESTINATION ${LIBEXEC_INSTALL_DIR} )
-endif (WIN32 AND NOT WINCE)
-
-########### next target ###############
-
if(NOT WINCE)
# kjs hash stuff for transcript plugin
set( CREATE_HASH_TABLE ${CMAKE_SOURCE_DIR}/kjs/create_hash_table )
--- trunk/KDE/kdelibs/kdecore/io/kprocess.cpp #1196751:1196752
@@ -212,6 +212,9 @@
d->prog = exe;
d->args = args;
+#ifdef Q_OS_WIN
+ setNativeArguments(QString());
+#endif
}
void KProcess::setProgram(const QStringList &argv)
@@ -221,6 +224,9 @@
Q_ASSERT( !argv.isEmpty() );
d->args = argv;
d->prog = d->args.takeFirst();
+#ifdef Q_OS_WIN
+ setNativeArguments(QString());
+#endif
}
KProcess &KProcess::operator<<(const QString &arg)
@@ -251,6 +257,9 @@
d->prog.clear();
d->args.clear();
+#ifdef Q_OS_WIN
+ setNativeArguments(QString());
+#endif
}
void KProcess::setShellCommand(const QString &cmd)
@@ -264,6 +273,9 @@
d->prog = KStandardDirs::findExe(d->args[0]);
if (!d->prog.isEmpty()) {
d->args.removeFirst();
+#ifdef Q_OS_WIN
+ setNativeArguments(QString());
+#endif
return;
}
}
@@ -303,19 +315,15 @@
// KShell::joinArgs() may generate these for security reasons.
setEnv(PERCENT_VARIABLE, QLatin1String("%"));
- //see also TrollTechTaskTracker entry 88373.
- d->prog = KStandardDirs::findExe(QLatin1String("kcmdwrapper"));
-
#ifndef _WIN32_WCE
- UINT size;
WCHAR sysdir[MAX_PATH + 1];
- size = GetSystemDirectoryW(sysdir, MAX_PATH + 1);
- QString cmdexe = QString::fromUtf16((const ushort *) sysdir, size);
- cmdexe.append(QLatin1String("\\cmd.exe"));
-
- d->args << cmdexe << cmd;
+ UINT size = GetSystemDirectoryW(sysdir, MAX_PATH + 1);
+ d->prog = QString::fromUtf16((const ushort *) sysdir, size);
+ d->prog += QLatin1String("\\cmd.exe");
+ setNativeArguments(QLatin1String("/V:OFF /S /C \"") + cmd + QLatin1Char('"'));
#else
- d->args << QLatin1String("\\windows\\cmd.exe") << cmd;
+ d->prog = QLatin1String("\\windows\\cmd.exe");
+ setNativeArguments(QLatin1String("/S /C \"") + cmd + QLatin1Char('"'));
#endif
#endif
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic