diff options
author | Slobodan Vrkacevic <slobodan@froglogic.com> | 2017-01-06 17:51:06 +0100 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2017-01-20 06:03:07 +0000 |
commit | bb8cb002127679a0c84e145dcf35cb4e0f53d62c (patch) | |
tree | 192e94ca53ff48aeb32f0811506bd1eddfb5f558 | |
parent | b1ed687f91d9b75e290ebabcb624684f7d177cb1 (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>
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 1 |
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]); |