]> Cypherpunks repositories - gostls13.git/commitdiff
go/constant: fix String() implementation
authorRobert Griesemer <gri@golang.org>
Mon, 8 Feb 2016 22:50:45 +0000 (14:50 -0800)
committerRobert Griesemer <gri@golang.org>
Mon, 8 Feb 2016 23:10:00 +0000 (23:10 +0000)
Fixes #14262.

Change-Id: Id590995dd4460e81f6b91bcfb3f02515a97650fe
Reviewed-on: https://go-review.googlesource.com/19361
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/go/constant/value.go
src/go/constant/value_test.go

index 630581047a203f01d6e6c6af3a1b9f543d317a04..310814df71c24fb07e3d92da08ad637925cf4529 100644 (file)
@@ -96,7 +96,7 @@ func (x stringVal) String() string {
                // only the first maxLen-3 runes; then add "...".
                i := 0
                for n := 0; n < maxLen-3; n++ {
-                       _, size := utf8.DecodeRuneInString(s)
+                       _, size := utf8.DecodeRuneInString(s[i:])
                        i += size
                }
                s = s[:i] + "..."
index de1ab0267a45f4505b7b3235ba0777bbadf08097..dbd96c07a310b8795339c9cd7f3ec55d161967d8 100644 (file)
@@ -204,6 +204,7 @@ func eql(x, y Value) bool {
 // String tests
 
 var xxx = strings.Repeat("x", 68)
+var issue14262 = `"بموجب الشروط التالية نسب المصنف — يجب عليك أن تنسب العمل بالطريقة التي تحددها المؤلف أو المرخص (ولكن ليس بأي حال من الأحوال أن توحي وتقترح بتحول أو استخدامك للعمل).  المشاركة على قدم المساواة — إذا كنت يعدل ، والتغيير ، أو الاستفادة من هذا العمل ، قد ينتج عن توزيع العمل إلا في ظل تشابه او تطابق فى واحد لهذا الترخيص."`
 
 var stringTests = []struct {
        input, short, exact string
@@ -225,6 +226,7 @@ var stringTests = []struct {
        {`"` + xxx + `xx"`, `"` + xxx + `xx"`, `"` + xxx + `xx"`},
        {`"` + xxx + `xxx"`, `"` + xxx + `...`, `"` + xxx + `xxx"`},
        {`"` + xxx + xxx + `xxx"`, `"` + xxx + `...`, `"` + xxx + xxx + `xxx"`},
+       {issue14262, `"بموجب الشروط التالية نسب المصنف — يجب عليك أن تنسب العمل بالطريقة ال...`, issue14262},
 
        // Int
        {"0", "0", "0"},