Формат файлов истории

Доброго времени суток.

Подскажите, где можно найти информацию по формату файлов истории tkabber?
В частности, какие символы в сообщении нужно экранировать и как

С уважением, Олег

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

В tkabber@c.j.r

В tkabber@c.j.r подсказали посмотреть файл plugins/chat/logger.tcl ( kostix, ещё раз спасибо! )

Проследил путешествие сообщения: от client:message (файл chats.tcl) сообщение без изменения либо с незначительными изменениями и попадает в logger::log_message (файл plugins/chat/logger.tcl), где происходят некоторые замены перед записью в лог.

Но вот откуда вызывается client:message понять не могу. Соответственно, формат сообщения тоже не ясен. Есть идеи?

Похоже, client:message

Похоже, client:message ни при чём. Разное кодирование сообщений связано с представалением всего и вся в виде строки в tcl. ИМХО, разумеется

Строки и Tcl

Просто напросто уникальная семантика Tcl, в котором (почти) всё имеет "бесплатно получаемое" строковое представление, используется для записи и чтения логов: Tcl сам "сериализует" сообщения при записи и "десериализует" при чтении. Совершенно без применения разного "левого" кода типа генерации/чтения XML или чего-то вроде перлового YAML. Дёшево и сердито.

Внешнему коду, конечно, с этим работать сложнее, т.к. нужно в теории реализовывать простейшую форму тиклевого парсера (без поддержки подстановок команд и переменных). На самом деле это не очень уж сложно.

P.S. Та же техника применяется для хранения настроек в файле custom.tcl: он содержит несколько строк, содержащих списки Tcl произвольной сложности — по одному на каждую переменную конфигурации.

client:message

client:message вызывается в виде колбэка из кода, который парсит входящий поток XML, как только из него будет распарсена целиком очередная станца <message>. Сие происходит в дебрях jabberlib-tclxml.

Syndicate content