public static void main(final String[] argv) throws IOException { final String filea = argv[argv.length - 2]; final String fileb = argv[argv.length - 1]; final String[] a = DiffPrint.slurp(filea); final String[] b = DiffPrint.slurp(fileb); final Diff d = new Diff(a, b); char style = 'n'; for (int i = 0; i < argv.length - 2; ++i) { final String f = argv[i]; if (f.startsWith("-")) { for (int j = 1; j < f.length(); ++j) { switch (f.charAt(j)) { case 'e': // Ed style style = 'e'; break; case 'c': // Context diff style = 'c'; break; case 'u': style = 'u'; break; } } } } final boolean reverse = style == 'e'; final Diff.change script = d.diff_2(reverse); if (script == null) { System.err.println("No differences"); } else { Base p; switch (style) { case 'e': p = new EdPrint(a, b); break; case 'c': p = new ContextPrint(a, b); break; case 'u': p = new UnifiedPrint(a, b); break; default: p = new NormalPrint(a, b); } p.print_header(filea, fileb); p.print_script(script); } }