From: Robert Griesemer Date: Mon, 8 Feb 2016 22:50:45 +0000 (-0800) Subject: go/constant: fix String() implementation X-Git-Tag: go1.6~1^2~26 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=41191e192cb3d499ca8a2552117029493c6be1a9;p=gostls13.git go/constant: fix String() implementation Fixes #14262. Change-Id: Id590995dd4460e81f6b91bcfb3f02515a97650fe Reviewed-on: https://go-review.googlesource.com/19361 Run-TryBot: Robert Griesemer Reviewed-by: Alan Donovan TryBot-Result: Gobot Gobot --- diff --git a/src/go/constant/value.go b/src/go/constant/value.go index 630581047a..310814df71 100644 --- a/src/go/constant/value.go +++ b/src/go/constant/value.go @@ -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] + "..." diff --git a/src/go/constant/value_test.go b/src/go/constant/value_test.go index de1ab0267a..dbd96c07a3 100644 --- a/src/go/constant/value_test.go +++ b/src/go/constant/value_test.go @@ -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"},