aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-11-08 18:19:06 -0800
committerRobert Griesemer <gri@golang.org>2009-11-08 18:19:06 -0800
commite8b580c9aa809d4741eb1917154bfd31e2c51956 (patch)
treec0267ff86a8df90cf7c441403cc93acbb705ad4b
parent202ede1240d4f66a73f3e116660e1237c1bf16ac (diff)
downloadgo-e8b580c9aa809d4741eb1917154bfd31e2c51956.tar.gz
go-e8b580c9aa809d4741eb1917154bfd31e2c51956.zip
fix sentence extraction
R=rsc http://go/go-review/1026027
-rw-r--r--src/cmd/godoc/godoc.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go
index 02e5119f01..30f92b674e 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];
}