.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / execa / node_modules / cross-spawn / lib / util / escapeArgument.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js
new file mode 100644 (file)
index 0000000..367263f
--- /dev/null
@@ -0,0 +1,30 @@
+'use strict';
+
+function escapeArgument(arg, quote) {
+    // Convert to string
+    arg = '' + arg;
+
+    // If we are not going to quote the argument,
+    // escape shell metacharacters, including double and single quotes:
+    if (!quote) {
+        arg = arg.replace(/([()%!^<>&|;,"'\s])/g, '^$1');
+    } else {
+        // Sequence of backslashes followed by a double quote:
+        // double up all the backslashes and escape the double quote
+        arg = arg.replace(/(\\*)"/g, '$1$1\\"');
+
+        // Sequence of backslashes followed by the end of the string
+        // (which will become a double quote later):
+        // double up all the backslashes
+        arg = arg.replace(/(\\*)$/, '$1$1');
+
+        // All other backslashes occur literally
+
+        // Quote the whole thing:
+        arg = '"' + arg + '"';
+    }
+
+    return arg;
+}
+
+module.exports = escapeArgument;