diff options
Diffstat (limited to 'cmd_command.go')
-rw-r--r-- | cmd_command.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/cmd_command.go b/cmd_command.go index e68a3b1..a326524 100644 --- a/cmd_command.go +++ b/cmd_command.go @@ -38,6 +38,7 @@ type CmdCommit struct { OriginalOID string // optional Author *Ident Committer Ident + Encoding string // optional Msg string From string Merge []string @@ -58,6 +59,9 @@ func (c CmdCommit) fiCmdWrite(fiw fiWriter) error { ez.WriteLine("author", *c.Author) } ez.WriteLine("committer", c.Committer) + if c.Encoding != "" { + ez.WriteLine("encoding", c.Encoding) + } ez.WriteData(c.Msg) if c.From != "" { ez.WriteLine("from", c.From) @@ -101,6 +105,11 @@ func (CmdCommit) fiCmdRead(fir fiReader) (cmd Cmd, err error) { c.Committer, err = ParseIdent(trimLinePrefix(ez.ReadLine(), "committer ")) ez.Errcheck(err) + // ('encoding' SP <encoding> LF)? + if strings.HasPrefix(ez.PeekLine(), "encoding ") { + c.Encoding = trimLinePrefix(ez.ReadLine(), "encoding ") + } + // data c.Msg, err = parse_data(ez.ReadLine()) ez.Errcheck(err) |