omg we did it

This commit is contained in:
Mark McGranaghan 2012-09-29 15:32:33 -07:00
parent 1219a48fa2
commit 5d6da72aa1

View File

@ -87,25 +87,28 @@ func main() {
last := "" last := ""
for _, line := range lines[2:] { for _, line := range lines[2:] {
head := segs[len(segs)-1] head := segs[len(segs)-1]
docMatch := docsPat.MatchString(line) docsMatch := docsPat.MatchString(line)
docLast := last == "docs" emptyMatch := line == ""
codeLast := last == "code" lastDocs := last == "docs"
if docMatch || (line == "" && docLast) { newDocs := (last == "code") && head.docs != ""
newCode := (last == "docs") && head.code != ""
// Docs line - strip out comment indicator.
if docsMatch || (emptyMatch && lastDocs) {
trimed := docsPat.ReplaceAllString(line, "") trimed := docsPat.ReplaceAllString(line, "")
if !(last == "code" && head.docs != "") { if newDocs {
head.docs = head.docs + "\n" + trimed
} else {
newSeg := seg{docs: trimed, code: ""} newSeg := seg{docs: trimed, code: ""}
segs = append(segs, &newSeg) segs = append(segs, &newSeg)
} else {
head.docs = head.docs + "\n" + trimed
} }
last = "docs" last = "docs"
// Code line - preserve all whitespace. // Code line - preserve all whitespace.
} else { } else {
if !(codeLast && head.code != "") { if newCode {
head.code = head.code + "\n" + line
} else {
newSeg := seg{docs: "", code: line} newSeg := seg{docs: "", code: line}
segs = append(segs, &newSeg) segs = append(segs, &newSeg)
} else {
head.code = head.code + "\n" + line
} }
last = "code" last = "code"
} }