diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-07-20 18:19:24 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-07-20 18:19:24 +0900 |
| commit | dc0087845355222d1cbf2820289444db3eebc87e (patch) | |
| tree | d61e5d31099ec9f05284a16e4f0044c759698d5c /crates/shirabe/src | |
| parent | dbb91e0c4b61b7c1106a9d3aefcab6f2598b93d4 (diff) | |
| download | php-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.rs | 5 |
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, |
