@@ -28,27 +28,23 @@ namespace Sass {
2828 dynamic_cast <Supports_Operator*>(cond);
2929 }
3030
31- std::string & str_ltrim ( std::string & str )
31+ void str_rtrim ( std::string& s, const std::string& delimiters = " \f\n\r\t\v " )
3232 {
33- auto it2 = std::find_if ( str.begin () , str.end () , [](char ch){ return !std::isspace<char >(ch , std::locale::classic () ) ; } );
34- str.erase ( str.begin () , it2);
35- return str;
33+ s.erase ( s.find_last_not_of ( delimiters ) + 1 );
3634 }
3735
38- std::string & str_rtrim ( std::string & str )
36+ void str_ltrim ( std::string& s, const std::string& delimiters = " \f\n\r\t\v " )
3937 {
40- auto it1 = std::find_if ( str.rbegin () , str.rend () , [](char ch){ return !std::isspace<char >(ch , std::locale::classic () ) ; } );
41- str.erase ( it1.base () , str.end () );
42- return str;
38+ s.erase ( 0 , s.find_first_not_of ( delimiters ) );
4339 }
4440
4541 void String_Constant::rtrim ()
4642 {
47- value_ = str_rtrim (value_);
43+ str_rtrim (value_);
4844 }
4945 void String_Constant::ltrim ()
5046 {
51- value_ = str_ltrim (value_);
47+ str_ltrim (value_);
5248 }
5349 void String_Constant::trim ()
5450 {
@@ -156,15 +152,15 @@ namespace Sass {
156152
157153 bool SimpleSequence_Selector::has_parent_ref ()
158154 {
159- for (Simple_Selector* s : * this ) {
155+ for (Simple_Selector* s : elements () ) {
160156 if (s && s->has_parent_ref ()) return true ;
161157 }
162158 return false ;
163159 }
164160
165161 bool SimpleSequence_Selector::has_real_parent_ref ()
166162 {
167- for (Simple_Selector* s : * this ) {
163+ for (Simple_Selector* s : elements () ) {
168164 if (s && s->has_real_parent_ref ()) return true ;
169165 }
170166 return false ;
@@ -527,12 +523,12 @@ namespace Sass {
527523 }
528524
529525 SimpleSequence_Selector* Id_Selector::unify_with (SimpleSequence_Selector* rhs, Context& ctx)
530- {
531- for (size_t i = 0 , L = rhs->length (); i < L; ++i)
532526 {
533- Simple_Selector* rhs_i = (*rhs)[i];
527+ for (size_t i = 0 , L = rhs->length (); i < L; ++i)
528+ {
529+ Simple_Selector* rhs_i = (*rhs)[i];
534530 if (typeid (*rhs_i) == typeid (Id_Selector) && static_cast <Id_Selector*>(rhs_i)->name () != name ()) {
535- return 0 ;
531+ return 0 ;
536532 }
537533 }
538534 rhs->has_line_break (has_line_break ());
@@ -1120,7 +1116,7 @@ namespace Sass {
11201116
11211117 CommaSequence_Selector* CommaSequence_Selector::resolve_parent_refs (Context& ctx, CommaSequence_Selector* ps, bool implicit_parent)
11221118 {
1123- if (!this ->has_parent_ref ()/* && !implicit_parent */ ) return this ;
1119+ if (!this ->has_parent_ref ()) return this ;
11241120 CommaSequence_Selector* ss = SASS_MEMORY_NEW (ctx.mem , CommaSequence_Selector, pstate ());
11251121 for (size_t pi = 0 , pL = ps->length (); pi < pL; ++pi) {
11261122 CommaSequence_Selector* list = SASS_MEMORY_NEW (ctx.mem , CommaSequence_Selector, pstate ());
@@ -1143,7 +1139,7 @@ namespace Sass {
11431139 return retval;
11441140 }
11451141
1146- // first resolve_parent_refs the tail (which may return an expanded list)
1142+ // first parentize the tail (which may return an expanded list)
11471143 CommaSequence_Selector* tails = tail ? tail->resolve_parent_refs (ctx, parents, implicit_parent) : 0 ;
11481144
11491145 if (head && head->length () > 0 ) {
@@ -1244,7 +1240,7 @@ namespace Sass {
12441240 retval = this ->tails (ctx, tails);
12451241 }
12461242
1247- for (Simple_Selector* ss : * head) {
1243+ for (Simple_Selector* ss : head-> elements () ) {
12481244 if (Wrapped_Selector* ws = dynamic_cast <Wrapped_Selector*>(ss)) {
12491245 if (CommaSequence_Selector* sl = dynamic_cast <CommaSequence_Selector*>(ws->selector ())) {
12501246 if (parents) ws->selector (sl->resolve_parent_refs (ctx, parents, implicit_parent));
@@ -1413,7 +1409,7 @@ namespace Sass {
14131409 }
14141410
14151411 /* not used anymore - remove?
1416- Placeholder_Selector * Selector::find_placeholder()
1412+ Selector_Placeholder * Selector::find_placeholder()
14171413 {
14181414 return 0;
14191415 }*/
@@ -1445,15 +1441,15 @@ namespace Sass {
14451441
14461442 bool CommaSequence_Selector::has_parent_ref ()
14471443 {
1448- for (Sequence_Selector* s : * this ) {
1444+ for (Sequence_Selector* s : elements () ) {
14491445 if (s && s->has_parent_ref ()) return true ;
14501446 }
14511447 return false ;
14521448 }
14531449
14541450 bool CommaSequence_Selector::has_real_parent_ref ()
14551451 {
1456- for (Sequence_Selector* s : * this ) {
1452+ for (Sequence_Selector* s : elements () ) {
14571453 if (s && s->has_real_parent_ref ()) return true ;
14581454 }
14591455 return false ;
@@ -1542,7 +1538,7 @@ namespace Sass {
15421538 }
15431539 }
15441540
1545- // Creates the final CommaSequence_Selector by combining all the complex selectors
1541+ // Creates the final Selector_List by combining all the complex selectors
15461542 CommaSequence_Selector* final_result = SASS_MEMORY_NEW (ctx.mem , CommaSequence_Selector, pstate ());
15471543 for (auto itr = unified_complex_selectors.begin (); itr != unified_complex_selectors.end (); ++itr) {
15481544 *final_result << *itr;
@@ -1695,8 +1691,8 @@ namespace Sass {
16951691
16961692 bool Ruleset::is_invisible () const {
16971693 if (CommaSequence_Selector* sl = dynamic_cast <CommaSequence_Selector*>(selector ())) {
1698- for (size_t i = 0 , L = sl->length (); i < L; ++i)
1699- if (!(*sl)[i]->has_placeholder ()) return false ;
1694+ for (size_t i = 0 , L = sl->length (); i < L; ++i)
1695+ if (!(*sl)[i]->has_placeholder ()) return false ;
17001696 }
17011697 return true ;
17021698 }
0 commit comments