Also print `fixed ...` messages with `-stdout` (#1373)

* Also print `fixed ...` messages with `-stdout`

This makes it easier for users to implement a "check only" mode that doesn't modify any files, but is able to tell which ones would have been changed by buildozer.

* Use diff
diff --git a/buildozer/buildozer_test.sh b/buildozer/buildozer_test.sh
index aba79c2..955c582 100755
--- a/buildozer/buildozer_test.sh
+++ b/buildozer/buildozer_test.sh
@@ -2393,4 +2393,34 @@
   diff -u MODULE.bazel.expected MODULE.bazel || fail "Output didn't match"
 }
 
+function test_stdout() {
+  cat > MODULE.bazel <<EOF
+module(
+  name = "foo", version = "0.27.0",
+)
+EOF
+
+  cat > MODULE.bazel.expected <<EOF
+module(
+  name = "foo", version = "0.27.0",
+)
+EOF
+
+  cat > MODULE.bazel.expected.stdout <<EOF
+module(
+    name = "foo",
+    version = "0.27.0",
+)
+EOF
+
+  cat > MODULE.bazel.expected.stderr <<EOF
+fixed $(pwd)/MODULE.bazel
+EOF
+
+  $buildozer -stdout 'format' //MODULE.bazel:all > stdout 2> stderr
+  diff -u MODULE.bazel.expected MODULE.bazel || fail "File was changed"
+  diff -u MODULE.bazel.expected.stdout stdout || fail "Output didn't match"
+  diff -u MODULE.bazel.expected.stderr stderr || fail "Error output didn't match"
+}
+
 run_suite "buildozer tests"
diff --git a/edit/buildozer.go b/edit/buildozer.go
index b4ae487..5527d65 100644
--- a/edit/buildozer.go
+++ b/edit/buildozer.go
@@ -1260,7 +1260,7 @@
 
 	if opts.Stdout || name == stdinPackageName {
 		opts.OutWriter.Write(ndata)
-		return &rewriteResult{file: name, errs: errs, records: records}
+		return &rewriteResult{file: name, errs: errs, modified: !bytes.Equal(data, ndata), records: records}
 	}
 
 	if bytes.Equal(data, ndata) {