2024-06-23 babolo Уменьшение варнингов нв ia32. 2024-05-01 babolo Версия 5.21 Не отработано взаимодействие malloc() и mmap() -- пока так. 2024-03-10 babolo Версия 5.20 Не было отметки о выделении памяти. 2024-03-10 babolo Версия 5.19 Исправлен порядок освобождения памяти. 2024-01-14 babolo Версия 5.18 Исправлен MAXWARN. Добавлена цель check. Мелкие неточности. Стиль. 2024-01-07 babolo Версия 5.17 Добавлен MAXWARN. Убраны варнинги. Беззнаковые константы. Стиль. 2023-12-03 babolo Явно выписан паддинг. 2023-11-26 babolo Использование макроса TODO. 2023-11-06 babolo Уменьшение варнингов. 2023-10-28 babolo Даты в копилефтах. 2023-10-09 cuhegh Версия 5.16 2023-10-08 cuhegh обновлён в соответствии в блином 2021-10-24 babolo Список манов к установке. 2021-09-05 babolo Версия 5.15 2021-08-22 babolo Список манов. 2021-08-08 babolo Версия 5.14 Недоработки в mife_ctlpipe(). 2021-08-07 babolo Версия 5.13 2021-08-01 babolo Ослабление проверок в mife_ctlpipe(). Заполнение неиспользованных полей в open*. Стиль. 2021-06-12 babolo Версия 5.12 Новая функция mife_offset(). Пополнена и исправлена документация. Стиль. 2021-06-06 babolo Версия 5.11 Осовременивание зависимостей. Даты в копилефтах. 2021-05-29 babolo Ошибки работы с BLIN. 2019-09-26 babolo Улучшена обработка ошибок в mife_writ(). Стиль. 2019-05-13 babolo Версия 5.10 Переписана mife_pipe() из-за запутанности наслоений. Добавлен тест. Поправлены тесты. 2019-05-12 babolo Версия 5.09 Теперь mife_pipe() не требует лишнего. Отладка точнее. 2019-05-09 babolo Версия 5.08 Не надо забывать состояние eol. Обновлены тесты. Стиль. 2019-04-15 babolo Версия 5.07 Чтение из трубы не использовало MIFE_SLID. 2019-03-10 babolo Уточнен отладочный вывод. 2018-12-14 babolo Версия 5.06 Еще в одном месте признак неприменимости AIO. 2018-12-06 babolo Версия 5.05 Изменился признак неприменимости AIO. Добавлены MIFE_COMPAT в тесты для гашения варнингов. 2018-08-30 babolo Версия 5.04 Флаги для ifBLIN_Q* в mife_pointer(), mife_get(), mife_window() брались из blin_internal_flags. 2018-06-03 babolo Исправления под 32 разрядную архитектуру. Предупреждение о неиспользовании MIFE_COMPAT. 2018-05-23 babolo Версия 5.03 Не делается лишний цикл при точной достаточности буфера. Не надо ofpoint приравнивать к offset при EOF. Отладочный вывод. 2018-05-23 babolo В mife_dump() вывод через BLIN механизм. Новый макрос MIFE_DUMP(). Изменение отладочной выдачи. 2018-05-22 babolo Процедура для дампа mife_descriptor. Изменен диагностический вывод. Тест на ошибку в pipe. 2018-05-21 babolo Удален mife_int.h, содержимое внесено в mife.h под MIFE_INTERNAL. Замена идентифицирующих static const char на #ident. Пополнены сообщения об ошибках. Стиль. 2018-05-21 babolo Добавлены тесты. 2018-05-21 babolo Версия 5.02 Неполное окно воспринималось mife_window() как ошибка. 2018-05-21 babolo Версия 5.01 Из-за лишней проверки mife_window() не мог читать новый участок потока. 2018-05-09 babolo Версия 5.00 Вместо mife_ctl() и mife_point() сделаны отдельные функции, прежние доступны при MIFE_COMPAT == 4. Добавлена цель test. Уточнены сообщения об ошибках. Тест стал нагляднее. В tools/test добавлен флаг -e для вывода сообщений в stderr. Стиль. 2016-02-25 babolo Поправлен TODO. 2016-02-24 babolo Уточнена формулировка TODO. 2016-02-21 babolo Добавлено дело на будущее. 2016-02-19 babolo Приведение копилефтов к единому виду. 2014-09-08 babolo Версия 4.08 2014-09-07 babolo Поправлен копилефт. 2014-09-07 babolo Разрешен флаг MIFE_PIPE у mife_init. Пополнен дебаг. 2014-09-07 babolo Версия 4.07 Новая функция mife_ctl(MIFE_CTLNULL), использование ее в MIFE_CTLNULL) и MIFE_CTLNULL вместо MIFE_CTLFINI. Использована в MIFE_CTLFINI. При создании дескриптора не отмечалось отсутствие дескриптора kqueue. При повторном употреблении MIFE_CTLEOLI была утечка памяти. 2014-09-07 babolo Новый тест. 2014-09-07 babolo Версия 4.06 Критическая ошибка - в MIFE_CTLFINI не проверялось наличие mife->a.close перед вызовом. В mife.h контроль пререквизитов. Копилефт. 2014-09-07 babolo При вызове mife_point() в макросе SEEN() описан явно тип параметра. В Makefile на install добавлено сообщение. 2014-08-30 babolo Версия 4.05 Дописан ман по изменениям. Поправлены сообщаемые ошибки. В mife_read() были пути, на которых не сообщалось об ошибке. 2014-08-30 babolo Версия 4.05 Для вывода off_t используется модификатор формата BLIN_O. 2014-08-30 babolo Массовые перестановки и форматирование. Ни одного существенного изменения. Правка комментариев. 2014-08-29 babolo Процедура mife_read() полностью переписана и исключена из видимости. Теперь там работает mmap(). Процедура mife_fini() исключена из мана. Новые возможности mife в tools/test.sh. 2014-08-29 babolo Исключен из видимости mife_get(). Добавлена mife_point() со всеми планированными вариантами. В mife_ctl() добавлены все запланированные варианты. Добавлен файл с предполагаемымит результатами. В tools/test.c добавлены флаги -s и -t. 2014-08-29 babolo Убран из видимости mife_fini(). Поднята зависимость от babolo-libmake. Пополнены DEBUG_FLAGS. Установлена BLIN_COMPAT в 3. Инклуд mife.h в mife_int.h. Убрано использование устаревших макросов getMIFE_BUFL() и PTOFI. Использование макроса blin_internal_flags вместо скопированной локальной переменной. Осовременено использование ifBLIN_Q* и макросов формата. Выравнены уровни отладки. Макрос CHARBUF() стал макросом без параметра, использует всегда mife->buffer. У mife_eolinit() был выход по ошибке без установки отрицательного результата. Замена BLIN_VER* на BLIN_BIT* в мане. Изменен способ описания константы MIFE_BUFL, новая константа MIFE_BUFS. Новая константа MIFE_BACK в mife_descriptor.flags на будущее, пока не используется. Изменен способ определения констант MIFE_CTLXXXX, к ним комментарии, пополнение на будущее, пока не реализованное. Новый тип mife_tim на будущее. Поменял знаковость mife_eol.max. Прекращено использование типа mife_time, к исключению. Описания mife_default и mife_eol0 перенесены из mife.h в mife_int.h. Описание mife_point() и констант к нему - на будущее - пока не реализовано. Странный макрос mindelta закомментирован. Новые макросы ERROUT() и EXOUT(). Описание mife_read() продублировано в open.c, погодовка к сокрытию. Процедура mife_fini() реализована через mife_ctl(MIFE_CTLFINI). Результат mife_ctl() стал ssize_t вместо int. В mife_ctl() уменьшено количество объявлений переменных во внутренних блоках за счет использования общих переменных. Теперь mife_ctl() сообщает об ошибке при NULLевом mife. Аккуратная установка полей mife в mife_ctl(), в т.ч. actbeg. Аккуратнее сообщения об ошибках. Компактизированы mife_ope*(). Не освобождалась память из под mife->eol в mife_fini(). В tools/test.c исправлена ошибка начального значения c. Пополнены и поправлены комментарии. Заметки к следующему мажору. Копилефты. Форматирование. 2014-06-14 babolo Версия 4.04 Переход на babolo-libmake:3. 2013-11-21 babolo Версия 4.03 В mife_eolinit() не было предусмотрено самостоятельного изготовления mife_descriptor.eol, тогда как в mife.3 возможности отсутствия .eol не было. Поправлена диагностика - фатальный диагноз был на 2м уровне. Перед вызовом mife->eol->init() была лишняя проверка наличия mife->eol и не было проверки наличия mife->eol->init. 2013-11-11 babolo Версия 4.02 Исправлен список манов. Зависимость от babolo-libmake версии, поддерживающей stage. 2013-10-19 babolo Версия 4.01 Форматирование. 2013-10-19 babolo Уточнена версия в зависимости. Уточнен список инклудов в мануале. В fini() зануляются ссылки на освобождаемую память. Исправлена работа таймаутов. Добавлена диагностика в таймауты. 2013-10-13 babolo Версия 4.00 Добавлены необходимые для mife.h инклуды. Добавлены таймауты. Замена malloc() и bzero() на calloc(). Форматирование. 2013-10-09 babolo Переставлены блоки в MIFE_COMPAT3, что бы не было влияния макросов на определения процедур от старого API. Пополнен диагностический вывод. Защита mife_ctl() от NULL параметра mife. В распечатке адресной и около информации добавлены BLIN_* макросы для кросс совместимости. 2013-10-09 babolo В распечатке адресной и около информации в tools/test.c используются BLIN_* макросы для кросс совместимости. Исправлен тип close(). 2013-10-09 babolo Поправлены даты в копилефтах. 2013-10-09 babolo Поправлен ман. В mife_ctl() добавлено отладочной выдачи. При ошибке mife_ctl() возвращает строго отрицательное. Использование mife_ctl() для инициализации eol. Стиль. 2013-10-08 babolo Файл close.c выведен из использования, mife_close() перенесен в open.c, переименован в mife_fini(), туда добавлена диагностика на входе и выходе. Переименование flag в flags в структуре mife_descriptor. Содержимое структуры mife_type скомбинировано с mife_type_a и вернулось непосредственно в mife_descriptor. Процедуры mife_opeX() отправлены в MIFE_COMPAT3, вместо них mife_ctl(). Компонент eol в mife_descriptor теперь необязательный. В распечатке адресной и около информации используются BLIN_* макросы для кросс совместимости. Комментарии. 2013-10-02 babolo Переход на новые структуры и обращение с ними. 2013-09-04 babolo Переставлены процедуры в eol для последующих изменений. Уточнен порядок инклудов в мане. 2013-01-26 babolo Версия 3.08 В применении от предыдущей версии не отличается, только зачистка. Тип u_int32_t у флагов заменен на совместимый BLIN_flag. Внутренние идентификаторы flag стали flags. 2012-02-13 babolo Версия 3.07 Издание закомиченного, комментарий на будущее. 2011-12-18 babolo Вторая серия правки копилефтов. Добавлено TODO в Makefile. 2011-12-14 babolo Ликвидирован файл get.c, mife_get() без изменений перенесена в read.c. Еще немного инклудов ликвидировано. 2011-12-14 babolo Убраны инклуды err.h из библиотечных файлов за ненадобностью. Мелкие перестановки .h файлов. Вместо предопределенного уровня болтливости при недоступности флагов используется уровень из глобальной переменной, по умолчанию уровень в ней остался прежний. Устанавливается глобальный уровень при первом создании mife_descriptorа или mife_aoutа при помощи нового макроса SETBDEF(). В mife.h добавлено предупреждение о необходимости babolo/BLINflag.h и инклуд. Поправлены отладочные сообщения. Форматирование. 2011-12-13 babolo В mife_get() было неоправданное ограничение - нельзя было получить адрес конца буфера. Исправление мана, под него буду подгонять программу. Выброшен автомат из mife_read() mem за его излишностью: тут все просто. Убраны лишние навороты из tools/Makefile. Исправлнен комментарий в tools/gen.c об аргументах. Результат mife_get() в tools/test.c не проверялся на NULL. В тестере добавлен тест на чтение после дырки и тестовый файл теперь удаляется. 2011-12-13 babolo Поправлены копилефты. Функции mife_writ() и mife_get() переписаны, у них теперь по одной точке возврата. Форматирование и мелкие перестановки. 2011-12-13 babolo Теперь разрешено сдвигать окно назад, кроме варианта pipe. Проверка направления сдвига осталась только в pipe. Отредактированы форматы отладочной выдачи. Некоторые последовательные if склеены в if .. else if. Убраны вычитания в вычислениях в read pipe, что бы случайно не возник знак. Добавлены комментарии в тестовой части. tools/test.c стал выводить начало буфера. Форматирование. 2011-12-12 babolo Структура mife_aout описана без извращения над массивом в конце. Соответственно поменялся макрос AOUSIZE(). Еще в дополнение к предыдущему коммиту выходы из функций сделаны единственными. Исправлено перемешивание знаковых и беззнаковых. Некоторые ifBLIN_QX? поменяны на ifBLIN_QX? за счет использования своей же errno. Добавлены проверки на допустимость параметров. В mife_aclose() в цикле по буферам неправильно обрабатывался вариант, когда не было ни одного вывода. Лишний typedef eoldetector. Форматирование. 2011-12-12 babolo В Makefile добавлена -Wextra. В ifBLIN_Q?? добавлены концы строк, потерянные в предыдущем релизе. Сделано сообщение при вызове функции с дескриптором NULL. Выходы из функций сделаны единственными (за исключением mife_get()). Функции mife_eolinit() и mife_eoldetect() теперь аккуратно отрабатывают ситуацию, когда дескриптор NULL. mife_eoldetect() теперь может возвращать -2, если вызвана с NULL дескриптором. Некоторые ifBLIN_QX? поменяны на ifBLIN_QX? за счет использования своей же errno. В mife_ope?() были утечки памяти при некоторых ошибках. В mife_read() plb стал size_t вместо int и введена проверка, что длинна информации в буфере не превышает размера буфера. Начата перепись вычислений с беззнаковыми, где есть риск появления знака. Форматирование. 2011-11-15 babolo Версия 3.06 Переход на babolo-libmake-2.15, замена ifBLIN_QVn на ifBLIN_QXn и ifBLIN_QWn. В mife_aclose() неправильно обрабатывалась ошибка close() подлежащего файла, передавалась дальше. Форматирование. 2010-09-29 babolo Версия 3.05 Состав .h файлов. 2008-09-17 babolo Версия 3.04 Поправлены варнинги при трансляции на amd64. 2008-06-16 babolo Предупреждения при трансляции на 64бит архитектуре. 2008-05-13 babolo Версия 3.03 Добавлен флаг MIFE_STRI для неиспользования strlen() при определении размера памяти в mife_opes() и mife_opem(). Теперь mife_opes() и mife_opem() сразу устанавливают MIFE_EOFL. 2008-05-13 babolo В typedef определены имена для использования с struct в декларациях. В awrit.c стремный для использования слева от присваивания макрос раскрыт. mindelta() зря определялась с const. mife.h защищен от повторного включения и приспособлен к включению в c++. 2007-06-06 babolo Версия 3.02 Исправлен детектор конца записи (eoln). Введен новый флаг MIFE_SLID для по возможности неагрессивной буферизации файла. Мелкие правки для улучшения читаемости. Мелкие правки мана. 2007-05-29 babolo Версия 3.01 Добавлена асинхронная запись. Добавлены пропущенные #include. Для лучшей совместимости в read вместо machine/limits.h инклудится limits.h. При нехватке памяти errno не устанавливается, потому использовать warn() неправильно, исправлено на warnx(). 2007-05-24 babolo Версия 3.00 Убрана struct из определения типа mife_descriptor. Последний параметр у mife_read() удален в пользу mife_eolinit(). Переписан eol.h в самостоятельный eol.c. В интерфейсе новые функции mife_eolinit() и mife_eoldetect(). Содержимое структуры eoldetector вошло в mife_descriptor. Описания функций в mife.h дополнены названиями параметров. В opeX() флаги исправляются при необходимости. 2007-05-23 babolo Версия 2.08 Исправлена ошибка при определении конца строки, когда он задан многосимвольным ограничителем. Подготовка к убиранию struct из определения типа mife_descriptor. Из определения внутренней struct eoldetector убрана struct. Исправлен формат для распечатки offset (8 байтов). Слегка поправлены комментарии. 2006-07-24 babolo Версия 2.07 Реакция на изменение babolo-libmake. 2005-12-14 babolo Освоил новую макрокоманду Ns и убрал ею из мана лишние пробелы перед скобками. 2005-11-11 babolo Уточнен man. 2005-06-26 babolo Версия 2.06 В close.c и get.c проверяется mife на NULL. В мане mife_close() описываются возвращаемые значения. 2004-12-12 babolo Версия 2.05 В предыдущей версии при оценке: надо ли дочитывать в буфер? не оценивались крайние случаю, при которых дочитать все же надо. 2004-12-07 babolo Версия 2.04 Не пытается дочитать, если в буфере достаточно данных, или если обнаружен конец файла. 2004-11-21 babolo Версия 2.03 В автомат, принимающий решения, добавлена возможность не читать данные. Уточнены рассчеты вариантов к решению. Были возможны совпадения, из-за которых нельзя получить очередной блок. Исправлен ман в соответствии с версией. 2004-11-10 babolo Версия 2.02 Теперь правильно обрабатывается заказ неизвестной длинны (==0) При исправимой ошибке (read() < 0) не перевычисляются все параметры. 2004-11-09 babolo Версия 2.01 Очень лихо вычислялся MIFE_BUFL в open. В вычислениях с needlen были возможны переполнения. Не контролировался размер буфера. 2004-11-06 babolo Версия 2.00 Увеличена длинна структуры mife_descriptor для экономии обращений к stat. В ман добавлена ссылка на #include . Добавлены макро kukMIFE_{RTRY|BUFL}. writ: ошибочно ожидал после успешной записи. 2004-02-03 babolo Версия 1.01 Добавлены макро {g|s}etMIFE_RTRY и {g|s}etMIFE_BUFL Некоторое упрощение записи за счет новых макро и babolo-libmake:0.12 Более правильная передача флагов при трансляции тестов Исправлена и дополнена документация 2004-02-02 babolo Версия 1.00 Добавлен тестовый комплект. Написан man. Веточка с mmap пока заблокирована. Используется BLINflag вместо своих собственных. len в структуре mife_descriptor заменен на actlen Поменялся интерфейс mife_ope* (не только параметры местами, но и флаги) Улучшена отладочная печать. Исправлены многочисленные ошибки версии 0.01 Появилась возможность использовать ввод mife в диалоге - ввод до конца строки, строка, обозначающая конец строки, задается. Массовые изменения и улучшения. 2003-11-26 babolo Забыл writ.c 2003-11-26 babolo Версия 0.01 Работоспособна.