diff --git a/lib/util/escape.js b/lib/util/escape.js index e4804b9..7bf2905 100644 --- a/lib/util/escape.js +++ b/lib/util/escape.js @@ -20,12 +20,12 @@ function escapeArgument(arg, doubleEscapeMetaChars) { // Sequence of backslashes followed by a double quote: // double up all the backslashes and escape the double quote - arg = arg.replace(/(?=\\*?)"/g, '$1$1\\"'); + 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'); + arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1'); // All other backslashes occur literally