diff --git a/crates/jrsonnet-evaluator/src/manifest.rs b/crates/jrsonnet-evaluator/src/manifest.rs index 6cb66379..77531de0 100644 --- a/crates/jrsonnet-evaluator/src/manifest.rs +++ b/crates/jrsonnet-evaluator/src/manifest.rs @@ -241,7 +241,6 @@ fn manifest_json_ex_buf( Minify => {} }; - buf.push_str(cur_padding); State::push_description( || format!("elem <{i}> manifestification"), || manifest_json_ex_buf(&item, buf, cur_padding, options), @@ -298,8 +297,8 @@ fn manifest_json_ex_buf( buf.push_str(options.newline); buf.push_str(cur_padding); } - ToString => buf.push(' '), - Minify => {} + ToString if i != 0 => buf.push(' '), + Minify | ToString => {} } escape_string_json_buf(&key, buf); diff --git a/crates/jrsonnet-stdlib/src/lib.rs b/crates/jrsonnet-stdlib/src/lib.rs index 99333fc3..a0f51f8c 100644 --- a/crates/jrsonnet-stdlib/src/lib.rs +++ b/crates/jrsonnet-stdlib/src/lib.rs @@ -164,7 +164,7 @@ pub fn stdlib_uncached(settings: Rc>) -> ObjValue { ("objectRemoveKey", builtin_object_remove_key::INST), // Manifest ("escapeStringJson", builtin_escape_string_json::INST), - ("escapeStringPython", builtin_escape_string_json::INST), + ("escapeStringPython", builtin_escape_string_python::INST), ("escapeStringXML", builtin_escape_string_xml::INST), ("manifestJsonEx", builtin_manifest_json_ex::INST), ("manifestJson", builtin_manifest_json::INST), diff --git a/crates/jrsonnet-stdlib/src/manifest/mod.rs b/crates/jrsonnet-stdlib/src/manifest/mod.rs index 541e547d..751b318a 100644 --- a/crates/jrsonnet-stdlib/src/manifest/mod.rs +++ b/crates/jrsonnet-stdlib/src/manifest/mod.rs @@ -18,6 +18,11 @@ pub fn builtin_escape_string_json(str_: IStr) -> Result { Ok(escape_string_json(&str_)) } +#[builtin] +pub fn builtin_escape_string_python(str: IStr) -> Result { + Ok(escape_string_json(&str)) +} + #[builtin] pub fn builtin_manifest_json_ex( value: Val, @@ -164,13 +169,13 @@ pub fn builtin_manifest_python( } #[builtin] pub fn builtin_manifest_python_vars( - v: Val, + conf: Val, #[default(false)] #[cfg(feature = "exp-preserve-order")] preserve_order: bool, ) -> Result { - v.manifest(PythonVarsFormat::std( + conf.manifest(PythonVarsFormat::std( #[cfg(feature = "exp-preserve-order")] preserve_order, )) diff --git a/crates/jrsonnet-stdlib/src/strings.rs b/crates/jrsonnet-stdlib/src/strings.rs index 39a2281b..4efdb0cb 100644 --- a/crates/jrsonnet-stdlib/src/strings.rs +++ b/crates/jrsonnet-stdlib/src/strings.rs @@ -37,8 +37,8 @@ pub fn builtin_escape_string_bash(str_: String) -> String { } #[builtin] -pub fn builtin_escape_string_dollars(str: String) -> String { - str.replace('$', "$$") +pub fn builtin_escape_string_dollars(str_: String) -> String { + str_.replace('$', "$$") } #[builtin]