@@ -996,7 +996,7 @@ namespace Sass {
996
996
prop->is_delayed (true );
997
997
}
998
998
else {
999
- error ( " invalid property name " , pstate );
999
+ css_error ( " Invalid CSS " , " after " , " : expected \" } \" , was " );
1000
1000
}
1001
1001
bool is_indented = true ;
1002
1002
const std::string property (lexed);
@@ -2417,34 +2417,48 @@ namespace Sass {
2417
2417
{
2418
2418
int max_len = 14 ;
2419
2419
const char * pos = peek < optional_spaces >();
2420
+
2421
+ const char * last_pos (pos - 1 );
2420
2422
// backup position to last significant char
2421
- while (!*pos || Prelexer::is_space (*pos)) -- pos;
2423
+ while ((!*last_pos || Prelexer::is_space (*last_pos)) && last_pos > source) -- last_pos;
2424
+
2422
2425
bool ellipsis_left = false ;
2423
- const char * pos_left (pos + 1 );
2424
- if (pos_left < source) pos_left = source;
2425
- while (*pos_left && pos_left > source) {
2426
- if (pos - pos_left > max_len) {
2426
+ const char * pos_left (last_pos);
2427
+ const char * end_left (last_pos);
2428
+ std::cerr << " we have " << int (*pos_left) << " \n " ;
2429
+ while (pos_left > source) {
2430
+ if (end_left - pos_left > max_len) {
2427
2431
ellipsis_left = true ;
2428
2432
break ;
2429
2433
}
2434
+ std::cerr << " back up\n " ;
2435
+
2430
2436
const char * prev = pos_left - 1 ;
2431
2437
if (*prev == ' \r ' ) break ;
2432
2438
if (*prev == ' \n ' ) break ;
2433
2439
pos_left = prev;
2434
2440
}
2441
+ if (pos_left < source) {
2442
+ std::cerr << " NOW RESET\n " ;
2443
+ pos_left = source;
2444
+ }
2445
+
2435
2446
bool ellipsis_right = false ;
2436
- const char * pos_right (pos + 1 );
2437
- while (*pos_right && pos_right <= end) {
2438
- if (pos_right - pos > max_len) {
2447
+ const char * end_right (pos);
2448
+ const char * pos_right (pos);
2449
+ while (end_right <= end) {
2450
+ if (end_right - pos_right > max_len) {
2439
2451
ellipsis_right = true ;
2440
2452
break ;
2441
2453
}
2442
- if (*pos_right == ' \r ' ) break ;
2443
- if (*pos_right == ' \n ' ) break ;
2444
- ++ pos_right ;
2454
+ if (*end_right == ' \r ' ) break ;
2455
+ if (*end_right == ' \n ' ) break ;
2456
+ ++ end_right ;
2445
2457
}
2446
- std::string left (pos_left, pos + 1 );
2447
- std::string right (pos + 1 , pos_right);
2458
+ if (end_right > end) end_right = end;
2459
+
2460
+ std::string left (pos_left, end_left);
2461
+ std::string right (pos_right, end_right);
2448
2462
if (ellipsis_left) left = ellipsis + left;
2449
2463
if (ellipsis_right) right = right + ellipsis;
2450
2464
// now pass new message to the more generic error function
0 commit comments