# Pastebin IRzmbFaz import os, sets, strutils, streams proc main() = if paramCount() != 2: echo "mydiff file1 file2" quit(1) var old_lines: HashSet[string] = initSet[string]() new_lines: HashSet[string] = initSet[string]() line: string var file1 = newFileStream(paramStr(1), fmRead) if isNil(fs): echo "Failed to open file: ", paramStr(1) quit(1) defer: file1.close() while file1.readLine(line): old_lines.incl(line) var file2 = newFileStream(paramStr(2), fmRead) if isNil(fs): echo "Failed to open file: ", paramStr(2) quit(1) defer: file2.close() while file2.readLine(line): new_lines.incl(line) let old_added = old_lines_set - new_lines_set let old_removed = new_lines_set - old_lines_set for line in old_lines: if line in old_added: echo "-", line.strip() elif line in old_removed: echo "+", line.strip() for line in new_lines: if line in old_added: echo "-", line.strip() elif line in old_removed: echo "+", line.strip() main()