In pkg/term/proxy.go and pkg/term/proxy_test.go, check if escapeKeys is empty and if it is, return the one key read
Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
| ... | ... |
@@ -34,6 +34,10 @@ func NewEscapeProxy(r io.Reader, escapeKeys []byte) io.Reader {
|
| 34 | 34 |
func (r *escapeProxy) Read(buf []byte) (int, error) {
|
| 35 | 35 |
nr, err := r.r.Read(buf) |
| 36 | 36 |
|
| 37 |
+ if len(r.escapeKeys) == 0 {
|
|
| 38 |
+ return nr, err |
|
| 39 |
+ } |
|
| 40 |
+ |
|
| 37 | 41 |
preserve := func() {
|
| 38 | 42 |
// this preserves the original key presses in the passed in buffer |
| 39 | 43 |
nr += r.escapeKeyPos |
| ... | ... |
@@ -10,8 +10,8 @@ import ( |
| 10 | 10 |
) |
| 11 | 11 |
|
| 12 | 12 |
func TestEscapeProxyRead(t *testing.T) {
|
| 13 |
- escapeKeys, _ := ToBytes("DEL")
|
|
| 14 |
- keys, _ := ToBytes("a,b,c,+")
|
|
| 13 |
+ escapeKeys, _ := ToBytes("")
|
|
| 14 |
+ keys, _ := ToBytes("a")
|
|
| 15 | 15 |
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys) |
| 16 | 16 |
buf := make([]byte, len(keys)) |
| 17 | 17 |
nr, err := reader.Read(buf) |
| ... | ... |
@@ -19,6 +19,32 @@ func TestEscapeProxyRead(t *testing.T) {
|
| 19 | 19 |
assert.Equal(t, nr, len(keys), fmt.Sprintf("nr %d should be equal to the number of %d", nr, len(keys)))
|
| 20 | 20 |
assert.DeepEqual(t, keys, buf) |
| 21 | 21 |
|
| 22 |
+ keys, _ = ToBytes("a,b,c")
|
|
| 23 |
+ reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) |
|
| 24 |
+ buf = make([]byte, len(keys)) |
|
| 25 |
+ nr, err = reader.Read(buf) |
|
| 26 |
+ assert.NilError(t, err) |
|
| 27 |
+ assert.Equal(t, nr, len(keys), fmt.Sprintf("nr %d should be equal to the number of %d", nr, len(keys)))
|
|
| 28 |
+ assert.DeepEqual(t, keys, buf) |
|
| 29 |
+ |
|
| 30 |
+ keys, _ = ToBytes("")
|
|
| 31 |
+ reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) |
|
| 32 |
+ buf = make([]byte, len(keys)) |
|
| 33 |
+ nr, err = reader.Read(buf) |
|
| 34 |
+ assert.Assert(t, is.ErrorContains(err, ""), "Should throw error when no keys are to read") |
|
| 35 |
+ assert.Equal(t, nr, 0, "nr should be zero") |
|
| 36 |
+ assert.Check(t, is.Len(keys, 0)) |
|
| 37 |
+ assert.Check(t, is.Len(buf, 0)) |
|
| 38 |
+ |
|
| 39 |
+ escapeKeys, _ = ToBytes("DEL")
|
|
| 40 |
+ keys, _ = ToBytes("a,b,c,+")
|
|
| 41 |
+ reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) |
|
| 42 |
+ buf = make([]byte, len(keys)) |
|
| 43 |
+ nr, err = reader.Read(buf) |
|
| 44 |
+ assert.NilError(t, err) |
|
| 45 |
+ assert.Equal(t, nr, len(keys), fmt.Sprintf("nr %d should be equal to the number of %d", nr, len(keys)))
|
|
| 46 |
+ assert.DeepEqual(t, keys, buf) |
|
| 47 |
+ |
|
| 22 | 48 |
keys, _ = ToBytes("")
|
| 23 | 49 |
reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) |
| 24 | 50 |
buf = make([]byte, len(keys)) |