From 200385a966c0a8992ab553ba4bfe6c8f36d2e9d2 Mon Sep 17 00:00:00 2001 From: Benjamin Hanes Date: Wed, 31 Aug 2016 11:20:57 -0400 Subject: [PATCH] Fix for stringifying Windows paths --- lib/stringifyValues.js | 6 +++--- test/test-cases-values.js | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/stringifyValues.js b/lib/stringifyValues.js index 976af12..a61d8d5 100644 --- a/lib/stringifyValues.js +++ b/lib/stringifyValues.js @@ -38,11 +38,11 @@ function stringifyWithoutBeforeAfter(tree) { var end = (tree.innerSpacingAfter || "") + ")"; switch(tree.stringType) { case "'": - return start + "'" + tree.url.replace(/'/g, "\\'") + "'" + end; + return start + "'" + tree.url.replace(/(\\)/g, "\\$1").replace(/'/g, "\\'") + "'" + end; case "\"": - return start + "\"" + tree.url.replace(/"/g, "\\\"") + "\"" + end; + return start + "\"" + tree.url.replace(/(\\)/g, "\\$1").replace(/"/g, "\\\"") + "\"" + end; default: - return start + tree.url.replace(/("|'|\))/g, "\\$1") + end; + return start + tree.url.replace(/("|'|\)|\\)/g, "\\$1") + end; } } } diff --git a/test/test-cases-values.js b/test/test-cases-values.js index 1d49bf1..105b00f 100644 --- a/test/test-cases-values.js +++ b/test/test-cases-values.js @@ -68,6 +68,12 @@ module.exports = { { type: "url", url: "ghi)j\"k", innerSpacingBefore: " " } ]) ], + "windows-urls": [ + "url('C:\\\\Users\\\\Test\\\\test.png')", + singleValue([ + { type: "url", url: "C:\\Users\\Test\\test.png", stringType: "'"} + ]) + ], "nested-item": [ "format('woff')", singleValue([