Skip to content

Commit 072e9ea

Browse files
committed
Improve handling of escape sequence in selectors (fixes leafo#178)
1 parent 2b96f4b commit 072e9ea

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

scss.inc.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3911,6 +3911,11 @@ protected function selectorSingle(&$out) {
39113911
continue;
39123912
}
39133913

3914+
if ($this->match('\\\\\S', $m)) {
3915+
$parts[] = $m[0];
3916+
continue;
3917+
}
3918+
39143919
// for keyframes
39153920
if ($this->unit($unit)) {
39163921
$parts[] = $unit;
@@ -4034,7 +4039,7 @@ protected function variable(&$out) {
40344039
}
40354040

40364041
protected function keyword(&$word, $eatWhitespace = null) {
4037-
if ($this->match('([\w_\-\*!"\'\\\\][\w\-_"\'\\\\]*)',
4042+
if ($this->match('(([\w_\-\*!"\']|[\\\\].)([\w\-_"\']|[\\\\].)*)',
40384043
$m, $eatWhitespace))
40394044
{
40404045
$word = $m[1];

tests/inputs/selectors.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,11 @@ div {
185185
}
186186
}
187187

188+
$name: escape;
189+
.#{$name}\% {
190+
color: red;
191+
}
192+
193+
.escape-plan\% {
194+
color: green;
195+
}

tests/outputs/selectors.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,3 +333,9 @@ div.foo div {
333333

334334
.nice-fonts .main .message div .title, .nice-fonts div .message div .title {
335335
font-size: 24px; }
336+
337+
.escape\% {
338+
color: red; }
339+
340+
.escape-plan\% {
341+
color: green; }

0 commit comments

Comments
 (0)