@@ -19,6 +19,7 @@ namespace Sass {
1919 call_stack(std::vector<AST_Node*>()),
2020 property_stack(std::vector<String*>()),
2121 selector_stack(std::vector<Selector_List*>()),
22+ media_block_stack(std::vector<Media_Block*>()),
2223 backtrace_stack(std::vector<Backtrace*>()),
2324 in_keyframes(false )
2425 {
@@ -29,6 +30,7 @@ namespace Sass {
2930 // import_stack.push_back(0);
3031 property_stack.push_back (0 );
3132 selector_stack.push_back (0 );
33+ media_block_stack.push_back (0 );
3234 backtrace_stack.push_back (0 );
3335 backtrace_stack.push_back (bt);
3436 }
@@ -195,6 +197,7 @@ namespace Sass {
195197
196198 Statement* Expand::operator ()(Media_Block* m)
197199 {
200+ media_block_stack.push_back (m);
198201 Expression* mq = m->media_queries ()->perform (&eval);
199202 std::string str_mq (mq->to_string (ctx.c_options ));
200203 char * str = sass_copy_c_string (str_mq.c_str ());
@@ -206,6 +209,7 @@ namespace Sass {
206209 static_cast <List*>(mq->perform (&eval)),
207210 m->block ()->perform (this )->block (),
208211 0 );
212+ media_block_stack.pop_back ();
209213 mm->tabs (m->tabs ());
210214 return mm;
211215 }
@@ -625,6 +629,13 @@ namespace Sass {
625629 if (Selector_Schema* schema = dynamic_cast <Selector_Schema*>(s)) {
626630 if (schema->has_parent_ref ()) s = eval (schema);
627631 }
632+ if (Selector_List* sl = dynamic_cast <Selector_List*>(s)) {
633+ for (Complex_Selector* cs : *sl) {
634+ if (cs != NULL && cs->head () != NULL ) {
635+ cs->head ()->media_block (media_block_stack.back ());
636+ }
637+ }
638+ }
628639 selector_stack.push_back (0 );
629640 expand_selector_list (s, extender);
630641 selector_stack.pop_back ();
0 commit comments