summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/curl.js
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-05-06 00:17:32 +0000
committerMoonchild <moonchild@palemoon.org>2020-05-06 00:17:32 +0000
commitc0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0 (patch)
treef847e19932bf4145a611002f2b23bd1358ce84d2 /devtools/client/shared/curl.js
parentf5c2775a69cff7e1aea6b9258760fd4acc36837f (diff)
downloadUXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar
UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar.gz
UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar.lz
UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar.xz
UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.zip
[devtools] Port various upstream fixes
Diffstat (limited to 'devtools/client/shared/curl.js')
-rw-r--r--devtools/client/shared/curl.js12
1 files changed, 9 insertions, 3 deletions
diff --git a/devtools/client/shared/curl.js b/devtools/client/shared/curl.js
index d9abf506a..5ce9e96bb 100644
--- a/devtools/client/shared/curl.js
+++ b/devtools/client/shared/curl.js
@@ -91,7 +91,7 @@ const Curl = {
if (utils.isUrlEncodedRequest(data) ||
["PUT", "POST", "PATCH"].includes(data.method)) {
postDataText = data.postDataText;
- addPostData("--data");
+ addPostData("--data-raw");
addPostData(utils.writePostDataTextParams(postDataText));
ignoredHeaders.add("content-length");
} else if (multipartRequest) {
@@ -400,7 +400,12 @@ const CurlUtils = {
* Credit: Google DevTools
*/
escapeStringWin: function (str) {
- /* Replace quote by double quote (but not by \") because it is
+ /*
+ Replace dollar sign because of commands (e.g $(cmd.exe)) in
+ powershell when using double quotes.
+ Useful details http://www.rlmueller.net/PowerShellEscape.htm
+
+ Replace quote by double quote (but not by \") because it is
recognized by both cmd.exe and MS Crt arguments parser.
Replace % by "%" because it could be expanded to an environment
@@ -414,7 +419,8 @@ const CurlUtils = {
Replace new line outside of quotes since cmd.exe doesn't let
to do it inside.
*/
- return "\"" + str.replace(/"/g, "\"\"")
+ return "\"" + str.replace(/\$/g, "`$")
+ .replace(/"/g, "\"\"")
.replace(/%/g, "\"%\"")
.replace(/\\/g, "\\\\")
.replace(/[\r\n]+/g, "\"^$&\"") + "\"";