Skip to content

Commit 4f7b850

Browse files
committed
Fix compiler issue with spec regression on NetBSD 6.1
Failed sass-spec/spec/libsass-closed-issues/issue_2120 http://www.cpantesters.org/cpan/report/a2de7dd8-06de-11e7-af13-afb6b8e3343c
1 parent 9eb7b33 commit 4f7b850

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/lexer.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,26 +79,29 @@ namespace Sass {
7979
// but with specific ranges (copied from Ruby Sass)
8080
bool is_nonascii(const char& chr)
8181
{
82+
unsigned int cmp = unsigned(chr);
8283
return (
83-
(unsigned(chr) >= 128 && unsigned(chr) <= 15572911) ||
84-
(unsigned(chr) >= 15630464 && unsigned(chr) <= 15712189) ||
85-
(unsigned(chr) >= 4036001920)
84+
(cmp >= 128 && cmp <= 15572911) ||
85+
(cmp >= 15630464 && cmp <= 15712189) ||
86+
(cmp >= 4036001920)
8687
);
8788
}
8889

8990
// check if char is within a reduced ascii range
9091
// valid in a uri (copied from Ruby Sass)
9192
bool is_uri_character(const char& chr)
9293
{
93-
return (unsigned(chr) > 41 && unsigned(chr) < 127) ||
94-
unsigned(chr) == ':' || unsigned(chr) == '/';
94+
unsigned int cmp = unsigned(chr);
95+
return (cmp > 41 && cmp < 127) ||
96+
cmp == ':' || cmp == '/';
9597
}
9698

9799
// check if char is within a reduced ascii range
98100
// valid for escaping (copied from Ruby Sass)
99101
bool is_escapable_character(const char& chr)
100102
{
101-
return unsigned(chr) > 31 && unsigned(chr) < 127;
103+
unsigned int cmp = unsigned(chr);
104+
return cmp > 31 && cmp < 127;
102105
}
103106

104107
// Match word character (look ahead)

src/util.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ namespace Sass {
292292
// convert the whole output from string to a stream!?
293293
// allocate memory for utf8 char and convert to utf8
294294
unsigned char u[5] = {0,0,0,0,0}; utf8::append(cp, u);
295-
for(size_t m = 0; u[m] && m < 5; m++) unq.push_back(u[m]);
295+
for(size_t m = 0; m < 5 && u[m]; m++) unq.push_back(u[m]);
296296

297297
// skip some more chars?
298298
i += len - 1; skipped = false;

0 commit comments

Comments
 (0)