Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Commit 4e8099a

Browse files
author
Aaron Leung
committed
Getting group extensions to print out in the same order as canonical Sass.
1 parent 774072c commit 4e8099a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

eval_apply.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,25 +1114,34 @@ namespace Sass {
11141114
++request) {
11151115
group << generate_extension(expr[2], request->second, new_Node);
11161116
}
1117+
group.has_been_extended() = true;
11171118
expr[2] = group;
11181119
}
11191120
}
11201121
// individually check each selector in a group
11211122
else {
11221123
Node group(expr[2]);
1124+
Node new_group(new_Node(Node::selector_group, group.path(), group.line(), group.size()));
11231125
// for each selector in the group ...
11241126
for (size_t i = 0, S = group.size(); i < S; ++i) {
1127+
new_group << group[i];
11251128
Node sel(selector_base(group[i]));
11261129
// if it has extenders ...
1127-
if (extension_requests.count(sel)) {
1130+
if (!group[i].has_been_extended() && extension_requests.count(sel)) {
11281131
// for each of its extenders ...
11291132
for (multimap<Node, Node>::iterator request = extension_requests.lower_bound(sel);
11301133
request != extension_requests.upper_bound(sel);
11311134
++request) {
1132-
group << generate_extension(group[i], request->second, new_Node);
1135+
new_group << generate_extension(group[i], request->second, new_Node);
11331136
}
1137+
group[i].has_been_extended() = true;
11341138
}
11351139
}
1140+
if (new_group.size() > 0) {
1141+
group.has_been_extended() = true;
1142+
new_group.has_been_extended() = true;
1143+
expr[2] = new_group;
1144+
}
11361145
}
11371146
}
11381147
extend(expr[1], extension_requests, new_Node);

0 commit comments

Comments
 (0)