Commited dependencies
This commit is contained in:
50
vendor/github.com/juju/ansiterm/attribute.go
generated
vendored
Normal file
50
vendor/github.com/juju/ansiterm/attribute.go
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
// Copyright 2016 Canonical Ltd.
|
||||
// Licensed under the LGPLv3, see LICENCE file for details.
|
||||
|
||||
package ansiterm
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type attribute int
|
||||
|
||||
const (
|
||||
unknownAttribute attribute = -1
|
||||
reset attribute = 0
|
||||
)
|
||||
|
||||
// sgr returns the escape sequence for the Select Graphic Rendition
|
||||
// for the attribute.
|
||||
func (a attribute) sgr() string {
|
||||
if a < 0 {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf("\x1b[%dm", a)
|
||||
}
|
||||
|
||||
type attributes []attribute
|
||||
|
||||
func (a attributes) Len() int { return len(a) }
|
||||
func (a attributes) Less(i, j int) bool { return a[i] < a[j] }
|
||||
func (a attributes) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
|
||||
// sgr returns the combined escape sequence for the Select Graphic Rendition
|
||||
// for the sequence of attributes.
|
||||
func (a attributes) sgr() string {
|
||||
switch len(a) {
|
||||
case 0:
|
||||
return ""
|
||||
case 1:
|
||||
return a[0].sgr()
|
||||
default:
|
||||
sort.Sort(a)
|
||||
var values []string
|
||||
for _, attr := range a {
|
||||
values = append(values, fmt.Sprint(attr))
|
||||
}
|
||||
return fmt.Sprintf("\x1b[%sm", strings.Join(values, ";"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user