fix WriteContextDiff fmt.Sprintf format error
diff --git a/difflib/difflib.go b/difflib/difflib.go
index a534525..5dd76b8 100644
--- a/difflib/difflib.go
+++ b/difflib/difflib.go
@@ -673,13 +673,17 @@
buf := bufio.NewWriter(writer)
defer buf.Flush()
var diffErr error
- w := func(format string, args ...interface{}) {
+ wf := func(format string, args ...interface{}) {
_, err := buf.WriteString(fmt.Sprintf(format, args...))
if diffErr == nil && err != nil {
diffErr = err
}
}
-
+ ws := func(s string) error {
+ _, err := buf.WriteString(s)
+ return err
+ }
+
if len(diff.Eol) == 0 {
diff.Eol = "\n"
}
@@ -704,15 +708,15 @@
if len(diff.ToDate) > 0 {
toDate = "\t" + diff.ToDate
}
- w("*** %s%s%s", diff.FromFile, fromDate, diff.Eol)
- w("--- %s%s%s", diff.ToFile, toDate, diff.Eol)
+ wf("*** %s%s%s", diff.FromFile, fromDate, diff.Eol)
+ wf("--- %s%s%s", diff.ToFile, toDate, diff.Eol)
}
first, last := g[0], g[len(g)-1]
- w("***************" + diff.Eol)
+ wf("***************" + diff.Eol)
range1 := formatRangeContext(first.I1, last.I2)
- w("*** %s ****%s", range1, diff.Eol)
+ wf("*** %s ****%s", range1, diff.Eol)
for _, c := range g {
if c.Tag == 'r' || c.Tag == 'd' {
for _, cc := range g {
@@ -720,7 +724,7 @@
continue
}
for _, line := range diff.A[cc.I1:cc.I2] {
- w(prefix[cc.Tag] + line)
+ ws(prefix[cc.Tag] + line)
}
}
break
@@ -728,7 +732,7 @@
}
range2 := formatRangeContext(first.J1, last.J2)
- w("--- %s ----%s", range2, diff.Eol)
+ wf("--- %s ----%s", range2, diff.Eol)
for _, c := range g {
if c.Tag == 'r' || c.Tag == 'i' {
for _, cc := range g {
@@ -736,7 +740,7 @@
continue
}
for _, line := range diff.B[cc.J1:cc.J2] {
- w(prefix[cc.Tag] + line)
+ ws(prefix[cc.Tag] + line)
}
}
break
diff --git a/difflib/difflib_test.go b/difflib/difflib_test.go
index eb1cccc..4d462ec 100644
--- a/difflib/difflib_test.go
+++ b/difflib/difflib_test.go
@@ -107,8 +107,7 @@
two
three
four
-fmt.Printf("%s,%T",a,b)
-`
+fmt.Printf("%s,%T",a,b)`
b := `zero
one
three
@@ -127,56 +126,21 @@
// Output:
// --- Original 2005-01-26 23:30:50
// +++ Current 2010-04-02 10:20:52
- // @@ -1,6 +1,4 @@
+ // @@ -1,5 +1,4 @@
// +zero
// one
// -two
// three
// four
// -fmt.Printf("%s,%T",a,b)
- // -
-}
-
-func ExampleGetUnifiedDiffString() {
- a := `one
-two
-three
-four
-fmt.Printf("%s,%T",a,b)
-`
- b := `zero
-one
-three
-four`
- diff := UnifiedDiff{
- A: SplitLines(a),
- B: SplitLines(b),
- FromFile: "Original",
- FromDate: "2005-01-26 23:30:50",
- ToFile: "Current",
- ToDate: "2010-04-02 10:20:52",
- Context: 3,
- }
- result, _ := GetUnifiedDiffString(diff)
- fmt.Println(strings.Replace(result, "\t", " ", -1))
- // Output:
- // --- Original 2005-01-26 23:30:50
- // +++ Current 2010-04-02 10:20:52
- // @@ -1,6 +1,4 @@
- // +zero
- // one
- // -two
- // three
- // four
- // -fmt.Printf("%s,%T",a,b)
- // -
}
func ExampleGetContextDiffCode() {
a := `one
two
three
-four`
+four
+fmt.Printf("%s,%T",a,b)`
b := `zero
one
tree
@@ -190,16 +154,17 @@
Eol: "\n",
}
result, _ := GetContextDiffString(diff)
- fmt.Printf(strings.Replace(result, "\t", " ", -1))
+ fmt.Print(strings.Replace(result, "\t", " ", -1))
// Output:
// *** Original
// --- Current
// ***************
- // *** 1,4 ****
+ // *** 1,5 ****
// one
// ! two
// ! three
// four
+ // - fmt.Printf("%s,%T",a,b)
// --- 1,4 ----
// + zero
// one