Skip to content

Commit 481adec

Browse files
delapuentexzyfer
authored andcommitted
Adding $bracketed parameter to join() built-in function
1 parent 5e3de8f commit 481adec

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/functions.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,7 +1330,7 @@ namespace Sass {
13301330
return SASS_MEMORY_NEW(Null, pstate);
13311331
}
13321332

1333-
Signature join_sig = "join($list1, $list2, $separator: auto)";
1333+
Signature join_sig = "join($list1, $list2, $separator: auto, $bracketed: auto)";
13341334
BUILT_IN(join)
13351335
{
13361336
Map_Obj m1 = SASS_MEMORY_CAST(Map, env["$list1"]);
@@ -1339,10 +1339,13 @@ namespace Sass {
13391339
List_Obj l2 = SASS_MEMORY_CAST(List, env["$list2"]);
13401340
String_Constant_Obj sep = ARG("$separator", String_Constant);
13411341
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);
13421344
if (!l1) {
13431345
l1 = SASS_MEMORY_NEW(List, pstate, 1);
13441346
l1->append(ARG("$list1", Expression));
13451347
sep_val = (l2 ? l2->separator() : SASS_SPACE);
1348+
delimiter = (l2 ? l2->delimiter() : SASS_NO_DELIMITER);
13461349
}
13471350
if (!l2) {
13481351
l2 = SASS_MEMORY_NEW(List, pstate, 1);
@@ -1360,7 +1363,12 @@ namespace Sass {
13601363
if (sep_str == "space") sep_val = SASS_SPACE;
13611364
else if (sep_str == "comma") sep_val = SASS_COMMA;
13621365
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);
13641372
result->concat(&l1);
13651373
result->concat(&l2);
13661374
return result.detach();

0 commit comments

Comments
 (0)