summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2008-10-07 10:03:34 -0700
committerRob Pike <r@golang.org>2008-10-07 10:03:34 -0700
commit5cff795078a27a56b69a1fa878b3b72be12b60a6 (patch)
tree0645a52783aff93344e73f29b5a4b614f39d47c8
parentc3f883ca269da60d18eeffd32e1827cf85de08c9 (diff)
downloadgolang-5cff795078a27a56b69a1fa878b3b72be12b60a6.tar.gz
sys.stringtorune doesn't need a length parameter.
R=rsc DELTA=7 (0 added, 0 deleted, 7 changed) OCL=16600 CL=16630
-rw-r--r--src/cmd/gc/sys.go2
-rw-r--r--src/cmd/gc/sysimport.c4
-rw-r--r--src/runtime/rune.c4
-rw-r--r--src/runtime/runtime.h2
-rw-r--r--test/utf.go2
5 files changed, 7 insertions, 7 deletions
diff --git a/src/cmd/gc/sys.go b/src/cmd/gc/sys.go
index 37c523d99..8e2e6ac76 100644
--- a/src/cmd/gc/sys.go
+++ b/src/cmd/gc/sys.go
@@ -76,7 +76,7 @@ export func goexit();
export func readfile(string) (string, bool); // read file into string; boolean status
export func writefile(string, string) (bool); // write string into file; boolean status
export func bytestorune(*byte, int32, int32) (int32, int32); // convert bytes to runes
-export func stringtorune(string, int32, int32) (int32, int32); // convert bytes to runes
+export func stringtorune(string, int32) (int32, int32); // convert bytes to runes
export func exit(int32);
diff --git a/src/cmd/gc/sysimport.c b/src/cmd/gc/sysimport.c
index c3b7cbfc1..1ef5d20be 100644
--- a/src/cmd/gc/sysimport.c
+++ b/src/cmd/gc/sysimport.c
@@ -1,4 +1,4 @@
-char *sysimport =
+char *sysimport =
"package sys\n"
"type sys.any any\n"
"type sys.uint32 uint32\n"
@@ -66,7 +66,7 @@ char *sysimport =
"export func sys.readfile (? sys.string) (? sys.string, ? sys.bool)\n"
"export func sys.writefile (? sys.string, ? sys.string) (? sys.bool)\n"
"export func sys.bytestorune (? *sys.uint8, ? sys.int32, ? sys.int32) (? sys.int32, ? sys.int32)\n"
- "export func sys.stringtorune (? sys.string, ? sys.int32, ? sys.int32) (? sys.int32, ? sys.int32)\n"
+ "export func sys.stringtorune (? sys.string, ? sys.int32) (? sys.int32, ? sys.int32)\n"
"export func sys.exit (? sys.int32)\n"
"\n"
"$$\n";
diff --git a/src/runtime/rune.c b/src/runtime/rune.c
index d705a5e36..5738ca364 100644
--- a/src/runtime/rune.c
+++ b/src/runtime/rune.c
@@ -235,9 +235,9 @@ sys·bytestorune(byte *str, int32 off, int32 length, int32 outrune, int32 outcou
}
void
-sys·stringtorune(string str, int32 off, int32 length, int32 outrune, int32 outcount)
+sys·stringtorune(string str, int32 off, int32 outrune, int32 outcount)
{
- outcount = charntorune(&outrune, str->str + off, length);
+ outcount = charntorune(&outrune, str->str + off, str->len - off);
FLUSH(&outrune);
FLUSH(&outcount);
}
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index f59047243..f182aebae 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -293,4 +293,4 @@ void sys·intstring(int64, string);
*/
void sys·readfile(string, string, bool);
void sys·bytestorune(byte*, int32, int32, int32, int32);
-void sys·stringtorune(string, int32, int32, int32, int32);
+void sys·stringtorune(string, int32, int32, int32);
diff --git a/test/utf.go b/test/utf.go
index 206f67c73..f38f4edd8 100644
--- a/test/utf.go
+++ b/test/utf.go
@@ -21,7 +21,7 @@ func main() {
var l = len(s);
for w, i, j := 0,0,0; i < l; i += w {
var r int32;
- r, w = sys.stringtorune(s, i, l);
+ r, w = sys.stringtorune(s, i);
if w == 0 { panic("zero width in string") }
if r != chars[j] { panic("wrong value from string") }
j++;