@@ -1330,7 +1330,7 @@ namespace Sass {
1330
1330
return SASS_MEMORY_NEW (Null, pstate);
1331
1331
}
1332
1332
1333
- Signature join_sig = " join($list1, $list2, $separator: auto)" ;
1333
+ Signature join_sig = " join($list1, $list2, $separator: auto, $bracketed: auto )" ;
1334
1334
BUILT_IN (join)
1335
1335
{
1336
1336
Map_Obj m1 = SASS_MEMORY_CAST (Map, env[" $list1" ]);
@@ -1339,10 +1339,13 @@ namespace Sass {
1339
1339
List_Obj l2 = SASS_MEMORY_CAST (List, env[" $list2" ]);
1340
1340
String_Constant_Obj sep = ARG (" $separator" , String_Constant);
1341
1341
enum Sass_Separator sep_val = (l1 ? l1->separator () : SASS_SPACE);
1342
+ Value* bracketed = ARG (" $bracketed" , Value);
1343
+ enum Sass_List_Delimiter delimiter = (l1 ? l1->delimiter () : SASS_NO_DELIMITER);
1342
1344
if (!l1) {
1343
1345
l1 = SASS_MEMORY_NEW (List, pstate, 1 );
1344
1346
l1->append (ARG (" $list1" , Expression));
1345
1347
sep_val = (l2 ? l2->separator () : SASS_SPACE);
1348
+ delimiter = (l2 ? l2->delimiter () : SASS_NO_DELIMITER);
1346
1349
}
1347
1350
if (!l2) {
1348
1351
l2 = SASS_MEMORY_NEW (List, pstate, 1 );
@@ -1360,7 +1363,12 @@ namespace Sass {
1360
1363
if (sep_str == " space" ) sep_val = SASS_SPACE;
1361
1364
else if (sep_str == " comma" ) sep_val = SASS_COMMA;
1362
1365
else if (sep_str != " auto" ) error (" argument `$separator` of `" + std::string (sig) + " ` must be `space`, `comma`, or `auto`" , pstate);
1363
- List_Obj result = SASS_MEMORY_NEW (List, pstate, len, sep_val);
1366
+ String_Constant_Obj bracketed_as_str = SASS_MEMORY_CAST_PTR (String_Constant, bracketed);
1367
+ bool bracketed_is_auto = bracketed_as_str && unquote (bracketed_as_str->value ()) == " auto" ;
1368
+ if (!bracketed_is_auto) {
1369
+ delimiter = bracketed->is_false () ? SASS_NO_DELIMITER : SASS_BRACKETS;
1370
+ }
1371
+ List_Obj result = SASS_MEMORY_NEW (List, pstate, len, sep_val, false , delimiter);
1364
1372
result->concat (&l1);
1365
1373
result->concat (&l2);
1366
1374
return result.detach ();
0 commit comments