mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	Bump buildkit to master and fix versions incompatible with go mod 1.13
Bump github.com/gogo/googleapis to v1.3.2 Bump github.com/docker/cli to master Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
This commit is contained in:
		
							
								
								
									
										80
									
								
								vendor/golang.org/x/crypto/ssh/terminal/terminal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								vendor/golang.org/x/crypto/ssh/terminal/terminal.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,6 +7,8 @@ package terminal
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"io"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"strconv"
 | 
			
		||||
	"sync"
 | 
			
		||||
	"unicode/utf8"
 | 
			
		||||
)
 | 
			
		||||
@@ -271,34 +273,44 @@ func (t *Terminal) moveCursorToPos(pos int) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t *Terminal) move(up, down, left, right int) {
 | 
			
		||||
	movement := make([]rune, 3*(up+down+left+right))
 | 
			
		||||
	m := movement
 | 
			
		||||
	for i := 0; i < up; i++ {
 | 
			
		||||
		m[0] = keyEscape
 | 
			
		||||
		m[1] = '['
 | 
			
		||||
		m[2] = 'A'
 | 
			
		||||
		m = m[3:]
 | 
			
		||||
	}
 | 
			
		||||
	for i := 0; i < down; i++ {
 | 
			
		||||
		m[0] = keyEscape
 | 
			
		||||
		m[1] = '['
 | 
			
		||||
		m[2] = 'B'
 | 
			
		||||
		m = m[3:]
 | 
			
		||||
	}
 | 
			
		||||
	for i := 0; i < left; i++ {
 | 
			
		||||
		m[0] = keyEscape
 | 
			
		||||
		m[1] = '['
 | 
			
		||||
		m[2] = 'D'
 | 
			
		||||
		m = m[3:]
 | 
			
		||||
	}
 | 
			
		||||
	for i := 0; i < right; i++ {
 | 
			
		||||
		m[0] = keyEscape
 | 
			
		||||
		m[1] = '['
 | 
			
		||||
		m[2] = 'C'
 | 
			
		||||
		m = m[3:]
 | 
			
		||||
	m := []rune{}
 | 
			
		||||
 | 
			
		||||
	// 1 unit up can be expressed as ^[[A or ^[A
 | 
			
		||||
	// 5 units up can be expressed as ^[[5A
 | 
			
		||||
 | 
			
		||||
	if up == 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[', 'A')
 | 
			
		||||
	} else if up > 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[')
 | 
			
		||||
		m = append(m, []rune(strconv.Itoa(up))...)
 | 
			
		||||
		m = append(m, 'A')
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	t.queue(movement)
 | 
			
		||||
	if down == 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[', 'B')
 | 
			
		||||
	} else if down > 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[')
 | 
			
		||||
		m = append(m, []rune(strconv.Itoa(down))...)
 | 
			
		||||
		m = append(m, 'B')
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if right == 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[', 'C')
 | 
			
		||||
	} else if right > 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[')
 | 
			
		||||
		m = append(m, []rune(strconv.Itoa(right))...)
 | 
			
		||||
		m = append(m, 'C')
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if left == 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[', 'D')
 | 
			
		||||
	} else if left > 1 {
 | 
			
		||||
		m = append(m, keyEscape, '[')
 | 
			
		||||
		m = append(m, []rune(strconv.Itoa(left))...)
 | 
			
		||||
		m = append(m, 'D')
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	t.queue(m)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t *Terminal) clearLineToRight() {
 | 
			
		||||
@@ -928,6 +940,8 @@ func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) {
 | 
			
		||||
// readPasswordLine reads from reader until it finds \n or io.EOF.
 | 
			
		||||
// The slice returned does not include the \n.
 | 
			
		||||
// readPasswordLine also ignores any \r it finds.
 | 
			
		||||
// Windows uses \r as end of line. So, on Windows, readPasswordLine
 | 
			
		||||
// reads until it finds \r and ignores any \n it finds during processing.
 | 
			
		||||
func readPasswordLine(reader io.Reader) ([]byte, error) {
 | 
			
		||||
	var buf [1]byte
 | 
			
		||||
	var ret []byte
 | 
			
		||||
@@ -936,10 +950,20 @@ func readPasswordLine(reader io.Reader) ([]byte, error) {
 | 
			
		||||
		n, err := reader.Read(buf[:])
 | 
			
		||||
		if n > 0 {
 | 
			
		||||
			switch buf[0] {
 | 
			
		||||
			case '\b':
 | 
			
		||||
				if len(ret) > 0 {
 | 
			
		||||
					ret = ret[:len(ret)-1]
 | 
			
		||||
				}
 | 
			
		||||
			case '\n':
 | 
			
		||||
				return ret, nil
 | 
			
		||||
				if runtime.GOOS != "windows" {
 | 
			
		||||
					return ret, nil
 | 
			
		||||
				}
 | 
			
		||||
				// otherwise ignore \n
 | 
			
		||||
			case '\r':
 | 
			
		||||
				// remove \r from passwords on Windows
 | 
			
		||||
				if runtime.GOOS == "windows" {
 | 
			
		||||
					return ret, nil
 | 
			
		||||
				}
 | 
			
		||||
				// otherwise ignore \r
 | 
			
		||||
			default:
 | 
			
		||||
				ret = append(ret, buf[0])
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/crypto/ssh/terminal/util_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/crypto/ssh/terminal/util_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -85,8 +85,8 @@ func ReadPassword(fd int) ([]byte, error) {
 | 
			
		||||
	}
 | 
			
		||||
	old := st
 | 
			
		||||
 | 
			
		||||
	st &^= (windows.ENABLE_ECHO_INPUT)
 | 
			
		||||
	st |= (windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT)
 | 
			
		||||
	st &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT)
 | 
			
		||||
	st |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT)
 | 
			
		||||
	if err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user