diff options
author | Robert Griesemer <gri@golang.org> | 2009-11-08 18:19:06 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2009-11-08 18:19:06 -0800 |
commit | d277fbd8d430b0eb53ce4545f7bdc98e1c239035 (patch) | |
tree | d875b05d54a4646263c83c6de41f607eb8f41cf8 | |
parent | 47a970e24008494892d5f49837bb8f70df3743e7 (diff) | |
download | golang-d277fbd8d430b0eb53ce4545f7bdc98e1c239035.tar.gz |
fix sentence extraction
R=rsc
http://go/go-review/1026027
-rw-r--r-- | src/cmd/godoc/godoc.go | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go index 02e5119f0..30f92b674 100644 --- a/src/cmd/godoc/godoc.go +++ b/src/cmd/godoc/godoc.go @@ -137,14 +137,21 @@ func htmlEscape(s string) string { func firstSentence(s string) string { - i := strings.Index(s, ". "); - if i < 0 { - i = strings.Index(s, "."); - if i < 0 { - i = len(s)-1; // compensate for i+1 below + // find first period followed by whitespace, or just the first period + i := -1; + for j, ch := range s { + if ch == '.' { + i = j+1; // include period + if i < len(s) && s[i] <= ' ' { + break; + } } } - return s[0 : i+1]; // include ".", if any + if i < 0 { + // no period found, use the enire string + i = len(s); + } + return s[0:i]; } |