diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-11-13 18:28:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-13 18:28:17 +0100 |
commit | 738d62ea960af439bd545820e1853cbd73464493 (patch) | |
tree | 61a859c039565897f865db052ad7c3bee8b03bfb /vendor/github.com/juju/ansiterm/attribute.go | |
parent | 2993e97dec9d998d2eca7c5aee918b1429596a85 (diff) | |
parent | 8e4a42aa429c6dec0d5face7c69554d8a0677e96 (diff) | |
download | podman-738d62ea960af439bd545820e1853cbd73464493.tar.gz podman-738d62ea960af439bd545820e1853cbd73464493.tar.bz2 podman-738d62ea960af439bd545820e1853cbd73464493.zip |
Merge pull request #7964 from vrothberg/shortnames
short-name aliasing
Diffstat (limited to 'vendor/github.com/juju/ansiterm/attribute.go')
-rw-r--r-- | vendor/github.com/juju/ansiterm/attribute.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/github.com/juju/ansiterm/attribute.go b/vendor/github.com/juju/ansiterm/attribute.go new file mode 100644 index 000000000..f2daa4813 --- /dev/null +++ b/vendor/github.com/juju/ansiterm/attribute.go @@ -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, ";")) + } +} |