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") }