[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