diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeArgument.js')
-rw-r--r-- | tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeArgument.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeArgument.js b/tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeArgument.js new file mode 100644 index 0000000000..367263f669 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/cross-spawn/lib/util/escapeArgument.js @@ -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; |