shithub: hell

ref: 1d76a2779b42ddaedb49ebc546c390ea3b295945
dir: /format.go/

View raw version
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
}