Skip to content

Commit 789cc34

Browse files
Escaped delimiters.
1 parent a94794f commit 789cc34

File tree

5 files changed

+16
-7
lines changed

5 files changed

+16
-7
lines changed

tasks/filerev_replace.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,9 @@
1010

1111
var path = require('path');
1212

13-
var STARTING_DELIMITERS = '\'"\\(';
14-
var ENDING_DELIMITERS = '\'"\\)\\?#';
15-
var STARTING_DELIMITER = '([' + STARTING_DELIMITERS + '])';
16-
var ENDING_DELIMITER = '([' + ENDING_DELIMITERS + '])';
17-
var ASSET_PATH_START = '([^' + ENDING_DELIMITERS + ']*';
18-
var ASSET_PATH_END = '[^' + ENDING_DELIMITERS + ']*)';
13+
var STARTING_DELIMITER = '(\\\\?\'|\\\\?"|\\\\?\\()';
14+
var ALLOWED_PATH_CHARS = '[^\'"\\(\\)\\?#]*?'; // Lazy, in order not to eat the optional starting character of ENDING_DELIMITER
15+
var ENDING_DELIMITER = '(\\\\?\'|\\\\?"|\\\\?\\)|\\?|#)';
1916

2017
module.exports = function(grunt) {
2118
grunt.registerMultiTask('filerev_replace', 'Replace references to grunt-filerev files.', function() {
@@ -49,7 +46,7 @@ module.exports = function(grunt) {
4946

5047
function asset_path_regexp( asset_path ) {
5148
return new RegExp( STARTING_DELIMITER + // p1
52-
ASSET_PATH_START + escape_for_regexp( path.basename( asset_path ) ) + ASSET_PATH_END + // p2
49+
'(' + ALLOWED_PATH_CHARS + escape_for_regexp( path.basename( asset_path ) ) + ALLOWED_PATH_CHARS + ')' + // p2
5350
ENDING_DELIMITER, // p3
5451
'ig' );
5552
}

test/expected/assets/compiled/scripts.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ var path = '<img src="/images/ajax-loader.4e26f87c.gif" />';
1212
var path = "var path = '/images/ajax-loader.4e26f87c.gif';";
1313
var path = '/images/ajax-loader.4e26f87c.gif', path = "/images/ajax-loader.4e26f87c.gif";
1414

15+
// Escaped delimiters
16+
var path = "body { background: url(\"/images/ajax-loader.4e26f87c.gif\"); }";
17+
1518
// Case insensitive
1619
var path = '/images/ajax-loader.4e26f87c.gif';
1720

test/expected/assets/compiled/styles.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ body { background: url(/images/ajax-loader.4e26f87c.gif); }
1212
body { background: url(/images/ajax-loader.4e26f87c.gif); }
1313
body { background: url('/images/ajax-loader.4e26f87c.gif'); background: url("/images/ajax-loader.4e26f87c.gif"); }
1414

15+
/* Escaped delimiters */
16+
body { content: "<img src=\"/images/ajax-loader.4e26f87c.gif\" />"; }
17+
1518
/* Case insensitive */
1619
body { background: url('/images/ajax-loader.4e26f87c.gif'); }
1720

test/fixtures/assets/compiled/scripts.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ var path = '<img src="/images/ajax-loader.gif" />';
1212
var path = "var path = '/images/ajax-loader.gif';";
1313
var path = '/images/ajax-loader.gif', path = "/images/ajax-loader.gif";
1414

15+
// Escaped delimiters
16+
var path = "body { background: url(\"/images/ajax-loader.gif\"); }";
17+
1518
// Case insensitive
1619
var path = '/IMAGES/ajax-loader.gif';
1720

test/fixtures/assets/compiled/styles.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ body { background: url(/images/ajax-loader.gif); }
1212
body { background: url( /images/ajax-loader.gif ); }
1313
body { background: url('/images/ajax-loader.gif'); background: url("/images/ajax-loader.gif"); }
1414

15+
/* Escaped delimiters */
16+
body { content: "<img src=\"/images/ajax-loader.gif\" />"; }
17+
1518
/* Case insensitive */
1619
body { background: url('/IMAGES/ajax-loader.gif'); }
1720

0 commit comments

Comments
 (0)