diff options
| author | Pietro Gagliardi <[email protected]> | 2014-07-11 10:52:27 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-07-11 10:52:27 -0400 |
| commit | c71e80f1925a944cfc9fcd773c2f7b9d4590289d (patch) | |
| tree | c28ffca4891ccfe36fa50618bd777af9498f51a8 /redo/zwinconstgen.go | |
| parent | 3596ae7b96124769d04c10e29a23ec5035f706a0 (diff) | |
Improved the structure type output of zwinconstgen.go.
Diffstat (limited to 'redo/zwinconstgen.go')
| -rw-r--r-- | redo/zwinconstgen.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/redo/zwinconstgen.go b/redo/zwinconstgen.go index 9b2511d..01b0094 100644 --- a/redo/zwinconstgen.go +++ b/redo/zwinconstgen.go @@ -108,6 +108,15 @@ import ( // #include <stdint.h> {{range .Consts}}// uintptr_t {{.}} = (uintptr_t) ({{noprefix .}}); {{end}}import "C" +func winName(t reflect.Type) string { + switch t.Kind() { + case reflect.UnsafePointer: + return "uintptr" + case reflect.Ptr: + return "*" + winName(t.Elem()) + } + return t.Kind().String() +} func main() { buf := new(bytes.Buffer) fmt.Fprintln(buf, "package ui") @@ -117,7 +126,7 @@ func main() { {{range .Structs}} t = reflect.TypeOf(C.{{noprefix .}}{}) fmt.Fprintf(buf, "type %s struct {\n", {{printf "%q" .}}) for i := 0; i < t.NumField(); i++ { - fmt.Fprintf(buf, "\t%s %s\n", t.Field(i).Name, t.Field(i).Type.Kind()) + fmt.Fprintf(buf, "\t%s %s\n", t.Field(i).Name, winName(t.Field(i).Type)) } fmt.Fprintf(buf, "}") {{end}} |
