)]}'
{
  "log": [
    {
      "commit": "b1c3bfd71d70e2933d5d48c7b725ceba60de1476",
      "tree": "8ca6748e48a0fcbb6a6e2624f10ab3b040102c82",
      "parents": [
        "4b21df85638728386ee9b348f1171bfc407d63e7"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 01:15:57 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 01:15:57 2026 +0200"
      },
      "message": "* tta/C/convert/converter.c (converter_set_document),\ntta/perl/Texinfo/Convert/ConverterNonXS.pm (set_document),\ntta/perl/Texinfo/Convert/HTMLNonXS.pm (conversion_initialization):\nallow an undef/NULL document such that copy_options_for_convert_text\nis still called in that case.\n\n* tta/C/convert/get_converter_perl_info.c\n(get_converter_and_document_from_sv),\ntta/C/convert/html_converter_api.c (html_output, html_convert),\ntta/C/convert/html_prepare_converter.c\n(html_conversion_initialization),\ntta/perl/XSTexinfo/convert/ConvertConverterXS.xs (set_document),\ntta/perl/XSTexinfo/convert/ConvertHTMLXS.xs\n(conversion_initialization, output, convert): add document argument to\nhtml_conversion_initialization, and call set_document in\nhtml_conversion_initialization, as in Perl.  Update callers.  Add\nget_converter_and_document_from_sv to get both document and converter\nto use in XS.  Remove converter_set_document_from_sv.\n"
    },
    {
      "commit": "4b21df85638728386ee9b348f1171bfc407d63e7",
      "tree": "8260838aac687070cfaa966b6c6b6b92a25e951c",
      "parents": [
        "d62004de36ddfb8678ac0b11a72707c99961f40d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 01:03:21 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 01:03:21 2026 +0200"
      },
      "message": "* tta/C/main/get_perl_info.c (get_lang_info_hv): comment out unused\nvariable.\n"
    },
    {
      "commit": "d62004de36ddfb8678ac0b11a72707c99961f40d",
      "tree": "9c216bb1c484330ea0ed5021392be5c004322545",
      "parents": [
        "d5ac63d7fed89851aec2f11be2a27a4851d2507d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 00:39:06 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 00:39:06 2026 +0200"
      },
      "message": "* README-hacking: add check that the debug output of pure Perl modules\nand XS/C are the same before the release as a manual test, since it\nallows to find real bugs.\n"
    },
    {
      "commit": "d5ac63d7fed89851aec2f11be2a27a4851d2507d",
      "tree": "efe5ee9b0d54e0fe8c3578c93cf0c7121f50ab9c",
      "parents": [
        "1fc81e72367c9ccb4b8c54780675f3cc0fac4186"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 00:37:32 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 18 00:37:32 2026 +0200"
      },
      "message": "* tta/C/main/get_perl_info.c (get_lang_info_hv): do not set\nlang_info-\u003ebcp47_locale, it will be set in set_lang_info_translation.\nFound with valgrind as there was a memory leak.\n"
    },
    {
      "commit": "1fc81e72367c9ccb4b8c54780675f3cc0fac4186",
      "tree": "c4c7c43ee6077e9509186f3bf78159ce69587a2c",
      "parents": [
        "f70cf5f8a3d77de7e9a96bd2ebc0a4b3304dddb2"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 23:00:56 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 23:00:56 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/HTMLNonXS.pm (@sorted_no_arg_commands)\n(conversion_initialization, _translate_names): add\n@sorted_no_arg_commands and use it to have a reproducible order for no\nargs commands processing, in particular for debug messages.\n"
    },
    {
      "commit": "f70cf5f8a3d77de7e9a96bd2ebc0a4b3304dddb2",
      "tree": "656d6554c271c5d9998871d7ffe0ea9734350f2a",
      "parents": [
        "17207b226cffb480264fc196e7c2724a71337c24"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 22:17:36 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 22:17:36 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_info.c (pass_sv_converter_info),\ntta/C/convert/convert_html.c (html_prepare_converted_output_info)\n(html_convert_output), tta/perl/Texinfo/Convert/HTML.pm\n(_file_header_information), tta/perl/Texinfo/Convert/HTMLNonXS.pm\n(%available_converter_info, _prepare_converted_output_info): set\ndate_in_header in prepare_converted_output_info.  Add it to\nconverter_info.  Use it from converter_info in\n_file_header_information.\n\n* doc/texi2any_api.texi (Converter General Information): document\ndate_in_header.\n\n* tta/C/convert/converter.c (set_file_path): fix debug message.\n"
    },
    {
      "commit": "17207b226cffb480264fc196e7c2724a71337c24",
      "tree": "4dac1bc693e834c59e6b9ae135c30e97b8427b35",
      "parents": [
        "1034dbdc410750a70cb2337243a102ca0f88456e"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 21:42:39 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 21:42:39 2026 +0200"
      },
      "message": "* tta/C/main/translations.c\n(reset_lang_translation_from_customization): no need to call\nset_translations_documentlanguagevariant, as a NULL lang_translations\nis used to reset fully the cur_lang_trans.\n\n* tta/perl/Texinfo/Convert/Converter.pm\n(reset_lang_translation_from_customization): add.\n\n* tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin),\ntta/perl/Texinfo/Convert/HTMLNonXS.pm (_prepare_converted_output_info)\n(_setup_output): call reset_lang_translation_from_customization to\nproperly reset the current lang_translations.\n"
    },
    {
      "commit": "1034dbdc410750a70cb2337243a102ca0f88456e",
      "tree": "3fe253a7bc5a19a5fb2545e609d4eb9b74a8849b",
      "parents": [
        "13309f006c4b0b576f61c965cd4ae714a7428763"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 19:59:50 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 19:59:50 2026 +0200"
      },
      "message": "* tta/C/main/utils.c (add_include_directory),\ntta/perl/Texinfo/ParserNonXS.pm (parser): canonicalize include\ndirectories in parsers.\n\n* tta/perl/Texinfo/OutputUnits.pm (units_directions): setup\nNodeForward and similar directions even if there are no node\ndirections (no next, prev up).\n\n* tta/C/parsetexi/end_line.c (end_line_misc_line): rename fullpath as\nincluded_file_path.\n\n* tta/perl/Texinfo/Convert/HTML.pm\n(_default_format_special_body_about): add explanation.\n\n* tta/C/convert/convert_html.c (html_translate_names): handle NULL\nOUTPUT_ENCODING_NAME in debug message.\n"
    },
    {
      "commit": "13309f006c4b0b576f61c965cd4ae714a7428763",
      "tree": "4e88a3547c495e1815bb6301df1f3ef7bc027000",
      "parents": [
        "80ea9823b8e8464460bc33520e5824cbb7a5e9c2"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 15:33:48 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 15:33:48 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Common.pm (%spaces_protection)\n(debug_print_element), tta/perl/Texinfo/Convert/HTML.pm\n(%spaces_protection, _convert), tta/perl/Texinfo/ParserNonXS.pm\n(%spaces_protection, _debug_protect_eol): protect tabs and form feeds.\n\n* tta/perl/Texinfo/Convert/HTML.pm (_convert_menu_entry_type):\nremove unneeded container around node_content.  Minor changes.\n\n* tta/perl/Texinfo/Convert/HTML.pm (_file_header_information):\ncall Texinfo::TreeElement::new for new elements.\n\n* tta/perl/Texinfo/OutputUnits.pm (output_unit_texi): remove trailing\nspaces for external node formatting.\n"
    },
    {
      "commit": "80ea9823b8e8464460bc33520e5824cbb7a5e9c2",
      "tree": "3a8c04a9cf785efd3bfe34bb5d5a7d5a59a0d0f4",
      "parents": [
        "3c989c097085d75d8de242a8fe0f140895cb0e0b"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 14:33:43 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 14:33:43 2026 +0200"
      },
      "message": "* tta/C/main/convert_to_texinfo.c (root_heading_command_to_texinfo):\nreorganize code, use xasprintf instead of TEXT, never return NULL.\n"
    },
    {
      "commit": "3c989c097085d75d8de242a8fe0f140895cb0e0b",
      "tree": "bbaf6f78f29ff9d64fb55ae5fb5e383f95243c13",
      "parents": [
        "fcadb61fd5c6ef2d37653743693f557600a99fd7"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:13:25 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/perl/t/test_utils.pl: encode STDERR in UTF-8, to have the same\nencoding as C direct output on stderr (for debugging output).\n"
    },
    {
      "commit": "fcadb61fd5c6ef2d37653743693f557600a99fd7",
      "tree": "4beacab9da04c72d4a6a560f6affaa504f6e246a",
      "parents": [
        "52a870289fc5e2a55c838bde1c5094ff54f2c93e"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 11:21:43 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/C/main/translations.c (replace_convert_substrings),\ntta/perl/Texinfo/Translations.pm (_replace_convert_substrings): show\ndebug messages if debug \u003e 1 to avoid seeing spurious differences\nbetween C and Perl debugging output in case both are compared.\n\n* tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter): set debug in\nthe Texinfo::Convert::Paragraph container only if debug \u003e 1 as there\nis no equivalent debugging info in C.\n\n* tta/perl/Texinfo/Convert/Texinfo.pm\n(root_heading_command_to_texinfo): check if tree is empty on\nnon_leading_trailing_tree returned tree.\n\n* tta/perl/Texinfo/Common.pm (debug_print_element): print type before\ncommand for the main element.\n"
    },
    {
      "commit": "52a870289fc5e2a55c838bde1c5094ff54f2c93e",
      "tree": "6019d3cf3d97373366879a17c6785dc5c7553e7a",
      "parents": [
        "68f2e8e5163c425cef1bb5da4d6f99e4096f1863"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 11:12:41 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/C/convert/format_html.c (html_special_unit_info_text): use enum\ndirection_string_context instead of enum conversion_context.  Update\ncallers.\n"
    },
    {
      "commit": "68f2e8e5163c425cef1bb5da4d6f99e4096f1863",
      "tree": "0584cd534ee6a65fa7234b0b52affdf5ee5e2704",
      "parents": [
        "0509219d89553d1df99535e5807a056da964e95a"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 00:41:41 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/C/convert/convert_html.c (html_gdt_tree): add debugging message.\n\n* tta/C/main/debug.c (print_element_debug): do not print type in\ndebugging if c_only flag is set.\n"
    },
    {
      "commit": "0509219d89553d1df99535e5807a056da964e95a",
      "tree": "b9896bc281bf1aba85a944e828e957ce80987312",
      "parents": [
        "29a93cc26afbcd083200a57c30d682c7c06fdfb8"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 00:16:50 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/C/main/translations.c (replace_convert_substrings):\nprint debug message both with substitute substrings and without.\n\n* tta/perl/Texinfo/Translations.pm (_replace_convert_substrings):\ndistinguish translated string and parsed strng with substitutions.\nPrint different messages with substitute substrings and without.\n\n* tta/perl/Texinfo/Convert/Texinfo.pm\n(root_heading_command_to_texinfo): call non_leading_trailing_tree to\navoid returning leading and trailing spaces and comment.\n\n* tta/perl/Texinfo/Convert/HTMLNonXS.pm (conversion_initialization):\nadd debug message output in C.\n"
    },
    {
      "commit": "29a93cc26afbcd083200a57c30d682c7c06fdfb8",
      "tree": "01409704cf9ec63b9c2f3735b8bfa5388eba7bbf",
      "parents": [
        "6267bcdaa92bdd2db0cd0640453394f13b67c369"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 19:07:35 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/C/convert/convert_html.c,\ntta/C/convert/html_prepare_converter.c: prepend C| in debug messages.\n\n* tta/perl/Texinfo/Convert/HTMLNonXS.pm (_html_convert_convert),\ntta/C/convert/convert_html.c (html_convert_convert): change a debug\nmessage.\n"
    },
    {
      "commit": "6267bcdaa92bdd2db0cd0640453394f13b67c369",
      "tree": "0619c49c201e185c51402ebcc0a792871bed89f0",
      "parents": [
        "b799a88c9d26548d8aa1de87108100d8a0a65421"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 18:18:56 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/ParserNonXS.pm (_process_remaining_on_line)\n(_parse_texi), tta/C/parsetexi/parser.c (parse_texi)\n(process_verb_contents): protect end of line and always add an end of\nline.\n\n* tta/C/parsetexi/*.c: prepand debug messagaes by C| to distinguish\nfrom Perl parser debug messages.\n"
    },
    {
      "commit": "b799a88c9d26548d8aa1de87108100d8a0a65421",
      "tree": "4088060d59edee716839a22f136d6d059f93908e",
      "parents": [
        "a1c0bd09bd0741b6c994ba42aa24edea41b14077"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 17:31:35 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/C/main/translations.c (gdt_tree),\ntta/perl/Texinfo/Translations.pm (gdt): improved and same error\nmessage for gdt.\n"
    },
    {
      "commit": "a1c0bd09bd0741b6c994ba42aa24edea41b14077",
      "tree": "50523c786a0578b069a0a727201bc42779d23eef",
      "parents": [
        "abdc72a45c60c35f8ce0d717e0ca4af50b359b3b"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 17:07:12 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 17 13:14:16 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree): do\nnot use the tree provided by non_leading_trailing_tree such that a\ncomment is kept.\n\n* tta/C/parsetexi/separator.c (handle_close_brace): use \u0026 for flag.\n\n* tta/C/main/element_types.txt (normal_text): add c_only.\n\n* tta/C/convert/convert_html.c (html_convert_tree_append),\ntta/C/parsetexi/debug_parser.c (print_element_debug_parser): do not\nprint type in debugging if c_only flag is set.\n\n* tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line)\n(_handle_line_command): set index_entry_command type as soon as\npossible.\n\n* tta/perl/Texinfo/ParserNonXS.pm (_process_raw_block_contents):\nfix missing \u0027conf\u0027 key.\n"
    },
    {
      "commit": "abdc72a45c60c35f8ce0d717e0ca4af50b359b3b",
      "tree": "055abadfa98ae9f93a0ebc6a8107c5a1e1e0f90c",
      "parents": [
        "fb3e5d619d26f7e67468a069d6ef8a85dc6c736b"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Sun May 17 01:57:11 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Sun May 17 01:57:11 2026 +0100"
      },
      "message": "* README-hacking: add note for removal of texi2any_internals\nmanual from webpages\n"
    },
    {
      "commit": "fb3e5d619d26f7e67468a069d6ef8a85dc6c736b",
      "tree": "06647fcb546213651f265af69349b8cb0fca7526",
      "parents": [
        "55a4fabaeca21611d30c0bdbc8c6933911279a4b"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 13:25:29 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 13:25:29 2026 +0200"
      },
      "message": "* tta/C/convert/converter.c (current_bcp47_locale): add.\n\n* tta/C/convert/convert_html.c (html_translate_names)\n(html_prepare_converted_output_info),\ntta/C/convert/html_prepare_converter.c (html_setup_output): use\ncurrent_bcp47_locale.\n"
    },
    {
      "commit": "55a4fabaeca21611d30c0bdbc8c6933911279a4b",
      "tree": "314639823a5ddc64976fc9249c189c718b8db504",
      "parents": [
        "4c2af4a81cdd511b9c70fc853ae24d7624b76624"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 12:52:09 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 16 12:52:09 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/NodeNameNormalization.pm\n(_protect_unicode_char): no need to check\nunicode_simple_character_map, the result is the same with sprintf.\n\n* tta/perl/Texinfo/Convert/NodeNameNormalization.pm\n(_unicode_to_transliterate): change ordering of conditionals for\nclearer code.\n\nChanges in TODO and comments.\n"
    },
    {
      "commit": "4c2af4a81cdd511b9c70fc853ae24d7624b76624",
      "tree": "431c9a78265a8d6cc794ad8022db3315ed8813ab",
      "parents": [
        "d4117820d855268a0827c0a0d29a0a05791a0c7d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 20:35:02 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 20:35:02 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/HTML.pm (_convert_def_line_type): call\nset_context_convert_tree instead of _set_code_context to use the\nHTML customization API.\n"
    },
    {
      "commit": "d4117820d855268a0827c0a0d29a0a05791a0c7d",
      "tree": "c2ce6414d950638c7196f085f70a72d254f19dcb",
      "parents": [
        "86894030dc8e4e03728366d453202a7be97d012e"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 20:26:24 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 20:26:24 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/HTML.pm (set_context_convert_tree)\n($CTXF_normal): add CTXF_normal, flag that can be used to unset code\ncontext.  Add set_context_convert_tree that accepts CTXF_normal or\nCTXF_code to set or unset code context.  Remove\nconvert_tree_in_code_context.  Update callers.\n\n* doc/texi2any_api.texi (Setting the Expansion Context for\nConversion): update for the replacement of\nconvert_tree_in_code_context by set_context_convert_tree.\n"
    },
    {
      "commit": "86894030dc8e4e03728366d453202a7be97d012e",
      "tree": "42015a3904776a6b2904805f4aee6b957a70dd46",
      "parents": [
        "b4cc708578648250fa1d40076c530a0e9c744eca"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 17:09:37 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 17:09:37 2026 +0200"
      },
      "message": "* tta/C/convert/format_html.c (html_convert_printindex_command),\ntta/C/convert/html_conversion_state.c\n(html_open_command_update_context)\n(html_convert_command_update_context),\ntta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command),\ntta/perl/Texinfo/Convert/HTMLNonXS.pm (_open_command_update_context)\n(_convert_command_update_context): start a new context for printindex\nin the generic conversion state updating instead of in the printindex\nconversion function.\n"
    },
    {
      "commit": "b4cc708578648250fa1d40076c530a0e9c744eca",
      "tree": "e6537e4aff6ec09d3cd588ed5f0332890cea0f53",
      "parents": [
        "11b200471ad49fbe35cebdb477cf1d41a19c4d0c"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 01:02:42 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 15 01:02:42 2026 +0200"
      },
      "message": "Update TODO, fix typo in ChangeLog\n"
    },
    {
      "commit": "11b200471ad49fbe35cebdb477cf1d41a19c4d0c",
      "tree": "4e2acb3421615b58e627501748f8152a8053a150",
      "parents": [
        "ad74037f33e4dce169707450fc637da68db63f8f"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 22:34:39 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 22:34:39 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/ManipulateTree.pm (_copy_tree), configure.ac\n(Perl version and modules), tta/perl/Texinfo/Translations.pm\n(_replace_convert_substrings): call Scalar::Util weaken on\nparent added by _copy_tree.  Do not remove the parent of the tree\nreturned after translation now that the reference is weakened.\n"
    },
    {
      "commit": "ad74037f33e4dce169707450fc637da68db63f8f",
      "tree": "860e22f9dee9dd0d62db633206debaf8cb99a295",
      "parents": [
        "2bf33b3c8f4755a154377f5d9ad662727f582784"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 19:50:42 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 19:50:42 2026 +0200"
      },
      "message": "* doc/tta_api/Makefile.am (texi2any_internals_dependencies),\ntta/perl/Texinfo/Parser.pm: move POD documentation of the Parser out\nof ParserNonXS.pm to Parser.pm.\n"
    },
    {
      "commit": "2bf33b3c8f4755a154377f5d9ad662727f582784",
      "tree": "9395173185d2b9cf568a5b28897bb4879345187f",
      "parents": [
        "0b541ef2061e8710cd9598d2b9ab20f50208b99a"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 18:44:57 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 18:44:57 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/*.pm, tta/perl/Texinfo/Convert/*.pm: verify that\nthere is a VERSIN for all modules that are not *NonXS modules.  Add\nuse warnings and use 5.006 if needed for our VERSION.\n\n* tta/perl/t/z_misc/test_is_content_empty.t,\ntta/perl/t/z_misc/nodenormalization.t: add \"use Texinfo::Document;\".\n\n* tta/perl/Texinfo/Parser*: small misc changes.  Add \"use\nTexinfo::Document;\" in the main Parser.pm module.\n"
    },
    {
      "commit": "0b541ef2061e8710cd9598d2b9ab20f50208b99a",
      "tree": "8713a7018fe7319d942cdb19107258a83287b598",
      "parents": [
        "9978b558ae22a939169ecaee873f2a9a210988f5"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 16:21:51 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 16:21:51 2026 +0200"
      },
      "message": "* tta/perl/XSTexinfo/parser_document/ParserXS.xs\n(_register_parser_conf, _parser_store_values)\n(_parser_store_INCLUDE_DIRECTORIES, _parser_store_EXPANDED_FORMATS):\nadd leading _ for functions that should only be called from\nParserXS.pm in XS.\n\n* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/ParserNonXS.pm\n(%parser_document_state_configuration, %parser_inner_options)\n(%parser_document_parsing_options): move to ParserNonXS.pm.\n"
    },
    {
      "commit": "9978b558ae22a939169ecaee873f2a9a210988f5",
      "tree": "96efbe883450787749c7fe3e77fdcaf99cfd2a10",
      "parents": [
        "b1a4fb001bd25b209c279f6cde2890ed57b80f98"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 15:54:50 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 15:54:50 2026 +0200"
      },
      "message": "* tta/C/main/errors.c (message_list_format_line_message)\n(message_list_format_document_message): rename\nmessage_list_line_formatted_message as\nmessage_list_format_line_message and\nmessage_list_document_formatted_message as\nmessage_list_format_document_message to have a common part in name\nwith similar Perl functions.  Update callers.\n\n* tta/C/main/errors.c, tta/perl/Texinfo/Report.pm: move code around.\n\nImprove POD and comments.\n"
    },
    {
      "commit": "b1a4fb001bd25b209c279f6cde2890ed57b80f98",
      "tree": "eff6c0461b908b536d1000a5cdaaf4a978800c25",
      "parents": [
        "e29f66fadea259d9d3b934f587c82400e161a376"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 00:44:51 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 00:44:51 2026 +0200"
      },
      "message": "* tta/C/Makefile.am (libperlcall_utils_la_SOURCES),\ntta/C/main/interpreter_use_types.h: rename use_interpreter_types.h as\ninterpreter_use_types.h.\n"
    },
    {
      "commit": "e29f66fadea259d9d3b934f587c82400e161a376",
      "tree": "9c627a70064b743330accf1fbf9ad523d642338b",
      "parents": [
        "affae13a1ad833c0486a4a6bfcfe385369dec77f"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 00:23:46 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu May 14 00:23:46 2026 +0200"
      },
      "message": "* doc/texi2any_api.texi (Other Dynamic Information): document\ncommand_is_in_referred_command_stack.\n"
    },
    {
      "commit": "affae13a1ad833c0486a4a6bfcfe385369dec77f",
      "tree": "bd51f68b35972eb1dddc4c375f3b3525a62c9a66",
      "parents": [
        "28d87f1d87d6c25b18c311229e98325942c98326"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 23:40:21 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 23:40:21 2026 +0200"
      },
      "message": "* doc/texi2any_api.texi (Document Structure): rename \"Tree Elements and\nDocument Structure\" as \"Document Structure\" and make it a section\ndirectly in \"Formatting HTML Output\".\n\n* doc/texi2any_api.texi (Output Units Information): rename \"Output\nUnits in User Defined Functions\" as \"Output Units Information\" and\nmove to \"Document Structure\".\n"
    },
    {
      "commit": "28d87f1d87d6c25b18c311229e98325942c98326",
      "tree": "699ecef72c7d774bfeefecb0c56984efc8d745fe",
      "parents": [
        "6614d9cf0e00f349544206e8b64b355edae75f29"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 19:10:40 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 19:10:40 2026 +0200"
      },
      "message": "* tta/C/convert/convert_html.c (html_prepare_converted_output_info):\naccess command flags only if an element is not a text element.\n\n* tta/perl/Makefile.tres, tta/perl/t/converters_tests.t\n(documentinfo_with_empty_line): new test with empty line in\n@documentinfo.\n"
    },
    {
      "commit": "6614d9cf0e00f349544206e8b64b355edae75f29",
      "tree": "d829747a683c4e3be156ec536c3857ba0822bcbb",
      "parents": [
        "b4d7ef16ed16f2061962936d69ae81060678bff4"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 19:08:07 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 19:08:07 2026 +0200"
      },
      "message": "Do not install nor put on the web the texi2any internals manual\n\n* doc/Makefile.am (wwwdoc-build, wwwdoc-install): do not generate the\ntexi2any internals manual.  The manual is only useful to develop\ntexi2any and can be with the sources only.\n\n* doc/tta_api/Makefile.am (AUTOMAKE_OPTIONS): add no-installinfo to\navoid installing the texi2any internals Info manual.\n"
    },
    {
      "commit": "b4d7ef16ed16f2061962936d69ae81060678bff4",
      "tree": "20d0747d6f0720723e1b1ac75384c7766119cfe8",
      "parents": [
        "62513b44bb7e2009b759b1f125a2dd2d9b2d571c"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 14:04:41 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 14:04:41 2026 +0200"
      },
      "message": "* tta/perl/t/z_misc/html_convert_tree.t,\ntta/perl/t/z_misc/test_fill_gaps_in_sectioning.t: use a combination of\nXS_parser_enabled call return true and core_modules_built set to\ndetermine if the XS Parser is used, as it is the good way to check\nthat the XS Parser is actually used.\n"
    },
    {
      "commit": "62513b44bb7e2009b759b1f125a2dd2d9b2d571c",
      "tree": "bd56e4e69ee5d657a5f4b5f5f22daba81898f221",
      "parents": [
        "d37183a47f772cb03959da3ce990359f7a075729"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 13:48:12 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 13 13:48:12 2026 +0200"
      },
      "message": "* Pod-Simple-Texinfo/pod2texi.pl, tta/perl/t/*.t: remove unused code,\nchange formatting of functions beginning.  Change in spacing.\nCosmetic changes.\n"
    },
    {
      "commit": "d37183a47f772cb03959da3ce990359f7a075729",
      "tree": "ca6840a31e9ce3988e9b963be02bd5479f5d6dc8",
      "parents": [
        "af94bbeb3effc2a0fc77ffaf0dac63449643222f"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Tue May 12 22:37:34 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Tue May 12 22:37:34 2026 +0200"
      },
      "message": "* util/htmlxref.d/Texinfo_GNU.cnf: add autosprintf.\n"
    },
    {
      "commit": "af94bbeb3effc2a0fc77ffaf0dac63449643222f",
      "tree": "57f7cd21af41c1b794177ba825f8af37fbcba593",
      "parents": [
        "c20916f4d0b6483644dbfa88a9383ab87476c804"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Tue May 12 01:06:23 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Tue May 12 01:06:23 2026 +0200"
      },
      "message": "* Pod-Simple-Texinfo/t/Pod-Simple-Texinfo.t: change formatting of\nfunctions beginning.  Change in spacing.\n\n* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm: update Pod\ndocumentation.\n"
    },
    {
      "commit": "c20916f4d0b6483644dbfa88a9383ab87476c804",
      "tree": "2c21b9bde25942eb3981592b35b475bfae030b20",
      "parents": [
        "d1012275887e88e9aea10abcd53b4095dafd1ad0"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 23:21:52 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 23:21:52 2026 +0200"
      },
      "message": "Replace explicitely by explicitly\n"
    },
    {
      "commit": "d1012275887e88e9aea10abcd53b4095dafd1ad0",
      "tree": "75b3ba185e5eb650498fa890e0de7f846a5dcab5",
      "parents": [
        "b89c32d66ff3389afc502cd906701ec856fd14ec"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 23:07:29 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 23:07:29 2026 +0200"
      },
      "message": "* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm: change formatting of\nfunctions beginning.  Use defined or exists if the value is not used.\nChange in spacing.\n"
    },
    {
      "commit": "b89c32d66ff3389afc502cd906701ec856fd14ec",
      "tree": "69fe9b377e7dd8ff5013283bcd42e13ba4a92854",
      "parents": [
        "cf1635e602539c3c79d17186c20aa6e81ada947f"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 22:51:55 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 22:51:55 2026 +0200"
      },
      "message": "* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm (%line_commands)\n(_texinfo_handle_element_end): keep %pod_head_commands_level levels\nout of %line_commands.\n\n* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm,\nPod-Simple-Texinfo/pod2texi.pl: change formatting of functions\nbeginning.  Use defined or exists if the value is not used.  Change in\nspacing.  Other cosmetic changes.\n"
    },
    {
      "commit": "cf1635e602539c3c79d17186c20aa6e81ada947f",
      "tree": "b8bed68c23ae2d83358e7d9945a4f8bc338c1d26",
      "parents": [
        "2b95829a001077f41e4725de9bd896b9c7fdcb7d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 20:16:54 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 20:16:54 2026 +0200"
      },
      "message": "* Pod-Simple-Texinfo/pod2texi.pl (BEGIN): update to match the change\nin Texinfo::ModulePath::init call.\n"
    },
    {
      "commit": "2b95829a001077f41e4725de9bd896b9c7fdcb7d",
      "tree": "2e8de8950c2eb31177a6cad50e9e337ca5e952b7",
      "parents": [
        "6324d619054c84195f119d226f60dbbbeb165e4e"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 18:42:21 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 18:42:21 2026 +0200"
      },
      "message": "* Pod-Simple-Texinfo/pod2texi.pl (pod2texi_help), POD: use document\ninstead of manual, convert instead of translate.  Other updates.\n\n* doc/texinfo.texi (Invoking @command{pod2texi}): use document\ninstead of manual, convert instead of translate.\n"
    },
    {
      "commit": "6324d619054c84195f119d226f60dbbbeb165e4e",
      "tree": "c0d7d8941c3dc62a0741009bf494c011128673e5",
      "parents": [
        "43f80288c8d4b4be8ddd42116e2e5e1d0814b2b9"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 14:28:40 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 14:28:40 2026 +0200"
      },
      "message": "Add missing reference results for test files\n"
    },
    {
      "commit": "43f80288c8d4b4be8ddd42116e2e5e1d0814b2b9",
      "tree": "b55c4156bc7f4d0b68ef6ac60fd564396b569ab4",
      "parents": [
        "a56ba6396fa2622896938ab0249b8f3439757688"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 13:22:35 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 13:22:35 2026 +0200"
      },
      "message": "* tta/perl/ext/epub3.pm (@epub_language, epub_setup, epub_init)\n(epub_finish): add epub_init handler where all the languages are\ngathered.  Use configured documentlanguage and documentscript and\ngo through global commands information language_commands to gather\nall the language in the document, and use all the languages to set\ndc:language elements.  Only add a language with @documentscript or\n@documentlanguagevariant if there was already a script or variant\nsetup, to avoid setting languages without following @documentscript or\n@documentlanguagevariant values set.\n\n* tta/perl/Makefile.tres, tta/perl/t/epub_tests.t\n(languages_scripts_variants): new test of multilingual document.\n"
    },
    {
      "commit": "a56ba6396fa2622896938ab0249b8f3439757688",
      "tree": "16e70638c8f2286ec49431e28abb9a4105d79081",
      "parents": [
        "6cfc1141c7f7244ab0d1da22d84b0332e9be752b"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 00:18:37 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 11 00:18:37 2026 +0200"
      },
      "message": "Generic metadata in HTML and DocBook in @documentinfo\n\n* tta/C/convert/build_html_perl_info.c (pass_sv_converter_info),\ntta/C/convert/convert_html.c (html_prepare_converted_output_info),\ntta/C/convert/format_html.c (html_default_format_begin_file)\n(html_default_format_node_redirection_page),\ntta/C/convert/html_converter_finish.c (html_free_converter),\ntta/C/convert/html_prepare_converter.c\n(html_conversion_initialization), tta/C/main/converter_types.h\n(CONVERTER), tta/perl/Texinfo/Convert/HTML.pm\n(_file_header_information, _default_format_begin_file)\n(_default_format_node_redirection_page),\ntta/perl/Texinfo/Convert/HTMLNonXS.pm (%available_converter_info)\n(_prepare_converted_output_info): add documentinfo_metadata\nto converter in C and to \u0027converter_info\u0027 in Perl with @documentinfo\ncontent except for metadata_commands.  Get in _file_header_information\nin Perl.  Output in file headers.\n\n* doc/texi2any_api.texi (Converter General Information): document\ndocumentinfo_metadata in converter information.\n\n* tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin):\ngather @documentinfo content except for metadata_commands and output\nin documentinfo element.\n\n* tta/perl/t/converters_tests.t (metadata_in_documentinfo),\ntta/perl/Makefile.tres: new test for metadata in @documentinfo.\n"
    },
    {
      "commit": "6cfc1141c7f7244ab0d1da22d84b0332e9be752b",
      "tree": "5fe863b32ae3a547cd79f5b558cdac7b0af0acd2",
      "parents": [
        "0fc9536737e9de8d64e098d0b06b0aeb03893f00"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 23:52:22 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 23:52:22 2026 +0200"
      },
      "message": "* tta/perl/ext/epub3.pm ($epub_doc_dest_dir): reindent.  Rename\n$epub_document_destination_directory as $epub_doc_dest_dir.\n"
    },
    {
      "commit": "0fc9536737e9de8d64e098d0b06b0aeb03893f00",
      "tree": "65ab2a8f807fc1032f1d3372e607554f38c4d722",
      "parents": [
        "589bc1f705e056509d77f48726f16666313c2f2c"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 23:28:29 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 23:28:29 2026 +0200"
      },
      "message": "Add missing test results\n"
    },
    {
      "commit": "589bc1f705e056509d77f48726f16666313c2f2c",
      "tree": "899dcd72ecb98d158d0beb7ffbce434b6dde95c0",
      "parents": [
        "c55a7d4fc4914694573fde0cab51734be240d82d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 16:59:41 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 16:59:41 2026 +0200"
      },
      "message": "* tta/C/api_for_swig/swig_element_types.h (TXI_CM_OTHER_FLAGS_LIST),\ntta/C/main/builtin_commands.h (CF_metadata),\ntta/C/main/command_data.awk, tta/data/command_data.txt: add metadata\nflag for @-commands with document metadata information that are\nsupposed to be handled explicitly in output formats conversion.\n\n* tta/perl/ext/epub3.pm: remove local definition of\n$metadata_commands, use Texinfo::Commands::metadata_commands.\n"
    },
    {
      "commit": "c55a7d4fc4914694573fde0cab51734be240d82d",
      "tree": "6158579a5e265f0dc8bd49648b0ca3053deedf79",
      "parents": [
        "5943d3521d368354b46256d047b848e215420415"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 16:25:12 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 10 16:25:12 2026 +0200"
      },
      "message": "Generic metadata in EPUB in @documentinfo\n\n* tta/perl/ext/epub3.pm (%metadata_commands, conversion_output_begin):\nconvert content of @documentinfo that is not an explicit @-command\nusually used for metadata in the \u003cmetadata\u003e EPUB element.\n\n* tta/perl/t/epub_tests.t (epub_metadata), tta/perl/Makefile.tres: new\ntest.\n"
    },
    {
      "commit": "5943d3521d368354b46256d047b848e215420415",
      "tree": "6865b3eac3bc2ef6576f9f51acdf24086847a2b0",
      "parents": [
        "c8a81e71b1bed72f1b4cf002db388348b7420781"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Sat May 09 22:48:26 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Sat May 09 22:49:00 2026 +0100"
      },
      "message": "Fix M-TAB moving before DEL-quoted cross-reference\n\n* info/scan.c (scan_reference_label) [hide-note-references\u003dOn]:\nIf \"quoting\" DEL bytes surround the reference label, remove them\nwhen rewriting the node contents.\n\nBecause these bytes are invisible, if the node position is placed\non one of these bytes, it would be advanced past that byte in\ndisplay_cursor_at_point, which is called in the main loop in\ninfo_read_and_dispatch.  Then the cursor would get \"stuck\"\nwhen trying to move before a cross-reference with M-TAB.\n\nReport from Aidan \u003caidanczhai@gmail.com\u003e.\n"
    },
    {
      "commit": "c8a81e71b1bed72f1b4cf002db388348b7420781",
      "tree": "7decd9d5106d6fed69ede0c457924cfe15eb393f",
      "parents": [
        "a3fe901cedabde05a1c0004591a7a3d9b77b9607"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 08 00:49:46 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 08 00:50:26 2026 +0200"
      },
      "message": "* doc/texi2any_api.texi (Text Tree Elements Conversion): document\nxml_format_text_with_numeric_entities.\n\n* doc/texi2any_api.texi (Commands Without Arguments Formatting):\ndocument expand_today.\n\n* doc/texi2any_api.texi (Accent Commands with Arguments Formatting):\ndocument %Texinfo::UnicodeData::unicode_accented_letters.\n\n* doc/texi2any_api.texi (Specific Formatting for Indices): add\nthe description of more indices related formatting functions.\n\n* doc/texi2any_api.texi (@code{@@verbatiminclude} Formatting)\n(Definition Commands Formatting)\n(Float and List of Floats Formatting)\n(Block Commands with @code{@@item})\n(Informative Commands): add nodes for diverse elements.\n\n* doc/texi2any_api.texi (Specific Functions for Specific Elements):\nremove previous \"Specific Functions for Specific Elements\" node and\nrename \"Functions and Data for Default Formatting\" as \"Specific\nFunctions for Specific Elements\".\n\n* doc/texi2any_api.texi (Specific Functions for Specific Elements):\ndocument simple_arg_text, empty_spaces_argument and\nTexinfo::Convert::NodeNameNormalization methods.\n\n* tta/perl/Texinfo/Convert/HTML.pm (_convert_float_command): call\nfloat_name_caption object oriented.\n\n* tta/perl/Texinfo/Convert/NodeNameNormalization.pm (@EXPORT_OK):\nexport convert_to_normalized.\n"
    },
    {
      "commit": "a3fe901cedabde05a1c0004591a7a3d9b77b9607",
      "tree": "270fe3eb52572f9b794b0caadff021042e1c92a7",
      "parents": [
        "75eecd7fadaac5630303ab239d87f6fe9142c234"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 15:37:07 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 08 00:50:26 2026 +0200"
      },
      "message": "* doc/texi2any_api.texi (Command Tree Element Conversion)\n(Functions and Data for Default Formatting): put information on\ndefault formatting functions used for diverse commands in a spearate\nchapter, keeping only formatting of commands that require calling some\nspecific functions in \"Command Tree Element Conversion\".\n"
    },
    {
      "commit": "75eecd7fadaac5630303ab239d87f6fe9142c234",
      "tree": "f4069efad3643dddec6905f7a015c143bbeeafc5",
      "parents": [
        "8f52315b114815fede7ede8442876e0ac0fcd631"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 21:34:37 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 21:34:37 2026 +0100"
      },
      "message": "Replace use of strcat and strncat\n\n* install-info/install-info.c (split_entry):\nRemove sole remaining use of strncat.\n"
    },
    {
      "commit": "8f52315b114815fede7ede8442876e0ac0fcd631",
      "tree": "6e000bc6c45b66d4c25ed683cc65e07e60808a80",
      "parents": [
        "08a416016711e90243d9022b3d044209e3b53aac"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 20:07:31 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 20:07:31 2026 +0100"
      },
      "message": "Replace use of strcat\n\n* install-info/install-info.c (format_entry):\nEliminate use of strcat and strncat.\n"
    },
    {
      "commit": "08a416016711e90243d9022b3d044209e3b53aac",
      "tree": "79ee83f49a61a6340b39bc708a666a47c9b6f724",
      "parents": [
        "1990bf2ea7b876cf61755b2735bce50ebe125b9f"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 19:10:43 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 19:10:43 2026 +0100"
      },
      "message": "Replace use of strcat\n\n* install-info/install-info.c (split_entry):\nEliminate use of strcat in this function, as it always needs to scan\nthe string from the beginning, which is a well-known defect in the use\nof this function.\nRemove pointless division by \"sizeof (char)\".\n"
    },
    {
      "commit": "1990bf2ea7b876cf61755b2735bce50ebe125b9f",
      "tree": "d270f5db53c5a445f589c03b6d431587c2b192f0",
      "parents": [
        "2368ebafd236c7dad585bd1df84bf86c8bcafa5d"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 18:23:03 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 18:23:03 2026 +0100"
      },
      "message": "* install-info/install-info.c (split_entry):\nOnly convert \"\\n\" to \"  \" a limited number of times, and allocate\nenough memory to do so.\n\nMemory overflow reported by LogicLuminary \u003cmemorylogicdev@gmail.com\u003e.\n"
    },
    {
      "commit": "2368ebafd236c7dad585bd1df84bf86c8bcafa5d",
      "tree": "e273b3a0885fee7ad279c1ab062d4b8262fee21a",
      "parents": [
        "475bb018537195c1821cbbdf13574a0b2e0243df"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 15:45:13 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 15:45:47 2026 +0100"
      },
      "message": "fix ChangeLog entry and comment\n"
    },
    {
      "commit": "475bb018537195c1821cbbdf13574a0b2e0243df",
      "tree": "346fb1f06510c58c33e550b57a0110098335eadb",
      "parents": [
        "67085201d112e74f45ce02698ad87c33f214fa97"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 15:35:13 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Wed May 06 15:39:34 2026 +0100"
      },
      "message": "fix ChangeLog entry and comment\n"
    },
    {
      "commit": "67085201d112e74f45ce02698ad87c33f214fa97",
      "tree": "787a10dc5a4ece9589394fbc6d0c9c7e9dea13a6",
      "parents": [
        "47d3fb9c6e5738e35b16ba053ecbedabd5619f75"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 13:33:46 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 13:34:24 2026 +0200"
      },
      "message": "* doc/texi2any_api.texi (Texinfo Tree Conversion Functions),\nPOD documentation: update/improve.\n"
    },
    {
      "commit": "47d3fb9c6e5738e35b16ba053ecbedabd5619f75",
      "tree": "460dc6126a43359f07f934734c84cf8158ec90ee",
      "parents": [
        "762b4a4d38b29f8af6c6db44f53b090ae39f5af2"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 12:20:35 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 13:34:24 2026 +0200"
      },
      "message": "* tta/C/api_for_swig/swig_interface.c\n(txi_ext_get_index_sorted_by_index), tta/C/convert/converter.c\n(lang_info_sorting_locale, get_converter_indices_sorted_by_index)\n(get_converter_indices_sorted_by_letter), tta/C/main/document.c\n(sorted_indices_by_index, sorted_indices_by_letter)\n(print_document_indices_sort_strings), tta/C/main/document_types.h,\ntta/C/main/utils.c, tta/perl/Texinfo/Convert/ConverterNonXS.pm\n(get_converter_indices_sorted_by_letter)\n(get_converter_indices_sorted_by_index), tta/perl/Texinfo/Document.pm\n(sorted_indices_by_letter, sorted_indices_by_index),\ntta/perl/Texinfo/DocumentNonXS.pm\n(print_document_indices_sort_strings): determine the\nlang_sorting_locale based either on COLLATION_LANGUAGE customization\nvariable or current_lang_translations lang and script in Converter\ncode, in get_converter_indices_sorted_by_index and\nget_converter_indices_sorted_by_letter instead of in Document code.\nMove lang_info_sorting_locale to converter.c.  Remove\nSORTING_LANG_INFO and new_sorting_lang_info.\n"
    },
    {
      "commit": "762b4a4d38b29f8af6c6db44f53b090ae39f5af2",
      "tree": "05545ff03082b39845331376190c8b674c8813aa",
      "parents": [
        "dc78a1a2d7e177d97bf041947e11b56b97ac9a93"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 00:57:46 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed May 06 13:34:24 2026 +0200"
      },
      "message": "* doc/texi2any_api.texi: add indices entries.\n\n* tta/perl/Texinfo/Indices.pm (setup_index_entries_sort_strings)\n(_setup_sortable_index_entries, sort_indices_by_letter): cosmetic\nchanges and variable names change.\n\nChanges in POD and comments.\n"
    },
    {
      "commit": "dc78a1a2d7e177d97bf041947e11b56b97ac9a93",
      "tree": "92ade8721285bf506e3aa0bb5e95907fc585869e",
      "parents": [
        "74d6d3ac8f1c2cbda12be71d6b1712153e195147"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Tue May 05 21:28:25 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Tue May 05 21:28:25 2026 +0100"
      },
      "message": "info: Fix infinite loop\n\n* info/session-cmd.c (forward_move_node_structure):\nReplace call to info_handle_pointer to follow \"Up\" pointer.\nCheck Up pointer is not to a different file, to avoid going\nall the way up to \"(dir)\".  Also check that it does not point\nto the current node, to avoid an infinite loop.  Fall through to\ncode handling last node in the file when we can\u0027t go Up any more.\nRemove braces and extra level of indentation.\n\nAn infinite loop occured when the \"dir\" node had an Up node.\nReport from Aidan \u003caidanczhai@gmail.com\u003e.\n"
    },
    {
      "commit": "74d6d3ac8f1c2cbda12be71d6b1712153e195147",
      "tree": "2e3379124810dc671174c30df2e10207f13db89d",
      "parents": [
        "e0be926a9b375b9d2d86e695ac4f3e9879620222"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Mon May 04 20:15:37 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Mon May 04 20:15:53 2026 +0100"
      },
      "message": "* doc/texinfo.tex (@documentlanguagevariant, @documentscript):\nAdd stub implementations.\n"
    },
    {
      "commit": "e0be926a9b375b9d2d86e695ac4f3e9879620222",
      "tree": "377faf133a9e7b3ce4d45615e8be89fd069f8911",
      "parents": [
        "8b9e3ba47dbde67f4d16d8e9c2b68365a0d46558"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 04 13:12:11 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon May 04 13:12:11 2026 +0200"
      },
      "message": "Add missing files for tests\n"
    },
    {
      "commit": "8b9e3ba47dbde67f4d16d8e9c2b68365a0d46558",
      "tree": "c6bd41357abe6762b785f9251dea544a9d470ec9",
      "parents": [
        "955183f036f595d402cccdcf9bba04944c7d07c0"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 03 21:19:39 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 03 21:21:46 2026 +0200"
      },
      "message": "* tta/C/convert/get_converter_perl_info.c (get_hv_lang_translation)\n(copy_sv_options_for_convert_text), tta/C/main/get_perl_info.c\n(get_lang_translation_sv),\ntta/perl/XSTexinfo/parser_document/TranslationsXS.xs\n(cache_translate_string): add get_hv_lang_translation and\nget_lang_translation_sv based on copy_sv_options_for_convert_text\ncode.  Use in TranslationsXS.xs cache_translate_string.\n\n* tta/C/api_for_swig/swig_interface.c\n(txi_ext_get_index_sorted_by_index), tta/C/convert/converter.c\n(get_converter_indices_sorted_by_index)\n(get_converter_indices_sorted_by_letter), tta/C/main/document.c\n(lang_info_sorting_locale, sorted_indices_by_index)\n(sorted_indices_by_letter, print_document_indices_sort_strings),\ntta/C/main/document.h (SORTING_LANG_INFO), tta/C/main/utils.c\n(new_sorting_lang_info), tta/perl/Texinfo/Convert/ConverterNonXS.pm\n(get_converter_indices_sorted_by_letter), tta/perl/Texinfo/Document.pm\n(sorted_indices_by_letter, sorted_indices_by_index),\ntta/perl/Texinfo/DocumentNonXS.pm\n(print_document_indices_sort_strings),\ntta/perl/XSTexinfo/convert/ConvertConverterXS.xs\n(get_converter_indices_sorted_by_index): setup information on\nlanguage for sorting based COLLATION_LANGUAGE or on current lang\ntranslations lang_info in a SORTING_LANG_INFO structure in\nget_converter_indices_sorted_by_*, using new_sorting_lang_info in C.\nUse this information in sorted_indices_by_* to determine the\nlanguage to use for sorting, based either on COLLATION_LANGUAGE\nor on the main language and script from the lang_info, using\nlang_info_sorting_locale in C.\n\n* tta/perl/Texinfo/Indices.pm (_setup_collator): rename $locale_lang\nas $lang_sorting_locale.\n\n* tta/tests/other/Makefile.am (EXTRA_DIST),\ntta/tests/other/index_collation_script_test.texi,\ntta/tests/other/list-of-tests\n(index_collation_script_test_documentlanguage_collation): add test\nwith documentscript and DOCUMENTLANGUAGE_COLLATION set.  This test is\nnot final, as the order is not different with and without the\ndocumentscript for the selected index entries.\n\n* tta/tests/other/list-of-tests: comment out tests of\nXS_STRXFRM_COLLATION_LOCALE.\n"
    },
    {
      "commit": "955183f036f595d402cccdcf9bba04944c7d07c0",
      "tree": "579b5ad7aa66e7a48fe220340b8f644329ceb0d8",
      "parents": [
        "f701842d4e1b4d6f3a1deb49822a4ea571d642c9"
      ],
      "author": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Sun May 03 19:20:58 2026 +0100"
      },
      "committer": {
        "name": "Gavin Smith",
        "email": "gavinsmith0123@gmail.com",
        "time": "Sun May 03 19:20:58 2026 +0100"
      },
      "message": "* doc/texinfo.texi (Internationalization, Setting the language):\nGrammar fixes.\n"
    },
    {
      "commit": "f701842d4e1b4d6f3a1deb49822a4ea571d642c9",
      "tree": "185a3a9b15492450d390ab278e4d14e700512b3a",
      "parents": [
        "fcebc0156d4ea5af1f444b91a4e492dff04a15df"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 03 12:14:14 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sun May 03 12:14:14 2026 +0200"
      },
      "message": "document @documentscript and @documentlanguagevariant\n\n* doc/texinfo.texi (Inserting Accents): add a pragraph stating that\naccented chracters and other can in general be input as encoded\ncharacters.\n\n* doc/texinfo.texi (Internationalization): be more precise on the\ncurrent status of Internationalization in Texinfo.\n\n* doc/texinfo.texi (Internationalization): introduce the @-commands\nand elements of a language locale.\n\n* doc/texinfo.texi (Setting the language): rename\n@code{@@documentlanguage} as \"Setting the language\".  Document that\nthe IANA language subtag registry is used, use CC for the country code\nand do not use a precise ISO 639 standard.\n\n* doc/texinfo.texi (Setting the language)\n(Customization Variables for @@-Commands)\n(Global Customization Variables, Command List)\n(Internationalization of Document Strings): add\n@documentlanguagevariant and @documentscript.\n\n* doc/texinfo.texi (Invoking @command{texi2any}): update description\nof --document-language.\n"
    },
    {
      "commit": "fcebc0156d4ea5af1f444b91a4e492dff04a15df",
      "tree": "d6e09b7fb071304c8abecc4789261fd31c969cb8",
      "parents": [
        "658c89beddf06dfa3119fa1a20e48d400dd7b23d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 14:47:33 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 14:47:33 2026 +0200"
      },
      "message": "Add missing test result file\n"
    },
    {
      "commit": "658c89beddf06dfa3119fa1a20e48d400dd7b23d",
      "tree": "813b660b371011a59a3a9d3005f90c7f7600764b",
      "parents": [
        "5c2da29d340527d0638dadbaa59699e26f3ed5d2"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 11:31:59 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 11:31:59 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/HTML.pm (bcp47_tag),\ntta/perl/t/init/translated_strings_customization.pm: rename\nbcp47_locale as bcp47_tag.\n\n* doc/texi2any_api.texi (Translated Strings Customization): document\nthe lang_info argument of format_translate_message and xpg_locale and\nbcp47_tag use.\n\n* tta/perl/init/documentation_examples.pm, doc/texi2any_api.texi\n(Translated Strings Customization): use a country code in language to\nshow an XPG locale name in example.\n"
    },
    {
      "commit": "5c2da29d340527d0638dadbaa59699e26f3ed5d2",
      "tree": "8010526c74ffbd65567ace840ff8e0b999e953c3",
      "parents": [
        "f38a794a2d4036bbc51772b6fc293063a48c4c6c"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 10:48:21 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 10:48:21 2026 +0200"
      },
      "message": "object-based interface for format_translate_message lang info argument\n\n* tta/perl/Texinfo/Translations.pm (get_lang_info_xpg_locale): rename\nget_lang_info_xdg_locale as get_lang_info_xpg_locale.  Update callers.\n\n* tta/perl/Texinfo/Convert/HTML.pm (Texinfo::Convert::HTML::Language)\n(new, bcp47_locale, xpg_locale): new package turning lang_info to a\nblessed reference, with two accessors xpg_locale and bcp47_locale.\n\n* tta/perl/Texinfo/Convert/HTML.pm ($unknown_lang_info)\n(_html_cache_translate_string): call\nTexinfo::Convert::HTML::Language::new on the lang_info argument of\nformat_translate_message.\n\n* tta/C/convert/call_html_perl_function.c\n(call_formatting_function_format_translate_message): bless lang_info\nargument of format_translate_message into the\nTexinfo::Convert::HTML::Language class.\n\n* tta/perl/t/init/translated_strings_customization.pm (%translations)\n(_texi2any_tests_format_translate_message),\ntta/perl/t/init_files_tests.t (customize_translations): use bcp47\nlocale name, add test of language with country code.\n"
    },
    {
      "commit": "f38a794a2d4036bbc51772b6fc293063a48c4c6c",
      "tree": "00efda80f64fb561b96c6befb6c02802e4b1f18a",
      "parents": [
        "b86e350e88052bad24e0e7c419740a6778e020b1"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 09:42:17 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Sat May 02 09:42:17 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Translations.pm: rename translations argument as\ntranslations_cache.\n"
    },
    {
      "commit": "b86e350e88052bad24e0e7c419740a6778e020b1",
      "tree": "319068d61e3bb4d6f33cfbfea413ef0fbb32eb0e",
      "parents": [
        "5fcf19b5774986fd6e39919af0928b1a3fdbdd99"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 23:46:32 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 23:46:32 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (build_html_translated_names),\ntta/perl/Texinfo/Translations.pm (_init_lang_translation)\n(_set_lang_info_translation, $converters_translation_cache),\ntta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string): use\nlang_translations array references as\n$Texinfo::Translations::converters_translation_cache values, not\ntranslated strings hash.  The translated strings hash is last in the\nlang_translations array references and now set in\n_init_lang_translation.  Preset the empty string lang_translations in\nconverters_translation_cache for the unknown language.\n"
    },
    {
      "commit": "5fcf19b5774986fd6e39919af0928b1a3fdbdd99",
      "tree": "1ea4576dcafa3e80b98501671b9137a7a488a748",
      "parents": [
        "0eac30a4ff8ab31612e40ae768e0e13eea7be1de"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 22:30:01 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 22:30:01 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Translations.pm (_lang_info_bcp47_locale): rename\nlang_info_bcp47_locale as _lang_info_bcp47_locale.\n\n* tta/C/main/translations.c (set_lang_info_translation),\ntta/perl/Texinfo/Translations.pm (_set_lang_info_translation): set\nbcp47_locale in set_lang_info_translation instead of right before in\ncallers.  Update callers.\n\n* tta/C/main/translations.c (new_element_language_translation),\ntta/perl/Texinfo/Translations.pm (new_element_language_translation):\ninline new_lang_info in new_element_language_translation.  Remove\nnew_lang_info.\n"
    },
    {
      "commit": "0eac30a4ff8ab31612e40ae768e0e13eea7be1de",
      "tree": "27c91e0a434441b5174d404989e2e005698a61e9",
      "parents": [
        "a7cb5cbe7c4f8ce115ba856a52cdd96919938f6b"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 21:58:02 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 21:58:02 2026 +0200"
      },
      "message": "* tta/C/main/translations.c (set_translations_documentlanguage)\n(set_translations_documentscript)\n(set_translations_documentlanguagevariant),\ntta/perl/Texinfo/Translations.pm (set_translations_documentlanguage)\n(set_translations_documentscript)\n(set_translations_documentlanguagevariant): do not check the current\nlang translations to return it, as it can only happen if the\nuser use the same command twice, which is not supposed to happen.\n"
    },
    {
      "commit": "a7cb5cbe7c4f8ce115ba856a52cdd96919938f6b",
      "tree": "711322b24902545368e48740f7dca9581081a42a",
      "parents": [
        "1f62f2d57ec410008f5903713fe0764eed54e9b3"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 20:56:50 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 20:56:50 2026 +0200"
      },
      "message": "* tta/C/convert/convert_html.c (html_prepare_converted_output_info),\ntta/C/convert/html_prepare_converter.c (html_setup_output),\ntta/C/main/translations.c (reset_lang_translation_from_customization):\nadd reset_lang_translation_from_customization and use it in\nhtml_prepare_converted_output_info and html_setup_output.\n"
    },
    {
      "commit": "1f62f2d57ec410008f5903713fe0764eed54e9b3",
      "tree": "b91541192baa88ff5d611f42017a392d6cf23fc0",
      "parents": [
        "5a9812d5328c46301490e24c02e0060cb5154da9"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 19:03:14 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 19:03:14 2026 +0200"
      },
      "message": "* tta/C/main/convert_utils.c (definition_category_tree),\ntta/perl/Texinfo/Convert/Utils.pm (definition_category_tree): remove\nunused command_line_encoding argument.  Update callers.\n"
    },
    {
      "commit": "5a9812d5328c46301490e24c02e0060cb5154da9",
      "tree": "44d7945b2d275f7bd5bc196ca7d11e97c601583a",
      "parents": [
        "10920fb35044438ee9d1775e7c46718f328d732f"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 17:03:30 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 17:03:30 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (build_html_translated_names):\npass a full current_lang_translations including the translated strings\ncache hash, setup if needed.\n\n* tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string):\nupdate code now that lang translations always have a translation cache\nassociated.\n"
    },
    {
      "commit": "10920fb35044438ee9d1775e7c46718f328d732f",
      "tree": "6ee00179041b43fb56cbf9bc585570767c86a225",
      "parents": [
        "b63e73617cd05daba16af2b00b0bf82b545325f1"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 15:35:47 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 15:35:47 2026 +0200"
      },
      "message": "* tta/C/main/get_perl_info.c (get_lang_info_hv): get bcp47_locale from\nPerl data.\n\n* tta/C/main/get_perl_info.c (set_lang_info_copy_translation): rename\nget_lang_info_translation as set_lang_info_copy_translation.  Update\ncaller.\n\n* tta/C/main/get_perl_info.c (new_lang_info_copy)\n(set_lang_info_copy_translation): add new_lang_info_copy based on\nnew_copy_translation.  Inline the remaining of new_copy_translation in\nset_lang_info_copy_translation.\n\n* tta/perl/Texinfo/Translations.pm (_init_lang_translation)\n(_new_lang_info): rename new_lang_info as _new_lang_info and\n_set_lang_info_translation as _init_lang_translation.\n\n* tta/perl/Texinfo/Translations.pm (%parser_translation_cache): rename\n%indices_lang_translations as %parser_translation_cache.\n\n* tta/perl/Texinfo/Translations.pm (complete_indices): call\nnew_element_language_translation instead of two levels caching.\n"
    },
    {
      "commit": "b63e73617cd05daba16af2b00b0bf82b545325f1",
      "tree": "f8619304499b5c699d67513793396df6734579c5",
      "parents": [
        "43458161ac0a760f5ad6e39d08f5bdb652cd4ec4"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 09:53:28 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Fri May 01 09:53:28 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Translations.pm (new_element_language_translation):\nadd a translations cache argument and call _set_lang_info_translation.\nUpdate callers.\n\n* tta/perl/Texinfo/Translations.pm: remove new_lang_translations.\n"
    },
    {
      "commit": "43458161ac0a760f5ad6e39d08f5bdb652cd4ec4",
      "tree": "ff231c9c11e9d05815ca75f0749cd0dcef98e377",
      "parents": [
        "b053abcf648df01526f6ff0989a5694d132a1826"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu Apr 30 23:36:26 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu Apr 30 23:36:26 2026 +0200"
      },
      "message": "* tta/C/main/translations.c (set_translations_documentscript)\n(set_translations_documentlanguagevariant): copy lang only if it is\nset.\n\n* tta/perl/Makefile.tres, tta/perl/t/languages.t\n(documentscript_documentlanguagevariant)\n(documentlanguagevariant_documentscript): add tests for current lang\ntranslations without @documentlanguage being set.\n"
    },
    {
      "commit": "b053abcf648df01526f6ff0989a5694d132a1826",
      "tree": "39641560c74ee983e8c60c5f683d17b4767966a5",
      "parents": [
        "649901e27e4217db2ff40bce5e7a1fc19dec2dc3"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu Apr 30 23:33:55 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu Apr 30 23:33:55 2026 +0200"
      },
      "message": "* tta/C/main/translations.c: move code around.\n"
    },
    {
      "commit": "649901e27e4217db2ff40bce5e7a1fc19dec2dc3",
      "tree": "fc045cec52a0782fcc2a581362ba875ddaa32580",
      "parents": [
        "19355210324b77e69b3cbee79e09da7767019758"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu Apr 30 23:06:09 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Thu Apr 30 23:06:09 2026 +0200"
      },
      "message": "* tta/C/main/translations.c (new_element_language_translation): add\nlang translation cache arguments, such that they are always set by the\ncallers, call set_lang_info_translation.  Update callers.\n\n* tta/C/parsetexi/indices.c (complete_indices): call\nnew_element_language_translation.\n\n* tta/C/main/translations.c: remove new_element_lang_info and\nnew_lang_translations.  Make more functions static.\n\n* tta/C/main/translations.c (cache_translate_string): simplify now\nthat translations can only be unset if the lang_translation argument\nis NULL.\n\n* tta/C/main/translations.c (unknown_lang_translations)\n(set_output_strings_translate_method, cache_translate_string):\nadd a specific lang translation tree list for unknown language, and\nsimpler code for that case.  Remove unknown_lang_info.\n"
    },
    {
      "commit": "19355210324b77e69b3cbee79e09da7767019758",
      "tree": "c5a2f85eb18a4f2f13cd4c02fd14cb6815824696",
      "parents": [
        "e2d91a0bb1a6ca4c7ccb295742be28b7f2883379"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 23:30:45 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 23:30:45 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (build_html_translated_names):\nbuild language_env again, reverting recent change, in case\ncache_translate_string is not overriden.\n\n* tta/perl/Texinfo/TransformationsNonXS.pm\n(complete_tree_nodes_missing_menu, regenerate_master_menu): set\nthe translation cache when calling set_preamble_language_commands.\n\n* tta/C/main/translations.c (cache_translate_string),\ntta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string): move\ncode around to have all the code related to finding the translation\nhash before the code finding the string and context in the hash.\nReorganize Perl code to be more like C code, to first find\ntranslations hash.\n"
    },
    {
      "commit": "e2d91a0bb1a6ca4c7ccb295742be28b7f2883379",
      "tree": "5addba88cc9e43de7219069746f3bc9fdde1744b",
      "parents": [
        "211fe63439cd388ceb01e9e10b910a498dda946d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 20:39:07 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 20:39:07 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (build_html_translated_names):\ninline set_perl_lang_translations in build_html_translated_names and\nremove set_perl_lang_translations.\n"
    },
    {
      "commit": "211fe63439cd388ceb01e9e10b910a498dda946d",
      "tree": "5064fa31bf968c399f0a1be485f3df380ec971b3",
      "parents": [
        "5d5ae6a20011da044965e27f3dcd5544be2d44f6"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 19:50:58 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 19:50:58 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (set_perl_lang_translations):\ndo not pass language_env, it is not needed as cache_translate_string\nis overriden.\n"
    },
    {
      "commit": "5d5ae6a20011da044965e27f3dcd5544be2d44f6",
      "tree": "5a3e851c1760d3f73a84db81d5d9ec5d8e0924ad",
      "parents": [
        "44afc1c125b1313eb59f848d871e09c6b0cfe808"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 19:47:40 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 19:47:40 2026 +0200"
      },
      "message": "add const for current lang translation in argument and return\n"
    },
    {
      "commit": "44afc1c125b1313eb59f848d871e09c6b0cfe808",
      "tree": "fbc0d165bf4bc8497232b003a5efcd3a765d3bb6",
      "parents": [
        "fee382372d229c46a2b0474a298fc11867d9bb0d"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 18:49:36 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 18:49:36 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (set_perl_lang_translations):\ndo not pass translations at all, it is not needed as\ncache_translate_string is overriden.\n"
    },
    {
      "commit": "fee382372d229c46a2b0474a298fc11867d9bb0d",
      "tree": "6f5d35adffc1bd30c63d18f5561c28c941326cd8",
      "parents": [
        "2da1c39bbcc441a0aacf5c66bd6c58102e5b1c99"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 17:40:53 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 17:40:53 2026 +0200"
      },
      "message": "* tta/C/convert/build_html_perl_state.c (set_perl_lang_translations):\nupdate for the changes in Perl code, by using converters_translation_cache\ndirectly.\n"
    },
    {
      "commit": "2da1c39bbcc441a0aacf5c66bd6c58102e5b1c99",
      "tree": "bda8274bf1e98f79ca81f0f58d8cea870619fa25",
      "parents": [
        "4b2cbc09ea1a9b3d5fe6f79ead2239631ddf7816"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 17:12:36 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 17:12:36 2026 +0200"
      },
      "message": "gnulib update\n\n* tta: run \"gnulib-tool --add-import\".\n"
    },
    {
      "commit": "4b2cbc09ea1a9b3d5fe6f79ead2239631ddf7816",
      "tree": "54105f551ab75f4b2f8166c8ff458158155423e3",
      "parents": [
        "da97b48f5a02c914ab188b73b403cdd210cca3e9"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 16:57:13 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 16:57:13 2026 +0200"
      },
      "message": "revert 2026-04-22 change of bcp47.c now fixed upstream\n"
    },
    {
      "commit": "da97b48f5a02c914ab188b73b403cdd210cca3e9",
      "tree": "864456c905978aaabfd8f92bf2edef17c475d7c1",
      "parents": [
        "c49562a65dbe92f172e3bd5a9f4cc93e77a674ae"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 16:42:53 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 16:42:53 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/Converter.pm (converter_perl_release)\n(converter_set_documentlanguage, converter_set_documentscript)\n(converter_set_documentlanguagevariant)\n(set_converter_preamble_language_commands),\ntta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text): do\nnot add a \u0027translations\u0027 state in converters, pass directly\n$Texinfo::Translations::converters_translation_cache argument.\n"
    },
    {
      "commit": "c49562a65dbe92f172e3bd5a9f4cc93e77a674ae",
      "tree": "2ec8dce3ae4e1a3224ddcef7ae57cdf45a84b72b",
      "parents": [
        "b21de36bb9e4f2298721623fa8c20471f13837c2"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 11:59:21 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Wed Apr 29 11:59:21 2026 +0200"
      },
      "message": "* README-hacking: add a note to update TXI_DOCUMENT_TRANSLATED_STRINGS_NR\n\n* tta/C/main/translations.c (converters_translation_cache),\ntta/C/parsetexi/indices.c (parser_translation_cache),\ntta/perl/Texinfo/Translations.pm ($converters_translation_cache)\n($parser_translation_cache): rename translation_cache as\nconverters_translation_cache and\nlang_translations_cache/lang_translations as parser_translation_cache.\nUpdate users\n\n* tta/C/main/translations.c (get_lang_info_translation): add const.\n"
    },
    {
      "commit": "b21de36bb9e4f2298721623fa8c20471f13837c2",
      "tree": "0e240b59e6e92000835bb62bad8ca8bab4d6712e",
      "parents": [
        "0fe9e52396aca027c4587018bd266fe20fe9f3a8"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Tue Apr 28 23:28:01 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Tue Apr 28 23:28:01 2026 +0200"
      },
      "message": "* tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text)\n(convert, output): inline and remove\n_initialize_converter_text_options_encoding and\n_initialize_text_options_encoding.\n\n* tta/C/main/convert_to_text.c, tta/perl/Texinfo/Convert/Text.pm:\nremove text_set_language, text_set_script, text_set_languagevariant,\nset_language, set_script and set_languagevariant.\n\n* tta/C/convert/convert_html.c (html_prepare_converted_output_info):\nremove language_variants unused variable code.\n\n* tta/perl/t/z_misc/convert_to_text.t: add a test with a\n@documentlanguage before the translated appendix @-command.\n"
    },
    {
      "commit": "0fe9e52396aca027c4587018bd266fe20fe9f3a8",
      "tree": "f7e7ae41b4e2c2631669a7c80c56c3c85eda3292",
      "parents": [
        "94e345ccc5fe07122fd533b6d5ddfd9de71d974a"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 21:35:53 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 21:35:53 2026 +0200"
      },
      "message": "* tta/C/main/build_perl_info.c (build_lang_info): build bcp47_locale\nfield too.\n"
    },
    {
      "commit": "94e345ccc5fe07122fd533b6d5ddfd9de71d974a",
      "tree": "ba309353436f3554f4eac0789cf30cde6d624995",
      "parents": [
        "c9670289012c697b2cbc1cca1dc23a2e33e3e9ac"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 21:19:26 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 21:19:26 2026 +0200"
      },
      "message": "* tta/C/main/manipulate_tree.c (parse_node_manual): destroy node if it\nis not registered.\n\n* tta/C/main/translations.c (set_translations_documentlanguage): free\nbcp47_locale.\n"
    },
    {
      "commit": "c9670289012c697b2cbc1cca1dc23a2e33e3e9ac",
      "tree": "b3010d09699eccd21f5c66edb6bfd68af0db1cea",
      "parents": [
        "1b60cf08c2ebae1743560adbe11deaca5eb28226"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 15:58:47 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 15:58:47 2026 +0200"
      },
      "message": "* tta/C/main/build_perl_info.c (pass_global_info): remove unsed\nvariables.\n"
    },
    {
      "commit": "1b60cf08c2ebae1743560adbe11deaca5eb28226",
      "tree": "5cbb47a458e4494b93f1515403a5708cbd1679df",
      "parents": [
        "566a4a7509c7438c7716375a00ace83f613fad07"
      ],
      "author": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 15:51:16 2026 +0200"
      },
      "committer": {
        "name": "Patrice Dumas",
        "email": "pertusus@free.fr",
        "time": "Mon Apr 27 15:51:16 2026 +0200"
      },
      "message": "Document language_commands global commands data\n"
    }
  ],
  "next": "566a4a7509c7438c7716375a00ace83f613fad07"
}
