From: Robert Griesemer Date: Thu, 6 Nov 2008 19:56:08 +0000 (-0800) Subject: - fixes to sprintf (by rob) X-Git-Tag: weekly.2009-11-06~2778 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3a2c0a9615b3000f99d42647f4e811b960af755b;p=gostls13.git - fixes to sprintf (by rob) R=r OCL=18685 CL=18685 --- diff --git a/src/lib/fmt/print.go b/src/lib/fmt/print.go index 3516b19ab9..361dfc5a2a 100644 --- a/src/lib/fmt/print.go +++ b/src/lib/fmt/print.go @@ -28,11 +28,11 @@ export type Formatter interface { Precision() (prec int, ok bool); } -export type Format interface { +type Format interface { Format(f Formatter, c int); } -export type String interface { +type String interface { String() string } @@ -132,9 +132,10 @@ export func printf(format string, v ...) (n int, errno *os.Error) { return n, errno; } -export func sprintf(format string, v ...) string { +export func sprintf(format string, a ...) string { + v := reflect.NewValue(a).(reflect.PtrValue).Sub().(reflect.StructValue); p := Printer(); - p.doprintf(format, reflect.NewValue(v).(reflect.StructValue)); + p.doprintf(format, v); s := string(p.buf)[0 : p.n]; return s; } @@ -155,9 +156,10 @@ export func print(v ...) (n int, errno *os.Error) { return n, errno; } -export func sprint(v ...) string { +export func sprint(a ...) string { + v := reflect.NewValue(a).(reflect.PtrValue).Sub().(reflect.StructValue); p := Printer(); - p.doprint(reflect.NewValue(v).(reflect.StructValue), false, false); + p.doprint(v, false, false); s := string(p.buf)[0 : p.n]; return s; } @@ -179,9 +181,10 @@ export func println(v ...) (n int, errno *os.Error) { return n, errno; } -export func sprintln(v ...) string { +export func sprintln(a ...) string { + v := reflect.NewValue(a).(reflect.PtrValue).Sub().(reflect.StructValue); p := Printer(); - p.doprint(reflect.NewValue(v).(reflect.StructValue), true, true); + p.doprint(v, true, true); s := string(p.buf)[0 : p.n]; return s; }