Skip to content

Commit 1b7a231

Browse files
am11mgreter
authored andcommitted
Fixes source map generating (sass#586)
1 parent 7a381b8 commit 1b7a231

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

source_map.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ namespace Sass {
6969

7070
if (generated_line != previous_generated_line) {
7171
previous_generated_column = 0;
72-
while (generated_line != previous_generated_line) {
73-
result += ";";
74-
previous_generated_line += 1;
72+
if (generated_line > previous_generated_line) {
73+
result += std::string(generated_line - previous_generated_line, ';');
74+
previous_generated_line = generated_line;
7575
}
7676
}
77-
else {
78-
if (i > 0) result += ",";
77+
else if (i > 0) {
78+
result += ",";
7979
}
8080

8181
// generated column
@@ -97,15 +97,18 @@ namespace Sass {
9797

9898
void SourceMap::remove_line()
9999
{
100-
current_position.line -= 1;
101-
current_position.column = 1;
100+
// prevent removing non existing lines
101+
if (current_position.line > 1) {
102+
current_position.line -= 1;
103+
current_position.column = 1;
104+
}
102105
}
103106

104107
void SourceMap::update_column(const string& str)
105108
{
106109
const ptrdiff_t new_line_count = std::count(str.begin(), str.end(), '\n');
107110
current_position.line += new_line_count;
108-
if (new_line_count >= 1) {
111+
if (new_line_count > 0) {
109112
current_position.column = str.size() - str.find_last_of('\n');
110113
} else {
111114
current_position.column += str.size();

0 commit comments

Comments
 (0)