From 6a534864b35e7c7a43799d77337c8fd323539ace Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 8 Jun 2020 13:20:02 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D0=BD=D0=BE=D0=B2=D0=B0=20=D1=85=D0=B0?= =?utf8?q?=D0=BA=D0=B8=20matterircd?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Уже были проблемы с matterircd в 2b96a8c59bf04a7f70d9226390e8d060a19a1a07. Точнее не с ним, а с рабочим сервером, который считает что matterircd флудит сообщениями. Но уже точно с matterircd есть другая проблема: длинные сообщения он жёстко режет просто по 400-ому байту. Англоговорящим то это нормально, ибо в одном байте буква умещается, а вот у меня часто бьющиеся сообщения попадают, когда в irssi приходит последующее сообщение в котором все данные искорёжены. Это правда чуть-чуть удивляет, ведь в UTF-8 действительно есть самосинхронизация и после битых данных он должен показываться, но тут уж наверное зависит и от способа рендеринга irssi и от терминала. Для тестирования решил сам себе отправить сообщение (через другой клиент на удалённом доступе): matterircd сразу же запаниковал, ибо в коде явно не подразумевается возможность общения самого с собой и кое где появляется nil. Ну, 10 секунд, и это профикшено. Ещё минут пять и теперь он с конца определяет валиден ли UTF-8 символ, по байту отступая назад. Теперь разбиение происходит ничего не ломая. Open source и язык Go позволяют в совершенно незнакомой программе с ходу вносить изменения и исправления! -- 2.50.0