simplify some code; use Message instead of *Message, this struct is small
4 files changed, 10 insertions(+), 14 deletions(-)

M cmd/mb/main.go
M list_test.go
M mh/mh.go
M sequence.go
M cmd/mb/main.go +2 -3
@@ 203,14 203,13 @@ func main() {
 		if folder, match, err = parseRegexpCmd(os.Args[2:]); err != nil {
 			break
 		}
-		var msgs []*mh.Message
+		var msgs []mh.Message
 		if msgs, err = mbox.ReadFolder(folder); err != nil {
 			break
 		}
 		var picked []string
 		for i := range msgs {
-			// todo: no *
-			if match.Matches(*msgs[i]) {
+			if match.Matches(msgs[i]) {
 				picked = append(picked, strconv.FormatInt(msgs[i].Id, 10))
 			}
 		}

          
M list_test.go +2 -2
@@ 4,7 4,7 @@ import (
 	"os"
 	"testing"
 
-	mh "bitbucket.org/telesto/mailbox/mh"
+	"bitbucket.org/telesto/mailbox/mh"
 )
 
 func BenchmarkList(b *testing.B) {

          
@@ 13,7 13,7 @@ func BenchmarkList(b *testing.B) {
 	if err != nil {
 		panic(err)
 	}
-	mbox := NewMHMailbox(mh.NewMailbox())
+	mbox := mh.NewMailbox()
 	msgs := NewAlwaysMatcher()
 	b.StartTimer()
 	for i := 0; i < b.N; i++ {

          
M mh/mh.go +5 -6
@@ 90,7 90,7 @@ func (mbox Mailbox) FolderType(folder st
 	return t, ok
 }
 
-func (mbox Mailbox) ReadFolder(folder string) ([]*Message, error) {
+func (mbox Mailbox) ReadFolder(folder string) ([]Message, error) {
 	if err := mbox.lock(); err != nil {
 		return nil, err
 	}

          
@@ 104,7 104,7 @@ func (mbox Mailbox) ReadFolder(folder st
 		}
 	}
 	// continue on error, show what we got
-	var mails []*Message
+	var mails []Message
 	for i := range list {
 		file, err1 := mbox.open(folder, list[i].Name())
 		if err1 != nil {

          
@@ 124,7 124,7 @@ func (mbox Mailbox) ReadFolder(folder st
 			mails = append(mails, errMail(list[i].Id, err1))
 			continue
 		}
-		mails = append(mails, &Message{list[i].Id, msg})
+		mails = append(mails, Message{list[i].Id, msg})
 	}
 	return mails, err
 }

          
@@ 153,12 153,11 @@ func (mh *Mailbox) Append(folder string,
 	return id, mh.unlock()
 }
 
-func errMail(id int64, err error) *Message {
+func errMail(id int64, err error) Message {
 	h := make(map[string][]string, 1)
 	h["Subject"] = []string{"Error: " + err.Error()}
 	b := strings.NewReader("Error: " + err.Error())
-	m := Message{id, &mail.Message{h, b}}
-	return &m
+	return Message{id, &mail.Message{h, b}}
 }
 
 func (mh *Mailbox) MkFolder(folder string) error {

          
M sequence.go +1 -3
@@ 59,9 59,7 @@ func ParseSequence(input string) (*Seque
 }
 
 func NewAlwaysMatcher() *Sequence {
-	var s Sequence
-	s.section = append(s.section, [2]int64{0, 1<<63 - 1})
-	return &s
+	return &Sequence{section: [][2]int64{[2]int64{0, 1<<63 - 1}}}
 }
 
 type Regexp struct {