summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorTamás Zolnai <tamas.zolnai@collabora.com>2019-04-17 12:33:13 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2019-11-04 00:51:52 +0100
commitb73ddeb016d3d7790565dd7870b0e18e678fe24b (patch)
tree2df4cac44f2b3cd91d8ee05f89bdef5a191c90b3 /desktop
parent1bfcd216382750aeb5d88b0ad80b56501b7c6d99 (diff)
SharePoint connection: Better handling of encoded URLs
Handle %7c with small letters. Make sure that the output parameter's content is not affected by decoding. Change-Id: Ie3faad2461815497c0edfb04a589fc57aeb7d66b Reviewed-on: https://gerrit.libreoffice.org/70873 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit f6dc5636c1eda8aebeac3f7b85dd61499523d6a3)
Diffstat (limited to 'desktop')
-rw-r--r--desktop/qa/desktop_app/test_desktop_app.cxx2
-rw-r--r--[-rwxr-xr-x]desktop/source/app/cmdlineargs.cxx8
2 files changed, 5 insertions, 5 deletions
diff --git a/desktop/qa/desktop_app/test_desktop_app.cxx b/desktop/qa/desktop_app/test_desktop_app.cxx
index 055c8cf5434e..1a027dfade78 100644
--- a/desktop/qa/desktop_app/test_desktop_app.cxx
+++ b/desktop/qa/desktop_app/test_desktop_app.cxx
@@ -113,7 +113,7 @@ void Test::testTdf100837() {
{
// 3. Test enocded URLs
- TestSupplier supplier{ "foo", "ms-word:ofe%7Cu%7Cbar1", "ms-word:ofv%7Cu%7Cbar2", "ms-word:nft%7Cu%7Cbar3", "baz" };
+ TestSupplier supplier{ "foo", "ms-word:ofe%7Cu%7cbar1", "ms-word:ofv%7cu%7Cbar2", "ms-word:nft%7Cu%7cbar3", "baz" };
desktop::CommandLineArgs args(supplier);
auto vOpenList = args.GetOpenList();
auto vForceOpenList = args.GetForceOpenList();
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index 00b5c88ee05e..8fe83f523c48 100755..100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -129,25 +129,25 @@ CommandLineEvent CheckOfficeURI(/* in,out */ OUString& arg, CommandLineEvent cur
long nURIlen = -1;
// URL might be encoded
- rest1 = rest1.replaceAll("%7C", "|");
+ OUString decoded_rest = rest1.replaceAll("%7C", "|").replaceAll("%7c", "|");
// 2. Discriminate by command name (incl. 1st command argument descriptor)
// Extract URI: everything up to possible next argument
- if (rest1.startsWith("ofv|u|", &rest2))
+ if (decoded_rest.startsWith("ofv|u|", &rest2))
{
// Open for view - override only in default mode
if (curEvt == CommandLineEvent::Open)
curEvt = CommandLineEvent::View;
nURIlen = rest2.indexOf("|");
}
- else if (rest1.startsWith("ofe|u|", &rest2))
+ else if (decoded_rest.startsWith("ofe|u|", &rest2))
{
// Open for editing - override only in default mode
if (curEvt == CommandLineEvent::Open)
curEvt = CommandLineEvent::ForceOpen;
nURIlen = rest2.indexOf("|");
}
- else if (rest1.startsWith("nft|u|", &rest2))
+ else if (decoded_rest.startsWith("nft|u|", &rest2))
{
// New from template - override only in default mode
if (curEvt == CommandLineEvent::Open)