Skip to content

Commit dbcb93d

Browse files
committed
Refactor code style and functionality
1 parent 6b5d58a commit dbcb93d

File tree

1 file changed

+13
-20
lines changed

1 file changed

+13
-20
lines changed

diffmatchpatch/diff.go

+13-20
Original file line numberDiff line numberDiff line change
@@ -1280,19 +1280,10 @@ func (dmp *DiffMatchPatch) DiffToDelta(diffs []Diff) string {
12801280
}
12811281

12821282
// DiffFromDelta given the original text1, and an encoded string which describes the operations required to transform text1 into text2, comAdde the full diff.
1283-
func (dmp *DiffMatchPatch) DiffFromDelta(text1, delta string) (diffs []Diff, err error) {
1284-
diffs = []Diff{}
1283+
func (dmp *DiffMatchPatch) DiffFromDelta(text1 string, delta string) (diffs []Diff, err error) {
1284+
i := 0
12851285

1286-
defer func() {
1287-
if r := recover(); r != nil {
1288-
err = r.(error)
1289-
}
1290-
}()
1291-
1292-
pointer := 0 // Cursor in text1
1293-
tokens := strings.Split(delta, "\t")
1294-
1295-
for _, token := range tokens {
1286+
for _, token := range strings.Split(delta, "\t") {
12961287
if len(token) == 0 {
12971288
// Blank tokens are ok (from a trailing \t).
12981289
continue
@@ -1312,18 +1303,19 @@ func (dmp *DiffMatchPatch) DiffFromDelta(text1, delta string) (diffs []Diff, err
13121303
if !utf8.ValidString(param) {
13131304
return nil, fmt.Errorf("invalid UTF-8 token: %q", param)
13141305
}
1306+
13151307
diffs = append(diffs, Diff{DiffInsert, param})
13161308
case '=', '-':
13171309
n, err := strconv.ParseInt(param, 10, 0)
13181310
if err != nil {
1319-
return diffs, err
1311+
return nil, err
13201312
} else if n < 0 {
1321-
return diffs, errors.New("Negative number in DiffFromDelta: " + param)
1313+
return nil, errors.New("Negative number in DiffFromDelta: " + param)
13221314
}
13231315

13241316
// Remember that string slicing is by byte - we want by rune here.
1325-
text := string([]rune(text1)[pointer : pointer+int(n)])
1326-
pointer += int(n)
1317+
text := string([]rune(text1)[i : i+int(n)])
1318+
i += int(n)
13271319

13281320
if op == '=' {
13291321
diffs = append(diffs, Diff{DiffEqual, text})
@@ -1332,12 +1324,13 @@ func (dmp *DiffMatchPatch) DiffFromDelta(text1, delta string) (diffs []Diff, err
13321324
}
13331325
default:
13341326
// Anything else is an error.
1335-
return diffs, errors.New("Invalid diff operation in DiffFromDelta: " + string(token[0]))
1327+
return nil, errors.New("Invalid diff operation in DiffFromDelta: " + string(token[0]))
13361328
}
13371329
}
13381330

1339-
if pointer != len([]rune(text1)) {
1340-
return diffs, fmt.Errorf("Delta length (%v) smaller than source text length (%v)", pointer, len(text1))
1331+
if i != len([]rune(text1)) {
1332+
return nil, fmt.Errorf("Delta length (%v) smaller than source text length (%v)", i, len(text1))
13411333
}
1342-
return diffs, err
1334+
1335+
return diffs, nil
13431336
}

0 commit comments

Comments
 (0)