+11
-2
@@ -652,10 +652,19 @@ func (enc *Encoder) encodeStruct(b []byte, ctx encoderCtx, v reflect.Value) ([]b
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (enc *Encoder) encodeComment(indent int, comment string, b []byte) []byte {
|
func (enc *Encoder) encodeComment(indent int, comment string, b []byte) []byte {
|
||||||
if comment != "" {
|
for len(comment) > 0 {
|
||||||
|
var line string
|
||||||
|
idx := strings.IndexByte(comment, '\n')
|
||||||
|
if idx >= 0 {
|
||||||
|
line = comment[:idx]
|
||||||
|
comment = comment[idx+1:]
|
||||||
|
} else {
|
||||||
|
line = comment
|
||||||
|
comment = ""
|
||||||
|
}
|
||||||
b = enc.indent(indent, b)
|
b = enc.indent(indent, b)
|
||||||
b = append(b, "# "...)
|
b = append(b, "# "...)
|
||||||
b = append(b, comment...)
|
b = append(b, line...)
|
||||||
b = append(b, '\n')
|
b = append(b, '\n')
|
||||||
}
|
}
|
||||||
return b
|
return b
|
||||||
|
|||||||
@@ -1004,6 +1004,22 @@ func TestIssue752(t *testing.T) {
|
|||||||
require.Equal(t, "", string(out))
|
require.Equal(t, "", string(out))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIssue768(t *testing.T) {
|
||||||
|
type cfg struct {
|
||||||
|
Name string `comment:"This is a multiline comment.\nThis is line 2."`
|
||||||
|
}
|
||||||
|
|
||||||
|
out, err := toml.Marshal(&cfg{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
expected := `# This is a multiline comment.
|
||||||
|
# This is line 2.
|
||||||
|
Name = ''
|
||||||
|
`
|
||||||
|
|
||||||
|
require.Equal(t, expected, string(out))
|
||||||
|
}
|
||||||
|
|
||||||
func TestMarshalNestedAnonymousStructs(t *testing.T) {
|
func TestMarshalNestedAnonymousStructs(t *testing.T) {
|
||||||
type Embedded struct {
|
type Embedded struct {
|
||||||
Value string `toml:"value" json:"value"`
|
Value string `toml:"value" json:"value"`
|
||||||
|
|||||||
Reference in New Issue
Block a user