mirror of
https://github.com/ergochat/ergo.git
synced 2025-02-01 23:24:09 +01:00
commit
13aba9e64c
@ -1,5 +1,8 @@
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
|
go:
|
||||||
|
- "1.10.x"
|
||||||
|
|
||||||
install: make deps
|
install: make deps
|
||||||
|
|
||||||
script:
|
script:
|
||||||
@ -7,4 +10,3 @@ script:
|
|||||||
- tar -xzf goreleaser_Linux_x86_64.tar.gz -C $GOPATH/bin
|
- tar -xzf goreleaser_Linux_x86_64.tar.gz -C $GOPATH/bin
|
||||||
- make
|
- make
|
||||||
- make test
|
- make test
|
||||||
- ./.check-gofmt.sh
|
|
||||||
|
@ -340,6 +340,10 @@ func NewModeSet() *ModeSet {
|
|||||||
|
|
||||||
// test whether `mode` is set
|
// test whether `mode` is set
|
||||||
func (set *ModeSet) HasMode(mode Mode) bool {
|
func (set *ModeSet) HasMode(mode Mode) bool {
|
||||||
|
if set == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
set.RLock()
|
set.RLock()
|
||||||
defer set.RUnlock()
|
defer set.RUnlock()
|
||||||
return set.modes[mode]
|
return set.modes[mode]
|
||||||
@ -362,6 +366,10 @@ func (set *ModeSet) SetMode(mode Mode, on bool) (applied bool) {
|
|||||||
|
|
||||||
// return the modes in the set as a slice
|
// return the modes in the set as a slice
|
||||||
func (set *ModeSet) AllModes() (result []Mode) {
|
func (set *ModeSet) AllModes() (result []Mode) {
|
||||||
|
if set == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
set.RLock()
|
set.RLock()
|
||||||
defer set.RUnlock()
|
defer set.RUnlock()
|
||||||
|
|
||||||
@ -372,22 +380,27 @@ func (set *ModeSet) AllModes() (result []Mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// String returns the modes in this set.
|
// String returns the modes in this set.
|
||||||
func (set *ModeSet) String() string {
|
func (set *ModeSet) String() (result string) {
|
||||||
|
if set == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
set.RLock()
|
set.RLock()
|
||||||
defer set.RUnlock()
|
defer set.RUnlock()
|
||||||
|
|
||||||
if len(set.modes) == 0 {
|
var buf strings.Builder
|
||||||
return ""
|
|
||||||
}
|
|
||||||
var result []byte
|
|
||||||
for mode := range set.modes {
|
for mode := range set.modes {
|
||||||
result = append(result, mode.String()...)
|
buf.WriteRune(rune(mode))
|
||||||
}
|
}
|
||||||
return string(result)
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prefixes returns a list of prefixes for the given set of channel modes.
|
// Prefixes returns a list of prefixes for the given set of channel modes.
|
||||||
func (set *ModeSet) Prefixes(isMultiPrefix bool) (prefixes string) {
|
func (set *ModeSet) Prefixes(isMultiPrefix bool) (prefixes string) {
|
||||||
|
if set == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
set.RLock()
|
set.RLock()
|
||||||
defer set.RUnlock()
|
defer set.RUnlock()
|
||||||
|
|
||||||
|
@ -35,3 +35,16 @@ func TestSetMode(t *testing.T) {
|
|||||||
t.Errorf("unexpected modestring: %s", modeString)
|
t.Errorf("unexpected modestring: %s", modeString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNilReceivers(t *testing.T) {
|
||||||
|
var set ModeSet
|
||||||
|
|
||||||
|
if set.HasMode(Invisible) {
|
||||||
|
t.Errorf("nil ModeSet should not have any modes")
|
||||||
|
}
|
||||||
|
|
||||||
|
str := set.String()
|
||||||
|
if str != "" {
|
||||||
|
t.Errorf("nil Modeset should have empty String(), got %v instead", str)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user