File tree Expand file tree Collapse file tree 6 files changed +46
-47
lines changed Expand file tree Collapse file tree 6 files changed +46
-47
lines changed Original file line number Diff line number Diff line change @@ -2040,12 +2040,12 @@ namespace Sass {
2040
2040
2041
2041
std::string String_Quoted::inspect () const
2042
2042
{
2043
- return quote (value_, ' *' , true );
2043
+ return quote (value_, ' *' );
2044
2044
}
2045
2045
2046
2046
std::string String_Constant::inspect () const
2047
2047
{
2048
- return quote (value_, ' *' , true );
2048
+ return quote (value_, ' *' );
2049
2049
}
2050
2050
2051
2051
// ////////////////////////////////////////////////////////////////////////////////////////
Original file line number Diff line number Diff line change @@ -709,7 +709,7 @@ namespace Sass {
709
709
void Inspect::operator ()(String_Quoted* s)
710
710
{
711
711
if (const char q = s->quote_mark ()) {
712
- append_token (quote (s->value (), q, true ), s);
712
+ append_token (quote (s->value (), q), s);
713
713
} else {
714
714
append_token (s->value (), s);
715
715
}
Original file line number Diff line number Diff line change @@ -1215,43 +1215,5 @@ namespace Sass {
1215
1215
>(src);
1216
1216
}
1217
1217
1218
- template <size_t size, prelexer mx, prelexer pad>
1219
- const char * padded_token (const char * src)
1220
- {
1221
- size_t got = 0 ;
1222
- const char * pos = src;
1223
- while (got < size) {
1224
- if (!mx (pos)) break ;
1225
- ++ pos; ++ got;
1226
- }
1227
- while (got < size) {
1228
- if (!pad (pos)) break ;
1229
- ++ pos; ++ got;
1230
- }
1231
- return got ? pos : 0 ;
1232
- }
1233
-
1234
- template <size_t min, size_t max, prelexer mx>
1235
- const char * minmax_range (const char * src)
1236
- {
1237
- size_t got = 0 ;
1238
- const char * pos = src;
1239
- while (got < max) {
1240
- if (!mx (pos)) break ;
1241
- ++ pos; ++ got;
1242
- }
1243
- if (got < min) return 0 ;
1244
- if (got > max) return 0 ;
1245
- return pos;
1246
- }
1247
-
1248
- template <char min, char max>
1249
- const char * char_range (const char * src)
1250
- {
1251
- if (*src < min) return 0 ;
1252
- if (*src > max) return 0 ;
1253
- return src + 1 ;
1254
- }
1255
-
1256
1218
}
1257
1219
}
Original file line number Diff line number Diff line change @@ -421,13 +421,42 @@ namespace Sass {
421
421
}
422
422
423
423
template <size_t size, prelexer mx, prelexer pad>
424
- const char * padded_token (const char * src);
424
+ const char * padded_token (const char * src)
425
+ {
426
+ size_t got = 0 ;
427
+ const char * pos = src;
428
+ while (got < size) {
429
+ if (!mx (pos)) break ;
430
+ ++ pos; ++ got;
431
+ }
432
+ while (got < size) {
433
+ if (!pad (pos)) break ;
434
+ ++ pos; ++ got;
435
+ }
436
+ return got ? pos : 0 ;
437
+ }
425
438
426
439
template <size_t min, size_t max, prelexer mx>
427
- const char * minmax_range (const char * src);
440
+ const char * minmax_range (const char * src)
441
+ {
442
+ size_t got = 0 ;
443
+ const char * pos = src;
444
+ while (got < max) {
445
+ if (!mx (pos)) break ;
446
+ ++ pos; ++ got;
447
+ }
448
+ if (got < min) return 0 ;
449
+ if (got > max) return 0 ;
450
+ return pos;
451
+ }
428
452
429
453
template <char min, char max>
430
- const char * char_range (const char * src);
454
+ const char * char_range (const char * src)
455
+ {
456
+ if (*src < min) return 0 ;
457
+ if (*src > max) return 0 ;
458
+ return src + 1 ;
459
+ }
431
460
432
461
}
433
462
}
Original file line number Diff line number Diff line change @@ -315,7 +315,7 @@ namespace Sass {
315
315
316
316
}
317
317
318
- std::string quote (const std::string& s, char q, bool keep_linefeed_whitespace )
318
+ std::string quote (const std::string& s, char q)
319
319
{
320
320
321
321
// autodetect with fallback to given quote
@@ -352,8 +352,16 @@ namespace Sass {
352
352
quoted.push_back (' a' );
353
353
// we hope we can remove this flag once we figure out
354
354
// why ruby sass has these different output behaviors
355
- if (keep_linefeed_whitespace)
355
+ // gsub(/\n(?![a-fA-F0-9\s])/, "\\a").gsub("\n", "\\a ")
356
+ using namespace Prelexer ;
357
+ if (alternatives <
358
+ Prelexer::char_range<' a' , ' f' >,
359
+ Prelexer::char_range<' A' , ' F' >,
360
+ Prelexer::char_range<' 0' , ' 9' >,
361
+ space
362
+ >(it) != NULL ) {
356
363
quoted.push_back (' ' );
364
+ }
357
365
} else if (cp < 127 ) {
358
366
quoted.push_back ((char ) cp);
359
367
} else {
Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ namespace Sass {
23
23
std::string string_to_output (const std::string& str);
24
24
std::string comment_to_string (const std::string& text);
25
25
26
- std::string quote (const std::string&, char q = 0 , bool keep_linefeed_whitespace = false );
26
+ std::string quote (const std::string&, char q = 0 );
27
27
std::string unquote (const std::string&, char * q = 0 , bool keep_utf8_sequences = false );
28
28
char detect_best_quotemark (const char * s, char qm = ' "' );
29
29
You can’t perform that action at this time.
0 commit comments