~sircmpwn/aerc

25f21b55bd3179258f02d5498ecc969ff1ad820a — Drew DeVault 3 years ago d603bbe
Tidy up list.go
1 files changed, 15 insertions(+), 22 deletions(-)

M worker/imap/list.go
M worker/imap/list.go => worker/imap/list.go +15 -22
@@ 14,28 14,21 @@ func (imapw *IMAPWorker) handleListDirectories(msg *types.ListDirectories) {
		done <- imapw.client.List("", "*", mailboxes)
	}()
	go func() {
		for {
			select {
			case err := <-done:
				if err != nil {
					imapw.worker.PostMessage(&types.Error{
						Message: types.RespondTo(msg),
						Error:   err,
					}, nil)
				} else {
					imapw.worker.PostMessage(
						&types.Done{types.RespondTo(msg)}, nil)
				}
				return
			case mbox := <-mailboxes:
				if mbox != nil {
					imapw.worker.PostMessage(&types.Directory{
						Message:    types.RespondTo(msg),
						Name:       mbox.Name,
						Attributes: mbox.Attributes,
					}, nil)
				}
			}
		for mbox := range mailboxes {
			imapw.worker.PostMessage(&types.Directory{
				Message:    types.RespondTo(msg),
				Name:       mbox.Name,
				Attributes: mbox.Attributes,
			}, nil)
		}
		if err := <-done; err != nil {
			imapw.worker.PostMessage(&types.Error{
				Message: types.RespondTo(msg),
				Error:   err,
			}, nil)
		} else {
			imapw.worker.PostMessage(
				&types.Done{types.RespondTo(msg)}, nil)
		}
	}()
}