2023-10-29 babolo Удаление варнингов. 2023-10-23 babolo Удаление варнингов. 2016-02-24 babolo Исправлен порядок параметров calloc(). 2016-02-12 babolo Исправлен порядок инклудов. 2007-05-13 babolo Версия 1.02 Makefile приспособлен к современной версии babolo-libmake. Издано, поскольку активности нет, что бы эти мелочи не потерялись. 2005-11-29 babolo Версия 1.01 Добавлены два формата сообщений специально для тестирования. Теперь в составе имеется регресс-тест. ISO8583_Asn() и ISO8583_Cpy() теперь при отладке не распечатывают маску поля на входе, т.к. не все необходимое определено и проверено тут. Доформатированы ISO8583_Asn() и ISO8583_Cpy(). 2005-11-29 babolo При вызове ISO8583_Cpy() теперь проверяется корректность вызова. В ISO8583_Cpy() параметры поля вычисляются после проверки корректности. ISO8583_Test() теперь может вызываться с fno >= pack->package->bound и при этом правильно отрабатывать mode == ISO8583_SIZE. ISO8583_Cpy() теперь гарантированно не вычисляет strlen(vly), если это значение не используется. Проверка маски поля в ISO8583_Asn() перенесена так, что бы уменьшить вложенность if. Новая макро BITUMASK(). Теперь маски поля в ISO8583_Asn() показываются при входе. Форматирование недоправлено для уменьшения diff. 2005-11-27 babolo Номер поля теперь проверяется на выход за границы массива. Не инициализируется время при ISO8583_LTM в flags. ISO8583_Asn теперь использует количество фиксированных полей перед bitmask из описания вместо фиксированного 1. Применен официальный ISO8583_PSFT вместо 0xFF. 2005-11-27 babolo Не к своим флагам были поставлены ISO8583_MSZ, ISO8583_FMS и ISO8583_PSFT. Добавлен флаг ISO8583_LTM для внешней инициализации текущего времени. Только зимнее локальное время преобразовывалось правильно. У утилиты новый флаг -l для установки текущего времени в сообщении. Утилита распечатывала Val со знаком, исправлено на беззнаковое. Наличие строки из под парсера теперь проверяется. 2005-11-27 babolo Исправлена ошибка в ISO8583_B_NUMERICl, цифры попадали не на свои места и выход за границы массива. Исправлена ошибка в преобразовании даты со столетием, выход за границы массива в val.cc. Определения ISO8583_MSZ и ISO8583_FMS перенесены к определяемым флагам. Формализовано определение ISO8583_PSFT. В ман добавлено описание типов полей. 2005-11-19 babolo Версия 1.00 Введены типы для локального времени. Исправлен тип expnd и возвращаемая при ошибке -1. В pack/expo исправлен тип нескольких полей на локальное время. 2005-11-18 babolo Смена MAJOR из-за изменения интерфейса. ISO8583_Save() и ISO8583_Free() получают не адрес ISO8583_Pack, а ссылку на этот адрес и зануляют его. ISO8583_Test() теперь может в зависимости от вида запроса возвращать не только статус поля, но и длинну его представления в сообщении. Ликвидирован макро ISO8583_ISVL. ISO8583_Cpy() получил параметр - длинну байтового массива, теперь может копировать данные с нулевыми байтами. package->flag теперь стал package->flags. Номер поля - битовой маски теперь везде, кроме ISO8583_Mark(), определяется младшим байтом флагов package. Исправлен формат 37 поля в форматах expobank. (codex[].len)() теперь без вариантов всегда отдает длинну поля в сообщении. (codex[].cpy)() теперь может копировать данные с нулевыми байтами. В man добавлено краткое описание по добавлению форматов преобразований. В утилите iso8583 добавлен флаг -d - дамп начала поля. Вместо end и pack в конце сообщения выводится только end, остальное - в начале. 2005-11-13 babolo Версия 0.01 Описания форматов сообщений вынесены в отдельный каталог pack. Добавлены функции ISO8583_Save(), ISO8583_Take(), ISO8583_List(). Массив описаний перестал быть публичным. В av() исправлен выход за границы массива. В старых версиях FreeBSD не было кода ошибки ENOATTR. В ISO8583_Mark() добавлен еще один параметр - tzname. В утилите iso8583 появился параметр для задания time zone. tool/Makefile теперь легко модифицируется для запуска утилиты iso8583 на месте без установки. lv() и expnd() перенесены из codec.c в val.cc. Дополнен man iso8583.3. Уточнен man iso8583.1. 2005-11-11 babolo Не была указана зависимость от mife. Маны на библиотеку. Вместо gmtime используется gmtime_r. 7 -> TIMEPARTS. При декодировании времени из сообщения не проверялись минимальные возможные значения полей, задающих время в expnd(). 0x8000000000000000L и ISO8583_PACK_BOUND теперь переменные в описании формата сообщения. С учетом возможных расширений изменились форматы данных. Отсутствует доступ к описателям напрямую через снешние имена, только через массив описателей. Утилита iso8583 теперь собирается с динамической библиотекой, но для тестирования неустановленной библиотеки надо собирать статически или preload ее при запуске. 2005-11-07 babolo Изменились интерфейсы процедур из asn и len. Ошибка в expnt() Добавлен раздел cpy для ввода строковых. Новый ISO8583_Cpy() Ввод строк и времени в утилите iso8583. Поскольку еще не издавалось ни разу, полный список всех изменений не обязателен и не приведен. 2005-11-07 babolo На первый взгляд, есть что-то работающее, но не готово.