07.08.2026

* [JAM] Исправлен баг, из-за которого после строк кладжей появлялись
  пустые кладжи jamUnknown вместо переводов строк.

03.05.2025

* В эхопочтовых и локальных областях собственный адрес больше не
  подставляется в качестве адреса получателя.
* Пустые адреса больше не добавляются в заголовок сообщения JAM.

28.10.2024

* Научились переходить на предыдущий/следующий ответ в треде. Для этого нужно
  добавить в Msg_Keys на 11 и 12 позиции нужные горячие клавиши. У меня значение
  вот такое: "ADNLRPBESC<>".

26.09.2024

* Добавлена поддержка атрибута HighWater в базах JAM.

18.09.2024

* При создании базы Squish явно инициализируются параметры MaxMsg и KeepDays.

24.05.2024

* При поиске личных сообщений ищем начиная с первого непрочитанного сообщения,
  а не по всей базе.

13.02.2024

* MSGID теперь генерируется с точностью 1/14 секунды и гарантией
  уникальности за последние 4 года.

22.01.2024

* Подсветка Tearline и Origin теперь выполняется только в нижней части сообщения.

21.01.2024

* Для гостевых аккаунтов при входе пропускается поиск личных сообщений и новых
  файлов, а так же не отображаются новости с последнего входа.
* Глобальные настройки поиска новых файлов и личных сообщений при входе теперь
  учитываются при использовании IEMSI. То есть если в конфиге написано No, то вне
  зависимости от предпочтения юзера действие будет пропущено.

19.01.2024

* Загрузка подготовленного сообщения теперь работает и при использовании
  внешних протоколов.

17.01.2024

* В режиме просмотра почтовой области чужие приватные сообщения автоматически
  пропускаются.

15.01.2024

* Клавиши PgUp и PgDn теперь распознаются. Можно использовать в меню и
  скриптах.
* Хоткей для ManualSend изменён с PgUp на Alt-U.

14.01.2024

* Появилось отображение номера предыдущего и следующего сообщений в треде.
* При ответе на сообщение, пишем его номер в заголовок "reply to" нового
  сообщения.
* Если у сообщения, на которое ответили, ничего не записано в заголовке "first
  reply", пишем туда номер нового сообщения.
* При работе сообщениями, все специальные символы заменяются на пробел. В
  основном для того, чтобы сообщения с 0x07 (ANSI Bell) не ломали редактор.

12.01.2024

* Исправлена ошибка анализа префикса автора при цитировании сообщений, из-за
  которой пустые префиксы могли некорректно обрабатываться.

11.01.2024

* Пользователи теперь могут редактировать свои сообщения, если они ещё не
  отправлены, не прочитаны, и без ответа. Сисоп может редактировать любые
  сообщения. Важно: MSGID, Tearline и Origin будут переписаны. Потребуются
  изменения в LNG-файле:
    1. В Msg_Keys последним символом нужно добавить хоткей для редактирования.
    2. В MsgString нужно добавить подсказку. Тут ещё важно, чтобы строка с этим
  параметром не оказалась длиннее 255 символов, иначе парсер не сможет её
  обработать.
  Пример:
    MsgString "\09──\11[\15A\11]\07Повт\09─\11[\15N\11]\07Сл\09─\11[\15L\11]\07Пр\09─\11[\15C\11]\07Ред\09─\11[\15D\11]\07Удал\09─\11[\15R\11]\07Отв\09─\11[\15P\11]\07Нов\09─\11[\15B\11]\07Начало\09─\11[\15E\11]\07Конец\09─\11[\15S\11]\07Стоп\09──"
    Msg_Keys "ADNLRPBESC"
* Встроенный редактор больше не вставляет пустую линию после обработки шаблона.

09.01.2024

* При подтверждении удаления сообщения выбор по умолчанию теперь - Нет.

05.01.2024

* Кладж @PID больше не устанавливается, если он совпадает с Tearline.
* Длинные цитаты теперь правильно переносятся на новую строку.

04.01.2024

* Строки SEEN-BY в сообщениях больше не отображаются.

02.01.2024

* Удалять сообщения, которые были отправлены (флаг Sent) или получены (флаг
  Received), или на которые уже кто-то ответил, теперь может только сисоп.
* Исправлено отображение сообщений, в тексте которых встречаются длинные строки
  с символами табуляции.
* Появилось отображение флага Sent.
* Для компактности, флаги теперь трёхбуквенные и без скобок.

01.01.2024

* Если в базе Squish или Fido было более 16380 сообщений, /DOS и /DPMI версии
  падали. Это вызвано ограничением компилятора. Теперь /DOS версия "видит" только
  последние 1000 сообщений в базе (в том числе и JAM), а /DPMI - последние 16280.

31.12.2023

* Если в базе JAM были удалённые письма, при открытии такой базы автоматически
  пересобирался индекс, при этом не было перенумерации сообщений, что приводило к
  несоответствию номера сообщения его физическому расположению в индексе. То же
  самое происходило при удалении сообщений. Теперь индекс мы не пересобираем
  вообще.

30.12.2023

* Ластриды неправильно читались и устанавливались для баз Squish.

28.12.2023

* Если у пользователя выбран русский язык, в письма вставляется кладж @CHRS с
  нужной кодировкой.
* Версии /W32, /DOS и /DPMI научились получать таймзону из системы и вставлять
  кладж @TZUTC в письма. Последние две делают это только если запущены в Windows
  2000 или выше и подгрузилась библиотека ntvdmclp.dll.

25.12.2023

* Исправлены проблемы с навигацией по JAM базам с BaseMsgNum > 1.

22.12.2023

* Обновляем LastRead только в процессе просмотра сообщений в области, а не при
  любом отображении сообщения, например, из списка или поиска.
* После удаления сообщения показываем следующее за ним (или последнее в
  области).
* В режиме интерактивного просмотра сообщений в области, после ответа или
  написания нового сообщения, во-первых, показываем подтверждение, что сообщение
  сохранено, во-вторых, снова показываем текущее сообщение, а не прыгаем в конец
  области.

27.11.2023

* Адрес отправителя (и получателя в нетмейле) используется для определения
  статуса автора (и адреата в нетмейле) сообщения, до этого использовалось только
  имя.

22.11.2023

* Корректно обрабатываем кривые MSGID.

21.11.2023

* Научились вытаскивать адрес отправителя из Origin.

19.11.2023

* Не модифицируем MSGID при чтении сообщения из JAM-базы.

17.11.2023

* Допилена работа с fido<->email гейтами. Если такой задан для нетмейл-области,
  то мы теперь вытаскиваем email-адрес отправителя из кладжа @REPLYADDR и
  автоматически подставляем его в строчку To: при ответе на сообщение.

03.11.2023

* Исправлено отображение адреса получателя в нетмейл-областях.
* Не спрашиваем адрес получателя при ответе в нетмейл-области.

18.09.2023

* Никто не просил, а я всё равно добавил новую фичу: теперь при ответе на
  сообщение добавляется кладж @REPLY, что позволяет линковать сообщения.

17.02.2023

* Ускорено сканирование личной почты в почтовых областях с большим количеством сообщений.

15.02.2023

* Решена проблема 2038 года в JAM.

13.12.2021

* Исправлены ошибки в библиотеке skMHL: корректная запись поля sz_sqhdr для баз Squish,
  устранение зависания EndOfMessage и увеличение лимита максимальной длины строки при
  чтении/записи сообщений.

26.08.2018

* Для почтовых областей можно указывать тип Local, при написании писем
  в такие области не будет создаваться/обновляться Echo_Log.

09.08.2018

! Исправлена неправильная реакция на ушедшее назад время в результате
  синхронизации.
* Что-то ещё исправлялось по мелочам за последние почти 11 лет. :)

29.12.2007

! [DOS] Исправлена недоработка, из-за которой ntvdm.exe падал с ошибкой
  доступа под Windows Server 2003.

- Убран так называемый "Эмyлятоp глюк ;)", давно хотел это сделать...

01.08.2007

* Один гостевой аккаунт может использоваться на нескольких линиях
  одновременно.

17.07.2007

! [DPMI] Исправлена критическая ошибка, вызванная некорректной установкой
  директив компилятора. Для страховки, везде, где DOS версия использует
  "far calls", DPMI вресия тоже теперь их использует. Это немного увеличило
  размер исполняемого файла, и теоретически уменьшило скорость работы, хотя
  заметить это можно будет разве что на каком-нибудь музейном экспонате.

! Окончательно исправлена ошибка, из-за которой пользователя могло
  выбросить во время релогина с сообщением "ваше время истекло".

+ [DOS] В 16-битные версии добавлена поддержка NTVDM API. Благодаря
  этому значительно улучшилась работа этих версий в NT-образных ОС.
  Загрузка процессора практически всегда нулевая, правильные задержки,
  изменение заголовка окна, реакция на закрытие программы крестиком,
  Logoff и Shutdown события. Для того, чтобы все это работало, библиотека
  "ntvdmclp.dll" должна быть в одной из директорий, прописанных в PATH.
  Если библиотеку найти не удастся, Tornado будет работать в обычном
  режиме.

  К сожалению, в 32-битную версию эти изменения не попали, т.к. возникли
  некоторые сложности с реализацией. Над этим ведутся работы.

29.06.2007

! Как следствие исправления задержек, починилась фича передачи
  команд модему при запуске (-M). Теперь ответ модема не будет
  "попадать в эфир".

* Во всех DOS версиях теперь правильные задержки. Но с небольшим
  ограничением - задержка не может быть менее 55 мс. К сожалению,
  других вариантов решения проблемы задержек я не нашел.

28.06.2007

* Win32 версия теперь тоже может закрывать порт перед запуском внешних
  приложений, но только в том случае, если порт был предварительно открыт.
  То есть при работе через хендл порт закрыть не получится.

+ Произошли небольшие изменения по части запуска внешних приложений.
  Теперь для того, чтобы запустить что-либо, предварительно закрыв порт,
  необходимо перед именем запускаемой программы поставить знак "!".
  Например:

  Exec "!c:\games\dm\start.bat c:\temp\door.sys"

19.10.2006

* Версия от 08.07.2006 выпущена как 1.71.1/Release.

08.07.2006

! [W32] Изменен алгоритм обработки событий завершения приложения
  системой (например, закрытие программы крестиком, перезагрузка,
  и т.п.). Теперь не должно быть проблем с Access Violation.

! [386] Обновлен экстендер DOS/32A до версии 9.1.2.

09.03.2006

* Доведена до ума нижеописанная фича. Теперь с масками сверяется весь
  текст, а не отдельно взятая строка.

* Изменено поведение поиска по маске, если указано более одной маски.
  Теперь поиск считается удачным в случае совпадения со всеми масками,
  а не с любой из них.

  Попросил Alexander Kalganov (2:5007/20.23)

26.01.2006

* Русская Н больше не заменяется на латинский эквивалент ни во время
  редактирования сообщения, ни при сохранении в базу.

! Оказывается, попытка прочитать сообщение в базе MSG вообще приводила
  к падению. Модуль работы с MSG сильно переделан и теперь полностью
  функционален.

! [MsgArea]->Type читался некорректно. Netmail воспринимался как Echomail,
  а Echomail как Local. При обновлении необходимо удалить старые msgarea.bi?
  файлы.

25.01.2006

* Изменен формат строчки BirthDate в *.lng. Теперь она выглядит так:

  BirthDate "\09Ваш день рождения (@DateMask): "

  Шаблон @DateMask заменяется на Date_Mask из tornado.ctl. Раньше
  маска всегда принудительно добавлялась в конец строки.

  Фичу попросил Dmitriy Kulikov.

* Очередная серия маневров с модулем работы с базами Squish.

24.01.2006

! Исправлена ошибка в модуле работы с Jam базами. После написания нового
  письма или ответа на последнее сообщение в базе, текущим считалось
  сообщение с номером на 1 больше максимального номера сообщения в базе.

! Подправлена функция возвращения максимального номера сообщения в базе
  в модуле работы с базами Squish. Теперь возвращается максимальный номер
  существующего сообщения. Раньше всегда возвращался номер максимального
  сообщения физически присутствующего в базе, даже если оно было удалено.

13.12.2005

* Обновлен экстендер DOS/32A до версии 9.1.1.

* Небольшое количетсво незначительных изменений.

26.11.2005

! Исправлено нарушение цепочки ExitProc. Версия /W32 теперь нормально
  сообщает обо всех ошибках во время запуска.

* Версия /W32 завершает работу, если закрыть окошко программы крестиком.
  Также, работа завершается при получении событий Logoff и Shutdown.
  Работает только в NT/2000/XP/etc.

22.11.2005

* В очередной раз изменено поведение при поиске файлов по маске. Теперь,
  если введенная пользователем маска не содержит знаков '*' или '?',
  к маске с обоих сторон добавляется '*'. Например, если пользователь
  ввел маску "tor", будет произведен поиск по маске "*tor*".

20.11.2005

* Исправлены RTL функции получения/установки параметров курсора.

! С недавних пор вместо модифицированного vpsysw32.pas использовался
  стандартный. Исправлено.

* Немного изменена работа функций HiddenCursor/NormalCursor в 32-битных
  версиях. Последняя теперь восстанавливает размер курсора, который был
  установлен во время запуска программы.

18.11.2005

! Версия /386 собиралась с неправильной версией RTL библиотеки (objects.pas).

14.11.2005

* Теперь 32-битные версии собираются с отладочной информацией.

09.11.2005

* В очередной раз обновлен экстендер DOS/32A. На этот раз до версии 9.1.0.

08.11.2005

* Версии /DOS и /DPMI собираются с новой RTL:
  Borland-Pascal 7.01 Runtime Library Update - Release 2.0

* Обновлен экстендер DOS/32A, с которым собирается Tornado/386.

07.11.2005

* Версия /386 снова собирается.

06.11.2005

! Исправлено поведение при выборе QWK области. Нажатие N или ESC теперь
  прекращает листинг областей.

02.11.2005

! При смене суток, а так же при релогине, не обнулялась переменная,
  в которой хранится время, проведенное пользователем в чате.

! Процедура обновления лимита после изменения уровня доступа не учитывала
  время, проведенное пользователем в чате.

24.10.2005

! Процедура Delay и все, что с ней связано, полностью вырезано из модуля
  OpCrt. Это должно окончательно излечить досовые сборки от проблемы
  Runtime Error 200.

22.10.2005

! Во время завершения работы порт больше не закрывается, если работали
  через хендл открытого порта.

! Команда "положить трубку" теперь выполняет только то, что задано через
  параметр HangupString. В случае отсутствия сигнала CD, выполняется такая
  команда: "v~~^'".

! При поиске личной почты учитывался регистр имен. Теперь не учивывается.

21.10.2005

! Исправлена проблема Runtime Error 200 в DOS-версии.

18.10.2005

* Немного косметики. 32-битные версии теперь рисуют объем используемой
  памяти там где /DOS рисует количество свободной памяти. /DPMI пока
  что ничего не рисует.

17.10.2005

! Поддержка относительной адресации для баз Squish. Благодаря этому
  исправлен баг с невозможностью перехода на последнее существующее
  сообщение в базе, в которой последнее сообщение было удалено.

16.10.2005

* Для всех баз, кроме Jam, используются абсолютные номера сообщений.
  Для Jam - относительные.

! В парсере конфигов были перепутаны форматы баз Squish и Msg, а также
  типы Netmail и Echomail.

! /DOS и /DPMI версии падали при попытке разобрать длинные строки.
  Заметил Alexey Kljatow (2:5020/2788.12)

15.10.2005

! Если длина строки в сообщении превышала 255 символов, строка обрезалась.
  Теперь максимальная длина строки для /DOS - 4096 символов, для всех
  остальных - 16384 символа.

* Функции UpCase, LoCase, UpString, LoString и PrString снова работают
  как раньше. Изменения отложены "до лучших времен". :)

* Немного подкорректирована функция показа сообщения. Максимальная длина
  строки, при разбивании длинных строк, уменьшена с 80 до 79 символов.

! Подкорректирована логика работы функции просмотра сообщений. Переход
  на последнее сообщение в базах MSG теперь будет работать правильно. :)

* Для работы с базами сообщений теперь используется библиотека skMHL
  (q) by sergey korowkin [sk], 1998-2001. Базы Hudson более не поддерживаются.

11.10.2005

* Переписаны функции UpCase, LoCase, UpString, LoString и PrString.
  Теперь они работают правильно с любой кодировкой. Изменения касаются
  только /W32. Все остальные версии работают как раньше.

08.10.2005

! Исправлена функция DefaultName, которая некорректно работала,
  если в имени директории присутствовала точка.

* Увеличено количество символов, отображаемых в заголовке окна
  при пересылке файлов.

04.10.2005

* Команда System_Info теперь показывает версию Windows.

03.10.2005

* Маска '*.*' заменена на платформо-зависимую переменную AllFilesMask.

! В дурвее могли не находиться директории с флагом Archive.

27.09.2005

! Проблема с буквой Н не до конца была исправлена в модуле работы
  с базами Hudson.

26.09.2005

! Не добавлялись описания файлов в files.bbs.
  Заметил Alexander Fedorov (2:5057/60).

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

23.09.2005

* Проект восстановлен. :)

! Проблема русской Н была не до конца исправлена в модуле работы с
  Jam базами.

* Файлы по умолчанию открываются в режиме ReadOnly.

* База пользователей открывается в режиме запрета записи.

07.04.2005

! Внутренняя переменная ChatStartTime не инициализировалась вообще.
  Это могло привести к неправильному восстановлению времени после чата
  с сисопом. Также во время чата с сисопом у юзера было отрицательное
  время. Баг заметила Ulia Sivridi.

28.03.2005

! Торнада вела себя очень нехорошо, если в конфиге не был задан
  TRC_Log. Заметила Ulia Sivridi. :)

25.03.2005

* Функции FindFirst/FindNext теперь возвращают короткое имя
  файла, если это возможно. Это должно исправить целый ряд
  неприятностей, связанныых с длинными именами.

! Теперь буква Н в сообщениях обрабатывается как обычный символ,
  а не игнорируется.

! Торнада падала, если при локальном download'е не удавалось
  скопировать файл.

23.03.2005

! Не работал "повод для увеличения security" BirthDay в апгрейдере.
  Заметила Ulia Sivridi (2:5030/1997.12).

09.03.2005

! При переходе с 23:59 на 00:00 если юзер был на линии, его выбрасывало
  с отрицательным временем. То же самое могло произойти, если юзер
  чатился с сисопом, после выхода из чата. Возможно, подобное поведение
  было где-то еще, исправлено много моментов, где не учитывался переход
  суток.

07.03.2005

* Добавил Open_Share_* константы открытия файлов. Должно избавить
  от некоторых неожиданных глюков, как с "!llist.tor", например.

05.03.2005

! Торнада зависала, если не могла удалить (или открыть) файл
  !llist.tor при завершении работы.

03.03.2005

* После просмотра списка сообщений, сохраняется LastRead. Удобно,
  когда в эхе с большим количеством сообщений нужно перейти на
  какое-то определенное и читать дальше.

27.02.2005

* При локальном аплоаде пишем в files.bbs короткое имя файла.
  Короткое имя определяется средствами ОС.

26.02.2005

* Изменился номер версии.. Так красивше.. :)

21.02.2005

+ Хэндл порта передается запускаемым программам через макрос *H.

19.02.2005

* По просьбе трудящихся, /W32 версия теперь пищит через спикер. :)
  Поскольку задержки в /W32 правильные, в отличие от /DOS, page.tor
  придется немного подредактировать.. ;)

17.02.2005

* Программа компилируется при помощи Virtual Pascal 2.1 Build 279.
  Устранена проблема с буквой "р" в локальном режиме.

+ Добавлена поддержка работы с хэндлом порта.

* Обновлена библиотека elecom, которая используется в /W32 версии
  для взаимодействия с модемом. Теперь работает Hardware_Flow.
