summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--redo/zwinconstgen.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/redo/zwinconstgen.go b/redo/zwinconstgen.go
index b54b4f2..4020df5 100644
--- a/redo/zwinconstgen.go
+++ b/redo/zwinconstgen.go
@@ -112,7 +112,11 @@ func writeConstPrint(f *os.File, c string) {
func writeStructPrint(f *os.File, s string) {
cs := s[2:] // strip leading s_
fmt.Fprintf(f, "\tt = reflect.TypeOf(C.%s{})\n", cs)
- // TODO
+ fmt.Fprintf(f, "\tfmt.Fprintf(buf, \"type %%s struct {\\n\", %q)\n", s)
+ fmt.Fprintf(f, "\tfor i := 0; i < t.NumField(); i++ {\n")
+ fmt.Fprintf(f, "\t\tfmt.Fprintf(buf, \"\\t%%s %%s\\n\", t.Field(i).Name, t.Field(i).Type.Kind())\n")
+ fmt.Fprintf(f, "\t}\n")
+ fmt.Fprintf(f, "\tfmt.Fprintf(buf, \"}\\n\")\n")
}
func main() {
@@ -182,7 +186,6 @@ func main() {
writeConstPrint(f, c)
}
writeLine(f, "\tvar t reflect.Type")
- writeLine(f, "\tvar s string")
for _, s := range structs {
writeStructPrint(f, s)
}