New Upstream Release - golang-github-zyedidia-tcell

Ready changes

Summary

Merged new upstream version: 2.0.9 (was: 2.0.6).

Resulting package

Built on 2022-10-12T10:28 (took 6m13s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases golang-github-zyedidia-tcell-dev

Lintian Result

Diff

diff --git a/debian/changelog b/debian/changelog
index 3f26267..bc5e296 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-github-zyedidia-tcell (2.0.9-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 12 Oct 2022 10:22:54 -0000
+
 golang-github-zyedidia-tcell (2.0.6-1) unstable; urgency=medium
 
   * New upstream version 2.0.6
diff --git a/tscreen.go b/tscreen.go
index cdbfabc..3cfcd14 100644
--- a/tscreen.go
+++ b/tscreen.go
@@ -20,6 +20,7 @@ import (
 	"errors"
 	"fmt"
 	"io"
+	"log"
 	"os"
 	"strconv"
 	"strings"
@@ -49,6 +50,8 @@ const (
 
 	pasteOSC52Begin = "\x1b]52;"
 	pasteOSC52End   = "\x1b\\"
+
+	setTitle = "\x1b]2;title\a"
 )
 
 // NewTerminfoScreen returns a Screen that uses the stock TTY interface
@@ -1391,26 +1394,26 @@ func (t *tScreen) parsePaste(buf *bytes.Buffer, evs *[]Event) bool {
 }
 
 func (t *tScreen) parseOSC52Paste(buf *bytes.Buffer, evs *[]Event) (bool, bool) {
+	str := buf.String()
 	b := buf.Bytes()
 
 	prefixLen := len(pasteOSC52Begin) + 2
-	suffixLen := len(pasteOSC52End)
-	if bytes.HasPrefix(b, []byte(pasteOSC52Begin)) || bytes.HasPrefix([]byte(pasteOSC52Begin), b) {
-		// OSC52 paste has started
-		if len(b) > len(pasteOSC52Begin)+2 && bytes.HasSuffix(b, []byte(pasteOSC52End)) {
+	if strings.HasPrefix(str, pasteOSC52Begin) || strings.HasPrefix(pasteOSC52Begin, str) {
+		idx := strings.Index(str, pasteOSC52End)
+		log.Println(b, idx, len(str))
+		if idx >= prefixLen {
 			// OSC52 paste has ended
-			payload := b[prefixLen : len(b)-suffixLen]
+			payload := buf.Next(idx)[prefixLen:]
+			buf.Next(len(pasteOSC52End))
 			data := make([]byte, len(payload))
 			n, err := base64.StdEncoding.Decode(data, payload)
 			data = data[:n]
 
 			t.escbuf.Write(b)
 
-			buf.Reset()
-
 			if err != nil {
-				// error must be something else...?
-				return false, false
+				// discard the paste since it is invalid
+				return true, true
 			}
 
 			*evs = append(*evs, NewEventPaste(string(data), t.escbuf.String()))
@@ -1425,20 +1428,17 @@ func (t *tScreen) parseOSC52Paste(buf *bytes.Buffer, evs *[]Event) (bool, bool)
 }
 
 func (t *tScreen) parseBracketedPaste(buf *bytes.Buffer, evs *[]Event) (bool, bool) {
-	b := buf.Bytes()
-
 	// Replace all carriage returns with newlines
-	str := string(bytes.Replace(b, []byte{'\r'}, []byte{'\n'}, -1))
+	str := strings.Replace(buf.String(), "\r", "\n", -1)
 	if strings.HasPrefix(str, pasteBegin) || strings.HasPrefix(pasteBegin, str) {
+		idx := strings.Index(str, pasteEnd)
 		// The bracketed paste has started
-		if strings.HasSuffix(str, pasteEnd) {
+		if idx != -1 && idx >= len(pasteBegin) {
 			// The bracketed paste has ended
 			// Strip out the start and end sequences
-			for i := 0; i < len(b); i++ {
-				by, _ := buf.ReadByte()
-				t.escbuf.WriteByte(by)
-			}
-			*evs = append(*evs, NewEventPaste(str[6:len(b)-6], t.escbuf.String()))
+			t.escbuf.Write(buf.Next(idx + len(pasteEnd)))
+			text := str[len(pasteBegin):idx]
+			*evs = append(*evs, NewEventPaste(text, t.escbuf.String()))
 			t.escbuf.Reset()
 			return true, true
 		}

Debdiff

File lists identical (after any substitutions)

No differences were encountered in the control files

More details

Full run details