Commit 3a2c0a96 authored by Robert Griesemer's avatar Robert Griesemer

- fixes to sprintf (by rob)

R=r
OCL=18685
CL=18685
parent 91212bd1
...@@ -28,11 +28,11 @@ export type Formatter interface { ...@@ -28,11 +28,11 @@ export type Formatter interface {
Precision() (prec int, ok bool); Precision() (prec int, ok bool);
} }
export type Format interface { type Format interface {
Format(f Formatter, c int); Format(f Formatter, c int);
} }
export type String interface { type String interface {
String() string String() string
} }
...@@ -132,9 +132,10 @@ export func printf(format string, v ...) (n int, errno *os.Error) { ...@@ -132,9 +132,10 @@ export func printf(format string, v ...) (n int, errno *os.Error) {
return n, errno; 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 := Printer();
p.doprintf(format, reflect.NewValue(v).(reflect.StructValue)); p.doprintf(format, v);
s := string(p.buf)[0 : p.n]; s := string(p.buf)[0 : p.n];
return s; return s;
} }
...@@ -155,9 +156,10 @@ export func print(v ...) (n int, errno *os.Error) { ...@@ -155,9 +156,10 @@ export func print(v ...) (n int, errno *os.Error) {
return n, errno; 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 := Printer();
p.doprint(reflect.NewValue(v).(reflect.StructValue), false, false); p.doprint(v, false, false);
s := string(p.buf)[0 : p.n]; s := string(p.buf)[0 : p.n];
return s; return s;
} }
...@@ -179,9 +181,10 @@ export func println(v ...) (n int, errno *os.Error) { ...@@ -179,9 +181,10 @@ export func println(v ...) (n int, errno *os.Error) {
return n, errno; 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 := Printer();
p.doprint(reflect.NewValue(v).(reflect.StructValue), true, true); p.doprint(v, true, true);
s := string(p.buf)[0 : p.n]; s := string(p.buf)[0 : p.n];
return s; return s;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment