diff options
| -rw-r--r-- | lib/msgstore.go | 18 | 
1 files changed, 10 insertions, 8 deletions
| diff --git a/lib/msgstore.go b/lib/msgstore.go index 53faaac..48a105e 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -310,7 +310,7 @@ func (store *MessageStore) Uids() []uint32 {  }  func (store *MessageStore) Selected() *models.MessageInfo { -	return store.Messages[store.uids[len(store.uids)-store.selected-1]] +	return store.Messages[store.Uids()[len(store.Uids())-store.selected-1]]  }  func (store *MessageStore) SelectedIndex() int { @@ -318,32 +318,34 @@ func (store *MessageStore) SelectedIndex() int {  }  func (store *MessageStore) Select(index int) { +	uids := store.Uids()  	store.selected = index -	for ; store.selected < 0; store.selected = len(store.uids) + store.selected { +	for ; store.selected < 0; store.selected = len(uids) + store.selected {  		/* This space deliberately left blank */  	} -	if store.selected > len(store.uids) { -		store.selected = len(store.uids) +	if store.selected > len(uids) { +		store.selected = len(uids)  	}  }  func (store *MessageStore) nextPrev(delta int) { -	if len(store.uids) == 0 { +	uids := store.Uids() +	if len(uids) == 0 {  		return  	}  	store.selected += delta  	if store.selected < 0 {  		store.selected = 0  	} -	if store.selected >= len(store.uids) { -		store.selected = len(store.uids) - 1 +	if store.selected >= len(uids) { +		store.selected = len(uids) - 1  	}  	nextResultIndex := len(store.results) - store.resultIndex - 2*delta  	if nextResultIndex < 0 || nextResultIndex >= len(store.results) {  		return  	}  	nextResultUid := store.results[nextResultIndex] -	selectedUid := store.uids[len(store.uids)-store.selected-1] +	selectedUid := uids[len(uids)-store.selected-1]  	if nextResultUid == selectedUid {  		store.resultIndex += delta  	} | 
