diff options
author | Tamás Zolnai <tamas.zolnai@collabora.com> | 2019-04-17 12:33:13 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2019-04-20 12:38:03 +0200 |
commit | a8e019f021b5b1aa51deca704657758944511a8e (patch) | |
tree | 0e30252a679fad4229d99921dbf329aa1dfc9f6f /desktop | |
parent | SharePoint connection: Handle encoded URL passed as command line argument (diff) | |
download | core-a8e019f021b5b1aa51deca704657758944511a8e.tar.gz core-a8e019f021b5b1aa51deca704657758944511a8e.zip |
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)
Reviewed-on: https://gerrit.libreoffice.org/70984
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/qa/desktop_app/test_desktop_app.cxx | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | desktop/source/app/cmdlineargs.cxx | 8 |
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 f117040e6261..54ee1ae98231 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) |