/
snap
/
node
/
11691
/
lib
/
node_modules
/
npm
/
node_modules
/
cross-spawn
/
lib
/
util
/
/snap/node/11691/lib/node_modules/npm/node_modules/cross-spawn/lib/util
mkdir
upload
Name
Size
Mode
Actions
escape.js
1383
0644
edit
dl
rm
readShebang.js
549
0644
edit
dl
rm
resolveCommand.js
1557
0644
edit
dl
rm
Edit:
/snap/node/11691/lib/node_modules/npm/node_modules/cross-spawn/lib/util/escape.js
(1383B)
'use strict'; // See http://www.robvanderwoude.com/escapechars.php const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; function escapeCommand(arg) { // Escape meta chars arg = arg.replace(metaCharsRegExp, '^$1'); return arg; } function escapeArgument(arg, doubleEscapeMetaChars) { // Convert to string arg = `${arg}`; // Algorithm below is based on https://qntm.org/cmd // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information // Sequence of backslashes followed by a double quote: // double up all the backslashes and escape the double quote arg = arg.replace(/(?=(\\+?)?)\1"/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$1'); // All other backslashes occur literally // Quote the whole thing: arg = `"${arg}"`; // Escape meta chars arg = arg.replace(metaCharsRegExp, '^$1'); // Double escape meta chars if necessary if (doubleEscapeMetaChars) { arg = arg.replace(metaCharsRegExp, '^$1'); } return arg; } module.exports.command = escapeCommand; module.exports.argument = escapeArgument;
Save
cmd:
run