diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 82fe7353..59804c7e 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -176,7 +176,7 @@ }, { "ImportPath": "github.com/pmezard/go-difflib/difflib", - "Rev": "d8ed2627bdf02c080bf22230dbb337003b7aba2d" + "Rev": "5d4384ee4fb2527b0a1256a821ebfc92f91efefc" }, { "ImportPath": "github.com/spf13/pflag", @@ -272,339 +272,339 @@ }, { "ImportPath": "k8s.io/api/admissionregistration/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/auditregistration/v1alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta2", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/coordination/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/coordination/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/events/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/imagepolicy/v1alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/scheduling/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/storage/v1alpha1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "de494049e22a9ccf748c5bbda7492f42f344d0cd" + "Rev": "c9c3ac7a342d14856b80e4cf08fcf60c594ce7db" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/naming", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "4b3b852955ebe47857fcf134b531b23dd8f3e793" + "Rev": "f84a4639d8e87482a212fa1cb1fbec7f01bd780f" }, { "ImportPath": "k8s.io/klog", diff --git a/Godeps/OWNERS b/Godeps/OWNERS index 3d49f306..0f5d2f67 100644 --- a/Godeps/OWNERS +++ b/Godeps/OWNERS @@ -1,2 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + approvers: - dep-approvers diff --git a/vendor/github.com/pmezard/go-difflib/difflib/difflib.go b/vendor/github.com/pmezard/go-difflib/difflib/difflib.go index 64cc40fe..003e99fa 100644 --- a/vendor/github.com/pmezard/go-difflib/difflib/difflib.go +++ b/vendor/github.com/pmezard/go-difflib/difflib/difflib.go @@ -559,10 +559,14 @@ type UnifiedDiff struct { func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { buf := bufio.NewWriter(writer) defer buf.Flush() - w := func(format string, args ...interface{}) error { + wf := func(format string, args ...interface{}) error { _, err := buf.WriteString(fmt.Sprintf(format, args...)) return err } + ws := func(s string) error { + _, err := buf.WriteString(s) + return err + } if len(diff.Eol) == 0 { diff.Eol = "\n" @@ -581,26 +585,28 @@ func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { if len(diff.ToDate) > 0 { toDate = "\t" + diff.ToDate } - err := w("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) - if err != nil { - return err - } - err = w("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) - if err != nil { - return err + if diff.FromFile != "" || diff.ToFile != "" { + err := wf("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) + if err != nil { + return err + } + err = wf("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) + if err != nil { + return err + } } } first, last := g[0], g[len(g)-1] range1 := formatRangeUnified(first.I1, last.I2) range2 := formatRangeUnified(first.J1, last.J2) - if err := w("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { + if err := wf("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { return err } for _, c := range g { i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 if c.Tag == 'e' { for _, line := range diff.A[i1:i2] { - if err := w(" " + line); err != nil { + if err := ws(" " + line); err != nil { return err } } @@ -608,14 +614,14 @@ func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { } if c.Tag == 'r' || c.Tag == 'd' { for _, line := range diff.A[i1:i2] { - if err := w("-" + line); err != nil { + if err := ws("-" + line); err != nil { return err } } } if c.Tag == 'r' || c.Tag == 'i' { for _, line := range diff.B[j1:j2] { - if err := w("+" + line); err != nil { + if err := ws("+" + line); err != nil { return err } } @@ -669,12 +675,18 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { 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) { + _, err := buf.WriteString(s) + if diffErr == nil && err != nil { + diffErr = err + } + } if len(diff.Eol) == 0 { diff.Eol = "\n" @@ -700,15 +712,17 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { 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) + if diff.FromFile != "" || diff.ToFile != "" { + 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) + ws("***************" + 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 { @@ -716,7 +730,7 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { continue } for _, line := range diff.A[cc.I1:cc.I2] { - w(prefix[cc.Tag] + line) + ws(prefix[cc.Tag] + line) } } break @@ -724,7 +738,7 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { } 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 { @@ -732,7 +746,7 @@ func WriteContextDiff(writer io.Writer, diff ContextDiff) error { continue } for _, line := range diff.B[cc.J1:cc.J2] { - w(prefix[cc.Tag] + line) + ws(prefix[cc.Tag] + line) } } break