From a273cbfd58daa0ef1484750cf951fa2cffa4da3f Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Wed, 3 Apr 2024 10:27:46 +1000 Subject: [PATCH] fix(windows): decode uri for packageid filename The uri for the downloaded filename need is decoded to turn %20 back to spaces etc. For the download location it encoding is maintained. --- .../install/Keyman.Configuration.UI.KeymanProtocolHandler.pas | 3 ++- .../src/desktop/kmshell/install/UfrmInstallKeyboardFromWeb.pas | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/windows/src/desktop/kmshell/install/Keyman.Configuration.UI.KeymanProtocolHandler.pas b/windows/src/desktop/kmshell/install/Keyman.Configuration.UI.KeymanProtocolHandler.pas index 8b78fa7601..feadd80945 100644 --- a/windows/src/desktop/kmshell/install/Keyman.Configuration.UI.KeymanProtocolHandler.pas +++ b/windows/src/desktop/kmshell/install/Keyman.Configuration.UI.KeymanProtocolHandler.pas @@ -39,6 +39,7 @@ uses UfrmInstallKeyboard, Upload_Settings, utildir, + IdURI, utilfiletypes; { TKeymanProtocolHandler } @@ -84,7 +85,7 @@ begin // TODO: refactor into separate unit together with code from UfrmInstallKeyboardFromWeb FTempDir := IncludeTrailingPathDelimiter(CreateTempPath); // I1679 try - FDownloadFilename := FTempDir + PackageID + Ext_PackageFile; + FDownloadFilename := FTempDir + TIdURI.URLDecode(PackageID) + Ext_PackageFile; FDownloadURL := KeymanCom_Protocol_Server + URLPath_PackageDownload(PackageID, BCP47, False); frmDownloadProgress := TfrmDownloadProgress.Create(nil); diff --git a/windows/src/desktop/kmshell/install/UfrmInstallKeyboardFromWeb.pas b/windows/src/desktop/kmshell/install/UfrmInstallKeyboardFromWeb.pas index 31e6eafb67..14921a8006 100644 --- a/windows/src/desktop/kmshell/install/UfrmInstallKeyboardFromWeb.pas +++ b/windows/src/desktop/kmshell/install/UfrmInstallKeyboardFromWeb.pas @@ -91,6 +91,7 @@ uses Upload_Settings, utilfiletypes, utildir, + IdURI, utilexecute, VersionInfo; @@ -215,7 +216,7 @@ var begin FTempDir := IncludeTrailingPathDelimiter(CreateTempPath); // I1679 try - FDownloadFilename := FTempDir + PackageID + Ext_PackageFile; + FDownloadFilename := FTempDir + TIdURI.URLDecode(PackageID) + Ext_PackageFile; FDownloadURL := KeymanCom_Protocol_Server + URLPath_PackageDownload(PackageID, BCP47, False); frmDownloadProgress := TfrmDownloadProgress.Create(Self);