Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

Commit

Permalink
Revert "Upgrade sass2scss to version 1.1.2"
Browse files Browse the repository at this point in the history
This reverts commit ca89d73.

This bump caused some regressions that are preventing implementors
from upgrading.

See #2637 #2638
  • Loading branch information
xzyfer committed Apr 25, 2018
1 parent 8a6ba8f commit 1e52b74
Showing 1 changed file with 14 additions and 45 deletions.
59 changes: 14 additions & 45 deletions src/sass2scss.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,21 +154,6 @@ namespace Sass

}

static size_t findFirstCharacter (std::string& sass, size_t pos)
{
return sass.find_first_not_of(SASS2SCSS_FIND_WHITESPACE, pos);
}

static size_t findLastCharacter (std::string& sass, size_t pos)
{
return sass.find_last_not_of(SASS2SCSS_FIND_WHITESPACE, pos);
}

static bool isUrl (std::string& sass, size_t pos)
{
return sass[pos] == 'u' && sass[pos+1] == 'r' && sass[pos+2] == 'l' && sass[pos+3] == '(';
}

// check if there is some char data
// will ignore everything in comments
static bool hasCharData (std::string& sass)
Expand Down Expand Up @@ -602,7 +587,6 @@ namespace Sass
sass.substr(pos_left, 5) == "@warn" ||
sass.substr(pos_left, 6) == "@debug" ||
sass.substr(pos_left, 6) == "@error" ||
sass.substr(pos_left, 6) == "@value" ||
sass.substr(pos_left, 8) == "@charset" ||
sass.substr(pos_left, 10) == "@namespace"
) { sass = indent + sass.substr(pos_left); }
Expand All @@ -622,38 +606,23 @@ namespace Sass
{
// get positions for the actual import url
size_t pos_import = sass.find_first_of(SASS2SCSS_FIND_WHITESPACE, pos_left + 7);
size_t pos = sass.find_first_not_of(SASS2SCSS_FIND_WHITESPACE, pos_import);
size_t start = pos;
bool in_dqstr = false;
bool in_sqstr = false;
bool is_escaped = false;
do {
if (is_escaped) {
is_escaped = false;
}
else if (sass[pos] == '\\') {
is_escaped = true;
}
else if (sass[pos] == '"') {
if (!in_sqstr) in_dqstr = ! in_dqstr;
}
else if (sass[pos] == '\'') {
if (!in_dqstr) in_sqstr = ! in_sqstr;
}
else if (in_dqstr || in_sqstr) {
// skip over quoted stuff
}
else if (sass[pos] == ',' || sass[pos] == 0) {
if (sass[start] != '"' && sass[start] != '\'' && !isUrl(sass, start)) {
size_t end = findLastCharacter(sass, pos - 1) + 1;
sass = sass.replace(end, 0, "\"");
sass = sass.replace(start, 0, "\"");
pos += 2;
size_t pos_quote = sass.find_first_not_of(SASS2SCSS_FIND_WHITESPACE, pos_import);
// leave proper urls untouched
if (sass.substr(pos_quote, 4) != "url(")
{
// check if the url appears to be already quoted
if (sass.substr(pos_quote, 1) != "\"" && sass.substr(pos_quote, 1) != "\'")
{
// get position of the last char on the line
size_t pos_end = sass.find_last_not_of(SASS2SCSS_FIND_WHITESPACE);
// assertion check for valid result
if (pos_end != std::string::npos)
{
// add quotes around the full line after the import statement
sass = sass.substr(0, pos_quote) + "\"" + sass.substr(pos_quote, pos_end - pos_quote + 1) + "\"";
}
start = findFirstCharacter(sass, pos + 1);
}
}
while (sass[pos++] != 0);

}
else if (
Expand Down

0 comments on commit 1e52b74

Please sign in to comment.