From c81d216d844f165b729fa3dbb0c3d834eb4268a8 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 17 Aug 2018 10:51:53 -0400 Subject: [PATCH] go/doc: allow interior dot in heading, as in "go.mod" Only the expected headings are affected. Diffing the output of "go run headscan.go" before and after: $ diff head1 head2 26a27,28 > Edit go.mod from tools or scripts > Make go.mod semantically consistent 168c170 < 141 headings found --- > 143 headings found $ Fixes #26938. Change-Id: I204fd982a60773aa26880cd19eed890c373b8ab6 Reviewed-on: https://go-review.googlesource.com/129677 Run-TryBot: Russ Cox TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/go/doc/comment.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/go/doc/comment.go b/src/go/doc/comment.go index 7c4490e7c3..d068d8960c 100644 --- a/src/go/doc/comment.go +++ b/src/go/doc/comment.go @@ -232,7 +232,7 @@ func heading(line string) string { } // exclude lines with illegal characters. we allow "()," - if strings.ContainsAny(line, ".;:!?+*/=[]{}_^°&§~%#@<\">\\") { + if strings.ContainsAny(line, ";:!?+*/=[]{}_^°&§~%#@<\">\\") { return "" } @@ -248,6 +248,18 @@ func heading(line string) string { b = b[i+2:] } + // allow "." when followed by non-space + for b := line;; { + i := strings.IndexRune(b, '.') + if i < 0 { + break + } + if i+1 >= len(b) || b[i+1] == ' ' { + return "" // not followed by non-space + } + b = b[i+1:] + } + return line } -- 2.50.0