From: Sergey Matveev Date: Mon, 8 Jun 2020 10:20:02 +0000 (+0300) Subject: Снова хаки matterircd X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=6a534864b35e7c7a43799d77337c8fd323539ace;p=stargrave-blog.git Снова хаки matterircd Уже были проблемы с matterircd в 2b96a8c59bf04a7f70d9226390e8d060a19a1a07. Точнее не с ним, а с рабочим сервером, который считает что matterircd флудит сообщениями. Но уже точно с matterircd есть другая проблема: длинные сообщения он жёстко режет просто по 400-ому байту. Англоговорящим то это нормально, ибо в одном байте буква умещается, а вот у меня часто бьющиеся сообщения попадают, когда в irssi приходит последующее сообщение в котором все данные искорёжены. Это правда чуть-чуть удивляет, ведь в UTF-8 действительно есть самосинхронизация и после битых данных он должен показываться, но тут уж наверное зависит и от способа рендеринга irssi и от терминала. Для тестирования решил сам себе отправить сообщение (через другой клиент на удалённом доступе): matterircd сразу же запаниковал, ибо в коде явно не подразумевается возможность общения самого с собой и кое где появляется nil. Ну, 10 секунд, и это профикшено. Ещё минут пять и теперь он с конца определяет валиден ли UTF-8 символ, по байту отступая назад. Теперь разбиение происходит ничего не ломая. Open source и язык Go позволяют в совершенно незнакомой программе с ходу вносить изменения и исправления! ---