Skip to content

Commit af3f362

Browse files
committed
Fix issue with compressed output mode
1 parent 96b6205 commit af3f362

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

include/sass/values.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ extern "C" {
3939
SASS_ERROR,
4040
SASS_WARNING,
4141
SASS_FUNCTION,
42-
SASS_PARENT,
4342
};
4443

4544
// List separators

src/emitter.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ namespace Sass {
7373
// add outstanding delimiter
7474
void Emitter::finalize(bool final)
7575
{
76-
scheduled_space = 0;
76+
scheduled_space = false;
7777
if (output_style() == SASS_STYLE_COMPRESSED)
7878
if (final) scheduled_delimiter = false;
7979
if (scheduled_linefeed)
@@ -90,8 +90,8 @@ namespace Sass {
9090

9191
for (size_t i = 0; i < scheduled_linefeed; i++)
9292
linefeeds += opt.linefeed;
93-
scheduled_space = 0;
94-
scheduled_linefeed = 0;
93+
scheduled_space = false;
94+
scheduled_linefeed = false;
9595
if (scheduled_delimiter) {
9696
scheduled_delimiter = false;
9797
write_char(';');
@@ -101,7 +101,7 @@ namespace Sass {
101101
}
102102
else if (scheduled_space) {
103103
sass::string spaces(scheduled_space, ' ');
104-
scheduled_space = 0;
104+
scheduled_space = false;
105105
if (scheduled_delimiter) {
106106
scheduled_delimiter = false;
107107
write_char(';');
@@ -249,21 +249,29 @@ namespace Sass {
249249

250250
void Emitter::append_comma_separator()
251251
{
252-
// scheduled_space = 0;
252+
scheduled_space = false;
253253
append_char(',');
254254
append_optional_space();
255255
}
256256

257257
void Emitter::append_colon_separator()
258258
{
259-
scheduled_space = 0;
259+
scheduled_space = false;
260260
append_char(':');
261261
if (!in_custom_property) append_optional_space();
262262
}
263263

264264
void Emitter::append_mandatory_space()
265265
{
266-
scheduled_space = 1;
266+
if (buffer().empty()) {
267+
scheduled_space = true;
268+
}
269+
else {
270+
unsigned char lst = buffer().at(buffer().length() - 1);
271+
if (!isspace(lst)) {
272+
scheduled_space = true;
273+
}
274+
}
267275
}
268276

269277
void Emitter::append_optional_space()

src/inspect.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ namespace Sass {
140140
if (iL == i + 1) break;
141141
next = text[i+1];
142142
if (isHex(next) || next == $space || next == $tab) {
143-
append_char($space);
143+
append_mandatory_space();
144144
}
145145
break;
146146
case $backslash:
@@ -391,7 +391,7 @@ namespace Sass {
391391
append_mandatory_space();
392392
for (CssMediaQueryObj query : import->media()) {
393393
if (first == false) {
394-
append_char($comma);
394+
append_comma_separator();
395395
append_optional_space();
396396
}
397397
acceptCssMediaQuery(query);
@@ -488,7 +488,7 @@ namespace Sass {
488488
append_optional_linefeed();
489489
}
490490
for (SelectorComponentObj& item : complex->elements()) {
491-
if (many) append_optional_space();
491+
if (many) append_mandatory_space();
492492
if (SelectorCombinator* combinator = item->isaSelectorCombinator()) {
493493
visitSelectorCombinator(combinator);
494494
}

0 commit comments

Comments
 (0)