summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorSlobodan Vrkacevic <slobodan@froglogic.com>2017-01-06 17:51:06 +0100
committerKatja Marttila <katja.marttila@qt.io>2017-01-20 06:03:07 +0000
commitbb8cb002127679a0c84e145dcf35cb4e0f53d62c (patch)
tree192e94ca53ff48aeb32f0811506bd1eddfb5f558 /src/libs/installer/packagemanagercore_p.cpp
parentb1ed687f91d9b75e290ebabcb624684f7d177cb1 (diff)
Fix uninstallation on Windows when target path contains non-ascii characters
On Windows when a target path contains non-ascii characters and MaintenanceTool has a custom name like Uninstaller it was not possible to start uninstallation after otherwise successful installation. That was because the renaming of Uninstaller.exe.new and Uninstaller.dat.new was silently failing somewhere at the end of installation and there were actaully no files Uninstaller.exe and Uninstaller.dat. To fix this encode the vbs file which is passed to cscript as UTF-16 so that it can handle non-ascii file paths correctly. Change-Id: Id0feb8f8503594f2a9eedddcaa35ae103ccf2938 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 58847dfec..f5423eded 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -156,6 +156,7 @@ static void deferredRename(const QString &oldName, const QString &newName, bool
.fileName()));
QTextStream batch(&f);
+ batch.setCodec("UTF-16");
batch << "Set fso = WScript.CreateObject(\"Scripting.FileSystemObject\")\n";
batch << "Set tmp = WScript.CreateObject(\"WScript.Shell\")\n";
batch << QString::fromLatin1("file = \"%1\"\n").arg(arguments[2]);