@@ -609,6 +609,7 @@ namespace Sass {
609
609
String_Schema* schema = SASS_MEMORY_NEW (ctx.mem , String_Schema, pstate);
610
610
// the selector schema is pretty much just a wrapper for the string schema
611
611
Selector_Schema* selector_schema = SASS_MEMORY_NEW (ctx.mem , Selector_Schema, pstate, schema);
612
+ selector_schema->media_block (last_media_block);
612
613
613
614
// process until end
614
615
while (i < end_of_selector) {
@@ -693,6 +694,7 @@ namespace Sass {
693
694
Complex_Selector* sel = 0 ;
694
695
To_String to_string (&ctx);
695
696
Selector_List* group = SASS_MEMORY_NEW (ctx.mem , Selector_List, pstate);
697
+ group->media_block (last_media_block);
696
698
697
699
do {
698
700
reloop = false ;
@@ -774,6 +776,8 @@ namespace Sass {
774
776
// source position of a complex selector points to the combinator
775
777
// ToDo: make sure we update pstate for ancestor of (lex < zero >());
776
778
Complex_Selector* sel = SASS_MEMORY_NEW (ctx.mem , Complex_Selector, pstate, combinator, lhs);
779
+ sel->media_block (last_media_block);
780
+
777
781
if (combinator == Complex_Selector::REFERENCE) sel->reference (reference);
778
782
// has linfeed after combinator?
779
783
sel->has_line_break (peek_newline ());
@@ -795,13 +799,18 @@ namespace Sass {
795
799
if (!sel->has_reference () && !in_at_root && !in_root) {
796
800
// create the objects to wrap parent selector reference
797
801
Parent_Selector* parent = SASS_MEMORY_NEW (ctx.mem , Parent_Selector, pstate);
802
+ parent->media_block (last_media_block);
798
803
Compound_Selector* head = SASS_MEMORY_NEW (ctx.mem , Compound_Selector, pstate);
804
+ head->media_block (last_media_block);
799
805
// add simple selector
800
806
(*head) << parent;
801
807
// selector may not have any head yet
802
808
if (!sel->head ()) { sel->head (head); }
803
809
// otherwise we need to create a new complex selector and set the old one as its tail
804
- else { sel = SASS_MEMORY_NEW (ctx.mem , Complex_Selector, pstate, Complex_Selector::ANCESTOR_OF, head, sel); }
810
+ else {
811
+ sel = SASS_MEMORY_NEW (ctx.mem , Complex_Selector, pstate, Complex_Selector::ANCESTOR_OF, head, sel);
812
+ sel->media_block (last_media_block);
813
+ }
805
814
// peek for linefeed and remember result on head
806
815
// if (peek_newline()) head->has_line_break(true);
807
816
}
@@ -818,6 +827,7 @@ namespace Sass {
818
827
{
819
828
// init an empty compound selector wrapper
820
829
Compound_Selector* seq = SASS_MEMORY_NEW (ctx.mem , Compound_Selector, pstate);
830
+ seq->media_block (last_media_block);
821
831
822
832
// skip initial white-space
823
833
lex< css_whitespace >();
@@ -892,7 +902,9 @@ namespace Sass {
892
902
return parse_attribute_selector ();
893
903
}
894
904
else if (lex< placeholder >()) {
895
- return SASS_MEMORY_NEW (ctx.mem , Selector_Placeholder, pstate, lexed);
905
+ Selector_Placeholder* sel = SASS_MEMORY_NEW (ctx.mem , Selector_Placeholder, pstate, lexed);
906
+ sel->media_block (last_media_block);
907
+ return sel;
896
908
}
897
909
// failed
898
910
return 0 ;
@@ -1912,7 +1924,10 @@ namespace Sass {
1912
1924
Media_Block* media_block = SASS_MEMORY_NEW (ctx.mem , Media_Block, pstate, 0 , 0 );
1913
1925
media_block->media_queries (parse_media_queries ());
1914
1926
1927
+ Media_Block* prev_media_block = last_media_block;
1928
+ last_media_block = media_block;
1915
1929
media_block->block (parse_css_block ());
1930
+ last_media_block = prev_media_block;
1916
1931
1917
1932
return media_block;
1918
1933
}
0 commit comments