ref: 1d76a2779b42ddaedb49ebc546c390ea3b295945
dir: /format.go/
package main
//import "fmt"
import "strings"
func hyphenate(input string, width int) (string) {
result, remainder := hyphenateline(input, width)
var cresult string
for(len(remainder) > width -1) {
cresult, remainder = hyphenateline(remainder, width)
result += cresult
}
return result + remainder
}
func hyphenateline(input string, width int) (string, string) {
begin, _, _ := strings.Cut(input, "\n")
hyphenate := false
if(len(begin) > width-1) {
begin = begin[:width-1]
hyphenate = true
}
remainder := input[len(begin):]
if(hyphenate == true && begin[width-2] != ' ') {
begin += "-"
}
begin += "\n"
return begin, remainder
}