]> Cypherpunks repositories - gostls13.git/commitdiff
- fixes to sprintf (by rob)
authorRobert Griesemer <gri@golang.org>
Thu, 6 Nov 2008 19:56:08 +0000 (11:56 -0800)
committerRobert Griesemer <gri@golang.org>
Thu, 6 Nov 2008 19:56:08 +0000 (11:56 -0800)
R=r
OCL=18685
CL=18685

src/lib/fmt/print.go

index 3516b19ab9f16533b27a367b9f067731d228f859..361dfc5a2aaab72a4e52c8066789b49cccd3d341 100644 (file)
@@ -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;
 }