aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-23 01:16:39 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-23 01:16:39 +0200
commit14c91fc45000155f6cfae789b3e9cd758c1e82d4 (patch)
tree0d584c5c13d78b89dba76f33dbc5eb6c5e4d5035
parent517383f806898378c4840657521cc60eb969e9d3 (diff)
...
-rw-r--r--file/file.go19
1 files changed, 5 insertions, 14 deletions
diff --git a/file/file.go b/file/file.go
index d69a640..4fde2f3 100644
--- a/file/file.go
+++ b/file/file.go
@@ -3,7 +3,6 @@ package file
import (
"bufio"
- "bytes"
"encoding"
"encoding/base64"
"errors"
@@ -99,23 +98,15 @@ func EncodeFile(fname string, perm os.FileMode, b *Block) error {
return encodeBlock(fd, b)
}
-func Encode(comment string, u encoding.BinaryMarshaler, r io.Reader) ([]byte, error) {
+func Encode(w io.Writer, comment string, u encoding.BinaryMarshaler, msg []byte) error {
raw, err := u.MarshalBinary()
if err != nil {
- return nil, err
- }
- body, err := ioutil.ReadAll(r)
- if err != io.EOF && err != nil {
- return nil, err
+ return err
}
- block := &Block{
+ b := &Block{
Comment: comment,
Bytes: raw,
- Message: body,
- }
- buf := new(bytes.Buffer)
- if err := encodeBlock(buf, block); err != nil {
- return nil, err
+ Message: msg,
}
- return buf.Bytes(), nil
+ return encodeBlock(w, b)
}