| 111 | } |
| 112 | |
| 113 | func compare(srcl, dstl []R) { |
| 114 | var buf bytes.Buffer |
| 115 | var ps, ds, loop, matches int |
| 116 | for ps < len(srcl) && ds < len(dstl) { |
| 117 | loop++ |
| 118 | if loop%100 == 0 { |
| 119 | //fmt.Printf(".") |
| 120 | } |
| 121 | s := srcl[ps] |
| 122 | d := dstl[ds] |
| 123 | if equal(s, d) { |
| 124 | //fmt.Printf("Found match: %v\n", s) |
| 125 | matches++ |
| 126 | ps++ |
| 127 | ds++ |
| 128 | } else if less(s, d) { |
| 129 | // s < d, advance s |
| 130 | buf.WriteString(s.String()) |
| 131 | buf.WriteRune('\n') |
| 132 | ps++ |
| 133 | } else { |
| 134 | ds++ |
| 135 | } |
| 136 | } |
| 137 | fmt.Printf("Found matches: %v\n", matches) |
| 138 | x.Check(ioutil.WriteFile(*out, buf.Bytes(), 0644)) |
| 139 | } |
| 140 | |
| 141 | func main() { |
| 142 | flag.Parse() |