Clean up more wuffs-c output (before clang-format)
diff --git a/internal/cgen/cgen.go b/internal/cgen/cgen.go
index b97a3e9..6d4616a 100644
--- a/internal/cgen/cgen.go
+++ b/internal/cgen/cgen.go
@@ -142,9 +142,12 @@
 				"// !! INSERT base/pixconv-submodule.c.\n": insertBasePixConvSubmoduleC,
 				"// !! INSERT base/strconv-impl.c.\n":      insertBaseStrConvImplC,
 				"// !! INSERT vtable names.\n": func(b *buffer) error {
-					for _, n := range builtin.Interfaces {
+					for i, n := range builtin.Interfaces {
+						if i > 0 {
+							buf.writeb('\n')
+						}
 						buf.printf("const char* wuffs_base__%s__vtable_name = "+
-							"\"{vtable}wuffs_base__%s\";\n\n", n, n)
+							"\"{vtable}wuffs_base__%s\";\n", n, n)
 
 					}
 					return nil
@@ -306,15 +309,17 @@
 	buf.writes(baseImagePrivateH)
 	buf.writeb('\n')
 	buf.writes(baseStrConvPrivateH)
-	buf.writeb('\n')
 	return nil
 }
 
 func insertBaseAllPublicH(buf *buffer) error {
 	if err := expandBangBangInsert(buf, baseFundamentalPublicH, map[string]func(*buffer) error{
 		"// !! INSERT FourCCs.\n": func(b *buffer) error {
-			for _, z := range builtin.FourCCs {
-				b.printf("// %s.\n#define WUFFS_BASE__FOURCC__%s 0x%02X%02X%02X%02X\n\n",
+			for i, z := range builtin.FourCCs {
+				if i != 0 {
+					b.writeb('\n')
+				}
+				b.printf("// %s.\n#define WUFFS_BASE__FOURCC__%s 0x%02X%02X%02X%02X\n",
 					z[1],
 					strings.ToUpper(strings.TrimSpace(z[0])),
 					z[0][0],
@@ -357,31 +362,26 @@
 	buf.writes(baseImagePublicH)
 	buf.writeb('\n')
 	buf.writes(baseStrConvPublicH)
-	buf.writeb('\n')
 	return nil
 }
 
 func insertBaseCopyright(buf *buffer) error {
 	buf.writes(baseCopyright)
-	buf.writeb('\n')
 	return nil
 }
 
 func insertBaseF64ConvSubmoduleC(buf *buffer) error {
 	buf.writes(baseF64ConvSubmoduleC)
-	buf.writeb('\n')
 	return nil
 }
 
 func insertBasePixConvSubmoduleC(buf *buffer) error {
 	buf.writes(basePixConvSubmoduleC)
-	buf.writeb('\n')
 	return nil
 }
 
 func insertBaseStrConvImplC(buf *buffer) error {
 	buf.writes(baseStrConvImplC)
-	buf.writeb('\n')
 	return nil
 }
 
@@ -400,17 +400,18 @@
 
 	buf.writes("// For modular builds that divide the base module into sub-modules, using these\n")
 	buf.writes("// functions require the WUFFS_CONFIG__MODULE__BASE__INTERFACES sub-module, not\n")
-	buf.writes("// just WUFFS_CONFIG__MODULE__BASE__CORE.\n\n")
+	buf.writes("// just WUFFS_CONFIG__MODULE__BASE__CORE.\n")
 
 	for _, n := range builtin.Interfaces {
-		buf.writes("// --------\n\n")
+		buf.writes("\n// --------\n\n")
 
 		qid := t.QID{t.IDBase, builtInTokenMap.ByName(n)}
 
 		buf.printf("extern const char* wuffs_base__%s__vtable_name;\n\n", n)
 
-		buf.writes("typedef struct {\n\n")
+		buf.writes("typedef struct {\n")
 		for _, f := range builtInInterfaceMethods[qid] {
+			buf.writes("  ")
 			if err := g.writeFuncSignature(buf, f, wfsCFuncPtrField); err != nil {
 				return err
 			}
@@ -429,37 +430,41 @@
 
 		buf.writes("#if defined(__cplusplus) || defined(WUFFS_IMPLEMENTATION)\n\n")
 
-		buf.printf("struct wuffs_base__%s__struct {", n)
-		buf.writes("struct {\n")
-		buf.writes("uint32_t magic;\n")
-		buf.writes("uint32_t active_coroutine;\n")
-		buf.writes("wuffs_base__vtable first_vtable;\n")
-		buf.writes("} private_impl;\n\n")
+		buf.printf("struct wuffs_base__%s__struct {\n", n)
+		buf.writes("  struct {\n")
+		buf.writes("    uint32_t magic;\n")
+		buf.writes("    uint32_t active_coroutine;\n")
+		buf.writes("    wuffs_base__vtable first_vtable;\n")
+		buf.writes("  } private_impl;\n\n")
 
-		buf.writes("\n#ifdef __cplusplus\n")
+		buf.writes("#ifdef __cplusplus\n")
 		buf.writes("#if __cplusplus >= 201103L\n")
-		buf.printf("using unique_ptr = std::unique_ptr<wuffs_base__%s, decltype(&free)>;\n", n)
+		buf.printf("  using unique_ptr = std::unique_ptr<wuffs_base__%s, decltype(&free)>;\n", n)
 		buf.writes("#endif\n\n")
 
 		for _, f := range builtInInterfaceMethods[qid] {
 			if err := g.writeFuncSignature(buf, f, wfsCppDecl); err != nil {
 				return err
 			}
-			buf.writes("{ return ")
+			buf.writes(" {\n    return ")
 			buf.writes(g.funcCName(f))
-			buf.writes("(this")
-			for _, o := range f.In().Fields() {
-				buf.writeb(',')
-				buf.writes(aPrefix)
-				buf.writes(o.AsField().Name().Str(g.tm))
+			if len(f.In().Fields()) == 0 {
+				buf.writes("(this")
+			} else {
+				buf.writes("(\n        this")
+				for _, o := range f.In().Fields() {
+					buf.writes(", ")
+					buf.writes(aPrefix)
+					buf.writes(o.AsField().Name().Str(g.tm))
+				}
 			}
-			buf.writes(");}\n\n")
+			buf.writes(");\n  }\n\n")
 		}
 		buf.writes("#endif  // __cplusplus\n\n")
 
 		buf.printf("};  // struct wuffs_base__%s__struct\n\n", n)
 
-		buf.writes("#endif  // defined(__cplusplus) || defined(WUFFS_IMPLEMENTATION)\n\n")
+		buf.writes("#endif  // defined(__cplusplus) || defined(WUFFS_IMPLEMENTATION)\n")
 	}
 	return nil
 }
@@ -475,10 +480,10 @@
 		tm:        &builtInTokenMap,
 	}
 
-	buf.writes("// ---------------- Interface Definitions.\n\n")
+	buf.writes("// ---------------- Interface Definitions.\n")
 	for i, n := range builtin.Interfaces {
 		if i > 0 {
-			buf.writes("// --------\n\n")
+			buf.writes("// --------\n")
 		}
 
 		qid := t.QID{t.IDBase, builtInTokenMap.ByName(n)}
@@ -487,40 +492,44 @@
 			returnsStatus := f.Effect().Coroutine() ||
 				((f.Out() != nil) && f.Out().IsStatus())
 
+			buf.writeb('\n')
 			if err := g.writeFuncSignature(buf, f, wfsCDecl); err != nil {
 				return err
 			}
-			buf.writes("{\n")
+			buf.writes(" {\n  ")
 			if err := writeFuncImplSelfMagicCheck(buf, g.tm, f); err != nil {
 				return err
 			}
 
-			buf.writes("\nconst wuffs_base__vtable* v = &self->private_impl.first_vtable;\n")
-			buf.writes("int i;\n")
-			buf.printf("for (i = 0; i < %d; i++) {\n", a.MaxImplements)
-			buf.printf("if (v->vtable_name == wuffs_base__%s__vtable_name) {\n", n)
-			buf.printf("const wuffs_base__%s__func_ptrs* func_ptrs = "+
-				"(const wuffs_base__%s__func_ptrs*)(v->function_pointers);\n", n, n)
-			buf.printf("return (*func_ptrs->%s)(self", f.FuncName().Str(g.tm))
+			buf.writes("\n  const wuffs_base__vtable* v = &self->private_impl.first_vtable;\n")
+			buf.writes("  int i;\n")
+			buf.printf("  for (i = 0; i < %d; i++) {\n", a.MaxImplements)
+			buf.printf("    if (v->vtable_name == wuffs_base__%s__vtable_name) {\n", n)
+			buf.printf("      const wuffs_base__%s__func_ptrs* func_ptrs =\n"+
+				"          (const wuffs_base__%s__func_ptrs*)(v->function_pointers);\n", n, n)
+			buf.printf("      return (*func_ptrs->%s)(self", f.FuncName().Str(g.tm))
 			for _, o := range f.In().Fields() {
-				buf.writeb(',')
+				buf.writes(", ")
 				buf.writes(aPrefix)
 				buf.writes(o.AsField().Name().Str(g.tm))
 			}
 			buf.writes(");\n")
-			buf.writes("} else if (v->vtable_name == NULL) {\n")
-			buf.writes("break;\n")
-			buf.writes("}\n")
-			buf.writes("v++;\n")
-			buf.writes("}\n\n")
+			buf.writes("    } else if (v->vtable_name == NULL) {\n")
+			buf.writes("      break;\n")
+			buf.writes("    }\n")
+			buf.writes("    v++;\n")
+			buf.writes("  }\n\n")
 
-			buf.writes("return ")
+			buf.writes("  return ")
 			if returnsStatus {
 				buf.writes("wuffs_base__make_status(wuffs_base__error__bad_vtable)")
 			} else if err := writeOutParamZeroValue(buf, g.tm, f.Out()); err != nil {
 				return err
 			}
-			buf.writes(";\n}\n\n")
+			buf.writes(";\n}\n")
+		}
+		if (i + 1) < len(builtin.Interfaces) {
+			buf.writeb('\n')
 		}
 	}
 
@@ -1242,7 +1251,7 @@
 			if err := g.writeFuncSignature(b, f, wfsCppDecl); err != nil {
 				return err
 			}
-			b.writes("{ return ")
+			b.writes("{\n    return ")
 			b.writes(g.funcCName(f))
 			b.writes("(this")
 			for _, o := range f.In().Fields() {
@@ -1250,7 +1259,7 @@
 				b.writes(aPrefix)
 				b.writes(o.AsField().Name().Str(g.tm))
 			}
-			b.writes(");}\n\n")
+			b.writes(");\n  }\n\n")
 		}
 	}
 
diff --git a/internal/cgen/data.go b/internal/cgen/data.go
index b841f1c..673bcee 100644
--- a/internal/cgen/data.go
+++ b/internal/cgen/data.go
@@ -470,5 +470,5 @@
 	""
 
 const baseCopyright = "" +
-	"// Copyright 2017 The Wuffs Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n" +
+	"// Copyright 2017 The Wuffs Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n" +
 	""
diff --git a/internal/cgen/func.go b/internal/cgen/func.go
index da83069..8920035 100644
--- a/internal/cgen/func.go
+++ b/internal/cgen/func.go
@@ -95,7 +95,7 @@
 		}
 
 	case wfsCppDecl:
-		b.writes("inline ")
+		b.writes("  inline ")
 
 	case wfsCFuncPtrField, wfsCFuncPtrType:
 		// No-op.
@@ -103,9 +103,9 @@
 
 	// TODO: write n's return values.
 	if n.Effect().Coroutine() {
-		b.writes("wuffs_base__status ")
+		b.writes("wuffs_base__status")
 	} else if out := n.Out(); out == nil {
-		b.writes("wuffs_base__empty_struct ")
+		b.writes("wuffs_base__empty_struct")
 		// TODO: does writeCTypeName generate the right C if out is an array?
 	} else if err := g.writeCTypeName(b, out, "", ""); err != nil {
 		return err
@@ -113,8 +113,13 @@
 
 	// The empty // comment makes clang-format place the function name at the
 	// start of a line.
-	if (wfs != wfsCFuncPtrField) && (wfs != wfsCFuncPtrType) {
-		b.writes("//\n")
+	switch wfs {
+	case wfsCDecl:
+		b.writes("  //\n")
+	case wfsCppDecl:
+		b.writes("  //\n  ")
+	case wfsCFuncPtrField:
+		b.writes(" ")
 	}
 
 	comma := false
@@ -123,23 +128,29 @@
 		b.writes(g.funcCName(n))
 		b.writeb('(')
 		if r := n.Receiver(); !r.IsZero() {
+			b.writes("\n    ")
 			if n.Effect().Pure() {
 				b.writes("const ")
 			}
-			b.printf("%s%s *self", g.pkgPrefix, r[1].Str(g.tm))
+			b.printf("%s%s* self", g.pkgPrefix, r[1].Str(g.tm))
 			comma = true
 		}
 
 	case wfsCppDecl:
 		b.writes(n.FuncName().Str(g.tm))
 		b.writeb('(')
+		if len(n.In().Fields()) > 0 {
+			b.writes("\n      ")
+		}
 
 	case wfsCFuncPtrField, wfsCFuncPtrType:
 		b.writes("(*")
 		if wfs == wfsCFuncPtrField {
 			b.writes(n.FuncName().Str(g.tm))
+			b.writes(")(\n    ")
+		} else {
+			b.writes(")(")
 		}
-		b.writes(")(")
 		if n.Effect().Pure() {
 			b.writes("const ")
 		}
@@ -152,7 +163,10 @@
 
 	for _, o := range n.In().Fields() {
 		if comma {
-			b.writeb(',')
+			b.writes(",\n    ")
+			if wfs == wfsCppDecl {
+				b.writes("  ")
+			}
 		}
 		comma = true
 		o := o.AsField()
@@ -167,7 +181,7 @@
 
 	b.printf(")")
 	if (wfs == wfsCppDecl) && !n.Receiver().IsZero() && n.Effect().Pure() {
-		b.writes(" const ")
+		b.writes(" const")
 	}
 	return nil
 }
@@ -293,31 +307,31 @@
 	returnsStatus := f.Effect().Coroutine() ||
 		((f.Out() != nil) && f.Out().IsStatus())
 
-	b.writes("if (!self) { return ")
+	b.writes("if (!self) {\n    return ")
 	if returnsStatus {
 		b.writes("wuffs_base__make_status(wuffs_base__error__bad_receiver)")
 	} else if err := writeOutParamZeroValue(b, tm, f.Out()); err != nil {
 		return err
 	}
-	b.writes(";}")
+	b.writes(";\n  }\n")
 
 	if f.Effect().Pure() {
-		b.writes("if ((self->private_impl.magic != WUFFS_BASE__MAGIC) &&")
-		b.writes("    (self->private_impl.magic != WUFFS_BASE__DISABLED)) {")
+		b.writes("  if ((self->private_impl.magic != WUFFS_BASE__MAGIC) &&\n")
+		b.writes("      (self->private_impl.magic != WUFFS_BASE__DISABLED)) {\n")
 	} else {
-		b.writes("if (self->private_impl.magic != WUFFS_BASE__MAGIC) {")
+		b.writes("  if (self->private_impl.magic != WUFFS_BASE__MAGIC) {\n")
 	}
-	b.writes("return ")
+	b.writes("    return ")
 	if returnsStatus {
-		b.writes("wuffs_base__make_status(" +
-			"(self->private_impl.magic == WUFFS_BASE__DISABLED) " +
-			"? wuffs_base__error__disabled_by_previous_error " +
-			": wuffs_base__error__initialize_not_called)")
+		b.writes("wuffs_base__make_status(\n" +
+			"        (self->private_impl.magic == WUFFS_BASE__DISABLED)\n" +
+			"            ? wuffs_base__error__disabled_by_previous_error\n" +
+			"            : wuffs_base__error__initialize_not_called)")
 	} else if err := writeOutParamZeroValue(b, tm, f.Out()); err != nil {
 		return err
 	}
 
-	b.writes(";}\n")
+	b.writes(";\n  }\n")
 	return nil
 }
 
diff --git a/internal/cgen/gen.go b/internal/cgen/gen.go
index 8ce09e0..58960c3 100644
--- a/internal/cgen/gen.go
+++ b/internal/cgen/gen.go
@@ -117,7 +117,8 @@
 		}
 		if i := bytes.Index(in, []byte("\n\n")); i >= 0 {
 			if len(copyright) == 0 {
-				copyright = in[:i+2]
+				// Take only one of the two trailing '\n's.
+				copyright = in[:i+1]
 			}
 			in = in[i+2:]
 		}