summaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2021-11-01 09:35:54 +1100
committerJesse Duffield <jessedduffield@gmail.com>2021-11-01 10:03:49 +1100
commit2fc1498517523a20a3080816ec50ee9e7fbe533d (patch)
tree808b455c38c2e96f3d3930fa49f3f605416e5f24 /vendor
parent7a464ae5b7782b383050de6dc3ae5bd51a88bad0 (diff)
some refactoring in anticipation of the graph feature
Diffstat (limited to 'vendor')
-rw-r--r--vendor/github.com/jesseduffield/gocui/gui.go172
-rw-r--r--vendor/github.com/jesseduffield/gocui/tcell_driver.go17
-rw-r--r--vendor/github.com/jesseduffield/gocui/view.go69
-rw-r--r--vendor/github.com/mattn/go-colorable/README.md2
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_appengine.go1
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_others.go4
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_windows.go18
-rw-r--r--vendor/github.com/mattn/go-colorable/go.mod4
-rw-r--r--vendor/github.com/mattn/go-colorable/go.sum10
-rw-r--r--vendor/github.com/mattn/go-colorable/noncolorable.go10
-rw-r--r--vendor/github.com/mattn/go-isatty/go.mod2
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_bsd.go1
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_others.go3
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_plan9.go1
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_solaris.go9
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_tcgets.go3
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_windows.go6
-rw-r--r--vendor/github.com/mattn/go-isatty/renovate.json8
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_linux.go31
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go6
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go6
-rw-r--r--vendor/golang.org/x/sys/windows/service.go12
-rw-r--r--vendor/golang.org/x/sys/windows/zsyscall_windows.go27
-rw-r--r--vendor/modules.txt15
24 files changed, 273 insertions, 164 deletions
diff --git a/vendor/github.com/jesseduffield/gocui/gui.go b/vendor/github.com/jesseduffield/gocui/gui.go
index 3bc701299..c2306c194 100644
--- a/vendor/github.com/jesseduffield/gocui/gui.go
+++ b/vendor/github.com/jesseduffield/gocui/gui.go
@@ -6,7 +6,6 @@ package gocui
import (
standardErrors "errors"
- "fmt"
"log"
"runtime"
"strings"
@@ -76,6 +75,8 @@ type GuiMutexes struct {
tickingMutex sync.Mutex
ViewsMutex sync.Mutex
+
+ drawMutex sync.Mutex
}
type PlayMode int
@@ -166,14 +167,14 @@ type Gui struct {
}
// NewGui returns a new Gui object with a given output mode.
-func NewGui(mode OutputMode, supportOverlaps bool, playMode PlayMode, headless bool) (*Gui, error) {
+func NewGui(mode OutputMode, supportOverlaps bool, playMode PlayMode, headless bool, runeReplacements map[rune]string) (*Gui, error) {
g := &Gui{}
var err error
if headless {
err = g.tcellInitSimulation()
} else {
- err = g.tcellInit()
+ err = g.tcellInit(runeReplacements)
}
if err != nil {
return nil, err
@@ -664,79 +665,6 @@ func (g *Gui) onResize() {
// g.screen.Sync()
}
-// flush updates the gui, re-drawing frames and buffers.
-func (g *Gui) flush() error {
- // pretty sure we don't need this, but keeping it here in case we get weird visual artifacts
- // g.clear(g.FgColor, g.BgColor)
-
- maxX, maxY := Screen.Size()
- // if GUI's size has changed, we need to redraw all views
- if maxX != g.maxX || maxY != g.maxY {
- for _, v := range g.views {
- v.clearViewLines()
- }
- }
- g.maxX, g.maxY = maxX, maxY
-
- for _, m := range g.managers {
- if err := m.Layout(g); err != nil {
- return err
- }
- }
- for _, v := range g.views {
- if !v.Visible || v.y1 < v.y0 {
- continue
- }
- if v.Frame {
- var fgColor, bgColor, frameColor Attribute
- if g.Highlight && v == g.currentView {
- fgColor = g.SelFgColor
- bgColor = g.SelBgColor
- frameColor = g.SelFrameColor
- } else {
- bgColor = g.BgColor
- if v.TitleColor != ColorDefault {
- fgColor = v.TitleColor
- } else {
- fgColor = g.FgColor
- }
- if v.FrameColor != ColorDefault {
- frameColor = v.FrameColor
- } else {
- frameColor = g.FrameColor
- }
- }
-
- if err := g.drawFrameEdges(v, frameColor, bgColor); err != nil {
- return err
- }
- if err := g.drawFrameCorners(v, frameColor, bgColor); err != nil {
- return err
- }
- if v.Title != "" || len(v.Tabs) > 0 {
- if err := g.drawTitle(v, fgColor, bgColor); err != nil {
- return err
- }
- }
- if v.Subtitle != "" {
- if err := g.drawSubtitle(v, fgColor, bgColor); err != nil {
- return err
- }
- }
- if v.ContainsList && g.ShowListFooter {
- if err := g.drawListFooter(v, fgColor, bgColor); err != nil {
- return err
- }
- }
- }
- if err := g.draw(v); err != nil {
- return err
- }
- }
- Screen.Show()
- return nil
-}
-
func (g *Gui) clear(fg, bg Attribute) (int, int) {
st := getTcellStyle(oldStyle{fg: fg, bg: bg, outputMode: g.outputMode})
w, h := Screen.Size()
@@ -983,7 +911,7 @@ func (g *Gui) drawListFooter(v *View, fgColor, bgColor Attribute) error {
return nil
}
- message := fmt.Sprintf("%d of %d", v.cy+v.oy+1, len(v.lines))
+ message := v.Footer
if v.y1 < 0 || v.y1 >= g.maxY {
return nil
@@ -1006,12 +934,102 @@ func (g *Gui) drawListFooter(v *View, fgColor, bgColor Attribute) error {
return nil
}
+// flush updates the gui, re-drawing frames and buffers.
+func (g *Gui) flush() error {
+ g.Mutexes.drawMutex.Lock()
+ defer g.Mutexes.drawMutex.Unlock()
+
+ // pretty sure we don't need this, but keeping it here in case we get weird visual artifacts
+ // g.clear(g.FgColor, g.BgColor)
+
+ maxX, maxY := Screen.Size()
+ // if GUI's size has changed, we need to redraw all views
+ if maxX != g.maxX || maxY != g.maxY {
+ for _, v := range g.views {
+ v.clearViewLines()
+ }
+ }
+ g.maxX, g.maxY = maxX, maxY
+
+ for _, m := range g.managers {
+ if err := m.Layout(g); err != nil {
+ return err
+ }
+ }
+ for _, v := range g.views {
+ if err := g.draw(v); err != nil {
+ return err
+ }
+ }
+
+ Screen.Show()
+ return nil
+}
+
+func (g *Gui) Draw(v *View) error {
+ g.Mutexes.drawMutex.Lock()
+ defer g.Mutexes.drawMutex.Unlock()
+
+ if err := g.draw(v); err != nil {
+ return err
+ }
+
+ Screen.Show()
+ return nil
+}
+
// draw manages the cursor and calls the draw function of a view.
func (g *Gui) draw(v *View) error {
if g.suspended {
return nil
}
+ if !v.Visible || v.y1 < v.y0 {
+ return nil
+ }
+ if v.Frame {
+ var fgColor, bgColor, frameColor Attribute
+ if g.Highlight && v == g.currentView {
+ fgColor = g.SelFgColor
+ bgColor = g.SelBgColor
+ frameColor = g.SelFrameColor
+ } else {
+ bgColor = g.BgColor
+ if v.TitleColor != ColorDefault {
+ fgColor = v.TitleColor
+ } else {
+ fgColor = g.FgColor
+ }
+ if v.FrameColor != ColorDefault {
+ frameColor = v.FrameColor
+ } else {
+ frameColor = g.FrameColor
+ }
+ }
+
+ if err := g.drawFrameEdges(v, frameColor, bgColor); err != nil {
+ return err
+ }
+ if err := g.drawFrameCorners(v, frameColor, bgColor); err != nil {
+ return err
+ }
+ if v.Title != "" || len(v.Tabs) > 0 {
+ if err := g.drawTitle(v, fgColor, bgColor); err != nil {
+ return err
+ }
+ }
+ if v.Subtitle != "" {
+ if err := g.drawSubtitle(v, fgColor, bgColor); err != nil {
+ return err
+ }
+ }
+ if v.Footer != "" && g.ShowListFooter {
+ if err := g.drawListFooter(v, fgColor, bgColor); err != nil {
+ return err
+ }
+ }
+ }
+
if g.Cursor {
if curview := g.currentView; curview != nil {
vMaxX, vMaxY := curview.Size()
diff --git a/vendor/github.com/jesseduffield/gocui/tcell_driver.go b/vendor/github.com/jesseduffield/gocui/tcell_driver.go
index 2783103c3..c5555e30d 100644
--- a/vendor/github.com/jesseduffield/gocui/tcell_driver.go
+++ b/vendor/github.com/jesseduffield/gocui/tcell_driver.go
@@ -26,6 +26,10 @@ var runeReplacements = map[rune]string{
'┐': "+",
'└': "+",
'┘': "+",
+ '╭': "+",
+ '╮': "+",
+ '╰': "+",
+ '╯': "+",
'─': "-",
// using a hyphen here actually looks weird.
@@ -33,6 +37,9 @@ var runeReplacements = map[rune]string{
'╶': " ",
'╴': " ",
+ '┴': "+",
+ '┬': "+",
+ '╷': "|",
'├': "+",
'│': "|",
'▼': "v",
@@ -42,7 +49,7 @@ var runeReplacements = map[rune]string{
}
// tcellInit initializes tcell screen for use.
-func (g *Gui) tcellInit() error {
+func (g *Gui) tcellInit(runeReplacements map[rune]string) error {
runewidth.DefaultCondition.EastAsianWidth = false
tcell.SetEncodingFallback(tcell.EncodingFallbackASCII)
@@ -51,7 +58,7 @@ func (g *Gui) tcellInit() error {
} else if e = s.Init(); e != nil {
return e
} else {
- registerRuneFallbacks(s)
+ registerRuneFallbacks(s, runeReplacements)
g.screen = s
Screen = s
@@ -59,10 +66,14 @@ func (g *Gui) tcellInit() error {
}
}
-func registerRuneFallbacks(s tcell.Screen) {
+func registerRuneFallbacks(s tcell.Screen, additional map[rune]string) {
for before, after := range runeReplacements {
s.RegisterRuneFallback(before, after)
}
+
+ for before, after := range additional {
+ s.RegisterRuneFallback(before, after)
+ }
}
// tcellInitSimulation initializes tcell screen for use.
diff --git a/vendor/github.com/jesseduffield/gocui/view.go b/vendor/github.com/jesseduffield/gocui/view.go
index 0ebd6e4a2..df9b910f2 100644
--- a/vendor/github.com/jesseduffield/gocui/view.go
+++ b/vendor/github.com/jesseduffield/gocui/view.go
@@ -153,14 +153,14 @@ type View struct {
searcher *searcher
- // when ContainsList is true, we show the current index and total count in the view
- ContainsList bool
-
// KeybindOnEdit should be set to true when you want to execute keybindings even when the view is editable
// (this is usually not the case)
KeybindOnEdit bool
TextArea *TextArea
+
+ // something like '1 of 20' for a list view
+ Footer string
}
// call this in the event of a view resize, or if you want to render new content
@@ -372,11 +372,21 @@ func (v *View) Height() int {
// if a view has a frame, that leaves less space for its writeable area
func (v *View) InnerWidth() int {
- return v.Width() - v.frameOffset()
+ innerWidth := v.Width() - v.frameOffset()
+ if innerWidth < 0 {
+ return 0
+ }
+
+ return innerWidth
}
func (v *View) InnerHeight() int {
- return v.Height() - v.frameOffset()
+ innerHeight := v.Height() - v.frameOffset()
+ if innerHeight < 0 {
+ return 0
+ }
+
+ return innerHeight
}
func (v *View) frameOffset() int {
@@ -563,8 +573,6 @@ func (v *View) Write(p []byte) (n int, err error) {
v.writeMutex.Lock()
defer v.writeMutex.Unlock()
- v.tainted = true
- v.makeWriteable(v.wx, v.wy)
v.writeRunes(bytes.Runes(p))
return len(p), nil
@@ -574,20 +582,16 @@ func (v *View) WriteRunes(p []rune) {
v.writeMutex.Lock()
defer v.writeMutex.Unlock()
- v.tainted = true
-
- // Fill with empty cells, if writing outside current view buffer
- v.makeWriteable(v.wx, v.wy)
v.writeRunes(p)
}
-func (v *View) WriteString(s string) {
- v.WriteRunes([]rune(s))
-}
-
// writeRunes copies slice of runes into internal lines buffer.
-// caller must make sure that writing position is accessable.
func (v *View) writeRunes(p []rune) {
+ v.tainted = true
+
+ // Fill with empty cells, if writing outside current view buffer
+ v.makeWriteable(v.wx, v.wy)
+
for _, r := range p {
switch r {
case '\n':
@@ -613,6 +617,16 @@ func (v *View) writeRunes(p []rune) {
}
}
+// exported functions use the mutex. Non-exported functions are for internal use
+// and a calling function should use a mutex
+func (v *View) WriteString(s string) {
+ v.WriteRunes([]rune(s))
+}
+
+func (v *View) writeString(s string) {
+ v.writeRunes([]rune(s))
+}
+
// parseInput parses char by char the input written to the View. It returns nil
// while processing ESC sequences. Otherwise, it returns a cell slice that
// contains the processed data.
@@ -696,16 +710,28 @@ func (v *View) Read(p []byte) (n int, err error) {
return offset, io.EOF
}
+// only use this if the calling function has a lock on writeMutex
+func (v *View) clear() {
+ v.rewind()
+ v.lines = nil
+ v.clearViewLines()
+}
+
// Clear empties the view's internal buffer.
// And resets reading and writing offsets.
func (v *View) Clear() {
v.writeMutex.Lock()
defer v.writeMutex.Unlock()
- v.rewind()
- v.lines = nil
- v.clearViewLines()
- v.clearRunes()
+ v.clear()
+}
+
+func (v *View) SetContent(str string) {
+ v.writeMutex.Lock()
+ defer v.writeMutex.Unlock()
+
+ v.clear()
+ v.writeString(str)
}
// Rewind sets read and write pos to (0, 0).
@@ -802,6 +828,9 @@ func (v *View) IsTainted() bool {
// draw re-draws the view's contents.
func (v *View) draw() error {
+ v.writeMutex.Lock()
+ defer v.writeMutex.Unlock()
+
v.clearRunes()
if !v.Visible {
diff --git a/vendor/github.com/mattn/go-colorable/README.md b/vendor/github.com/mattn/go-colorable/README.md
index e055952b6..ca0483711 100644
--- a/vendor/github.com/mattn/go-colorable/README.md
+++ b/vendor/github.com/mattn/go-colorable/README.md
@@ -1,6 +1,6 @@
# go-colorable
-[![Build Status](https://travis-ci.org/mattn/go-colorable.svg?branch=master)](https://travis-ci.org/mattn/go-colorable)
+[![Build Status](https://github.com/mattn/go-colorable/workflows/test/badge.svg)](https://github.com/mattn/go-colorable/actions?query=workflow%3Atest)
[![Codecov](https://codecov.io/gh/mattn/go-colorable/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-colorable)
[![GoDoc](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable)
[![Go Report Card](https://goreportcard.com/badge/mattn/go-colorable)](https://goreportcard.com/report/mattn/go-colorable)
diff --git a/vendor/github.com/mattn/go-colorable/colorable_appengine.go b/vendor/github.com/mattn/go-colorable/colorable_appengine.go
index 1f7806fe1..416d1bbbf 100644
--- a/vendor/github.com/mattn/go-colorable/colorable_appengine.go
+++ b/vendor/github.com/mattn/go-colorable/colorable_appengine.go
@@ -1,3 +1,4 @@
+//go:build appengine
// +build appengine
package colorable
diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go
index 08cbd1e0f..766d94603 100644
--- a/vendor/github.com/mattn/go-colorable/colorable_others.go
+++ b/vendor/github.com/mattn/go-colorable/colorable_others.go
@@ -1,5 +1,5 @@
-// +build !windows
-// +build !appengine
+//go:build !windows && !appengine
+// +build !windows,!appengine
package colorable
diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go
index 04c4229c4..1846ad5ab 100644
--- a/vendor/github.com/mattn/go-colorable/colorable_windows.go
+++ b/vendor/github.com/mattn/go-colorable/colorable_windows.go
@@ -1,5 +1,5 @@
-// +build windows
-// +build !appengine
+//go:build windows && !appengine
+// +build windows,!appengine
package colorable
@@ -452,18 +452,22 @@ func (w *Writer) Write(data []byte) (n int, err error) {
} else {
er = bytes.NewReader(data)
}
- var bw [1]byte
+ var plaintext bytes.Buffer
loop:
for {
c1, err := er.ReadByte()
if err != nil {
+ plaintext.WriteTo(w.out)
break loop
}
if c1 != 0x1b {
- bw[0] = c1
- w.out.Write(bw[:])
+ plaintext.WriteByte(c1)
continue
}
+ _, err = plaintext.WriteTo(w.out)
+ if err != nil {
+ break loop
+ }
c2, err := er.ReadByte()
if err != nil {
break loop
@@ -719,7 +723,7 @@ loop:
n256setup()
}
attr &= backgroundMask
- attr |= n256foreAttr[n256]
+ attr |= n256foreAttr[n256%len(n256foreAttr)]
i += 2
}
} else if len(token) == 5 && token[i+1] == "2" {
@@ -761,7 +765,7 @@ loop:
n256setup()
}
attr &= foregroundMask
- attr |= n256backAttr[n256]
+ attr |= n256backAttr[n256%len(n256backAttr)]
i += 2
}
} else if len(token) == 5 && token[i+1] == "2" {
diff --git a/vendor/github.com/mattn/go-colorable/go.mod b/vendor/github.com/mattn/go-colorable/go.mod
index 1e590b819..27351c027 100644
--- a/vendor/github.com/mattn/go-colorable/go.mod
+++ b/vendor/github.com/mattn/go-colorable/go.mod
@@ -1,8 +1,8 @@
module github.com/mattn/go-colorable
require (
- github.com/mattn/go-isatty v0.0.12
- golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae // indirect
+ github.com/mattn/go-isatty v0.0.14
+ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 // indirect
)
go 1.13
diff --git a/vendor/github.com/mattn/go-colorable/go.sum b/vendor/github.com/mattn/go-colorable/go.sum
index cf5b95d97..40c33b333 100644
--- a/vendor/github.com/mattn/go-colorable/go.sum
+++ b/vendor/github.com/mattn/go-colorable/go.sum
@@ -1,5 +1,5 @@
-github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
-github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
-golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
-golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo=
+golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
diff --git a/vendor/github.com/mattn/go-colorable/noncolorable.go b/vendor/github.com/mattn/go-colorable/noncolorable.go
index 95f2c6be2..3df68f360 100644
--- a/vendor/github.com/mattn/go-colorable/noncolorable.go
+++ b/vendor/github.com/mattn/go-colorable/noncolorable.go
@@ -18,18 +18,22 @@ func NewNonColorable(w io.Writer) io.Writer {
// Write writes data on console
func (w *NonColorable) Write(data []byte) (n int, err error) {
er := bytes.NewReader(data)
- var bw [1]byte
+ var plaintext bytes.Buffer
loop:
for {
c1, err := er.ReadByte()
if err != nil {
+ plaintext.WriteTo(w.out)
break loop
}
if c1 != 0x1b {
- bw[0] = c1
- w.out.Write(bw[:])
+ plaintext.WriteByte(c1)
continue
}
+ _, err = plaintext.WriteTo(w.out)
+ if err != nil {
+ break loop
+ }
c2, err := er.ReadByte()
if err != nil {
break loop
diff --git a/vendor/github.com/mattn/go-isatty/go.mod b/vendor/github.com/mattn/go-isatty/go.mod
index 605c4c221..c9a20b7f3 100644
--- a/vendor/github.com/mattn/go-isatty/go.mod
+++ b/vendor/github.com/mattn/go-isatty/go.mod
@@ -2,4 +2,4 @@ module github.com/mattn/go-isatty
go 1.12
-require golang.org/x/sys v0.0.0-20200116001909-b77594299b42
+require golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c
diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go
index 711f28808..39bbcf00f 100644
--- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go
+++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go
@@ -1,3 +1,4 @@
+//go:build (darwin || freebsd || openbsd || netbsd || dragonfly) && !appengine
// +build darwin freebsd openbsd netbsd dragonfly
// +build !appengine
diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go
index ff714a376..31503226f 100644
--- a/vendor/github.com/mattn/go-isatty/isatty_others.go
+++ b/vendor/github.com/mattn/go-isatty/isatty_others.go
@@ -1,4 +1,5 @@
-// +build appengine js nacl
+//go:build appengine || js || nacl || wasm
+// +build appengine js nacl wasm
package isatty
diff --git a/vendor/github.com/mattn/go-isatty/isatty_plan9.go b/vendor/github.com/mattn/go-isatty/isatty_plan9.go
index c5b6e0c08..bae7f9bb3 100644
--- a/vendor/github.com/mattn/go-isatty/isatty_plan9.go
+++ b/vendor/github.com/mattn/go-isatty/isatty_plan9.go
@@ -1,3 +1,4 @@
+//go:build plan9
// +build plan9
package isatty
diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go
index bdd5c79a0..0c3acf2dc 100644
--- a/vendor/github.com/mattn/go-isatty/isatty_solaris.go
+++ b/vendor/github.com/mattn/go-isatty/isatty_solaris.go
@@ -1,5 +1,5 @@
-// +build solaris
-// +build !appengine
+//go:build solaris && !appengine
+// +build solaris,!appengine
package isatty
@@ -8,10 +8,9 @@ import (
)
// IsTerminal returns true if the given file descriptor is a terminal.
-// see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c
+// see: https://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/isatty.c
func IsTerminal(fd uintptr) bool {
- var termio unix.Termio
- err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio)
+ _, err := unix.IoctlGetTermio(int(fd), unix.TCGETA)
return err == nil
}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go
index 31a1ca973..67787657f 100644
--- a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go
+++ b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go
@@ -1,4 +1,5 @@
-// +build linux aix
+//go:build (linux || aix || zos) && !appengine
+// +build linux aix zos
// +build !appengine
package isatty
diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go
index 1fa869154..8e3c99171 100644
--- a/vendor/github.com/mattn/go-isatty/isatty_windows.go
+++ b/vendor/github.com/mattn/go-isatty/isatty_windows.go
@@ -1,5 +1,5 @@
-// +build windows
-// +build !appengine
+//go:build windows && !appengine
+// +build windows,!appengine
package isatty
@@ -76,7 +76,7 @@ func isCygwinPipeName(name string) bool {
}
// getFileNameByHandle use the undocomented ntdll NtQueryObject to get file full name from file handler
-// since GetFileInformationByHandleEx is not avilable under windows Vista and still some old fashion
+// since GetFileInformationByHandleEx is not available under windows Vista and still some old fashion
// guys are using Windows XP, this is a workaround for those guys, it will also work on system from
// Windows vista to 10
// see https://stackoverflow.com/a/18792477 for details
diff --git a/vendor/github.com/mattn/go-isatty/renovate.json b/vendor/github.com/mattn/go-isatty/renovate.json
deleted file mode 100644
index 5ae9d96b7..000000000
--- a/vendor/github.com/mattn/go-isatty/renovate.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": [
- "config:base"
- ],
- "postUpdateOptions": [
- "gomodTidy"
- ]
-}
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
index e86d543b9..326fb04a5 100644
--- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
@@ -56,3 +56,34 @@ func PktInfo6(info *Inet6Pktinfo) []byte {
*(*Inet6Pktinfo)(h.data(0)) = *info
return b
}
+
+// ParseOrigDstAddr decodes a socket control message containing the original
+// destination address. To receive such a message the IP_RECVORIGDSTADDR or
+// IPV6_RECVORIGDSTADDR option must be enabled on the socket.
+func ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) {
+ switch {
+ case m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR:
+ pp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0]))
+ sa := new(SockaddrInet4)
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+ sa.Port = int(p[0])<<8 + int(p[1])
+ for i := 0; i < len(sa.Addr); i++ {
+ sa.Addr[i] = pp.Addr[i]
+ }
+ return sa, nil
+
+ case m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR:
+ pp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0]))
+ sa := new(SockaddrInet6)
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+ sa.Port = int(p[0])<<8 + int(p[1])
+ sa.ZoneId = pp.Scope_id
+ for i := 0; i < len(sa.Addr); i++ {
+ sa.Addr[i] = pp.Addr[i]
+ }
+ return sa, nil
+
+ default:
+ return nil, EINVAL
+ }
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
index 7efe5ccba..885842c0e 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
@@ -641,13 +641,13 @@ type Eproc struct {
Tdev int32
Tpgid int32
Tsess uintptr
- Wmesg [8]int8
+ Wmesg [8]byte