Skip to content

Commit db661fa

Browse files
committed
fix --indent 0 to preserve newlines
1 parent e1ff763 commit db661fa

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

cli/cli.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ func (cli *cli) createMarshaler() marshaler {
398398
}
399399
indent := 2
400400
if cli.outputCompact {
401-
indent = 0
401+
indent = -1
402402
} else if cli.outputTab {
403403
indent = 1
404404
} else if i := cli.outputIndent; i != nil {
@@ -412,7 +412,7 @@ func (cli *cli) createMarshaler() marshaler {
412412
}
413413

414414
func (cli *cli) funcDebug(v any, _ []any) any {
415-
if err := newEncoder(false, 0).
415+
if err := newEncoder(false, -1).
416416
marshal([]any{"DEBUG:", v}, cli.errStream); err != nil {
417417
return err
418418
}
@@ -423,7 +423,7 @@ func (cli *cli) funcDebug(v any, _ []any) any {
423423
}
424424

425425
func (cli *cli) funcStderr(v any, _ []any) any {
426-
if err := (&rawMarshaler{m: newEncoder(false, 0)}).
426+
if err := (&rawMarshaler{m: newEncoder(false, -1)}).
427427
marshal(v, cli.errStream); err != nil {
428428
return err
429429
}

cli/encoder.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,15 +166,15 @@ func (e *encoder) encodeArray(vs []any) error {
166166
if i > 0 {
167167
e.writeByte(',', arrayColor)
168168
}
169-
if e.indent != 0 {
169+
if e.indent >= 0 {
170170
e.writeIndent()
171171
}
172172
if err := e.encode(v); err != nil {
173173
return err
174174
}
175175
}
176176
e.depth -= e.indent
177-
if len(vs) > 0 && e.indent != 0 {
177+
if len(vs) > 0 && e.indent >= 0 {
178178
e.writeIndent()
179179
}
180180
e.writeByte(']', arrayColor)
@@ -201,20 +201,20 @@ func (e *encoder) encodeObject(vs map[string]any) error {
201201
if i > 0 {
202202
e.writeByte(',', objectColor)
203203
}
204-
if e.indent != 0 {
204+
if e.indent >= 0 {
205205
e.writeIndent()
206206
}
207207
e.encodeString(kv.key, objectKeyColor)
208208
e.writeByte(':', objectColor)
209-
if e.indent != 0 {
209+
if e.indent >= 0 {
210210
e.w.WriteByte(' ')
211211
}
212212
if err := e.encode(kv.val); err != nil {
213213
return err
214214
}
215215
}
216216
e.depth -= e.indent
217-
if len(vs) > 0 && e.indent != 0 {
217+
if len(vs) > 0 && e.indent >= 0 {
218218
e.writeIndent()
219219
}
220220
e.writeByte('}', objectColor)

cli/test.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6951,7 +6951,12 @@
69516951
- '.'
69526952
input: '{ "foo": ["hello", "world"] }'
69536953
expected: |
6954-
{"foo":["hello","world"]}
6954+
{
6955+
"foo": [
6956+
"hello",
6957+
"world"
6958+
]
6959+
}
69556960
69566961
- name: indent option with deeply nested array
69576962
args:

0 commit comments

Comments
 (0)