2024-04-20 babolo Даты в копилефтах. 2024-04-20 babolo Порядок инклудов для неиспользования системных .h файлов при общей трансляции. 2024-03-31 babolo Изоляция общего теста от установленного в системе pgoblin. 2024-03-24 babolo Варнинги. 2024-01-08 babolo Реорганизация make файлов. 2023-10-29 babolo Удаление варнингов. 2023-08-06 babolo Использование pgoblin_jb_*() функций. Ловля ранее неловимых ошибок. Изменён прототип pgoblin_jobs.jait(). Сокрытие mular_descriptor, когда нет _MULTILAR_H_. Убран макрос PGOBLIN_INITED. Пополнен отладочный вывод. Стиль. 2023-07-29 babolo Замена OUT #cat на #out в тестах. Замена OUT #file на #out в тестах. Комментарии. Стиль. 2023-07-23 babolo Даты в копилефтах. 2023-07-22 babolo Отлажен и описан #out. Изменились прототипы pgoblin_ios.iprep и pgoblin_ios.oprep. В тестах в список каталогов для поиска плагинов добавлен pgoblin/. Пополнен и поправлен отладочный вывод. Колмментарии. Стиль. 2023-07-02 babolo Команда #style теперь имеет OUT для вывода дампа. Процедуре pgoblin_st_dump() и подлежащим добавлен параметр - файл. Команде #dump вместо имени файла в CTL надо давать Pm в OUT. Дописан pgoblin5pgeo.dump(). Дописан выбор цвета в pgoblin5pgeo. Добавлены тестовые результаты в pgoblin5pgeo. Пополнен дамп. Пополнена отладочная печать. Стиль. 2023-06-18 babolo Из всех регистров исключено поле exenv. Параметр pgoblin_fini() теперь exenv вместо options. В pgoblin_db0_create() добавлен параметр exenv. В ->init() и ->fini() всех плагинов замена параметра options на exenv. Большое удаление отладки в pgoblin5pgeo. Включены в дистрибутив pgoblin5pgeo тесты c и d. Стиль. Даты в копилефтах. 2023-06-11 babolo Уточнена обработка ошибок. 2023-06-04 babolo Подготовка 0 плагинам. 2023-06-04 babolo Переход PGOBLIN_COMPAT на 5. 2023-06-04 babolo Удалён STYLE->pasth -- лишний. 2023-06-04 babolo Сокращены размеры массивов для подгрузки плагинов. Замена STYLE->path на STYLE->pasth. К названиям типов pgoblin_out, pgoblin_io, pgoblin_in добавлена 's' и сделаны полные структуры этих типов. 2023-06-04 babolo Добавлен style.c с интерфейсными процедурами pgoblin_st_*(). Изменён STYLE интерфейс плагинов. 2023-06-03 babolo Массовая замена интерфейсов и прототипов. 2023-05-21 babolo Замена & PGOBLIN_BINPARM на binparm в pgoblin_rio. 2023-04-09 babolo Изменение интерфейсов ->resinfo, ->subinfo, ->erinfo, ->valinfo, ->getvalue. 2023-03-12 babolo Исправлен выбор зависимости от мажора. 2023-03-08 babolo Перевод на версию 5. 2023-02-26 babolo Перенос битов IO из flags в tlags. Даты в копилефтах. 2023-02-26 babolo Мелкие зачистки. 2023-02-18 babolo Изменение интерфейса pgoblin_styles->parser() и pgoblin_styles->dump(). Даты в копилефтах. 2023-02-18 babolo Изменение интерфейса pgoblin_styles->clear(). 2023-02-18 babolo Изменение интерфейса pgoblin_styles->get(). 2023-02-18 babolo Изменился прототип pgoblin_styles->table(). Подготовка к загружаемым модулям OUT. Стиль. 2022-08-28 babolo Исправлены *_COMPAT макросы. Даты в копилефтах. 2022-03-27 babolo Версия 4.03 2022-03-27 babolo Вывод через pgoblin_wr() вместо rou->wri(rou->onu, ...). 2022-02-09 cuhegh Версия 4.02 Критически важные зависимости. 2022-01-15 babolo Версия 4.01 Зависимости меняются по условиям трансляции. 2022-01-09 babolo Версия 4.00 Возможность ограниченного сосуществования разных мажоров. Осовременено REQUIRED. 2022-01-09 babolo Замена типов *_style на pgoblin_realsty. Изменение интерфейса pgoblin_db0_create(). Замена макроса IND() на INDX() с удалением предыдущего значения INDX(). Тип pgoblin_mode стал pgoblin_realpq. Зачистка переменных rsv в модулях БД. Зачистка переменных st в модулях стией. 2022-01-08 babolo Изменение интерфейса CONN subinfo() и valinfo(). Изменение интерфейса STY table(). Комментарии. Стиль. 2022-01-08 babolo Изменение интерфейса CONN resinfo(). 2022-01-07 babolo Изменение интерфейсов CONN getstream() и clear(). Изменился интерфейс cleareg(). Определение blin_internal_flags через exenv->options. 2022-01-07 babolo Даты в копилефтах. 2022-01-06 babolo Разделение pgoblin_up*() на pgoblin_me*() и pgoblin_up*() с сокращенным числом параметров. 2022-01-02 babolo Переименование вида pgoblin_io в pgoblin_rio. 2022-01-02 babolo Переименование вида pgoblin_styreg в pgoblin_rst. 2022-01-02 babolo Изменение интерфейса get() в стилях. Первая часть стандартизующих переименований. 2022-01-02 babolo Перевод интерфейса БД с указателей на номера регистров. 2022-01-01 babolo Перевод интерфейса стилей с указателей на номера регистров. 2021-12-26 babolo Трассировка парсеров переведена с 4го на 5й уровень. Изменился интерфейс init() и fini() плагинов. 2021-11-28 babolo Переименования. Перетипирования. Стиль. 2021-11-28 babolo Переименования. 2021-11-27 babolo Изменение прототипа pgoblin_db_getvalue(). Несколько переименований. 2021-11-14 babolo Стиль. 2021-10-24 babolo Зависимость от babolo-libmake:4.16. Исправление *_COMPAT. 2021-10-23 babolo Проверка результата pgoblin_db_resinfo(). Возможность трансляции с локальными .h файлами. Стиль. 2021-10-17 babolo В тесте используется sqlite3. 2021-10-17 babolo Тесты 5pgo0 перенесены сюда. 2021-09-26 babolo Даты в копилефтах. 2021-09-05 babolo Версия 0.04 2021-07-31 babolo Даты в копилефтах. 2021-06-12 babolo Грамматика. 2021-06-12 babolo Мелочи. 2020-03-24 babolo Исключение из сборки неиспользуемой getCGIparm библиотеки. 2018-12-13 babolo Версия 0.03 однако 2018-12-13 babolo Версия 0.02 Не инициализировался literal после диеза в начале строки в литерале. 2018-09-10 babolo Версия 0.01 Модуль отделен. 2018-08-13 babolo Выравнивание структур. Стиль. 2018-07-17 babolo Оформление приватных и публичных процедур. 2018-07-05 babolo Имена и типы результата пришлось запоминать. Стиль. 2018-06-30 babolo Замена subinfo(PGOBLIN_ResMess, ...) на erinfo(...). В непотоковых select в db_sqlite2 работает перенумерация по именам. Исправлен конечный автомат в style_pgo0 и обозначения в нём. Тесты на перестановку в db_pgsql, тесты и заготовки тестов на перестановку в db_sqlite2 и db_sqlite3. 2018-06-21 babolo Добавлена обработка N (не проверено). Переименования идентификаторов на более значащие. 2018-06-18 babolo Вставлен dump(). Исправлен makerenum(). 2018-06-18 babolo Погашены варнинги по поводу pgoblin_styles.name, pgoblin_jobs.name, pgoblin_dbases.name всегда true. Погашены варнинги по поводу пустых операторов под if. Погашен варнинг по поводу сдвига отрицательного числа. Исправлена процедура makerenum(). Использование перенумерации. 2018-06-17 babolo Убран core dump при отсутствии необходимого литерала. Построение перенумерации (пока не используется). Продолжается замена ssize_t на int32_t в индексах. Добавлены параметры в макрос VOUT вместо использования внешних имен. Стиль. 2018-06-16 babolo Компактифицирована таблица переходов конечного автомата. 2018-06-16 babolo Перетасованы действия в конечном автомате. Возможно, перенумерация собирается. 2018-06-16 babolo Проедуры перенесены после типов и переменных. Предполагаемое значение entity F поменялось. Индексы в pgo0_style.str стали u_int32_t. Перетасованы и перегруппированы действия в конечном автомате. Комментарии, стиль. 2018-06-14 babolo Замена u_int32_t с масками на u_int32_t структуру. Соответствующая замена идентификаторов. Исправлена ошибка в regress. 2018-06-13 babolo Переименование переменных для большей внятности. Тесты на #echo из стиля. Стиль, комментарии. 2018-06-12 babolo Замена static const char copyright[] и static const char rcsid[] на #ident. 2018-06-11 babolo В db_0 вместо приводимой на всё p_no() сделаны отдельные процедуры. Используемая затычкой к notifies процедура db_0:p_none() переименована в notifies(). Типы pgoblin_dbases, pgoblin_jobs и pgoblin_styles расширены на 2 ссылки на будущее. В тип pgoblin_styles добавлены процедуры load и store, пока не реализованные. Разрешен описатель S в style_pgo0, пока не реализован. В парсере style_pgo0 действие Cl слито с Cb из-за полного совпадения условий выполнения. В парсере style_pgo0 устранен один вариант core dump. В regress помещен вариант распознавания описателей. Комментарии, стиль. 2018-06-08 babolo Предупреждение об отсутствии PGOBLIN_COMPAT. Переменный размер в pgoblin_prog теперь 0. 2018-06-03 babolo Удален pgob.h, его содержимое в pgoblin.h под PGOBLIN_INTERNAL. Комментарии. 2017-07-25 babolo Форматирование для сокращения длинны строчек. 2017-07-05 babolo Поправлено README. Изменены интерфейсные имена процедур в модуле job. В db_pgsql, db_sqlite2 и db_sqlite3 убраны комментарии к интерфейсным именам процедур. Во всех модулях fini() стал без параметра. В db_sqlite2 и db_sqlite3 отсутствие tarry() и notifies() нтерфейсных процедур опеделяется в db.c диспетчере. Сокращение локальных имен в модулях job_local, style_0 и style_pgo0. 2017-06-27 babolo Замена вызовов clear(), tarry(), endstream(), putcopy(), getcopy(), getstream(), getvalue() из pgoblin_dbases на pgoblin_db_*() из db.c диспетчера. 2017-06-25 babolo Замена вызовов resinfo(), subinfo() и valinfo() из pgoblin_dbases на pgoblin_db_resinfo(), pgoblin_db_subinfo() и pgoblin_db_valinfo() соответственно. 2017-06-10 babolo Начат файл func.c для вспомогательных функций. Туда перенесены pgoblin_breg(), pgoblin_cmdexe(). Из структуры pgoblin_syntax исключены поля clasnames и class, для использования за пределами определения новая процедура pgoblin_ctonr(), соответствующие clasnames и class перенесены в parser.c, исключен макрос _PGOBLIN_CHAR_CLASSES_. Перенос pgoblin_verify() в vdump.c. Новые битовые маски demask* в составе структуры pgoblin_main для отметки трейсинга регистров, и отметка. Изменение тип pgoblin_r со struct на union. Поправлены даты копилефтов. 2017-06-01 babolo Все init() и fini() збавились от второго параметра. Специальный тип для номера регистра. 2016-02-22 babolo Подготовка к перенумерации полей. Замена malloc() + bzero() на calloc(). Форматирование. Комментарии. 2015-08-01 babolo Действие Cb поделено на Cl и Cb с тем, что бы впоследствии исполбзовать Cb в состоянии id в стиле pgo0. 2015-08-01 babolo Использование ifBLIN_QX вместо fprintf( stderr, ... Форматирование. 2015-07-26 babolo Исправлен pn[][] в style_pgo0 после изменений в предыдущем коммите. Добавлено новое состояние id для будущей перенумераци в pgo0. Ликвидировано сокращение Cl. Заметка в TODO. 2015-07-23 babolo Использование offset в вызове blin_statebody() для смещения по выводимому тексту при отладке автомата. Вывод s_num в blin_statebody() стиля pgo0. Подготовка к введению перенумерации полей в стиле pgo0 - символ =. 2015-07-22 babolo Теперь пробел перед обозначением области в стиле pgo0 не обязятелен. 2015-07-22 babolo Для будущей возможности использовать без пробела обозначения областей в стиле pgo0 переставлен порядок выполнения действий из синтаксической таблицы automa[][]. В стиле pgo0 не было предусмотрено окончание с синтаксической ошибкой. 2015-07-22 babolo Исправлено продвижение по выводимому тексту в blin_state*. Форматирование, комментарии. 2015-07-13 babolo Созданы новые файлы pgoblin_dbms.h, pgoblin_job.h, pgoblin_style.h. Туда перенесены соответствующие определения из pgoblin.h без изменений. В style_0 сделан контроль длинны создаваемого вывода. Поправлены даты в копилефтах. Комментарии. 2014-09-07 babolo Согласование типов. Комментарии. Форматирование. 2014-09-03 babolo Переход на babolo-parser:3.03. Пополнен TODO. Согласование типов. Исправлен текст к манам. Форматирование. 2014-09-03 babolo Переход на babolo-libmake:3.09, mife:4.05. Старые правки на тему getopt в pgoblin.c. Правка текстов. Немного форматирования. 2013-10-16 babolo Версия 2.52 Замечания перенесены из Makefile в TODO. Поправлены зависимости. Убраны дублирующие babolo-libmake команды из Makefile. Замена идентификаторов flag на flags. Переход на mife.4 без совместимости с mife.3. 2013-03-02 babolo Версия 2.47 Радикально переработана waitjob() из-за возможности бесконечного ожидания окончившегося ребенка. Удален 1 ворнинг в cmd_select. Удалены 2 ворнинга в style_pgo0. При закрытии регистра работ не закрывался дескриптор kqueue. Изменения в R_JOB->pids в execute помечены как изменения R_JOB. 2013-02-24 babolo Версия 2.45 Обработка каждого неудачного exec(). Обработка ошибок babolo_openopt() - err() вместо errx(). Форматирование. 2013-02-05 babolo Порядок инклудов в тексте согласован с семантическим порядком. 2011-12-10 babolo Версия 2.44 Изменения в babolo-libmake - добавлен -lbabolo-libmake для сборки. Поправлены копилефты. Добавлены и поправлены заметки и комментарии. 2010-01-23 babolo Версия 2.41 Наконец отловлена ошибка в style_pgo0 - не проверялись границы массива оформлений. Проверка результата mular_getix() на NULL со слабым сообщением. Такого быть не может, если pgoblin без ошибок :-)) Но было. 2009-11-04 babolo Команда #perform - первая, воспользовавшаяся давно сделанным механизмом выбора цели в приведении вида данных, принимает Pt или Pq в CTL, если Pq, то исполняет построчно (вместо всего сразу, когда в Pt). Приведение вида Pq в Pt теперь делается процедурой table интерфейса style_0 вместо собственной копии в coercion(). Так же используется table в #perform. В style_0 процедура table приспособлена для приведения вида Pq в Pt в IO. Для одного из использований в #perform добавлена возможность построчного приведения. Изменились интерфейсы pgoblin_jobs и pgoblin_styles - добавлены флаги. Изменился интерфейс pgoblin_dbases - флаги переставлены в самое начало типа. На варианты исполнения #perform добавлены тесты. Комментарии, форматирование, описания, сообщения об ошибках. 2009-11-04 babolo Версия 2.34 Добавлены запросы PGOBLIN_ResMess, PGOBLIN_CleaRes, PGOBLIN_FrMess. PGOBLIN_ResMess используется в #perform. В интерфейсе db изменился первый параметр у notifies() и tarry(), теперь там регистр R_CONN целиком. В интерфейсе db_pgsql изменился тип res с PGconn* на специальный тип pgoblin_res*, там кроме PGconn* ссылка на R_CONN, имя PREPAREd оператора и флаги. При ENOMEM возвращается EX_OSERR вместо EX_UNAVAILABLE. Проверка, что db не NULL в db_pgsql интерфейсе. Форматирование, комментарии, описание в README. 2009-10-24 babolo Версия 2.31 Изменился интерфейс db, вместо nfields(), ntuples(), getisnull(), getlength() и последующих всего 3 интерфейсных функции *info() с первым аргументом, выбирающим конкретную функцию. В db_pgsql запихнуто несколько функций через интерфейс с переключателем. Коредампил #job, если за именем job не следовали параметры. В pgoblin_syntax теперь включены массивы перекодировки символов для parser и строки с названиями классов символов (используется при отладке). В pgoblin_syntax теперь включены cmds.lexor и sqlkeywords.lexor. Теперь coercomp() не тормозит преобразование, если нет требования на приведение к виду (когда требование ch пусто). Теперь execute() пользуется pgm->flags вместо options->flags. Теперь требование Pq в 0м IO регистре игнорируется. Теперь execute() при выходе протирает регистры только при установленном в pgm->flags бите PGOBLIN_CLEAR_ONEXIT. Это вновь введенный бит. pgoblin_verify() и pgoblin_htman() перенесены в pgoblin.c, что бы не попали в библиотеку. Из публичных объявнений обе процедуры убраны. Почему то парсер не обнулял созданную pgm перед заполнением. Константа PGO_MAXR теперь определяется из PGOBLIN_SYMREGS. Новая процедура pgoblin_keycodes() вызывается по -T2, сверяет список зарезервированных слов с СУБД. Теперь процедуры, вызываемые по -T возвращают целое, 0 при успехе. В sqlkeywords отсутствовала буква _. Откорректирован список зарезервированных слов с PostgreSQL 8.4. Форматирование. 2009-07-14 babolo Версия 2.22 Новый тест на pgo0: tools/regress. В pgoblin_echo() аккуратнее отмечен диапазон строк, меняющий регистры. Теперь db_0 создает Pq заданной размерности, в CTL количество строк и количество колонок. PGOBLIN_PROGSIZE увеличен вдвое. В style_pgo0 работают правильно флаги UU и DD. Комментарии и копилефты. 2009-07-11 babolo Теперь db_0 может в #select создавать полноценные Pq (полностью нулевые). При освобождении Pq в db_0 теперь все указатели после free() зануляются. У db_0 появилась процедура finish(). В style_pgo0 PGOBLIN_NTBSZMK теперь автоматически согласована с PGOBLIN_NTBSIZE. В style_pgo0:pgoblin_style_tbl() m == 0 заменен на 0. В db_0:pgoblin_shurecon() излишне велика была отметка об изменении R_CONN. Добавлена отладочная и диагностическая печать. В descript.c только поправлено форматирование без значимых изменений. Добавлены комментарии. 2009-07-07 babolo Версия 2.20 Интерфейс с SQLite3 был неправильный, что проявилось с SQLite3.6. Ко всем init() и fini() добавлен параметр flags. В декодер ошибок добавлена ошибка SQLITE_LOCKED_SHAREDCACHE. Теперь при открытии SQLite3 базы включается выдача расширенных кодов ошибок. Не проверялись результаты init(), теперь при неудаче выдается сообщение и соответствующий модуль деинициализируется. Результаты fini() не проверяются, как и не проверялись. В FreeBSD 4 нет кода ошибки EDOOFUS, в качестве обхода используется EINVAL. tools/regres для 3х тестов использует режимы standard_conforming_strings=on и backslash_quote=off, с PostgreSQL 7.4 тест не проходит. 2009-05-06 babolo Версия 2.17 Не вводился литерал пустая строка. Теперь синтаксически допустим литерал NULL. Все команды, кому неприемлемо, ругаются самостоятельно. Теперь #exit понимает код возврата из необязательного литерала, без литерала ведет себя по прежнему (EX_OK). Код команды поменялся. В интерфейс модулей добавлены init() и fini(). Старый init() из JOBS стал open(). В db_sqlite3 добавлены нововведения из 3.6 в случае наличия. Форматирование. 2009-01-09 babolo Версия 2.16 Возможность собирать без db_pgsql, db_sqlite2, db_sqlite3. Вместе с babolo-libmake-2.05 возможность транслировать на amd64. Приспособлена к трансляции в FreeBSD 7. Теперь pgoblin_strsel() и pgoblin_binsel() правильно себя идентифицируют при уровне отладки 4. Подробная диагностика в pgoblin_eval() о состоянии после pgoblin_execute() при ошибке. В pgoblin_eval() не освобождалась память из под программы для pgoblin_execute(). В db_0:pgoblin_shurecon() проверяется наличие ссылки на базу перед использованием. В db_0:pgoblin_query(), db_0:pgoblin_ntuples(), db_0:pgoblin_nfields() проверяется наличи ссылки на результат перед использованием. Для правильной сборки теперь _pgoblin_sqlite3_quote() и __pgoblin_sqlite3_regexp() теперь публичные. Используется инициализация от SQLite 3.6, если есть. В style_pgo0:pgoblin_style_parse() убрано внутреннее определение i, экранирующее внешнее, в обработке Cm в автомате. В style_pgo0 константой ENTITY_LETTERS заменено число, в pgoblin_style_parse(), pgoblin_style_dump() и pgoblin_style_tbl() исправленя связанная с этой константой ошибка off by one. В gcc 3.4.6 (FreeBSD 6, может, и другие) обнаружена ошибка, из-за которой в style_pgo0 в pgoblin_style_dump(), pgoblin_style_get() и dsig() пришлось делать обход. В тестах не хватало команды #wait, из-за чего были гонки и непредсказуемые результаты тестов. 2008-06-25 babolo Версия 2.15 Не использовался регистр базы у #exit и #return. Скорее всего потерялся при больбе с "unexpected EOF on client connection", сейчас это предупреждение опять есть. Скорее всего, полностью его извести, учитывая регистр базы, невозможно, но можно подумать над аккуратным уменьшением. В #begin и #end неправильно при отладке выводился код завершения. У pgsql.exec теперь более подробная диагностика при неработе PQexec(). У квотера sqlite3 добавлены новые возможности, пока не используемые. К диагностическому выводу регистров добавлены флаги, кроме регистров ввода- вывода, где они были и раньше. При установке нового коннекта к базе на него не распространялись отладочные флаги. Форматирование, комментарии. 2008-06-05 babolo Версия 2.14 Несоблюдение области значимости pgoblin_jobreg.host и pgoblin_conn.dbname. В рассчете на будущую библиотеку добавлено по одному подчеркиванию в начало названий к реализациям дополнительных функций SQLite*. Возврат значений флагов PGOBLIN_INT64TIME..PGOBLIN_CLOSECONN на прежнее (как в позапрошлом издании) место и выбор для PGOBLIN_ERROR_SENS* нового. Оформление и прочая вкусовщина. 2008-05-31 babolo Возможность распространения ошибок от детей (управляется PGOBLIN_ERROR_SENSOR) и немедленной реакции на обнаружение ошибки ребенка (управляется PGOBLIN_ERROR_SENSIB). Теперь управляющий текст команды #job после идентификатора модуля разбирается пословно (argc, argv) и обрабатываются аналогично getopt(). В интерфейс модуля работ добавлена процедура init(). Новый флаг PGOBLIN_INITED для отметки процедурой init() модуля работ. В cmds был ненужный инклуд. В интерфейсы sqlite2 и sqlite3 добавлена weak реализация SQL процедуры regexp(). В интерфейс sqlite3 добавлена weak процедура для реализации SQL процедур quote_literal(), quote_ident(), quote_ident_always(). quote_ident() сделана максимально точно по PostgreSQL (для чего из 8.3.1 извлечен полный список токенов, см. sqlkeywords), quote_literal() соответствует стандарту, потому отличается от вариантов PostgreSQL всех сейчас существующих версий, но соответствует sqlite3, в рамках которой и должна применяться. quote_ident_always() отличается от quote_ident() тем, что результат всегда в двойных кавычках, даже если quote_ident() не кавычит. Тесты на добавленное в двух предыдущих пунктах. pgoblin_init() избавился от одного параметра и не инициализирует IO_RG0.mife. Изменилась отладочная распечатка при подготовке номеров регистров команде. По опции -V теперь выдается расшифровка кодов заполнения регистров. Ошибка синтаксиса - если первая строка программы была пустая, то вторая отправлялась в мусор. Добавлены тесты на эту ошибку. Теперь пустая программа считается правильной и не вызывает ошибки. Предупреждение на уровне отладки 2 выдается, однако. Зарезервированы флаги -z и -Z для управления реакциями на ошибку. В запутанном порядке подготовки входных файлов была ошибка - не оформлялся конец списка. Значения флагов PGOBLIN_INT64TIME, PGOBLIN_FLOATTIME, PGOBLIN_NEEDINTIME и PGOBLIN_CLOSECONN променялись в пользу PGOBLIN_ERROR_SENSOR и PGOBLIN_ERROR_SENSIB, которые будут едины по всем видам регистров, как и BLINflagи. Названия видов регистров теперь одной длинны - короткие дополнены пробелами. Форматирование. 2008-05-26 babolo Из сборки убран флаг -pthread. Немного комментариев к структуре pgoblin_dir. Новые макросы DBASE(), JOBE() и STYLS(), за счет них ликвидированы макросы STYLESET, GLOBALDBSET, LOCALDBSET() и присвояния D(), S(), DBSET. Появился другой вариант #getdir с заданием файлов из IN->pq, не проверено. 2008-05-14 babolo Согласована знаковость/беззнаковость у переменных и параметров. Поправлен порядок и состав инклудов. В style_pgo0 несколько левых частей присваивания не понравились GNU C 4. НЕ отработана подлянка по обработке первого параметра из #! скрипта. Уверенности в работоспособности всего вместе на FreeBSD 7 немного - тесты не проходят из-за изменения ожидаемых размеров каталогов и из-за подлянки. 2008-05-13 babolo Версия 2.11 Изменились идентификаторы модулей. Сейчас в id и name одинаковые версии, со временем во внешних модулях разойдутся. Запущена команда #getdir. В pgoblin_connect() изменился разбор строки параметра. В db_pgsql проверяется наличие параметров к pgoblin_connect() и если их нет, то используется PQsetdbLogin() вместо PQconnectdb(). В main() проверяется единственность и правильность параметра -B. Тесты #getdir в regres, regres4, regres8. 2008-03-30 babolo Версия 2.08 При употреблении последовательностей констант на один текстовый литерал в стиле pgo0 парсер укладывал результат куда ни попадя. В парсере pgo0 добавлена отладочная печать на детали операций Cr, Cm, Ck. Операция Ck переписана для лучше выглядеть. 2008-03-30 babolo Версия 2.07 Стиль pgo0 неправильно обрабатывал таблицы из-под #strselect и #binselect. В частности, пытался обратиться за пределы предоставленного pq и не обрабатывал -H0. Поправлены мелкие ошибки парсера стиля pgo0, поведение стало много более устойчивым и предсказуемым. В выводе таблиц flow теперь собирается сразу сдвинутым вместо сдвига собранного. В выводе таблиц на 3ем уровне отладки добавился вывод параметров каждого захода на вывод таблицы или поданной части ее. В tools/regres масса новых скучных тестов на обнаруженные несоответствия. 2008-03-29 babolo Версия 2.05 В стиле pgo0 отлажены свободные константы - ввод, выдача, дамп. В дампе стиля pgo0 добавлен multilar дамп компонентов стиля. Команды #echo, #file и #cat теперь могут пользоваться идентификаторами констант через стиль. Добавлен тест для #echo, #file и #cat со стилем. В тест добавлен copyleft. 2008-03-28 babolo Версия 2.04 В позапредыдущем логе ошибочно указано, что static int sout() удалена. На самом деле она осталась с некоторым упрощением, но без изменения функционирования. Не все проверено, но тут уже много проверенного нужного, потому издается. Стили без флагов работают, из флагов проверены U и D, но не UU или DD. Реализацию флагов конечным автоматом делать не стал. Выделены варианты с 0ым количеством строк и колонок и выписаны отдельно от случая с непустой таблицей. Вариант количеством колонок 0 не проверен. Тесты на флаги U и D. 2008-03-28 babolo Теперь процедуре вывода таблицы стиля на вход подается регистр ввода целиком вместо pq и флагов базы в розницу. 2008-03-27 babolo Вспомнить бы... Желание ликвидировать #cat отпало. Далее все по pgo0 стилю. Автомат вводит флаги стиля - Cf. Теперь правильно обрабатывается пустой литерал - важно при наложении стилей. В связи с уточнением сообщения "Repeat ... in line ..." вся логика спрятана под условие отладки. Система флагов стала изощреннее. Стала ненужной static int sout(). dsig() теперь учитывает флаги P_T и P_C. Готовимся к реализации оформления нулевых таблиц конечным автоматом из-за его сложности. Тест на вышеперечисленное - нулевое оформление еще не работает правильно! 2008-02-17 babolo Команда #style дополняет стиль, а не заменяет. Новая команда #clear для обнуления регистров работ и стиля. Описания команд, работающих с регистрами работ и стиля, поменялись вместе с изменением семантики описания относительно этих регистров. Номер команды #untrap изменился, что бы освободить номер для #clear. В execute использован макрос ERROUT(). Теперь не рассчитываем, что в wri IO регистра будет что-то типа mife_writ(), считающего длинну самостоятельно, когда задан 0 и в стиле 0 (предыдущее такое изменение относилось только к стилю pgo0). Проверки функциями стиля подаваемого на вход стиля. Парсер pgo0 теперь обрабатывает и устанавливает флаги стиля. 2008-02-17 babolo Теперь U и D выводятся только при наличии хоть чего либо ненулевого в строке. Теперь не рассчитываем, что в wri IO регистра будет что-то типа mife_writ(), считающего длинну самостоятельно, когда задан 0. 2008-02-17 babolo Все то же самое, но style_pgo0 pgoblin_style_tbl() слегка раскрыты макросы с тем, что бы внедрить очередное изменение следующим коммитом. 2008-02-16 babolo Поменялся приоритет записей литералов в стиле - из нескольких с одинаковыми именами теперь приоритетнее последний литерал. Литералы L и R теперь выводятся только если содержимое ячейки, оформленной этими литералами , не NULL. 2008-02-13 babolo Стиль таблиц тест прошел. Парсер pgo0 не принимал последнюю область перед следующим стилем. В pgoblin_style_dump() добавлена распечатка отметок об используемых областях - по 76 первых. В pgoblin_style_tbl() добавлена отладочная печать, детализирующая выбор литерала для области. Установлен признак комментария -- для m4 в тесте. В тесте исправлено название области +l1 -> +L1. В тесте пришлось аккуратно подобрать расстановку кавычек. 2008-02-13 babolo В style_pgo0 изменения косм етические - убрал лишние скобки. Тест стиля, пока не удовлетворяет. 2008-02-13 babolo Стиль готов к тестированию. Только форматирование поменялось в cmd_select. Сразу забыл добавить style в cmds.lexor. Теперь интерфейсные функции стилей принимают стиль, упакованный в pgoblin_styreg * вместо собственной структуры (была описана void *). В интерфейс со стилями добавлена функция dump. В интерфейсе со стилями у функции table выброшен параметр options. Заполняется NULLями dbasetable и styletable. В execute: - распространяются BLIN флаги на 0й регистр стиля - закрывается стиль, если он был на выходном регистре стиля - в разгрузке pq самописные циклы заменены на обращение к 0му стилю - была ошибка в освобождении регистра стиля на выходе из execute. В parser ошибка при сдвиге с расширением с 32 до 64 битов в сборке регистров команды и косметическая замена идентификатора r_pp на rs. В pgoblin_style() - косметическая замена идентификатора ilen на rs - неправильный список состояний для отладчика - вспомогательная переменная d (используется в сравнении имени стиля) была ссылкой, стала индексом. - запрещено менять 0й регистр стиля - чуть информативнее отладчик - было неаккуратное сравнение строк при поиске интерпретатора стиля по имени - оканчивался с ошибкой "неправильное имя интерпретатора" даже когда имя находилось - поиск по имени стиля всегда оканчивался неуспехом В стиле pgo0 отлажен парсер табличных оформлений. В стиле pgo0 затычка интерфейсной функции free дописана. В стиле pgo0 отлажена функция table. 2008-02-12 babolo Переопределена структура pgo0_style таким образом, что бы H, U, ... были не отдельными сущностями, а элементами массива, для удобства передачи. В dsig была ошибка - не применялся вариант по умолчанию. 2008-02-12 babolo Полуфабрикат нового, но все старые тесты проходит. Добавлена новая команда #style, не отлажена. Название структуры pgoblin_style заменено на pgoblin_styreg из-за пересечения имен с реализующей #style В struct pgoblin_styles поменялся тип функции parser. Заготовка для этой функции в стиле pgo0, трансляции не мешает. В parser символ Lp заменен на Ls - украшательств (унификация?). Там же применен макрос ERROUT и выравнены комментарии. Замена литерала 0 на константу L0 в классивикаторе parser. Значимых изменений в parser нет. 2008-02-11 babolo Переведены на использование стилей #strselect и #binselect. В #display, #strselect и #binselect используется ex вместо e для результата функции (унификация). В #strselect и #binselect используется макрос ERROUT вместо выхода в середине функции по ошибке. Дополнена еще одной функцией pgoblin_styles. Регистр стиля 0 инициализируется 0ым стилем - для общности подхода. Обработка flagc в io регистре. Новый макрос R_STY0. В style_pgo0 введены флаги HFIRST .. VLAST для управления обработкой нулевых размеров таблиц. Команды #strselect и #binselect стали в результате похожими до смешения, возможно, к объединению. Форматирование и комментарии. 2008-02-11 babolo Сделан нулевой стиль, он используется при выдаче с нулевым регистром стиля вместо отдельной логики на этот случай. В io регистр добавлен flagc - копия flags от conn регистра. Ошибка в описании типа pgoblin_styles.parser. Ошибка в определении R_STYLE. Определен фиксированный номер типа DB для PostgreSQL, может, только на время перехода. Теперь pgoblin_styles.table возвращает размер выданного текста при успехе и отрицательное число при ошибке. Теперь #display берет тип базы из io регистра из flagc. 2008-02-10 babolo Начата поддержка стилей и множественности баз, инфраструктура стилей более-менее сформирована, базы придется еще переделывать из единственной. Поддержка престилей отовсюду ликвидирована, поддержка стилей есть пока только в #display. Новые макросы R_STYLE и STYLESET. В pgoblin.h теперь введена блокировка повторного включения.