reflow-multi-column/main.go

53 lines
965 B
Go

package main
import (
"bufio"
"errors"
"flag"
"io"
"os"
)
var (
columnDelimiter string
pageDelimiter string
minimumInstances int
)
func main() {
flag.StringVar(&pageDelimiter, "p", "\f", "page delimiter character")
flag.StringVar(&columnDelimiter, "d", " ", "column delimiter character")
flag.IntVar(&minimumInstances, "m", 2, "minimum non-leading instances of delimiter to break a column")
flag.Parse()
r := bufio.NewReader(os.Stdin)
for {
b, err := readPage(r)
if err != nil && err != io.EOF {
panic(err)
}
if err := putPage(b); err != nil {
panic(err)
}
if err == io.EOF {
break
}
}
}
func readPage(r *bufio.Reader) ([]byte, error) {
return _readPage([]byte(pageDelimiter)[0], r)
}
func _readPage(d byte, r *bufio.Reader) ([]byte, error) {
b, err := r.ReadBytes(d)
if len(b) > 0 && byte(b[len(b)-1]) == d {
b = b[:len(b)-1]
}
return b, err
}
func putPage(b []byte) error {
return errors.New("not impl")
}