diff --git a/src/builtin/string.rs b/src/builtin/string.rs index fef5acb..9035354 100644 --- a/src/builtin/string.rs +++ b/src/builtin/string.rs @@ -176,6 +176,10 @@ pub(crate) fn register(f: &mut HashMap) { QuoteKind::None => QuoteKind::None, }; + if s1.is_empty() { + return Ok(Value::Ident(substr, quotes)); + } + let len = s1.len(); // Insert substring at char position, rather than byte position diff --git a/tests/strings.rs b/tests/strings.rs index e8ccc58..f43bc3a 100644 --- a/tests/strings.rs +++ b/tests/strings.rs @@ -141,6 +141,11 @@ test!( ); test!( str_insert_empty_string, + "a {\n color: str-insert(\"\", \"abcd\", 4);\n}\n", + "a {\n color: \"abcd\";\n}\n" +); +test!( + str_insert_empty_substring, "a {\n color: str-insert(abcd, \"\", 4);\n}\n", "a {\n color: abcd;\n}\n" );