From 8889dd82b7028b602ca05f20503af5a73a48eb49 Mon Sep 17 00:00:00 2001 From: Utkarsh Tiwari Date: Mon, 27 Jul 2026 00:48:42 +0530 Subject: [PATCH] Fix indentation for shadow key values --- file.go | 7 +++---- file_test.go | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/file.go b/file.go index 58beabc..ff52d0b 100644 --- a/file.go +++ b/file.go @@ -430,10 +430,6 @@ func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { } } - if len(indent) > 0 && sname != DefaultSection { - buf.WriteString(indent) - } - switch { case key.isAutoIncrement: kname = "-" @@ -444,6 +440,9 @@ func (f *File) writeToBuffer(indent string) (*bytes.Buffer, error) { } writeKeyValue := func(val string) (bool, error) { + if len(indent) > 0 && sname != DefaultSection { + buf.WriteString(indent) + } if _, err := buf.WriteString(kname); err != nil { return false, err } diff --git a/file_test.go b/file_test.go index 306c0c8..12269a0 100644 --- a/file_test.go +++ b/file_test.go @@ -476,6 +476,26 @@ bar3 = " val ue3 " }) } +func TestFile_WriteToIndentWithShadows(t *testing.T) { + f := Empty(LoadOptions{AllowShadows: true}) + section, err := f.NewSection("FILTER") + require.NoError(t, err) + key, err := section.NewKey("whitelist_key", "_CMDLINE") + require.NoError(t, err) + require.NoError(t, key.AddShadow("_EXE")) + require.NoError(t, key.AddShadow("_HOSTNAME")) + + var buf bytes.Buffer + _, err = f.WriteToIndent(&buf, " ") + require.NoError(t, err) + + want := "[FILTER]" + LineBreak + + " whitelist_key = _CMDLINE" + LineBreak + + " whitelist_key = _EXE" + LineBreak + + " whitelist_key = _HOSTNAME" + LineBreak + assert.Equal(t, want, buf.String()) +} + func TestFile_SaveTo(t *testing.T) { f, err := Load(fullConf) require.NoError(t, err)