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