
                              PlugIn Калькулятор
                           -----==============-----
    *** Это не новая версия Калькулятора, а просто результат некоторых модификаций,
    *** сделанных другим автором. Все авторские права на код, за исключением сделанных
    *** модификаций, принадлежат изначальному автору (Cail Lomecb).

--== Ver 3.25 ==--
      * добавлена поддержка Windows 2000 и WindowsXP


--== Ver 3.24 ==--
      * Удалена поддержка Far2
      * Исправлено: медленная перерисовка диалогов при вводе текста
      * Исправлено: настройки не сохранялись
      * Плагин переехал https://github.com/FarPlugins/Calculator
	  
	  
--== Ver 3.23 ==--
      * Исправлено: порнография с версией


--== Ver 3.22 ==--
    - Общее:
      * Обновление для текущей версии Far3 (stable build 2927+) 
      * Обновление библиотеки ttmath с некоторыми исправлениями
      * Исправлено: перемещение курсора по файловой панели при закрытии калькулятора по ESC


--== Ver 3.21 ==--
    - Общее:
      * Обновление для текущей версии Far3 (dev.build 2728+) 
      * Исправлена работа с большим буфером консоли (far /W)
      * Исправлено: после нажатия Enter в поле выражения калькулятора пропадал курсор 
      * Исправлено: корректная очистка ошибки "expression error" после нажатия Enter
      * Исправлено: падение по _numer(NaN) или _denom(NaN)
      * Исправлено: проблемы точности вычислений в отдельных случаях ("30000-6649.23-23350.77")
      * Исправлена вставка в командную строку и редактор для Far3
      * Исправлено: небольшие правки английских названий и переводов
      + Если убраны все диалоги преобразования, то начальное меню теперь не показывается


--== Ver 3.20 ==--
    !ВНИМАНИЕ! 
      В этой версии файл calcset.csr существенно изменён! 
      Перед обновлением сохраните из этого файла все ваши правки!
      Теперь все пользовательские изменения рекомендуется делать в отдельном файле user.csr (его нужно создать в той же папке)
    - Общее:
      * Исправлено: поправлена минимально-требуемая версия Far, пользователи ранних версий испытывали проблемы.
      * Исправлено: функции, определённые с ошибкой или пустые (<func syntax="f"/>), теперь не приводят к сбою и не используются.
      * Исправлено: в русском языке название меню "Dialogs" заменено на "Разделы".
      * Исправлено: при определённом размере консоли диалог преобразования единиц показывался не оптимально.
      * Исправлено: в некоторых случаях была не видна последняя цифра порядка числа.
      * Исправлено: иногда не работали унарные операторы.
      * Исправлено: вызов из унарного оператора такого же бинарного (<op syntax="/" mean="1 / op1"/>).
      * Исправлено: символ _char(38) не отображался.
      * Исправлено переполнение при целочисленных преобразованиях ("factor(1e145)").
      * Исправлено поведение функций без аргументов ("rnd()").
      * Исправлено падение плагина, если между вызовами плагина был добавлен аддон.
      * При пустом поле ввода все результаты теперь очищаются.
      * Символ "=" в конце выражения при вычислениях в редакторе теперь обрабатывается корректно.
      * Язык калькулятора теперь берётся из настроек ФАРа (но язык можно и переопределить, указав <lang id=""/> в user.csr); 
        также поддерживаются и другие языки посредством создания языковых файлов .lng и указания там двубуквенного кода языка.
      * Пользовательские мофицикаторы Kb,Mb,Gb,Tb теперь не чувствительны к регистру.
      * Поправлены функции kelv() и sec(), добавлены пользовательские функции lb(), gtg(), gctg(), gsec(), gcosec().
      * Поправлены функции arcsin() и arccos(), добавлена встроенная функция _cos().
      * Поправлена функция _rnd(), теперь она выдаёт по-настоящему псевдослучайное число.
      + Добавлена функция curt() для кубического корня (со знаком).
      + Добавлены функции даты/времени (jd, jdf, jdg, jdgf, utc, ansid, ratadie).
      + Добавлены встроенные ф-ции конвертации float/double в бинарный формат IEEE-754 и обратно, а также для чисел Inf и NaN:
        _f2b(), _d2b(), _b2f(), _b2d(), _finf(), _fnan().
      + Поддержка базовых арифметических операций с типами float и double и отображение Inf и NaN.
      * При конвертации слишком большого(малого) числа во float/double теперь показываются ошибки переполнения.
      * Для представлений чисел теперь используется параметр format вместо radix, с единым синтаксисом для numerals и addons.
      + Возможность задания "ленивых" аргументов регулярных выражений в представлениях чисел ("/([0-9])([0-9])?/").
      * Обновлена версия библиотеки поддержки больших чисел (ttmath) с исправлениями некоторых ошибок, 
        включена ассемблерная оптимизация (для x86)
      * Рефакторинг кода, связанный с Far API (совместимость с FAR 2.0 и FAR 3.0).
      + Добавлен файл user-examples.csr с примерами дополнительных аддонов, операторов, представлений и т.д.
    - Диалог настроек:
      + Добавлено окно основных настроек калькулятора.
      + Возможность отключения авто-обновления полей результата при вводе.
      + Возможность задания чувствительного к регистру ввода.
      + Дополнение нулями для чисел фиксированной длины (_char,_short,_int и т.д.).
      + Опция включения автодополнения при вводе (по умолчанию отключена).
      + Задание символов-разделителей:
        + десятичная точка (точка/запятая);
        + разделитель аргументов функций (запятая, точка с запятой);
        + разделитель групп разрядов (только для основного режима калькулятора);
        + опция учёта региональных настроек для точки/запятой/групп разрядов (по умолчанию выключена).
    - Аддоны:
      + Встроенные аддоны (dec/hex/oct/bin/exp) перенесены в файл calcset.csr, и ими можно управлять (отключать, менять порядок).
      + Для объявлений аддонов введено новое поле format, которое задаёт систему счисления и формат для аддона
        (примеры в файлах calcset.csr и user-examples.csr).
      + Ошибки вычислений аддонов теперь пишутся в соответствующих полях.
    - Разделы преобразования единиц и структура CSR файлов:
      + Сделана поддержка включения в calcset.csr других CSR файлов (формат: <xi:include href="file.scr"/>).
      + Все разделы убраны из calcset.csr и выделены в отдельные файлы в папке bin/units/
      + Все разделы переработаны и дополнены согласно предложениям пользователей.
      + Добавлены новые разделы вычисления температуры, дат и количества информации
        (units/temperature.csr, units/date.csr и units/info.csr).
      + Возможность переназначать уже определённые наборы (для коррекции стандартных наборов в пользовательских файлах).
      + Сделана возможность задания константного выражения в качестве множителя.
      + Возможность задания сложных выражений вместо множителя (с помощью output="" и input=""), 
        примеры см. в файлах units/temper.csr и units/date.csr.
      + При задании выражения с помощью output="" действуют правила форматирования аддонов (фигурные скобки).
      + Улучшен подбор ширины колонок в диалоге преобразования.
    - Поддержка дробей: (ЭКСПЕРИМЕНТАЛЬНО! приближения на основе рациональных чисел, примеры см. в user-examples.csr)
      + Смешанные периодические десятичные дроби (новый format="rep" для addon и numeral).
      + Непрерывные дроби в линейной нотации, вида [a,b,c,d] (новый format="con" для addon и numeral).
      + Добавлены новые встроенные функции _numer(op0),_denom(op0) для поддержки простых смешанных дробей.
      + Добавлена встроенная функция _gcd(op0,op1) для наибольшего общего делителя.
      + Добавлены пользовательские функции gcd (НОД) и lcm (НОК).


--== Ver 3.10 ==--
    - Числа и Выражения:
      + Внедрён новый парсер выражений - теперь нет глюков, подобных "0x1e+0x2e",
        но на сверх-больших выражениях калькулятор теперь работает медленнее.
      + Внедрён новый парсер чисел с поддержкой регулярных выражений (regexps) и систем счисления - теперь формат чисел задаётся с
        помощью тэга <numeral> в файле calcset.csr (см.примеры там же). В связи с этим, постфиксные операторы 
        теперь больше не поддерживаются за ненадобностью.
      + Добавлен параметр приоритета для операторов (priority).
      + Сделан единый список операторов в файле calcset.csr
      + Основные битовые операции также переведены на BigNumbers (теперь можно делать так: 1<<100)
      * Операторы циклического битового сдвига (_ror, _rol) теперь работают только с типами фиксированной длины (_byte,_ushort,_uint,...)
      * Отображение чисел фиксированной длины (_byte,_ushort,_uint,...) в формате bin/oct/hex теперь по умолчанию дополняется нулями
        (можно отключить в настройках калькулятора в реестре: padZeroes).
      * Исправлена работа с большими _int64
    - Аддоны:
      + Для аддонов в файле calcset.csr теперь используется специальный тэг <addon>
      + Добавлена возможность форматирования вывода аддона - вычисления производятся только для содержимого фигурных скобок {},
        а остальное показывается в поле диалога. Примеры см. в файле calcset.csr (в том числе формат 'hh:mm:ss').
      * Исправлено: при вводе ошибочного выражения названия полей-аддонов теперь не исчезают.
    - Диалог конвертера единиц:
      + Повышена точность преобразования единиц (теперь не хуже чем у утилиты Converber).
      + При переходе между полями ввода соответствующие числа выделяются (подсвечиваются) для облегчения ввода нового числа.
      * Исправлено значение множителя скорости света, повышена точность некоторых других множителей и констант.
    - Разное:
      + Динамическое изменение размера окна при изменении размеров консоли (чем больше окно, тем больше цифр показывается).
      + При нажатии Еnter на ошибочном выражении содержимое строки выделяется для облегчения ввода нового числа.
      + При нажатии Enter на длинных выражениях результат показывается, по возможности, с первой цифры
      + Поставлено явное ограничение на длину строки - 1024 символа (было неявное 512 символов).
      + "Серый Enter" на дополнительной клавиатуре теперь работает так же как обычный Enter.
      + Вместо "double" теперь по-честному пишется "big number", а сам _double теперь снова можно использовать 
        при преобразованиях типов
      + Для типа '_char' теперь дополнительно отображается символ, соответствующий коду
      + Факториал теперь стал функцией _factor(), а не оператором.
      + Функции гиперболического синуса и косинуса переименованы в 'sinh' и 'cosh' (вместо 'sh' и 'ch') 
        во избежание конфликта с шестнадцатиричным числом 'ch'
      * Исправлено: при повторных вызовах калькулятора не показывалась текущая выбранная радио-кнопка.
      + Добавлен VERSION_INFO.


--== Ver 3.01b ==--
    *** Это не новая версия Калькулятора, а просто результат некоторых модификаций,
    *** сделанных другим автором. Все авторские права на код, за исключением сделанных
    *** модификаций, принадлежат изначальному автору (Cail Lomecb).
    Совместимость с FAR 2.0 и последующими версиями (версия UNICODE).
    Добавлена поддержка Больших Чисел (192 бит на мантиссу и 32 бит на порядок)
      для всех мат. операций и преобразований систем счислений.
    Поддержка аддонов - пользовательских выражений, которые добавляются в общий список -
      См. секцию 'Addons' в файле calcset.csr (теперь он в формате UNICODE).




--== Ver 3.0 ==--

   Совместимость с FAR 1.70b3 - работает под ним и выше.
     С бетами первой и второй будет глючить.
   Соответственно выкинут весь код по поддержке диалогов - все рисуется
     фаром.
   Диалоги конвертации поддерживают в настройках различные языки - это
     задается идентификатором языка.
   При нажатии Ctrl-Enter в диалоге конвертации текущее значение
     будет вставлено в строку вычисления в самом калькуляторе. Его же
     можно нажать и в самом калькуляторе - значение будет вставлено в
     редактор или в командную строку.
   Calcset.csr подогнан под XML, написан DTD.
   В описании синтаксиса изменены названия констант:
     exp   - экспонента
     light - скорость света
     grav  - гравитация
     сделано чтобы не было конфликтов в синтаксисе.
     Добавлена функция CNK - число сочетаний из N по K


--== Ver 2.9 ==--

   Добавлена фича настраиваемых диалогов. Можно определить диалоги для
   конвертации и просмотра значений в любых единицах.
   Эти диалоги можно вызвать либо из меню плагинов, либо из уже
   загруженного калькулятора по F2.
   Переделан парсер. воспринимает различные типы чисел, итд.
   Снес Integral и Derived за бесполезностью.
   Отловлены кой-какие баги в кодах и определениях.


--== Ver 2.8 ==--

   Полностью перестроен парсер. Теперь возможна его полная настройка
     в файле CalcSet.Csr. Вы можете переопределить синтаксис и
     значение любых операторов, функций, констант, добавить свои
     определения.
   Сделал ездящее окошко. Что, нравится лялька? Юзайте.
   Добавил мышку.
   Увеличил точность рассчетов.


--== Ver 2.65 ==--

   По настойчивым вашим просьбам пришлось поменять
     "наиудобнейший" Feature - вычисление в редакторе по вводу "=".
     Теперь она работает чуть по-другому: видит заранее выделенное выражение,
     и с использованием макросов Alt=, AltH, AltO, AltB,
     хотя вы можете их переопределить.
   Так же по Агромным просьбам добавлены ShortCut-ы и так надоевшие всем
     CheckBox-ы заменены на RadioБатоны.


--== Ver 2.6 release ==--

   Добавлена возможность работы с пользовательскими функциями/константами.
   Изменен по мелочам разбор выражения.


--== Ver 2.05 ==--

   Добавлена поддержка Истории Ввода: Ctrl-Down.
   Добавлена функция Sign.
   Добавил вывод суффикса числа(h,o,b) при нажатии Enter - Спасибо
     Антону Стеблеву за поучительные лекции о значении checkbox-ов.
   Добавлены суффиксы Kb Mb Gb Tb - соответственно для перевода
     в Кило, Мега, Гига и Тера байты.
   Добавлена поддержка Far 1.6. Теперь возможен вызов калькулятора
     непосредственно из редактора.
   Во встроенном редакторе калькулятор может автоматически вычислять
     набранные в тексте выражения при вводе знака '='. Это не требует
     вызова главного модуля. (Смотрите Справка/Дополнительные возможности).
   Добавлены функции Cels, Fahr.


--== Ver 2.01 ==--

   Ввел поддержку функций с множественными аргументами.
     Добавил несколько новых функций.
     Теперь всего: 19 операций "||","&&","|","^","&","!=","==",">>","<<",
                             ">","<","+","-","*","/","%","pow","~","!"
                   18 функций  "Sin","Cos","Tg","Ctg","ArcTg","ArcSin",
                           "ArcCos","Sqrt","Sqr","Ln","Lg","Log","Rad",
                           "Grad","Sum","Avr","Integral","Derived"

   Абсолютно поменял структуру разбора выражения, теперь работает
     ужасно быстро, но при работе это все равно никак не сказалось, фактически
     при работе ускорения не происходит.
   Человеческое сообщение о некорректности выражения (различает виды ошибок).


--== Ver 1.0b ==--

   Теперь калькулятор использует цвета Far'а.  -  Сидел целое утро с
                                                          больной головою :-)
   Добавил конфигурацию калькулятора  - К обеду голова совсем разболелась :-)
   Калькулятор отлажен в Far 1.52, сохранение экрана теперь нормальное.
   Программа тестирована в Far 1.51 и 1.52.
   Практически все Far'овские функции заменены системными. Заработал быстрее,
     но не гарантирую полную совместимость с последующими версиями Far'а :-(
