aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-20 18:19:24 +0900
committernsfisis <nsfisis@gmail.com>2026-07-20 18:19:24 +0900
commitdc0087845355222d1cbf2820289444db3eebc87e (patch)
treed61e5d31099ec9f05284a16e4f0044c759698d5c /crates/shirabe/src
parentdbb91e0c4b61b7c1106a9d3aefcab6f2598b93d4 (diff)
downloadphp-shirabe-dc0087845355222d1cbf2820289444db3eebc87e.tar.gz
php-shirabe-dc0087845355222d1cbf2820289444db3eebc87e.tar.zst
php-shirabe-dc0087845355222d1cbf2820289444db3eebc87e.zip
fix(json-file): forward detected indent into write's encode options
JsonFile::write_with_options() used the caller-supplied JsonEncodeOptions verbatim, ignoring self.indent (set by read()'s detect_indenting), unlike PHP's write() which always passes $this->indent to encode() regardless of the $options argument. Un-ignore test_preserve_indentation_after_read.
Diffstat (limited to 'crates/shirabe/src')
-rw-r--r--crates/shirabe/src/json/json_file.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/crates/shirabe/src/json/json_file.rs b/crates/shirabe/src/json/json_file.rs
index 0ce55e55..91e0d380 100644
--- a/crates/shirabe/src/json/json_file.rs
+++ b/crates/shirabe/src/json/json_file.rs
@@ -220,6 +220,11 @@ impl JsonFile {
hash: PhpMixed,
options: JsonEncodeOptions,
) -> anyhow::Result<()> {
+ let options = JsonEncodeOptions {
+ indent: self.indent.clone(),
+ ..options
+ };
+
if self.path == "php://memory" {
file_put_contents(
&self.path,