Я вас категорически приветствую, товарищи форумчане и случайные посетители!
Ваше внимания представляю свою реализацию UNIX программы diff, а именно 1 из ее использований:
diff -u file_old file_new > file.diff
Моя программа выдает такие же валидные диффы, которые может спокойно использовать UNIX'овый patch. (Я проверял ). Единственное, я из универсального формата выкинул общие строки, поскольку они не мешают работе patch.
Собственно сам код находится тут.
Скачать:
pastebin get VAJeuBBQ diff.lua
Запускать программу можно таким образом:
diff file1 file2 file.diff
(расширение .diff можно как указывать явно, так и опускать его, программа сама добавит, если будет нужно).
В планах следующее:
Написать свою версию patch, поскольку то решение, которое я нашел не очень то работает. Его сырцы тут.
После написания patch - начать пилить свой git с блэкджеком и шлюхами =) Т.к все для этого уже будет готово (patch и diff).
Отдельную благодарность хочу выразить @PandaDoddo за то, что помог в написании кода!
Оставляю программу на ваша обсуждение, здоровая критика приветствуются. Если возникнут вопросы, задавайте их в этой теме, или же меня можно найти в нашем чате в IRC или же в нашей группе в Discord. В Discord так же есть мост в IRC.
Скрины: