aboutsummaryrefslogtreecommitdiff
path: root/lib/text
diff options
context:
space:
mode:
Diffstat (limited to 'lib/text')
-rw-r--r--lib/text/chunk.go9
-rw-r--r--lib/text/diff/diffinterface.go36
2 files changed, 12 insertions, 33 deletions
diff --git a/lib/text/chunk.go b/lib/text/chunk.go
index a904f2bd..10d37936 100644
--- a/lib/text/chunk.go
+++ b/lib/text/chunk.go
@@ -8,6 +8,7 @@ import (
"bytes"
"fmt"
"strconv"
+ "strings"
)
// Chunk represent subset of line, contain starting position and slice of
@@ -20,15 +21,15 @@ type Chunk struct {
// JoinChunks all chunk's values using `sep` as separator and return it as
// string.
func JoinChunks(chunks []Chunk, sep string) string {
- var out string
+ var out strings.Builder
for x := range len(chunks) {
if x > 0 {
- out += sep
+ out.WriteString(sep)
}
- out += string(chunks[x].V)
+ out.WriteString(string(chunks[x].V))
}
- return out
+ return out.String()
}
// MarshalJSON encode the Chunk into JSON value.
diff --git a/lib/text/diff/diffinterface.go b/lib/text/diff/diffinterface.go
index 015e636a..0f8df1b2 100644
--- a/lib/text/diff/diffinterface.go
+++ b/lib/text/diff/diffinterface.go
@@ -152,10 +152,7 @@ func BytesRatio(old, newline []byte, minTokenLen int) (ratio float32, m int, max
oldlen = len(old)
// Get minimal token to search in the newline left over.
- minlen = minTokenLen
- if oldlen < minlen {
- minlen = oldlen
- }
+ minlen = min(oldlen, minTokenLen)
// Search old token in newline, chunk by chunk.
x = 0
@@ -181,10 +178,7 @@ func BytesRatio(old, newline []byte, minTokenLen int) (ratio float32, m int, max
oldlen = len(old)
newlen = len(newline)
- minlen = oldlen
- if newlen < minlen {
- minlen = newlen
- }
+ minlen = min(newlen, oldlen)
x, y = 0, 0
// start again from beginning...
@@ -264,11 +258,7 @@ func Bytes(old, new []byte, atx, aty int) (adds, dels text.Chunks) {
newlen := len(new)
minlen := 0
- if oldlen < newlen {
- minlen = oldlen
- } else {
- minlen = newlen
- }
+ minlen = min(oldlen, newlen)
// Find the position of unmatched byte from the beginning.
x, y := 0, 0
@@ -326,19 +316,13 @@ func Bytes(old, new []byte, atx, aty int) (adds, dels text.Chunks) {
newleftlen := len(newleft)
// Get minimal token to search in the new left over.
- minlen = DefMatchLen
- if oldleftlen < DefMatchLen {
- minlen = oldleftlen
- }
+ minlen = min(oldleftlen, DefMatchLen)
xtoken := oldleft[:minlen]
xaty := inbytes.TokenFind(newleft, xtoken, 0)
// Get miniminal token to search in the old left over.
- minlen = DefMatchLen
- if newleftlen < DefMatchLen {
- minlen = newleftlen
- }
+ minlen = min(newleftlen, DefMatchLen)
ytoken := newleft[:minlen]
yatx := inbytes.TokenFind(oldleft, ytoken, 0)
@@ -411,10 +395,7 @@ func searchForward(atx, aty int, x, y *int, oldleft, newleft *[]byte) (
oldleftlen := len(*oldleft)
newleftlen := len(*newleft)
- minlen := DefMatchLen
- if oldleftlen < minlen {
- minlen = oldleftlen
- }
+ minlen := min(oldleftlen, DefMatchLen)
// Loop through old line to find matching token
xaty := -1
@@ -428,10 +409,7 @@ func searchForward(atx, aty int, x, y *int, oldleft, newleft *[]byte) (
}
}
- minlen = DefMatchLen
- if newleftlen < minlen {
- minlen = newleftlen
- }
+ minlen = min(newleftlen, DefMatchLen)
yatx := -1
yy := 1