summaryrefslogtreecommitdiff
path: root/macros/texinfo/texinfo/tp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-12-02 03:04:31 +0000
committerNorbert Preining <norbert@preining.info>2022-12-02 03:04:31 +0000
commit42cda2ed3fa7472e6c064fdbf998d636556343db (patch)
tree0995420f9b6b31ad8bef5b0e61f35bc7338bab42 /macros/texinfo/texinfo/tp
parent77362f5f4b083c21c2044b0c54d228da42804c72 (diff)
CTAN sync 202212020304
Diffstat (limited to 'macros/texinfo/texinfo/tp')
-rw-r--r--macros/texinfo/texinfo/tp/Makefile.in7
-rw-r--r--macros/texinfo/texinfo/tp/Makefile.tres7
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Common.pm4
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm6
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/DocBook.pm22
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm54
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/IXIN.pm16
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/IXINSXML.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Info.pm3
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/LaTeX.pm123
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/NodeNameNormalization.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Paragraph.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/PlainTexinfo.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm68
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Texinfo.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoMarkup.pm18
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoSXML.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoXML.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Text.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/TextContent.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Unicode.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Convert/Utils.pm3
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/MiscXS.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Parser.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/ParserNonXS.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Structuring.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/Transformations.pm2
-rw-r--r--macros/texinfo/texinfo/tp/Texinfo/XSLoader.pm2
-rw-r--r--macros/texinfo/texinfo/tp/t/30sectioning.t20
-rw-r--r--macros/texinfo/texinfo/tp/t/converters_tests.t1
-rw-r--r--macros/texinfo/texinfo/tp/t/html_tests.t4
-rw-r--r--macros/texinfo/texinfo/tp/t/info_tests.t27
-rw-r--r--macros/texinfo/texinfo/tp/t/results/converters_tests/image_formatting.pl198
-rw-r--r--macros/texinfo/texinfo/tp/t/results/coverage_braces/empty_commands.pl2
-rw-r--r--macros/texinfo/texinfo/tp/t/results/formatting/direntry_dircategory_info_split.pl428
-rw-r--r--macros/texinfo/texinfo/tp/t/results/html_tests/empty_titlefont.pl95
-rw-r--r--macros/texinfo/texinfo/tp/t/results/info_tests/empty_arguments.pl136
-rw-r--r--macros/texinfo/texinfo/tp/t/results/info_tests/empty_caption.pl306
-rw-r--r--macros/texinfo/texinfo/tp/t/results/info_tests/float_without_type.pl259
-rw-r--r--macros/texinfo/texinfo/tp/t/results/morecoverage/formatting_fr.pl456
-rw-r--r--macros/texinfo/texinfo/tp/t/results/morecoverage/texi_formatting.pl456
-rw-r--r--macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_node_reference.pl471
-rw-r--r--macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_reference.pl382
-rw-r--r--macros/texinfo/texinfo/tp/t/results/sectioning/recursive_self_section_reference.pl223
-rw-r--r--macros/texinfo/texinfo/tp/tests/coverage_macro.texi1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/anchor.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter.html4
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter2.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting.html3
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_abt.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_ovr.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_toc.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/index.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/s_002d_002dect_002cion.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsection.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-_0060_0060simple_002ddouble_002d_002d.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_docbook/formatting.xml8
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/formatting.opf71
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/11-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/10-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/16-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/14-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/17-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/16-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/19-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/17-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/20-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/19-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/21-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/21-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/23-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/25-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/27-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/26-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/29-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/27-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/30-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/29-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/31-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/30-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/33-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/36-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/35-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/37-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/42-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/38-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/43-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/43-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/44-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/47-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/45-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/48-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/47-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/49-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/52-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/50-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/53-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/52-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/54-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/54-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/55-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/10-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/56-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/14-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/57-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/16-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/59-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/17-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/9-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/19-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml70
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting.xhtml31
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/formatting.opf71
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/11-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/21-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/16-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/25-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/17-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/26-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/19-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/27-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/20-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/29-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/21-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/30-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/23-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/36-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/27-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/37-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/29-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/38-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/30-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/43-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/31-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/33-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/48-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/35-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/49-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/42-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/50-f--ile.png)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/43-f--ile.png (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/44-f--ile.e--xt (renamed from macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.e--xt)0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/45-f--ile.png0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.e--xt0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.png0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/53-f--ile.e--xt0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.png0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/55-f--ile.png0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/56-f--ile.e--xt0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/57-f--ile.png0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/59-f--ile.e--xt0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/9-f--ile.png0
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.css8
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.js39
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml70
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml31
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/anchor.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter.html4
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter2.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_abt.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_ovr.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_toc.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/index.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/s_002d_002dect_002cion.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsection.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-_0060_0060simple_002ddouble_002d_002d.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html32/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html4
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/anchor.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html4
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter2.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_abt.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_fot.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_ovr.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_toc.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/index.html3
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/s_002d_002dect_002cion.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsection.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_info/formatting.info165
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_inline_css/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_latex/formatting.tex15
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_macro_expand/formatting.texi5
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_mathjax/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/anchor.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter.html4
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter2.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_abt.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_fot.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_ovr.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_toc.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/index.html3
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/s_002d_002dect_002cion.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsection.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt800
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_rawtext/formatting.txt2
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_textcontent/formatting4
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xhtml/formatting.html6
-rw-r--r--macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xml/formatting.xml5
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/anchor.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter.html4
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.htm1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/s_002d_002dect_002cion.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_abt.htm1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_fot.htm1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_ovr.htm1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_toc.htm1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsection.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-_0060_0060simple_002ddouble_002d_002d.html1
-rw-r--r--macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html1
-rw-r--r--macros/texinfo/texinfo/tp/texi2any.pl13
200 files changed, 3902 insertions, 1499 deletions
diff --git a/macros/texinfo/texinfo/tp/Makefile.in b/macros/texinfo/texinfo/tp/Makefile.in
index d405ecb668..6195d87a7f 100644
--- a/macros/texinfo/texinfo/tp/Makefile.in
+++ b/macros/texinfo/texinfo/tp/Makefile.in
@@ -2180,6 +2180,7 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/html_tests/documentdescription.pl \
t/results/html_tests/empty_lines_at_beginning_no_setfilename.pl \
t/results/html_tests/empty_lines_at_beginning_no_setfilename_no_element.pl \
+ t/results/html_tests/empty_titlefont.pl \
t/results/html_tests/footnotestyle_separate_html_text_no_monolithic.pl \
t/results/html_tests/footnotestyle_separate_late.pl \
t/results/html_tests/footnotestyle_separate_late/res_html/chap-f.html \
@@ -2384,12 +2385,15 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/info_tests/colons_in_index_entries_and_node_no_quoting/res_info/colons_in_index_entries_and_node_no_quoting.info \
t/results/info_tests/def_in_copying.pl \
t/results/info_tests/direntry_dircategory_and_commands.pl \
+ t/results/info_tests/empty_arguments.pl \
+ t/results/info_tests/empty_caption.pl \
t/results/info_tests/encoding_us_ascii.pl \
t/results/info_tests/end_of_line_command_in_node_lines.pl \
t/results/info_tests/end_of_line_command_in_node_lines/res_info/end_of_line_command_in_node_lines.info \
t/results/info_tests/error_in_footnote.pl \
t/results/info_tests/file_only_png.pl \
t/results/info_tests/float_long_captions.pl \
+ t/results/info_tests/float_without_type.pl \
t/results/info_tests/image_and_punctuation.pl \
t/results/info_tests/image_and_spaces_formatting.pl \
t/results/info_tests/image_extension.pl \
@@ -3265,6 +3269,8 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/sectioning/contents_with_only_top_node.pl \
t/results/sectioning/double_node_anchor_float.pl \
t/results/sectioning/double_part.pl \
+ t/results/sectioning/double_recursive_self_section_node_reference.pl \
+ t/results/sectioning/double_recursive_self_section_reference.pl \
t/results/sectioning/double_top.pl \
t/results/sectioning/double_top_in_menu.pl \
t/results/sectioning/double_top_section.pl \
@@ -3351,6 +3357,7 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/sectioning/protected_node_parentheses.pl \
t/results/sectioning/raiselowersections.pl \
t/results/sectioning/rec_nodes.pl \
+ t/results/sectioning/recursive_self_section_reference.pl \
t/results/sectioning/ref_to_top.pl \
t/results/sectioning/ref_to_unknown_node.pl \
t/results/sectioning/reference_to_only_special_spaces_node.pl \
diff --git a/macros/texinfo/texinfo/tp/Makefile.tres b/macros/texinfo/texinfo/tp/Makefile.tres
index 97b43c9d7e..03472d4bc4 100644
--- a/macros/texinfo/texinfo/tp/Makefile.tres
+++ b/macros/texinfo/texinfo/tp/Makefile.tres
@@ -596,6 +596,7 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/html_tests/documentdescription.pl \
t/results/html_tests/empty_lines_at_beginning_no_setfilename.pl \
t/results/html_tests/empty_lines_at_beginning_no_setfilename_no_element.pl \
+ t/results/html_tests/empty_titlefont.pl \
t/results/html_tests/footnotestyle_separate_html_text_no_monolithic.pl \
t/results/html_tests/footnotestyle_separate_late.pl \
t/results/html_tests/footnotestyle_separate_late/res_html/chap-f.html \
@@ -800,12 +801,15 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/info_tests/colons_in_index_entries_and_node_no_quoting/res_info/colons_in_index_entries_and_node_no_quoting.info \
t/results/info_tests/def_in_copying.pl \
t/results/info_tests/direntry_dircategory_and_commands.pl \
+ t/results/info_tests/empty_arguments.pl \
+ t/results/info_tests/empty_caption.pl \
t/results/info_tests/encoding_us_ascii.pl \
t/results/info_tests/end_of_line_command_in_node_lines.pl \
t/results/info_tests/end_of_line_command_in_node_lines/res_info/end_of_line_command_in_node_lines.info \
t/results/info_tests/error_in_footnote.pl \
t/results/info_tests/file_only_png.pl \
t/results/info_tests/float_long_captions.pl \
+ t/results/info_tests/float_without_type.pl \
t/results/info_tests/image_and_punctuation.pl \
t/results/info_tests/image_and_spaces_formatting.pl \
t/results/info_tests/image_extension.pl \
@@ -1681,6 +1685,8 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/sectioning/contents_with_only_top_node.pl \
t/results/sectioning/double_node_anchor_float.pl \
t/results/sectioning/double_part.pl \
+ t/results/sectioning/double_recursive_self_section_node_reference.pl \
+ t/results/sectioning/double_recursive_self_section_reference.pl \
t/results/sectioning/double_top.pl \
t/results/sectioning/double_top_in_menu.pl \
t/results/sectioning/double_top_section.pl \
@@ -1767,6 +1773,7 @@ test_files_generated_list = $(test_tap_files_generated_list) \
t/results/sectioning/protected_node_parentheses.pl \
t/results/sectioning/raiselowersections.pl \
t/results/sectioning/rec_nodes.pl \
+ t/results/sectioning/recursive_self_section_reference.pl \
t/results/sectioning/ref_to_top.pl \
t/results/sectioning/ref_to_unknown_node.pl \
t/results/sectioning/reference_to_only_special_spaces_node.pl \
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Common.pm b/macros/texinfo/texinfo/tp/Texinfo/Common.pm
index d01ccc3515..075e24380f 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Common.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Common.pm
@@ -71,7 +71,7 @@ valid_tree_transformation
__ __p
);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# i18n
@@ -738,7 +738,7 @@ foreach my $command (
our %preamble_commands;
-foreach my $preamble_command ('direnty', 'hyphenation', 'errormsg',
+foreach my $preamble_command ('direntry', 'hyphenation', 'errormsg',
'inlineraw', '*', keys(%document_settable_at_commands),
(grep {$Texinfo::Commands::block_commands{$_} eq 'format_raw'
or $Texinfo::Commands::block_commands{$_} eq 'region'}
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm
index 5876a6ea2a..1c18523bf1 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm
@@ -58,7 +58,7 @@ xml_accents
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %defaults = (
'documentlanguage' => undef,
@@ -1326,6 +1326,10 @@ sub table_item_content_tree($$$)
my $contents = shift;
my $table_item_tree = {'parent' => $element};
+
+ return $table_item_tree
+ if (!defined($contents));
+
my $table_command = $element->{'parent'}->{'parent'}->{'parent'};
if ($table_command->{'extra'}
and $table_command->{'extra'}->{'command_as_argument'}) {
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/DocBook.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/DocBook.pm
index f71ebde3f6..edc58ad35f 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/DocBook.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/DocBook.pm
@@ -43,7 +43,7 @@ require Exporter;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %brace_commands = %Texinfo::Commands::brace_commands;
@@ -747,12 +747,15 @@ sub _convert($$;$)
and $element->{'parent'}->{'type'}
and $element->{'parent'}->{'type'} eq 'table_term') {
- my $table_item_tree = $self->table_item_content_tree($element,
- $element->{'args'}->[0]->{'contents'});
-
$result .= "<term>";
$result .= $self->_index_entry($element);
- $result .= $self->_convert($table_item_tree);
+ if ($element->{'args'}->[0]
+ and $element->{'args'}->[0]->{'contents'}) {
+ my $table_item_tree = $self->table_item_content_tree($element,
+ $element->{'args'}->[0]->{'contents'});
+
+ $result .= $self->_convert($table_item_tree);
+ }
chomp ($result);
$result .= "\n";
$result .= "</term>";
@@ -1030,6 +1033,7 @@ sub _convert($$;$)
} else {
if (scalar(@{$element->{'args'}}) == 5
and defined($element->{'args'}->[-1])
+ and $element->{'args'}->[-1]->{'contents'}
and @{$element->{'args'}->[-1]->{'contents'}}) {
$book_contents = $element->{'args'}->[-1]->{'contents'};
}
@@ -1329,7 +1333,9 @@ sub _convert($$;$)
} elsif ($element->{'cmdname'} eq 'abbr' or $element->{'cmdname'} eq 'acronym') {
my $argument;
if (scalar(@{$element->{'args'}}) >= 1
- and defined($element->{'args'}->[0]) and @{$element->{'args'}->[0]->{'contents'}}) {
+ and defined($element->{'args'}->[0])
+ and $element->{'args'}->[0]->{'contents'}
+ and @{$element->{'args'}->[0]->{'contents'}}) {
my $arg = $self->_convert({'contents'
=> $element->{'args'}->[0]->{'contents'}});
if ($arg ne '') {
@@ -1344,7 +1350,9 @@ sub _convert($$;$)
}
#
if (scalar(@{$element->{'args'}}) == 2
- and defined($element->{'args'}->[-1]) and @{$element->{'args'}->[-1]->{'contents'}}) {
+ and defined($element->{'args'}->[-1])
+ and $element->{'args'}->[-1]->{'contents'}
+ and @{$element->{'args'}->[-1]->{'contents'}}) {
if (defined($argument)) {
my $tree = $self->gdt('{abbr_or_acronym} ({explanation})',
{'abbr_or_acronym' => {'type' => '_converted',
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm
index c8479d9633..23e0395b56 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm
@@ -78,7 +78,7 @@ require Exporter;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
our $module_loaded = 0;
sub import {
@@ -1108,7 +1108,9 @@ sub command_text($$;$)
if (defined($target->{'tree_nonumber'}));
}
$self->{'ignore_notice'}++;
+ push @{$self->{'referred_command_stack'}}, $command;
$target->{$type} = $self->_convert($tree, $explanation);
+ pop @{$self->{'referred_command_stack'}};
$self->{'ignore_notice'}--;
$self->_pop_document_context();
@@ -2729,9 +2731,12 @@ sub _convert_explained_command($$$$)
my $with_explanation;
my $explanation_result;
my $explanation_string;
- my $normalized_type
- = Texinfo::Convert::NodeNameNormalization::normalize_node(
- {'contents' => $command->{'args'}->[0]->{'contents'}});
+ my $normalized_type = '';
+ if ($command->{'args'}->[0]
+ and $command->{'args'}->[0]->{'contents'}) {
+ $normalized_type = Texinfo::Convert::NodeNameNormalization::normalize_node(
+ {'contents' => $command->{'args'}->[0]->{'contents'}});
+ }
my $explained_commands
= $self->shared_conversion_state('explained_commands', {});
@@ -4480,7 +4485,8 @@ sub _convert_float_command($$$$$)
$prepended_text = '';
}
my $caption_text = '';
- if ($caption) {
+ if ($caption and $caption->{'args'}->[0]
+ and $caption->{'args'}->[0]->{'contents'}) {
$caption_text = $self->convert_tree_new_formatting_context(
{'contents' => $caption->{'args'}->[0]->{'contents'}},
'float caption');
@@ -4565,10 +4571,13 @@ sub _convert_quotation_command($$$$$)
# FIXME there is no easy way to mark with a class the @author
# @-command. Add a span or a div (@center is in a div)?
foreach my $author (@{$command->{'extra'}->{'authors'}}) {
- my $centered_author = $self->gdt("\@center --- \@emph{{author}}\n",
- {'author' => $author->{'args'}->[0]->{'contents'}});
- $centered_author->{'parent'} = $command;
- $attribution .= $self->convert_tree($centered_author, 'convert quotation author');
+ if ($author->{'args'}->[0]
+ and $author->{'args'}->[0]->{'contents'}) {
+ my $centered_author = $self->gdt("\@center --- \@emph{{author}}\n",
+ {'author' => $author->{'args'}->[0]->{'contents'}});
+ $centered_author->{'parent'} = $command;
+ $attribution .= $self->convert_tree($centered_author, 'convert quotation author');
+ }
}
}
@@ -4896,7 +4905,15 @@ sub _convert_xref_commands($$$$)
if (!defined($name)) {
if ($self->get_conf('xrefautomaticsectiontitle') eq 'on'
- and $node->{'extra'}->{'associated_section'}) {
+ and $node->{'extra'}->{'associated_section'}
+ # this condition avoids infinite recursions, indeed in that case
+ # the node will be used and not the section. There should not be
+ # @*ref in nodes, and even if there are, it does not seems to be
+ # possible to construct an infinite recursion with nodes only
+ # as the node must both be a reference target and refer to a specific
+ # target at the same time, which is not possible.
+ and not grep {$_ eq $node->{'extra'}->{'associated_section'}}
+ @{$self->{'referred_command_stack'}}) {
$command = $node->{'extra'}->{'associated_section'};
$name = $self->command_text($command, 'text_nonumber');
} elsif ($node->{'cmdname'} eq 'float') {
@@ -5806,6 +5823,7 @@ sub _convert_row_type($$$$) {
if ($content =~ /\S/) {
my $result = '<tr>' . $content . '</tr>';
if ($element->{'contents'}
+ and scalar(@{$element->{'contents'}})
and $element->{'contents'}->[0]->{'cmdname'} ne 'headitem') {
# if headitem, end of line added in _convert_multitable_head_type
$result .= "\n";
@@ -5906,6 +5924,9 @@ sub _convert_menu_entry_type($$$)
and $args[0]->{'type'} eq 'menu_entry_description');
my $arg = shift @args;
if ($arg->{'type'} and $arg->{'type'} eq 'menu_entry_node') {
+ # $arg->{'contents'} seems to always be defined. If it is
+ # not the case, it should not be an issue as an undefined
+ # 'contents' is ignored.
my $name = $self->convert_tree(
{'type' => '_code', 'contents' => $arg->{'contents'}},
"menu_arg menu_entry_node preformatted [$i]");
@@ -6990,6 +7011,7 @@ sub _load_htmlxref_files {
# htmlxref_files
# htmlxref
# check_htmlxref_already_warned
+# referred_command_stack
#
# from Converter
# labels
@@ -9518,6 +9540,10 @@ sub _initialize_output_state($)
$self->{'targets'} = {};
$self->{'seen_ids'} = {};
+ # to avoid infinite recursions when a section refers to itself, possibly
+ # indirectly
+ $self->{'referred_command_stack'} = [];
+
# for directions to special elements, only filled if special
# elements are actually used.
$self->{'special_elements_directions'} = {};
@@ -9916,6 +9942,8 @@ sub output($$)
if (!$fulltitle and $self->{'global_commands'}->{'titlefont'}
and $self->{'global_commands'}->{'titlefont'}->[0]->{'args'}
and defined($self->{'global_commands'}->{'titlefont'}->[0]->{'args'}->[0])
+ and $self->{'global_commands'}->{'titlefont'}->[0]
+ ->{'args'}->[0]->{'contents'}
and @{$self->{'global_commands'}->{'titlefont'}->[0]->{'args'}->[0]->{'contents'}}) {
$fulltitle = $self->{'global_commands'}->{'titlefont'}->[0];
}
@@ -9923,8 +9951,10 @@ sub output($$)
foreach my $simpletitle_command ('settitle', 'shorttitlepage') {
if ($self->{'global_commands'}->{$simpletitle_command}) {
my $command = $self->{'global_commands'}->{$simpletitle_command};
- next if ($command->{'extra'}
- and $command->{'extra'}->{'missing_argument'});
+ next if (!$command->{'args'}
+ or !$command->{'args'}->[0]->{'contents'}
+ or ($command->{'extra'}
+ and $command->{'extra'}->{'missing_argument'}));
$self->{'simpletitle_tree'} =
{'contents' => $command->{'args'}->[0]->{'contents'}};
$self->{'simpletitle_command_name'} = $simpletitle_command;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/IXIN.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/IXIN.pm
index 6fec314a8f..5325478d0c 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/IXIN.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/IXIN.pm
@@ -78,7 +78,7 @@ use Texinfo::Convert::TexinfoSXML;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my $ixin_version = 1;
@@ -783,13 +783,17 @@ sub output_ixin($$)
foreach my $command (@{$self->{'global_commands'}->{'listoffloats'}}) {
my $associated_node_id = $self->_associated_node_id($command,
\%node_label_number);
- my $type = $command->{'extra'}->{'type'}->{'normalized'};
- if ($command->{'extra'}->{'type'}->{'content'}) {
- $floats_information{$type}->{'type'}
- = $self->convert_tree({'contents'
+ if ($command->{'extra'}
+ and $command->{'extra'}->{'type'}
+ and defined($command->{'extra'}->{'type'}->{'normalized'})) {
+ my $type = $command->{'extra'}->{'type'}->{'normalized'};
+ if ($command->{'extra'}->{'type'}->{'content'}) {
+ $floats_information{$type}->{'type'}
+ = $self->convert_tree({'contents'
=> $command->{'extra'}->{'type'}->{'content'}});
+ }
+ push @{$floats_information{$type}->{'node_id'}}, $associated_node_id;
}
- push @{$floats_information{$type}->{'node_id'}}, $associated_node_id;
}
}
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/IXINSXML.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/IXINSXML.pm
index d6e0855c54..39b5be6a51 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/IXINSXML.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/IXINSXML.pm
@@ -39,7 +39,7 @@ use Carp qw(cluck);
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::TexinfoSXML Texinfo::Convert::IXIN);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %defaults = (
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Info.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Info.pm
index c529e3960c..7c6ff88f24 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Info.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Info.pm
@@ -36,7 +36,7 @@ use Texinfo::Convert::Paragraph;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Plaintext);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my $STDIN_DOCU_NAME = 'stdin';
@@ -543,6 +543,7 @@ sub format_image($$)
{'code' => 1,
Texinfo::Convert::Text::copy_options_for_convert_text($self)});
if (defined($element->{'args'}->[4])
+ and $element->{'args'}->[4]->{'contents'}
and @{$element->{'args'}->[4]->{'contents'}}) {
my $extension = Texinfo::Convert::Text::convert_to_text(
{'contents' => $element->{'args'}->[4]->{'contents'}},
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/LaTeX.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/LaTeX.pm
index 892cf7a7a7..a432320a2f 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/LaTeX.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/LaTeX.pm
@@ -187,7 +187,7 @@ use Texinfo::Convert::Converter;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# could export convert_to_latex_math
@@ -959,8 +959,10 @@ sub _prepare_conversion($;$)
if ($self->{'global_commands'}->{'settitle'}) {
my $settitle_root = $self->{'global_commands'}->{'settitle'};
- if (not ($settitle_root->{'extra'}
- and $settitle_root->{'extra'}->{'missing_argument'})) {
+ if ($settitle_root->{'args'}->[0]
+ and $settitle_root->{'args'}->[0]->{'contents'}
+ and not ($settitle_root->{'extra'}
+ and $settitle_root->{'extra'}->{'missing_argument'})) {
$self->{'settitle_tree'} =
{'contents' => $settitle_root->{'args'}->[0]->{'contents'}};
}
@@ -2015,11 +2017,15 @@ sub _title_font($$)
{
my $self = shift;
my $element = shift;
- # in Texinfo TeX seems a bit smaller, but LARGE seems too small
- my $result = "{\\huge \\bfseries ";
- $result .= _convert($self, {'contents' => $element->{'args'}->[0]->{'contents'}});
- $result .= '}';
- return $result;
+
+ if ($element->{'args'}->[0] and $element->{'args'}->[0]->{'contents'}) {
+ # in Texinfo TeX seems a bit smaller, but LARGE seems too small
+ my $result = "{\\huge \\bfseries ";
+ $result .= _convert($self, {'contents' => $element->{'args'}->[0]->{'contents'}});
+ $result .= '}';
+ return $result;
+ }
+ return '';
}
sub _set_environment_options($$$)
@@ -2725,10 +2731,12 @@ sub _convert($$)
if ($element->{'args'}) {
if (scalar(@{$element->{'args'}}) == 3
and defined($element->{'args'}->[2])
+ and $element->{'args'}->[2]->{'contents'}
and @{$element->{'args'}->[2]->{'contents'}}) {
unshift @{$self->{'current_contents'}->[-1]},
{'contents' => $element->{'args'}->[2]->{'contents'}};
- } elsif ($element->{'args'}->[0]->{'contents'}
+ } elsif ($element->{'args'}->[0]
+ and $element->{'args'}->[0]->{'contents'}
and @{$element->{'args'}->[0]->{'contents'}}) {
my $url_content = $element->{'args'}->[0]->{'contents'};
my $url_text = $self->_protect_url(
@@ -2736,9 +2744,9 @@ sub _convert($$)
{'contents' => $url_content},
{'code' => 1, %{$self->{'convert_text_options'}}}));
if (scalar(@{$element->{'args'}}) == 2
- and defined($element->{'args'}->[1])
- and $element->{'args'}->[1]->{'contents'}
- and @{$element->{'args'}->[1]->{'contents'}}) {
+ and defined($element->{'args'}->[1])
+ and $element->{'args'}->[1]->{'contents'}
+ and @{$element->{'args'}->[1]->{'contents'}}) {
my $description = _convert($self, {'contents',
$element->{'args'}->[1]->{'contents'}});
my $text = $self->gdt('{text} ({url})',
@@ -2752,6 +2760,7 @@ sub _convert($$)
}
} elsif (scalar(@{$element->{'args'}}) == 2
and defined($element->{'args'}->[1])
+ and $element->{'args'}->[1]->{'contents'}
and @{$element->{'args'}->[1]->{'contents'}}) {
unshift @{$self->{'current_contents'}->[-1]},
{'contents' => $element->{'args'}->[1]->{'contents'}};
@@ -3033,6 +3042,7 @@ sub _convert($$)
}
if (scalar (@{$element->{'args'}}) == 2
and defined($element->{'args'}->[-1])
+ and $element->{'args'}->[-1]->{'contents'}
and @{$element->{'args'}->[-1]->{'contents'}}) {
my $prepended = $self->gdt('{abbr_or_acronym} ({explanation})',
{'abbr_or_acronym' => $argument,
@@ -3111,17 +3121,21 @@ sub _convert($$)
$shortcaption = $float->{'extra'}->{'shortcaption'};
}
}
- _push_new_context($self, 'latex_caption');
- my $caption_text = _convert($self,
- {'contents' => $element->{'args'}->[0]->{'contents'}});
- _pop_context($self);
+ my $caption_text = '';
+ if ($element->{'args'}->[0]->{'contents'}) {
+ _push_new_context($self, 'latex_caption');
+ $caption_text = _convert($self,
+ {'contents' => $element->{'args'}->[0]->{'contents'}});
+ _pop_context($self);
+ }
$result .= '\caption';
- if (defined($shortcaption)) {
+ if (defined($shortcaption)
+ and $shortcaption->{'args'}->[0]->{'contents'}) {
_push_new_context($self, 'latex_shortcaption');
my $shortcaption_text = _convert($self,
- {'contents' => $shortcaption->{'args'}->[0]->{'contents'}});
+ {'contents' => $shortcaption->{'args'}->[0]->{'contents'}});
_pop_context($self);
$result .= '['.$shortcaption_text.']';
}
@@ -3374,19 +3388,24 @@ sub _convert($$)
# nothing to do here. The condition ensures that the commands are not
# considered as unknown commands in the else below.
} elsif ($cmdname eq 'center') {
- $result .= "\\begin{center}\n";
- $result .= $self->_convert (
+ if ($element->{'args'}->[0]->{'contents'}) {
+ $result .= "\\begin{center}\n";
+ $result .= $self->_convert (
{'contents' => $element->{'args'}->[0]->{'contents'}});
- $result .= "\n\\end{center}\n";
+ $result .= "\n\\end{center}\n";
+ }
return $result;
} elsif ($cmdname eq 'exdent') {
- # FIXME \leavevmode{} is added to avoid
- # ! LaTeX Error: There's no line here to end.
- # but it is not clearly correct
- $result .= "\\leavevmode{}\\\\\n";
- $result .= "\\hbox{\\kern -\\leftmargin}%\n";
- $result .= $self->_convert({'contents' => $element->{'args'}->[0]->{'contents'}})."\n";
- $result .= "\\\\\n";
+ if ($element->{'args'}->[0]->{'contents'}) {
+ # FIXME \leavevmode{} is added to avoid
+ # ! LaTeX Error: There's no line here to end.
+ # but it is not clearly correct
+ $result .= "\\leavevmode{}\\\\\n";
+ $result .= "\\hbox{\\kern -\\leftmargin}%\n";
+ $result .= $self->_convert(
+ {'contents' => $element->{'args'}->[0]->{'contents'}})."\n";
+ $result .= "\\\\\n";
+ }
return $result;
} elsif ($cmdname eq 'verbatiminclude') {
my $expansion = Texinfo::Convert::Utils::expand_verbatiminclude($self,
@@ -3484,31 +3503,35 @@ sub _convert($$)
$self->{'titlepage_formatting'}->{'title'} = 1
if ($self->{'titlepage_formatting'});
} elsif ($cmdname eq 'subtitle') {
- my $subtitle_text = _convert($self,
+ if ($element->{'args'}->[0]->{'contents'}) {
+ my $subtitle_text = _convert($self,
{'contents' => $element->{'args'}->[0]->{'contents'}});
- # too much vertical spacing with flushright environment
- #$result .= "\\begin{flushright}\n";
- #$result .= $subtitle_text."\n";
- #$result .= "\\end{flushright}\n";
- $result .= "\\rightline{$subtitle_text}\n";
+ # too much vertical spacing with flushright environment
+ #$result .= "\\begin{flushright}\n";
+ #$result .= $subtitle_text."\n";
+ #$result .= "\\end{flushright}\n";
+ $result .= "\\rightline{$subtitle_text}\n";
+ }
} elsif ($cmdname eq 'author') {
if (not $self->{'formatting_context'}->[-1]->{'in_quotation'}) {
- my $author_name = _convert($self,
+ if ($element->{'args'}->[0]->{'contents'}) {
+ my $author_name = _convert($self,
{'contents' => $element->{'args'}->[0]->{'contents'}});
- if ($self->{'titlepage_formatting'}
- and $self->{'titlepage_formatting'}->{'in_front_cover'}) {
- if (not $self->{'titlepage_formatting'}->{'author'}) {
- # first author, add space before
- $self->{'titlepage_formatting'}->{'author'} = 1;
- $result .= "\\vskip 0pt plus 1filll\n";
+ if ($self->{'titlepage_formatting'}
+ and $self->{'titlepage_formatting'}->{'in_front_cover'}) {
+ if (not $self->{'titlepage_formatting'}->{'author'}) {
+ # first author, add space before
+ $self->{'titlepage_formatting'}->{'author'} = 1;
+ $result .= "\\vskip 0pt plus 1filll\n";
+ }
+ # use \leftline as in Texinfo TeX
+ # FIXME In Texinfo TeX the interline space between @author lines
+ # seems better
+ $result .= "\\leftline{\\Large \\bfseries $author_name}%\n";
+ } else {
+ # author in regular text. Should not happen
+ $result .= "{\\bfseries $author_name}%\n";
}
- # use \leftline as in Texinfo TeX
- # FIXME In Texinfo TeX the interline space between @author lines
- # seems better
- $result .= "\\leftline{\\Large \\bfseries $author_name}%\n";
- } else {
- # author in regular text. Should not happen
- $result .= "{\\bfseries $author_name}%\n";
}
return $result;
}
@@ -3965,9 +3988,11 @@ sub _convert($$)
# we are not in a preformatted type here, such that the conversion
# does not take into account the preformatted environment. Probably best.
foreach my $author (@{$element->{'extra'}->{'authors'}}) {
- $result .= _convert($self,
+ if ($author->{'args'}->[0]->{'contents'}) {
+ $result .= _convert($self,
$self->gdt('@center --- @emph{{author}}',
{'author' => $author->{'args'}->[0]->{'contents'}}));
+ }
}
}
$self->{'formatting_context'}->[-1]->{'in_quotation'} -= 1;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/NodeNameNormalization.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/NodeNameNormalization.pm
index fe7d18291e..677e9222b8 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/NodeNameNormalization.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/NodeNameNormalization.pm
@@ -56,7 +56,7 @@ use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %normalize_node_brace_no_arg_commands
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Paragraph.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Paragraph.pm
index 24635138ef..59dbf871b2 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Paragraph.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Paragraph.pm
@@ -20,7 +20,7 @@ use 5.00405;
use strict;
use warnings;
-our $VERSION = '7.0';
+our $VERSION = '7.0.1';
use Texinfo::XSLoader;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/PlainTexinfo.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/PlainTexinfo.pm
index 915783a4a0..d449c1ee28 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/PlainTexinfo.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/PlainTexinfo.pm
@@ -31,7 +31,7 @@ use Texinfo::Convert::Converter;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %defaults = (
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm
index 949bba1b84..cc85c60361 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Plaintext.pm
@@ -60,7 +60,7 @@ sub import {
goto &Exporter::import;
}
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# commands that are of use for formatting.
@@ -1727,6 +1727,10 @@ sub _convert($$)
}
if ($element->{'extra'}) {
+ # REMARK it is not that wise to rely on {'extra'}->{'missing_argument'}
+ # being set, additional tests of $element->{'contents'}
+ # being defined could be added, in addition to be more robust in case
+ # {'extra'}->{'missing_argument'} is removed
if ($element->{'extra'}->{'missing_argument'}
and (!$element->{'contents'} or !@{$element->{'contents'}})) {
return '';
@@ -1958,6 +1962,7 @@ sub _convert($$)
if ($element->{'args'}) {
$result .= _convert($self, $element->{'args'}->[0]);
if ($command eq 'strong'
+ and $element->{'args'}->[0]->{'contents'}
and scalar (@{$element->{'args'}->[0]->{'contents'}})
and $element->{'args'}->[0]->{'contents'}->[0]->{'text'}
and $element->{'args'}->[0]->{'contents'}->[0]->{'text'} =~ /^Note\s/i
@@ -2082,6 +2087,7 @@ sub _convert($$)
}
} elsif (scalar(@{$element->{'args'}}) == 2
and defined($element->{'args'}->[1])
+ and $element->{'args'}->[1]->{'contents'}
and @{$element->{'args'}->[1]->{'contents'}}) {
unshift @{$self->{'current_contents'}->[-1]},
{'contents' => $element->{'args'}->[1]->{'contents'}};
@@ -2368,6 +2374,7 @@ sub _convert($$)
}
if (scalar (@{$element->{'args'}}) == 2
and defined($element->{'args'}->[-1])
+ and $element->{'args'}->[-1]->{'contents'}
and @{$element->{'args'}->[-1]->{'contents'}}) {
my $prepended = $self->gdt('{abbr_or_acronym} ({explanation})',
{'abbr_or_acronym' => $argument,
@@ -2693,10 +2700,18 @@ sub _convert($$)
#my ($counts, $new_locations);
push @{$self->{'count_context'}}, {'lines' => 0, 'bytes' => 0,
'locations' => []};
- $result = $self->convert_line (
+ # $element->{'args'}->[0]->{'contents'} not set cannot happen
+ # as in that case missing_argument would be set. This condition
+ # is therefre not really needed, but still put in case missing_argument
+ # disappears
+ my $result = '';
+ if ($element->{'args'}->[0]
+ and $element->{'args'}->[0]->{'contents'}) {
+ $result = $self->convert_line (
{'type' => 'frenchspacing',
'contents' => $element->{'args'}->[0]->{'contents'}},
{'indent_length' => 0});
+ }
if ($result ne '') {
$result = $self->ensure_end_of_line($result);
@@ -2710,14 +2725,24 @@ sub _convert($$)
$self->{'format_context'}->[-1]->{'paragraph_count'}++;
return $result;
} elsif ($command eq 'exdent') {
- if ($self->{'preformatted_context_commands'}->{$self->{'context'}->[-1]}) {
- $result = $self->_convert_unfilled({'contents' => $element->{'args'}->[0]->{'contents'}},
- {'indent_level'
- => $self->{'format_context'}->[-1]->{'indent_level'} -1});
- } else {
- $result = $self->convert_line({'contents' => $element->{'args'}->[0]->{'contents'}},
- {'indent_level'
- => $self->{'format_context'}->[-1]->{'indent_level'} -1});
+ $result = '';
+ # $element->{'args'}->[0]->{'contents'} not set cannot happen
+ # as in that case missing_argument would be set. This condition
+ # is therefre not really needed, but still put in case missing_argument
+ # disappears
+ if ($element->{'args'}->[0]
+ and $element->{'args'}->[0]->{'contents'}) {
+ if ($self->{'preformatted_context_commands'}->{$self->{'context'}->[-1]}) {
+ $result = $self->_convert_unfilled(
+ {'contents' => $element->{'args'}->[0]->{'contents'}},
+ {'indent_level'
+ => $self->{'format_context'}->[-1]->{'indent_level'} -1});
+ } else {
+ $result = $self->convert_line(
+ {'contents' => $element->{'args'}->[0]->{'contents'}},
+ {'indent_level'
+ => $self->{'format_context'}->[-1]->{'indent_level'} -1});
+ }
}
if ($result ne '') {
$result = $self->ensure_end_of_line($result);
@@ -2756,6 +2781,7 @@ sub _convert($$)
$lines_count += 2;
foreach my $float (@{$self->{'floats'}->{$element->{'extra'}->{'type'}->{'normalized'}}}) {
next if !$float->{'args'} or !$float->{'args'}->[1]
+ or !$float->{'args'}->[1]->{'contents'}
or !@{$float->{'args'}->[1]->{'contents'}};
my $float_label_text = $self->convert_line({'type' => '_code',
'contents' => $float->{'args'}->[1]->{'contents'}});
@@ -2782,7 +2808,8 @@ sub _convert($$)
} elsif ($float->{'extra'}->{'caption'}) {
$caption = $float->{'extra'}->{'caption'};
}
- if ($caption) {
+ if ($caption and $caption->{'args'}->[0]
+ and $caption->{'args'}->[0]->{'contents'}) {
$self->{'multiple_pass'} = 1;
push @{$self->{'context'}}, 'listoffloats';
my $tree = {'contents' => $caption->{'args'}->[0]->{'contents'}};
@@ -3154,6 +3181,9 @@ sub _convert($$)
$result .= _count_added($self, $formatter->{'container'},
add_pending_word($formatter->{'container'}, 1));
+ # note that $arg->{'contents'} may be undefined in rare case
+ # such as in sectionning in_menu_only_special_ascii_spaces_node
+ # test
my $node_text = _convert($self, {'type' => '_code',
'contents' => $arg->{'contents'}});
@@ -3241,6 +3271,7 @@ sub _convert($$)
}
# The processing of contents is done here.
+ # $element->{'contents'} undef may happen for some empty commands/containers
if ($element->{'contents'}) {
my @contents = @{$element->{'contents'}};
push @{$self->{'current_contents'}}, \@contents;
@@ -3436,13 +3467,18 @@ sub _convert($$)
$result .= _convert($self, $tree);
}
}
- } elsif (($command eq 'quotation'
+ } elsif (($command eq 'quotation'
or $command eq 'smallquotation')
and $element->{'extra'} and $element->{'extra'}->{'authors'}) {
foreach my $author (@{$element->{'extra'}->{'authors'}}) {
- $result .= _convert($self,
- $self->gdt("\@center --- \@emph{{author}}\n",
- {'author' => $author->{'args'}->[0]->{'contents'}}));
+ # this cannot happen as this should be caugth by 'missing_argument'
+ # but it is more robust to check anyway
+ if ($author->{'args'}->[0]
+ and $author->{'args'}->[0]->{'contents'}) {
+ $result .= _convert($self,
+ $self->gdt("\@center --- \@emph{{author}}\n",
+ {'author' => $author->{'args'}->[0]->{'contents'}}));
+ }
}
} elsif (($command eq 'multitable')) {
$self->{'document_context'}->[-1]->{'in_multitable'}--;
@@ -3468,7 +3504,7 @@ sub _convert($$)
}
}
}
-
+
# close the contexts and register the cells
if ($self->{'preformatted_context_commands'}->{$command}
or $command eq 'float') {
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Texinfo.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Texinfo.pm
index aead5b4e7d..0dc76e2974 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Texinfo.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Texinfo.pm
@@ -42,7 +42,7 @@ use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %brace_commands = %Texinfo::Commands::brace_commands;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoMarkup.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoMarkup.pm
index 83a55e3dc9..1628e029f1 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoMarkup.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoMarkup.pm
@@ -47,7 +47,7 @@ use Carp qw(cluck);
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# our because it is used in the xml to texi translator and subclasses.
@@ -992,6 +992,7 @@ sub _convert($$;$)
my $command_result = '';
if (scalar (@{$element->{'args'}}) == 2
and defined($element->{'args'}->[-1])
+ and $element->{'args'}->[-1]->{'contents'}
and @{$element->{'args'}->[-1]->{'contents'}}) {
$command_result = $self->_convert({'contents'
=> $element->{'args'}->[-1]->{'contents'}});
@@ -1220,13 +1221,14 @@ sub _convert($$;$)
and $element->{'contents'}->[-1]->{'cmdname'} eq 'end') {
$end_command = $element->{'contents'}->[-1];
}
- my $end_command_space = _leading_spaces_arg($end_command);
- if (scalar(@$end_command_space)) {
- $end_command_space->[0] = 'endspaces';
+ my @end_command_spaces;
+ push @end_command_spaces, _leading_spaces_arg($end_command);
+ if (scalar(@end_command_spaces)) {
+ $end_command_spaces[0]->[0] = 'endspaces';
}
$result .= $self->txi_markup_open_element($element->{'cmdname'},
[@$attribute, _leading_spaces_arg($element),
- $end_command_space])
+ @end_command_spaces])
.${prepended_elements};
if ($element->{'args'}) {
my $variadic_element = undef;
@@ -1313,7 +1315,8 @@ sub _convert($$;$)
# Like 'prototypes' extra value, but keeping spaces information
if (defined $element->{'args'}->[0]
and defined $element->{'args'}->[0]->{'type'}
- and $element->{'args'}->[0]->{'type'} eq 'block_line_arg') {
+ and $element->{'args'}->[0]->{'type'} eq 'block_line_arg'
+ and $element->{'args'}->[0]->{'contents'}) {
foreach my $content (@{$element->{'args'}->[0]->{'contents'}}) {
if ($content->{'type'} and $content->{'type'} eq 'bracketed') {
push @prototype_line, $content;
@@ -1374,7 +1377,8 @@ sub _convert($$;$)
$result .= $self->txi_markup_close_element('columnprototypes');
$result .= $self->format_comment_or_return_end_line($element);
} elsif ($element->{'extra'}
- and $element->{'extra'}->{'columnfractions'}) {
+ and $element->{'extra'}->{'columnfractions'}
+ and $element->{'args'}->[0]->{'contents'}) {
my $cmd;
foreach my $content (@{$element->{'args'}->[0]->{'contents'}}) {
if ($content->{'cmdname'}
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoSXML.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoSXML.pm
index 36b43bce43..9d936d3047 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoSXML.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoSXML.pm
@@ -31,7 +31,7 @@ use Carp qw(cluck);
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::TexinfoMarkup);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# SXML specific
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoXML.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoXML.pm
index 1b9d02df6e..223be6b144 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoXML.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/TexinfoXML.pm
@@ -35,7 +35,7 @@ use Texinfo::Convert::Converter;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::TexinfoMarkup Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# TexinfoXML specific
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Text.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Text.pm
index 7c84c23bb8..304fa46fa2 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Text.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Text.pm
@@ -51,7 +51,7 @@ use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# this is in fact not needed for 'footnote', 'shortcaption', 'caption'
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/TextContent.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/TextContent.pm
index 32ff10084f..9ca1eae8a9 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/TextContent.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/TextContent.pm
@@ -34,7 +34,7 @@ use Texinfo::Convert::Converter;
use vars qw($VERSION @ISA);
@ISA = qw(Texinfo::Convert::Converter);
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %ignored_brace_commands;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Unicode.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Unicode.pm
index 2abe9610f5..051d8a29ff 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Unicode.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Unicode.pm
@@ -64,7 +64,7 @@ use vars qw($VERSION @EXPORT_OK %EXPORT_TAGS);
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
our %unicode_diacritics = (
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Convert/Utils.pm b/macros/texinfo/texinfo/tp/Texinfo/Convert/Utils.pm
index 3e1b72bc8a..b2dbdc0943 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Convert/Utils.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Convert/Utils.pm
@@ -56,7 +56,7 @@ add_heading_number
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
our @MONTH_NAMES =
@@ -256,6 +256,7 @@ sub expand_verbatiminclude($$$)
}
$verbatiminclude = { 'cmdname' => 'verbatim',
'parent' => $current->{'parent'},
+ 'contents' => [],
'extra' =>
{'text_arg' => $current->{'extra'}->{'text_arg'}} };
while (<VERBINCLUDE>) {
diff --git a/macros/texinfo/texinfo/tp/Texinfo/MiscXS.pm b/macros/texinfo/texinfo/tp/Texinfo/MiscXS.pm
index f779ce25cf..088750e01a 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/MiscXS.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/MiscXS.pm
@@ -22,7 +22,7 @@ use 5.00405;
use strict;
use warnings;
-our $VERSION = '7.0';
+our $VERSION = '7.0.1';
use Texinfo::XSLoader;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Parser.pm b/macros/texinfo/texinfo/tp/Texinfo/Parser.pm
index 8b28672f66..9cad7405c1 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Parser.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Parser.pm
@@ -20,7 +20,7 @@ use 5.00405;
use strict;
use warnings;
-our $VERSION = '7.0';
+our $VERSION = '7.0.1';
use Texinfo::XSLoader;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/ParserNonXS.pm b/macros/texinfo/texinfo/tp/Texinfo/ParserNonXS.pm
index a4078a3c62..f899b901c3 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/ParserNonXS.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/ParserNonXS.pm
@@ -119,7 +119,7 @@ sub import {
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# these are the default values for the parser state
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Structuring.pm b/macros/texinfo/texinfo/tp/Texinfo/Structuring.pm
index 4eb17b674d..9f01547427 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Structuring.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Structuring.pm
@@ -69,7 +69,7 @@ use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
my %types_to_enter;
diff --git a/macros/texinfo/texinfo/tp/Texinfo/Transformations.pm b/macros/texinfo/texinfo/tp/Texinfo/Transformations.pm
index 482f340ecb..dc8427bbbb 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/Transformations.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/Transformations.pm
@@ -46,7 +46,7 @@ reference_to_arg_in_tree
@EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-$VERSION = '7.0';
+$VERSION = '7.0.1';
# Add raise/lowersections to be back at the normal level
sub _correct_level($$;$)
diff --git a/macros/texinfo/texinfo/tp/Texinfo/XSLoader.pm b/macros/texinfo/texinfo/tp/Texinfo/XSLoader.pm
index 97da6047a9..7710017c79 100644
--- a/macros/texinfo/texinfo/tp/Texinfo/XSLoader.pm
+++ b/macros/texinfo/texinfo/tp/Texinfo/XSLoader.pm
@@ -33,7 +33,7 @@ BEGIN {
our $TEXINFO_XS;
-our $VERSION = '7.0';
+our $VERSION = '7.0.1';
our $disable_XS;
diff --git a/macros/texinfo/texinfo/tp/t/30sectioning.t b/macros/texinfo/texinfo/tp/t/30sectioning.t
index 4dd30bcee7..fcf89023be 100644
--- a/macros/texinfo/texinfo/tp/t/30sectioning.t
+++ b/macros/texinfo/texinfo/tp/t/30sectioning.t
@@ -536,6 +536,26 @@ in node Top
in chap
'],
+['recursive_self_section_reference',
+'@node sharp
+@chapter @ref{sharp} tuple
+'],
+['double_recursive_self_section_reference',
+'@node n1
+@chapter @ref{n2}
+
+@node n2
+@chapter @ref{n1}
+'],
+['double_recursive_self_section_node_reference',
+'@node Top
+@top top
+
+@node node1
+@chapter @ref{to node1}
+
+@node to @ref{node1}
+'],
);
my $character_and_spaces_in_refs_text = '@node Top
diff --git a/macros/texinfo/texinfo/tp/t/converters_tests.t b/macros/texinfo/texinfo/tp/t/converters_tests.t
index d42ebde3e0..b200035b80 100644
--- a/macros/texinfo/texinfo/tp/t/converters_tests.t
+++ b/macros/texinfo/texinfo/tp/t/converters_tests.t
@@ -588,6 +588,7 @@ explanation
@code{@@image@{f--ile,,,alt@}} @image{f--ile,,,alt}
@code{@@image@{f--ile,,,,e-d-xt@}} @image{f--ile,,,,e--xt}
@code{@@image@{f--ile,aze,az,alt,e--xt@}} @image{f--ile,aze,az,alt,e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{f-ile,aze,,a--lt@}} @image{f-ile,aze,,a--lt}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@}}
@image{image} @image{image}
diff --git a/macros/texinfo/texinfo/tp/t/html_tests.t b/macros/texinfo/texinfo/tp/t/html_tests.t
index e7cd6666b6..b0c0863f54 100644
--- a/macros/texinfo/texinfo/tp/t/html_tests.t
+++ b/macros/texinfo/texinfo/tp/t/html_tests.t
@@ -552,6 +552,10 @@ In top.
@uref{http://example.com/acc_@"a@ogonek{a}}
'],
+['empty_titlefont',
+'
+@titlefont{}
+'],
);
my $test_accents_sc_no_brace_commands_quotes = '@u{--a}
diff --git a/macros/texinfo/texinfo/tp/t/info_tests.t b/macros/texinfo/texinfo/tp/t/info_tests.t
index ba620ffb75..12af9cf50b 100644
--- a/macros/texinfo/texinfo/tp/t/info_tests.t
+++ b/macros/texinfo/texinfo/tp/t/info_tests.t
@@ -930,6 +930,33 @@ HHH
@image{figure, , , ,txt} JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
@end flushright
'],
+['empty_arguments',
+'
+@strong{}
+@uref{,}
+@abbr{a,}
+'],
+['float_without_type',
+'
+@node Top
+
+@float a,
+aa
+@end float
+
+@listoffloats a
+'],
+['empty_caption',
+'
+@node Top
+
+@float a,b
+aa
+@caption{}
+@end float
+
+@listoffloats a
+'],
);
my @file_tests = (
diff --git a/macros/texinfo/texinfo/tp/t/results/converters_tests/image_formatting.pl b/macros/texinfo/texinfo/tp/t/results/converters_tests/image_formatting.pl
index 7609334f02..be158739f7 100644
--- a/macros/texinfo/texinfo/tp/t/results/converters_tests/image_formatting.pl
+++ b/macros/texinfo/texinfo/tp/t/results/converters_tests/image_formatting.pl
@@ -584,6 +584,88 @@ $result_trees{'image_formatting'} = {
'cmdname' => '{'
},
{
+ 'text' => 'f--ile,aze,az,alt,'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'code',
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 13,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => ' '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'f--ile'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'aze'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'az'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'alt'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'image',
+ 'extra' => {
+ 'input_perl_encoding' => 'utf-8'
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 13,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'cmdname' => '@'
+ },
+ {
+ 'text' => 'image'
+ },
+ {
+ 'cmdname' => '{'
+ },
+ {
'text' => 'f-ile,aze,,a--lt'
},
{
@@ -596,7 +678,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 13,
+ 'line_nr' => 14,
'macro' => ''
}
},
@@ -639,7 +721,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 13,
+ 'line_nr' => 14,
'macro' => ''
}
},
@@ -718,7 +800,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => ''
}
},
@@ -743,7 +825,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'file',
'source_info' => {
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => ''
}
},
@@ -796,7 +878,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'file',
'source_info' => {
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => ''
}
},
@@ -816,7 +898,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => ''
}
},
@@ -841,7 +923,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 16,
'macro' => ''
}
},
@@ -865,7 +947,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 16,
'macro' => ''
}
},
@@ -921,7 +1003,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 18,
+ 'line_nr' => 19,
'macro' => ''
}
},
@@ -945,7 +1027,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 18,
+ 'line_nr' => 19,
'macro' => ''
}
},
@@ -979,7 +1061,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 19,
+ 'line_nr' => 20,
'macro' => ''
}
},
@@ -1011,7 +1093,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 19,
+ 'line_nr' => 20,
'macro' => ''
}
},
@@ -1045,7 +1127,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 20,
+ 'line_nr' => 21,
'macro' => ''
}
},
@@ -1080,7 +1162,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 20,
+ 'line_nr' => 21,
'macro' => ''
}
},
@@ -1114,7 +1196,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 21,
+ 'line_nr' => 22,
'macro' => ''
}
},
@@ -1152,7 +1234,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 21,
+ 'line_nr' => 22,
'macro' => ''
}
},
@@ -1186,7 +1268,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 22,
+ 'line_nr' => 23,
'macro' => ''
}
},
@@ -1227,7 +1309,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 22,
+ 'line_nr' => 23,
'macro' => ''
}
},
@@ -1261,7 +1343,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 23,
+ 'line_nr' => 24,
'macro' => ''
}
},
@@ -1317,7 +1399,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 23,
+ 'line_nr' => 24,
'macro' => ''
}
},
@@ -1351,7 +1433,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 24,
+ 'line_nr' => 25,
'macro' => ''
}
},
@@ -1394,7 +1476,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 24,
+ 'line_nr' => 25,
'macro' => ''
}
},
@@ -1473,7 +1555,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'code',
'source_info' => {
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => ''
}
},
@@ -1498,7 +1580,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'file',
'source_info' => {
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => ''
}
},
@@ -1551,7 +1633,7 @@ $result_trees{'image_formatting'} = {
'cmdname' => 'file',
'source_info' => {
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => ''
}
},
@@ -1571,7 +1653,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => ''
}
},
@@ -1596,7 +1678,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 26,
+ 'line_nr' => 27,
'macro' => ''
}
},
@@ -1620,7 +1702,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 26,
+ 'line_nr' => 27,
'macro' => ''
}
},
@@ -1653,14 +1735,14 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 27,
+ 'line_nr' => 28,
'macro' => ''
}
}
],
'source_info' => {
'file_name' => '',
- 'line_nr' => 17,
+ 'line_nr' => 18,
'macro' => ''
}
},
@@ -1700,7 +1782,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 29,
+ 'line_nr' => 30,
'macro' => ''
}
},
@@ -1750,7 +1832,7 @@ $result_trees{'image_formatting'} = {
},
'source_info' => {
'file_name' => '',
- 'line_nr' => 32,
+ 'line_nr' => 33,
'macro' => ''
}
},
@@ -1791,6 +1873,7 @@ $result_texis{'image_formatting'} = '@node Top
@code{@@image@{f--ile,,,alt@}} @image{f--ile,,,alt}
@code{@@image@{f--ile,,,,e-d-xt@}} @image{f--ile,,,,e--xt}
@code{@@image@{f--ile,aze,az,alt,e--xt@}} @image{f--ile,aze,az,alt,e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{f-ile,aze,,a--lt@}} @image{f-ile,aze,,a--lt}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@}}
@image{image} @image{image}
@@ -1826,6 +1909,7 @@ $result_texts{'image_formatting'} = 'top
@image{f--ile,,,alt} f--ile
@image{f--ile,,,,e-d-xt} f--ile
@image{f--ile,aze,az,alt,e--xt} f--ile
+@image{f--ile,aze,az,alt, f--ile
@image{f-ile,aze,,a--lt} f-ile
@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@} f--ile@.
image image
@@ -1951,7 +2035,8 @@ $result_converted{'plaintext'}->{'image_formatting'} = 'top
‘@image{f--ile}’ Image description""\\. ‘@image{f--ile,l--i}’ Image description""\\. ‘@image{f--ile,,l--e}’ Image description""\\.
‘@image{f--ile,,,alt}’ Image description""\\. ‘@image{f--ile,,,,e-d-xt}’ Image description""\\.
-‘@image{f--ile,aze,az,alt,e--xt}’ Image description""\\. ‘@image{f-ile,aze,,a--lt}’ [a-lt]
+‘@image{f--ile,aze,az,alt,e--xt}’ Image description""\\. ‘@image{f--ile,aze,az,alt,’ Image description""\\.
+‘@image{f-ile,aze,,a--lt}’ [a-lt]
‘@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@}’ [alt] aaa
bbb
ccc aaa
@@ -2002,6 +2087,7 @@ $result_converted{'html_text'}->{'image_formatting'} = '<div class="top-level-ex
<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{f--ile,,,,e-d-xt}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,e--xt}</code> <img class="image" src="f--ile.png" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="f-ile.jpg" alt="a&ndash;lt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@}</code> <img class="image" src="f--ile%40.file%20ext%20e--xt%7d" alt="alt">
<img class="image" src="image.jpg" alt="image"> <img class="image" src="image.jpg" alt="image">
@@ -2031,7 +2117,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f-ile\' (for HTML) not found, using `f-ile.jpg\'
',
'file_name' => '',
- 'line_nr' => 13,
+ 'line_nr' => 14,
'macro' => '',
'text' => '@image file `f-ile\' (for HTML) not found, using `f-ile.jpg\'',
'type' => 'warning'
@@ -2040,7 +2126,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f--ile@.\' (for HTML) not found, using `f--ile@.file ext e--xt}\'
',
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => '',
'text' => '@image file `f--ile@.\' (for HTML) not found, using `f--ile@.file ext e--xt}\'',
'type' => 'warning'
@@ -2049,7 +2135,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for HTML) not found, using `image.jpg\'
',
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 16,
'macro' => '',
'text' => '@image file `image\' (for HTML) not found, using `image.jpg\'',
'type' => 'warning'
@@ -2058,7 +2144,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for HTML) not found, using `image.jpg\'
',
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 16,
'macro' => '',
'text' => '@image file `image\' (for HTML) not found, using `image.jpg\'',
'type' => 'warning'
@@ -2067,7 +2153,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f-ile\' (for HTML) not found, using `f-ile.jpg\'
',
'file_name' => '',
- 'line_nr' => 24,
+ 'line_nr' => 25,
'macro' => '',
'text' => '@image file `f-ile\' (for HTML) not found, using `f-ile.jpg\'',
'type' => 'warning'
@@ -2076,7 +2162,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f--ile@.\' (for HTML) not found, using `f--ile@.file ext e--xt}\'
',
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => '',
'text' => '@image file `f--ile@.\' (for HTML) not found, using `f--ile@.file ext e--xt}\'',
'type' => 'warning'
@@ -2085,7 +2171,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for HTML) not found, using `image.jpg\'
',
'file_name' => '',
- 'line_nr' => 26,
+ 'line_nr' => 27,
'macro' => '',
'text' => '@image file `image\' (for HTML) not found, using `image.jpg\'',
'type' => 'warning'
@@ -2094,7 +2180,7 @@ $result_converted_errors{'html_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for HTML) not found, using `image.jpg\'
',
'file_name' => '',
- 'line_nr' => 26,
+ 'line_nr' => 27,
'macro' => '',
'text' => '@image file `image\' (for HTML) not found, using `image.jpg\'',
'type' => 'warning'
@@ -2116,6 +2202,7 @@ $result_converted{'xml'}->{'image_formatting'} = '<node name="Top" spaces=" "><n
<code>&arobase;image&lbrace;f--ile,,,alt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><alttext>alt</alttext></image>
<code>&arobase;image&lbrace;f--ile,,,,e-d-xt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imageextension>e--xt</imageextension></image>
<code>&arobase;image&lbrace;f--ile,aze,az,alt,e--xt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>e--xt</imageextension></image>
+<code>&arobase;image&lbrace;f--ile,aze,az,alt,</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension></imageextension></image>
<code>&arobase;image&lbrace;f-ile,aze,,a--lt&rbrace;</code> <image where="inline"><imagefile>f-ile</imagefile><imagewidth>aze</imagewidth><alttext>a&textndash;lt</alttext></image>
<code>&arobase;image&lbrace;&arobase;file&lbrace;f--ile&rbrace;&arobase;&arobase;&arobase;.,aze,az,alt,&arobase;file&lbrace;file ext&rbrace; e--xt&arobase;&rbrace;</code> <image where="inline"><imagefile><file>f--ile</file>&arobase;&eosperiod;</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension><file>file ext</file> e--xt&rbrace;</imageextension></image>
<image where="inline"><imagefile>image</imagefile></image> <image where="inline"><imagefile>image</imagefile></image>
@@ -2149,6 +2236,7 @@ $result_converted{'docbook'}->{'image_formatting'} = '<chapter label="1" id="cha
<literal>@image{f--ile,,,alt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>Image description&quot;&quot;\\.</literallayout></textobject></inlinemediaobject>
<literal>@image{f--ile,,,,e-d-xt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>Image description&quot;&quot;\\.</literallayout></textobject></inlinemediaobject>
<literal>@image{f--ile,aze,az,alt,e--xt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>Image description&quot;&quot;\\.</literallayout></textobject></inlinemediaobject>
+<literal>@image{f--ile,aze,az,alt,</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>Image description&quot;&quot;\\.</literallayout></textobject></inlinemediaobject>
<literal>@image{f-ile,aze,,a--lt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f-ile.jpg" format="JPG"></imagedata></imageobject></inlinemediaobject>
<literal>@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile@..jpg" format="JPG"></imagedata></imageobject></inlinemediaobject>
<inlinemediaobject><imageobject><imagedata fileref="image.jpg" format="JPG"></imagedata></imageobject><textobject><literallayout>aaa
@@ -2183,7 +2271,7 @@ $result_converted_errors{'docbook'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f-ile\' not found, using `f-ile.jpg\'
',
'file_name' => '',
- 'line_nr' => 13,
+ 'line_nr' => 14,
'macro' => '',
'text' => '@image file `f-ile\' not found, using `f-ile.jpg\'',
'type' => 'warning'
@@ -2192,7 +2280,7 @@ $result_converted_errors{'docbook'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f--ile@.\' not found, using `f--ile@..jpg\'
',
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => '',
'text' => '@image file `f--ile@.\' not found, using `f--ile@..jpg\'',
'type' => 'warning'
@@ -2201,7 +2289,7 @@ $result_converted_errors{'docbook'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f-ile\' not found, using `f-ile.jpg\'
',
'file_name' => '',
- 'line_nr' => 24,
+ 'line_nr' => 25,
'macro' => '',
'text' => '@image file `f-ile\' not found, using `f-ile.jpg\'',
'type' => 'warning'
@@ -2210,7 +2298,7 @@ $result_converted_errors{'docbook'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f--ile@.\' not found, using `f--ile@..jpg\'
',
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => '',
'text' => '@image file `f--ile@.\' not found, using `f--ile@..jpg\'',
'type' => 'warning'
@@ -2229,6 +2317,7 @@ $result_converted{'latex_text'}->{'image_formatting'} = '\\label{anchor:Top}%
\\texttt{@image\\{f{-}{-}ile{,}{,},alt\\}} \\includegraphics{f--ile}
\\texttt{@image\\{f{-}{-}ile{,}{,}{,}{,}e-d-xt\\}} \\includegraphics{f--ile}
\\texttt{@image\\{f{-}{-}ile,aze,az,alt,e{-}{-}xt\\}} \\includegraphics[width=aze,height=az]{f--ile}
+\\texttt{@image\\{f{-}{-}ile,aze,az,alt,} \\includegraphics[width=aze,height=az]{f--ile}
\\texttt{@image\\{f-ile,aze{,}{,}a{-}{-}lt\\}} \\includegraphics[width=aze]{f-ile}
\\texttt{@image\\{@file\\{f{-}{-}ile\\}@@@.,aze,az,alt,@file\\{file ext\\}\\ e{-}{-}xt@\\}} \\includegraphics[width=aze,height=az]{f--ile@.}
\\includegraphics{image} \\includegraphics{image}
@@ -2258,7 +2347,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f-ile\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 13,
+ 'line_nr' => 14,
'macro' => '',
'text' => '@image file `f-ile\' (for LaTeX) not found',
'type' => 'warning'
@@ -2267,7 +2356,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f--ile@.\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 14,
+ 'line_nr' => 15,
'macro' => '',
'text' => '@image file `f--ile@.\' (for LaTeX) not found',
'type' => 'warning'
@@ -2276,7 +2365,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 16,
'macro' => '',
'text' => '@image file `image\' (for LaTeX) not found',
'type' => 'warning'
@@ -2285,7 +2374,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 16,
'macro' => '',
'text' => '@image file `image\' (for LaTeX) not found',
'type' => 'warning'
@@ -2294,7 +2383,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f-ile\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 24,
+ 'line_nr' => 25,
'macro' => '',
'text' => '@image file `f-ile\' (for LaTeX) not found',
'type' => 'warning'
@@ -2303,7 +2392,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `f--ile@.\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 25,
+ 'line_nr' => 26,
'macro' => '',
'text' => '@image file `f--ile@.\' (for LaTeX) not found',
'type' => 'warning'
@@ -2312,7 +2401,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 26,
+ 'line_nr' => 27,
'macro' => '',
'text' => '@image file `image\' (for LaTeX) not found',
'type' => 'warning'
@@ -2321,7 +2410,7 @@ $result_converted_errors{'latex_text'}->{'image_formatting'} = [
'error_line' => 'warning: @image file `image\' (for LaTeX) not found
',
'file_name' => '',
- 'line_nr' => 26,
+ 'line_nr' => 27,
'macro' => '',
'text' => '@image file `image\' (for LaTeX) not found',
'type' => 'warning'
@@ -2350,7 +2439,8 @@ File: , Node: chap, Prev: Top, Up: Top
‘@image{f--ile}’
‘@image{f--ile,,,alt}’
-‘@image{f--ile,aze,az,alt,e--xt}’
+‘@image{f--ile,aze,az,alt,e--xt}’
+‘@image{f-ile,aze,,a--lt}’ [a-lt]
‘@image{@file{f--ile}@@@.,aze,az,alt,@file{file ext} e--xt@}’ [alt] aaa
bbb
ccc aaa
diff --git a/macros/texinfo/texinfo/tp/t/results/coverage_braces/empty_commands.pl b/macros/texinfo/texinfo/tp/t/results/coverage_braces/empty_commands.pl
index 3c0c8568f6..a15f296366 100644
--- a/macros/texinfo/texinfo/tp/t/results/coverage_braces/empty_commands.pl
+++ b/macros/texinfo/texinfo/tp/t/results/coverage_braces/empty_commands.pl
@@ -222,7 +222,7 @@ $result_converted{'html_text'}->{'empty_commands'} = '
';
-$result_converted{'latex_text'}->{'empty_commands'} = '{\\huge \\bfseries }
+$result_converted{'latex_text'}->{'empty_commands'} = '
\\texttt{}\\footnote{} \\~{} \\verb;;
';
diff --git a/macros/texinfo/texinfo/tp/t/results/formatting/direntry_dircategory_info_split.pl b/macros/texinfo/texinfo/tp/t/results/formatting/direntry_dircategory_info_split.pl
index d58b36e686..cd6f968501 100644
--- a/macros/texinfo/texinfo/tp/t/results/formatting/direntry_dircategory_info_split.pl
+++ b/macros/texinfo/texinfo/tp/t/results/formatting/direntry_dircategory_info_split.pl
@@ -107,116 +107,151 @@ $result_trees{'direntry_dircategory_info_split'} = {
'line_nr' => 5,
'macro' => ''
}
- }
- ],
- 'type' => 'preamble_before_content'
- },
- {
- 'args' => [
- {
- 'extra' => {
- 'spaces_after_argument' => '
-'
- },
- 'type' => 'block_line_arg'
- }
- ],
- 'cmdname' => 'direntry',
- 'contents' => [
+ },
{
'args' => [
{
- 'text' => '* ',
- 'type' => 'menu_entry_leading_text'
- },
- {
- 'contents' => [
- {
- 'text' => 'foo'
- }
- ],
- 'type' => 'menu_entry_name'
- },
- {
- 'text' => ': ',
- 'type' => 'menu_entry_separator'
- },
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'cmdname' => 'direntry',
+ 'contents' => [
{
- 'contents' => [
+ 'args' => [
{
- 'text' => '('
+ 'text' => '* ',
+ 'type' => 'menu_entry_leading_text'
},
{
- 'text' => 'foo'
+ 'contents' => [
+ {
+ 'text' => 'foo'
+ }
+ ],
+ 'type' => 'menu_entry_name'
},
{
- 'text' => ')'
- }
- ],
- 'type' => 'menu_entry_node'
- },
- {
- 'text' => '. ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
+ 'text' => ': ',
+ 'type' => 'menu_entry_separator'
+ },
{
'contents' => [
{
- 'text' => '``hello---'
+ 'text' => '('
+ },
+ {
+ 'text' => 'foo'
},
{
- 'args' => [
+ 'text' => ')'
+ }
+ ],
+ 'type' => 'menu_entry_node'
+ },
+ {
+ 'text' => '. ',
+ 'type' => 'menu_entry_separator'
+ },
+ {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '``hello---'
+ },
{
- 'contents' => [
+ 'args' => [
{
- 'text' => 'there'
+ 'contents' => [
+ {
+ 'text' => 'there'
+ }
+ ],
+ 'type' => 'brace_command_arg'
}
],
- 'type' => 'brace_command_arg'
+ 'cmdname' => 'var',
+ 'source_info' => {
+ 'file_name' => 'direntry_dircategory.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '?\'\'
+'
}
],
- 'cmdname' => 'var',
- 'source_info' => {
- 'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 7,
- 'macro' => ''
- }
- },
+ 'type' => 'preformatted'
+ }
+ ],
+ 'type' => 'menu_entry_description'
+ }
+ ],
+ 'extra' => {
+ 'menu_entry_description' => {},
+ 'menu_entry_name' => {},
+ 'menu_entry_node' => {
+ 'manual_content' => [
+ {}
+ ]
+ }
+ },
+ 'source_info' => {
+ 'file_name' => 'direntry_dircategory.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ },
+ 'type' => 'menu_entry'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
{
- 'text' => '?\'\'
-'
+ 'text' => 'direntry'
}
],
- 'type' => 'preformatted'
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
}
],
- 'type' => 'menu_entry_description'
+ 'cmdname' => 'end',
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'direntry'
+ },
+ 'source_info' => {
+ 'file_name' => 'direntry_dircategory.texi',
+ 'line_nr' => 8,
+ 'macro' => ''
+ }
}
],
- 'extra' => {
- 'menu_entry_description' => {},
- 'menu_entry_name' => {},
- 'menu_entry_node' => {
- 'manual_content' => [
- {}
- ]
- }
- },
'source_info' => {
'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 7,
+ 'line_nr' => 6,
'macro' => ''
- },
- 'type' => 'menu_entry'
+ }
+ },
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
},
{
'args' => [
{
'contents' => [
{
- 'text' => 'direntry'
+ 'text' => 'cat2'
}
],
'extra' => {
@@ -226,185 +261,150 @@ $result_trees{'direntry_dircategory_info_split'} = {
'type' => 'line_arg'
}
],
- 'cmdname' => 'end',
+ 'cmdname' => 'dircategory',
'extra' => {
- 'spaces_before_argument' => ' ',
- 'text_arg' => 'direntry'
+ 'spaces_before_argument' => ' '
},
'source_info' => {
'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 8,
+ 'line_nr' => 10,
'macro' => ''
}
- }
- ],
- 'source_info' => {
- 'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 6,
- 'macro' => ''
- }
- },
- {
- 'text' => '
-',
- 'type' => 'empty_line'
- },
- {
- 'args' => [
+ },
{
- 'contents' => [
+ 'args' => [
{
- 'text' => 'cat2'
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'block_line_arg'
}
],
- 'extra' => {
- 'spaces_after_argument' => '
-'
- },
- 'type' => 'line_arg'
- }
- ],
- 'cmdname' => 'dircategory',
- 'extra' => {
- 'spaces_before_argument' => ' '
- },
- 'source_info' => {
- 'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 10,
- 'macro' => ''
- }
- },
- {
- 'args' => [
- {
- 'extra' => {
- 'spaces_after_argument' => '
-'
- },
- 'type' => 'block_line_arg'
- }
- ],
- 'cmdname' => 'direntry',
- 'contents' => [
- {
- 'args' => [
- {
- 'text' => '* ',
- 'type' => 'menu_entry_leading_text'
- },
+ 'cmdname' => 'direntry',
+ 'contents' => [
{
- 'contents' => [
+ 'args' => [
+ {
+ 'text' => '* ',
+ 'type' => 'menu_entry_leading_text'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'aaa'
+ },
+ {
+ 'text' => ' ',
+ 'type' => 'space_at_end_menu_node'
+ }
+ ],
+ 'type' => 'menu_entry_node'
+ },
{
- 'text' => 'aaa'
+ 'text' => ':: ',
+ 'type' => 'menu_entry_separator'
},
{
- 'text' => ' ',
- 'type' => 'space_at_end_menu_node'
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'aaaa
+'
+ },
+ {
+ 'text' => ' bbbbb
+'
+ }
+ ],
+ 'type' => 'preformatted'
+ }
+ ],
+ 'type' => 'menu_entry_description'
}
],
- 'type' => 'menu_entry_node'
- },
- {
- 'text' => ':: ',
- 'type' => 'menu_entry_separator'
+ 'extra' => {
+ 'menu_entry_description' => {},
+ 'menu_entry_node' => {
+ 'node_content' => [
+ {},
+ {}
+ ],
+ 'normalized' => 'aaa'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => 'direntry_dircategory.texi',
+ 'line_nr' => 12,
+ 'macro' => ''
+ },
+ 'type' => 'menu_entry'
},
{
'contents' => [
{
'contents' => [
{
- 'text' => 'aaaa
-'
+ 'text' => '
+',
+ 'type' => 'after_menu_description_line'
},
{
- 'text' => ' bbbbb
+ 'text' => 'menutitle
'
}
],
'type' => 'preformatted'
}
],
- 'type' => 'menu_entry_description'
- }
- ],
- 'extra' => {
- 'menu_entry_description' => {},
- 'menu_entry_node' => {
- 'node_content' => [
- {},
- {}
- ],
- 'normalized' => 'aaa'
- }
- },
- 'source_info' => {
- 'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 12,
- 'macro' => ''
- },
- 'type' => 'menu_entry'
- },
- {
- 'contents' => [
+ 'type' => 'menu_comment'
+ },
{
- 'contents' => [
+ 'args' => [
{
- 'text' => '
-',
- 'type' => 'after_menu_description_line'
- },
- {
- 'text' => 'menutitle
+ 'contents' => [
+ {
+ 'text' => 'direntry'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
'
+ },
+ 'type' => 'line_arg'
}
],
- 'type' => 'preformatted'
- }
- ],
- 'type' => 'menu_comment'
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'direntry'
- }
- ],
+ 'cmdname' => 'end',
'extra' => {
- 'spaces_after_argument' => '
-'
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'direntry'
},
- 'type' => 'line_arg'
+ 'source_info' => {
+ 'file_name' => 'direntry_dircategory.texi',
+ 'line_nr' => 16,
+ 'macro' => ''
+ }
}
],
- 'cmdname' => 'end',
- 'extra' => {
- 'spaces_before_argument' => ' ',
- 'text_arg' => 'direntry'
- },
'source_info' => {
'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 16,
+ 'line_nr' => 11,
'macro' => ''
}
- }
- ],
- 'source_info' => {
- 'file_name' => 'direntry_dircategory.texi',
- 'line_nr' => 11,
- 'macro' => ''
- }
- },
- {
- 'text' => '
+ },
+ {
+ 'text' => '
',
- 'type' => 'empty_line'
- },
- {
- 'text' => '
+ 'type' => 'empty_line'
+ },
+ {
+ 'text' => '
',
- 'type' => 'empty_line'
+ 'type' => 'empty_line'
+ }
+ ],
+ 'type' => 'preamble_before_content'
}
],
'type' => 'before_node_section'
@@ -824,12 +824,12 @@ $result_trees{'direntry_dircategory_info_split'} = {
],
'type' => 'document_root'
};
-$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[5];
-$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_name'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[1];
-$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[3]{'contents'}[1];
-$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'args'}[3];
-$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'extra'}{'menu_entry_node'}{'node_content'}[0] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'args'}[1]{'contents'}[0];
-$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'extra'}{'menu_entry_node'}{'node_content'}[1] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[5]{'contents'}[0]{'args'}[1]{'contents'}[1];
+$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[5];
+$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_name'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[1];
+$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[3]{'contents'}[1];
+$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[6]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[3];
+$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[6]{'contents'}[0]{'extra'}{'menu_entry_node'}{'node_content'}[0] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[1]{'contents'}[0];
+$result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[6]{'contents'}[0]{'extra'}{'menu_entry_node'}{'node_content'}[1] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[0]{'contents'}[1]{'contents'}[6]{'contents'}[0]{'args'}[1]{'contents'}[1];
$result_trees{'direntry_dircategory_info_split'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'direntry_dircategory_info_split'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'direntry_dircategory_info_split'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'direntry_dircategory_info_split'}{'contents'}[2]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'direntry_dircategory_info_split'}{'contents'}[2]{'contents'}[3]{'contents'}[0]{'args'}[5];
diff --git a/macros/texinfo/texinfo/tp/t/results/html_tests/empty_titlefont.pl b/macros/texinfo/texinfo/tp/t/results/html_tests/empty_titlefont.pl
new file mode 100644
index 0000000000..97765bf422
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/html_tests/empty_titlefont.pl
@@ -0,0 +1,95 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'empty_titlefont'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'titlefont',
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+'
+ }
+ ],
+ 'type' => 'before_node_section'
+ }
+ ],
+ 'type' => 'document_root'
+};
+
+$result_texis{'empty_titlefont'} = '
+@titlefont{}
+';
+
+
+$result_texts{'empty_titlefont'} = '
+
+';
+
+$result_errors{'empty_titlefont'} = [];
+
+
+$result_floats{'empty_titlefont'} = {};
+
+
+
+$result_converted{'html'}->{'empty_titlefont'} = '<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Untitled Document</title>
+
+<meta name="description" content="Untitled Document">
+<meta name="keywords" content="Untitled Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+
+
+</head>
+
+<body lang="en">
+
+
+
+
+
+</body>
+</html>
+';
+
+$result_converted_errors{'html'}->{'empty_titlefont'} = [
+ {
+ 'error_line' => 'warning: must specify a title with a title command or @top
+',
+ 'file_name' => 'empty_titlefont.texi',
+ 'text' => 'must specify a title with a title command or @top',
+ 'type' => 'warning'
+ }
+];
+
+
+1;
diff --git a/macros/texinfo/texinfo/tp/t/results/info_tests/empty_arguments.pl b/macros/texinfo/texinfo/tp/t/results/info_tests/empty_arguments.pl
new file mode 100644
index 0000000000..840791d0aa
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/info_tests/empty_arguments.pl
@@ -0,0 +1,136 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'empty_arguments'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'strong',
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+'
+ },
+ {
+ 'args' => [
+ {
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'uref',
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 3,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ },
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'abbr',
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 4,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+'
+ }
+ ],
+ 'type' => 'paragraph'
+ }
+ ],
+ 'type' => 'before_node_section'
+ }
+ ],
+ 'type' => 'document_root'
+};
+
+$result_texis{'empty_arguments'} = '
+@strong{}
+@uref{,}
+@abbr{a,}
+';
+
+
+$result_texts{'empty_arguments'} = '
+
+
+a
+';
+
+$result_errors{'empty_arguments'} = [];
+
+
+$result_floats{'empty_arguments'} = {};
+
+
+
+$result_converted{'info'}->{'empty_arguments'} = 'This is , produced from .
+
+** a
+
+
+Tag Table:
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
+';
+
+$result_converted_errors{'info'}->{'empty_arguments'} = [
+ {
+ 'error_line' => 'warning: document without nodes
+',
+ 'text' => 'document without nodes',
+ 'type' => 'warning'
+ }
+];
+
+
+1;
diff --git a/macros/texinfo/texinfo/tp/t/results/info_tests/empty_caption.pl b/macros/texinfo/texinfo/tp/t/results/info_tests/empty_caption.pl
new file mode 100644
index 0000000000..dbc9d1809d
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/info_tests/empty_caption.pl
@@ -0,0 +1,306 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'empty_caption'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ }
+ ],
+ 'type' => 'before_node_section'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'Top'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'type' => 'block_line_arg'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'b'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'cmdname' => 'float',
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'aa
+'
+ }
+ ],
+ 'type' => 'paragraph'
+ },
+ {
+ 'args' => [
+ {
+ 'type' => 'brace_command_context'
+ }
+ ],
+ 'cmdname' => 'caption',
+ 'extra' => {
+ 'float' => {}
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 6,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+',
+ 'type' => 'spaces_after_close_brace'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'float'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'end',
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'float'
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'caption' => {},
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'b',
+ 'spaces_before_argument' => ' ',
+ 'type' => {
+ 'content' => [
+ {}
+ ],
+ 'normalized' => 'a'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 4,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'listoffloats',
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'type' => {
+ 'content' => [
+ {}
+ ],
+ 'normalized' => 'a'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 9,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'Top'
+ }
+ ],
+ 'normalized' => 'Top',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'document_root'
+};
+$result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'extra'}{'float'} = $result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1];
+$result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'extra'}{'caption'} = $result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
+$result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'args'}[1]{'contents'}[0];
+$result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'extra'}{'type'}{'content'}[0] = $result_trees{'empty_caption'}{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'empty_caption'}{'contents'}[1]{'contents'}[3]{'extra'}{'type'}{'content'}[0] = $result_trees{'empty_caption'}{'contents'}[1]{'contents'}[3]{'args'}[0]{'contents'}[0];
+$result_trees{'empty_caption'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'empty_caption'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'empty_caption'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'empty_caption'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+
+$result_texis{'empty_caption'} = '
+@node Top
+
+@float a,b
+aa
+@caption{}
+@end float
+
+@listoffloats a
+';
+
+
+$result_texts{'empty_caption'} = '
+
+a, b
+aa
+
+';
+
+$result_nodes{'empty_caption'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ }
+};
+
+$result_menus{'empty_caption'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ }
+};
+
+$result_errors{'empty_caption'} = [];
+
+
+$result_floats{'empty_caption'} = {
+ 'a' => [
+ {
+ 'cmdname' => 'float',
+ 'extra' => {
+ 'caption' => {
+ 'cmdname' => 'caption',
+ 'extra' => {
+ 'float' => {}
+ }
+ },
+ 'normalized' => 'b',
+ 'type' => {
+ 'content' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'normalized' => 'a'
+ }
+ },
+ 'structure' => {
+ 'float_number' => 1
+ }
+ }
+ ]
+};
+$result_floats{'empty_caption'}{'a'}[0]{'extra'}{'caption'}{'extra'}{'float'} = $result_floats{'empty_caption'}{'a'}[0];
+
+
+
+$result_converted{'info'}->{'empty_caption'} = 'This is , produced from .
+
+
+File: , Node: Top, Up: (dir)
+
+aa
+
+a 1:
+* Menu:
+
+* a 1: b.
+
+
+
+Tag Table:
+Node: Top27
+Ref: b61
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
+';
+
+1;
diff --git a/macros/texinfo/texinfo/tp/t/results/info_tests/float_without_type.pl b/macros/texinfo/texinfo/tp/t/results/info_tests/float_without_type.pl
new file mode 100644
index 0000000000..11ab617102
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/info_tests/float_without_type.pl
@@ -0,0 +1,259 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'float_without_type'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ }
+ ],
+ 'type' => 'before_node_section'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'Top'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'type' => 'block_line_arg'
+ },
+ {
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'cmdname' => 'float',
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'aa
+'
+ }
+ ],
+ 'type' => 'paragraph'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'float'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'end',
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'float'
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 6,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'type' => {
+ 'content' => [
+ {}
+ ],
+ 'normalized' => 'a'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 4,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'listoffloats',
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'type' => {
+ 'content' => [
+ {}
+ ],
+ 'normalized' => 'a'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 8,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'Top'
+ }
+ ],
+ 'normalized' => 'Top',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'document_root'
+};
+$result_trees{'float_without_type'}{'contents'}[1]{'contents'}[1]{'extra'}{'type'}{'content'}[0] = $result_trees{'float_without_type'}{'contents'}[1]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'float_without_type'}{'contents'}[1]{'contents'}[3]{'extra'}{'type'}{'content'}[0] = $result_trees{'float_without_type'}{'contents'}[1]{'contents'}[3]{'args'}[0]{'contents'}[0];
+$result_trees{'float_without_type'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'float_without_type'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'float_without_type'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'float_without_type'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+
+$result_texis{'float_without_type'} = '
+@node Top
+
+@float a,
+aa
+@end float
+
+@listoffloats a
+';
+
+
+$result_texts{'float_without_type'} = '
+
+a
+aa
+
+';
+
+$result_nodes{'float_without_type'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ }
+};
+
+$result_menus{'float_without_type'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ }
+};
+
+$result_errors{'float_without_type'} = [];
+
+
+$result_floats{'float_without_type'} = {
+ 'a' => [
+ {
+ 'cmdname' => 'float',
+ 'extra' => {
+ 'type' => {
+ 'content' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'normalized' => 'a'
+ }
+ }
+ }
+ ]
+};
+
+
+
+$result_converted{'info'}->{'float_without_type'} = 'This is , produced from .
+
+
+File: , Node: Top, Up: (dir)
+
+aa
+
+a
+
+* Menu:
+
+
+
+
+Tag Table:
+Node: Top27
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
+';
+
+1;
diff --git a/macros/texinfo/texinfo/tp/t/results/morecoverage/formatting_fr.pl b/macros/texinfo/texinfo/tp/t/results/morecoverage/formatting_fr.pl
index 5d3766d819..daba7317c8 100644
--- a/macros/texinfo/texinfo/tp/t/results/morecoverage/formatting_fr.pl
+++ b/macros/texinfo/texinfo/tp/t/results/morecoverage/formatting_fr.pl
@@ -139,122 +139,221 @@ $result_trees{'formatting_fr'} = {
'line_nr' => 4,
'macro' => ''
}
- }
- ],
- 'type' => 'preamble_before_content'
- },
- {
- 'args' => [
- {
- 'extra' => {
- 'spaces_after_argument' => '
-'
- },
- 'type' => 'block_line_arg'
- }
- ],
- 'cmdname' => 'direntry',
- 'contents' => [
+ },
{
'args' => [
{
- 'text' => '* ',
- 'type' => 'menu_entry_leading_text'
- },
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'cmdname' => 'direntry',
+ 'contents' => [
{
- 'contents' => [
+ 'args' => [
{
- 'text' => 'Truc'
- }
- ],
- 'type' => 'menu_entry_name'
- },
- {
- 'text' => ': ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
+ 'text' => '* ',
+ 'type' => 'menu_entry_leading_text'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'Truc'
+ }
+ ],
+ 'type' => 'menu_entry_name'
+ },
{
- 'text' => '('
+ 'text' => ': ',
+ 'type' => 'menu_entry_separator'
},
{
- 'text' => 'formatting'
+ 'contents' => [
+ {
+ 'text' => '('
+ },
+ {
+ 'text' => 'formatting'
+ },
+ {
+ 'text' => ')'
+ }
+ ],
+ 'type' => 'menu_entry_node'
},
{
- 'text' => ')'
- }
- ],
- 'type' => 'menu_entry_node'
- },
- {
- 'text' => '. ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
+ 'text' => '. ',
+ 'type' => 'menu_entry_separator'
+ },
{
'contents' => [
{
- 'text' => 'The GNU documentation truc.
+ 'contents' => [
+ {
+ 'text' => 'The GNU documentation truc.
'
+ }
+ ],
+ 'type' => 'preformatted'
}
],
- 'type' => 'preformatted'
+ 'type' => 'menu_entry_description'
}
],
- 'type' => 'menu_entry_description'
- }
- ],
- 'extra' => {
- 'menu_entry_description' => {},
- 'menu_entry_name' => {},
- 'menu_entry_node' => {
- 'manual_content' => [
- {}
- ]
- }
- },
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 6,
- 'macro' => ''
- },
- 'type' => 'menu_entry'
- },
- {
- 'args' => [
- {
- 'text' => '* ',
- 'type' => 'menu_entry_leading_text'
+ 'extra' => {
+ 'menu_entry_description' => {},
+ 'menu_entry_name' => {},
+ 'menu_entry_node' => {
+ 'manual_content' => [
+ {}
+ ]
+ }
+ },
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 6,
+ 'macro' => ''
+ },
+ 'type' => 'menu_entry'
},
{
- 'contents' => [
+ 'args' => [
{
- 'args' => [
+ 'text' => '* ',
+ 'type' => 'menu_entry_leading_text'
+ },
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'cmdname' => '@'
+ },
+ {
+ 'text' => ' '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'e'
+ }
+ ],
+ 'type' => 'following_arg'
+ }
+ ],
+ 'cmdname' => '\'',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => ' '
+ },
+ {
+ 'args' => [
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'equiv',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'code',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'menu_entry_name'
+ },
+ {
+ 'text' => ': ',
+ 'type' => 'menu_entry_separator'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => '('
+ },
+ {
+ 'text' => 'formatting'
+ },
+ {
+ 'text' => ')'
+ }
+ ],
+ 'type' => 'menu_entry_node'
+ },
+ {
+ 'text' => '. ',
+ 'type' => 'menu_entry_separator'
+ },
+ {
+ 'contents' => [
{
'contents' => [
{
- 'cmdname' => '@'
+ 'text' => '``'
},
{
- 'text' => ' '
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '--- something'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'asis',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '\'\'
+'
+ },
+ {
+ 'text' => ' '
},
{
'args' => [
{
'contents' => [
{
- 'text' => 'e'
+ 'text' => 'cmd'
}
],
- 'type' => 'following_arg'
+ 'type' => 'brace_command_arg'
}
],
- 'cmdname' => '\'',
+ 'cmdname' => 'command',
'source_info' => {
'file_name' => 'formatting.texi',
- 'line_nr' => 7,
+ 'line_nr' => 8,
'macro' => ''
}
},
@@ -264,182 +363,83 @@ $result_trees{'formatting_fr'} = {
{
'args' => [
{
- 'type' => 'brace_command_arg'
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'type' => 'following_arg'
}
],
- 'cmdname' => 'equiv',
+ 'cmdname' => '`',
'source_info' => {
'file_name' => 'formatting.texi',
- 'line_nr' => 7,
+ 'line_nr' => 8,
'macro' => ''
}
+ },
+ {
+ 'text' => '
+'
}
],
- 'type' => 'brace_command_arg'
+ 'type' => 'preformatted'
}
],
- 'cmdname' => 'code',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 7,
- 'macro' => ''
- }
+ 'type' => 'menu_entry_description'
}
],
- 'type' => 'menu_entry_name'
- },
- {
- 'text' => ': ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
- {
- 'text' => '('
- },
- {
- 'text' => 'formatting'
- },
- {
- 'text' => ')'
+ 'extra' => {
+ 'menu_entry_description' => {},
+ 'menu_entry_name' => {},
+ 'menu_entry_node' => {
+ 'manual_content' => [
+ {}
+ ]
}
- ],
- 'type' => 'menu_entry_node'
- },
- {
- 'text' => '. ',
- 'type' => 'menu_entry_separator'
+ },
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ },
+ 'type' => 'menu_entry'
},
{
- 'contents' => [
+ 'args' => [
{
'contents' => [
{
- 'text' => '``'
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => '--- something'
- }
- ],
- 'type' => 'brace_command_arg'
- }
- ],
- 'cmdname' => 'asis',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 7,
- 'macro' => ''
- }
- },
- {
- 'text' => '\'\'
-'
- },
- {
- 'text' => ' '
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'cmd'
- }
- ],
- 'type' => 'brace_command_arg'
- }
- ],
- 'cmdname' => 'command',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 8,
- 'macro' => ''
- }
- },
- {
- 'text' => ' '
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'a'
- }
- ],
- 'type' => 'following_arg'
- }
- ],
- 'cmdname' => '`',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 8,
- 'macro' => ''
- }
- },
- {
- 'text' => '
-'
+ 'text' => 'direntry'
}
],
- 'type' => 'preformatted'
- }
- ],
- 'type' => 'menu_entry_description'
- }
- ],
- 'extra' => {
- 'menu_entry_description' => {},
- 'menu_entry_name' => {},
- 'menu_entry_node' => {
- 'manual_content' => [
- {}
- ]
- }
- },
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 7,
- 'macro' => ''
- },
- 'type' => 'menu_entry'
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'direntry'
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
}
],
+ 'cmdname' => 'end',
'extra' => {
- 'spaces_after_argument' => '
-'
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'direntry'
},
- 'type' => 'line_arg'
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 9,
+ 'macro' => ''
+ }
}
],
- 'cmdname' => 'end',
- 'extra' => {
- 'spaces_before_argument' => ' ',
- 'text_arg' => 'direntry'
- },
'source_info' => {
'file_name' => 'formatting.texi',
- 'line_nr' => 9,
+ 'line_nr' => 5,
'macro' => ''
}
}
],
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 5,
- 'macro' => ''
- }
+ 'type' => 'preamble_before_content'
}
],
'type' => 'before_node_section'
@@ -3064,12 +3064,12 @@ $result_trees{'formatting_fr'} = {
],
'type' => 'document_root'
};
-$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[5];
-$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_name'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[1];
-$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[3]{'contents'}[1];
-$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'menu_entry_description'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'args'}[5];
-$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'menu_entry_name'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'args'}[1];
-$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[5];
+$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_name'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[1];
+$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[3]{'contents'}[1];
+$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'extra'}{'menu_entry_description'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'args'}[5];
+$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'extra'}{'menu_entry_name'} = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'args'}[1];
+$result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'formatting_fr'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'args'}[3]{'contents'}[1];
$result_trees{'formatting_fr'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'formatting_fr'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'formatting_fr'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'formatting_fr'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'formatting_fr'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'formatting_fr'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'args'}[3];
diff --git a/macros/texinfo/texinfo/tp/t/results/morecoverage/texi_formatting.pl b/macros/texinfo/texinfo/tp/t/results/morecoverage/texi_formatting.pl
index 9515c7ca0b..7a7d4bb5ea 100644
--- a/macros/texinfo/texinfo/tp/t/results/morecoverage/texi_formatting.pl
+++ b/macros/texinfo/texinfo/tp/t/results/morecoverage/texi_formatting.pl
@@ -139,122 +139,221 @@ $result_trees{'texi_formatting'} = {
'line_nr' => 4,
'macro' => ''
}
- }
- ],
- 'type' => 'preamble_before_content'
- },
- {
- 'args' => [
- {
- 'extra' => {
- 'spaces_after_argument' => '
-'
- },
- 'type' => 'block_line_arg'
- }
- ],
- 'cmdname' => 'direntry',
- 'contents' => [
+ },
{
'args' => [
{
- 'text' => '* ',
- 'type' => 'menu_entry_leading_text'
- },
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'block_line_arg'
+ }
+ ],
+ 'cmdname' => 'direntry',
+ 'contents' => [
{
- 'contents' => [
+ 'args' => [
{
- 'text' => 'Truc'
- }
- ],
- 'type' => 'menu_entry_name'
- },
- {
- 'text' => ': ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
+ 'text' => '* ',
+ 'type' => 'menu_entry_leading_text'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => 'Truc'
+ }
+ ],
+ 'type' => 'menu_entry_name'
+ },
{
- 'text' => '('
+ 'text' => ': ',
+ 'type' => 'menu_entry_separator'
},
{
- 'text' => 'formatting'
+ 'contents' => [
+ {
+ 'text' => '('
+ },
+ {
+ 'text' => 'formatting'
+ },
+ {
+ 'text' => ')'
+ }
+ ],
+ 'type' => 'menu_entry_node'
},
{
- 'text' => ')'
- }
- ],
- 'type' => 'menu_entry_node'
- },
- {
- 'text' => '. ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
+ 'text' => '. ',
+ 'type' => 'menu_entry_separator'
+ },
{
'contents' => [
{
- 'text' => 'The GNU documentation truc.
+ 'contents' => [
+ {
+ 'text' => 'The GNU documentation truc.
'
+ }
+ ],
+ 'type' => 'preformatted'
}
],
- 'type' => 'preformatted'
+ 'type' => 'menu_entry_description'
}
],
- 'type' => 'menu_entry_description'
- }
- ],
- 'extra' => {
- 'menu_entry_description' => {},
- 'menu_entry_name' => {},
- 'menu_entry_node' => {
- 'manual_content' => [
- {}
- ]
- }
- },
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 6,
- 'macro' => ''
- },
- 'type' => 'menu_entry'
- },
- {
- 'args' => [
- {
- 'text' => '* ',
- 'type' => 'menu_entry_leading_text'
+ 'extra' => {
+ 'menu_entry_description' => {},
+ 'menu_entry_name' => {},
+ 'menu_entry_node' => {
+ 'manual_content' => [
+ {}
+ ]
+ }
+ },
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 6,
+ 'macro' => ''
+ },
+ 'type' => 'menu_entry'
},
{
- 'contents' => [
+ 'args' => [
{
- 'args' => [
+ 'text' => '* ',
+ 'type' => 'menu_entry_leading_text'
+ },
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'cmdname' => '@'
+ },
+ {
+ 'text' => ' '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'e'
+ }
+ ],
+ 'type' => 'following_arg'
+ }
+ ],
+ 'cmdname' => '\'',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => ' '
+ },
+ {
+ 'args' => [
+ {
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'equiv',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'code',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'menu_entry_name'
+ },
+ {
+ 'text' => ': ',
+ 'type' => 'menu_entry_separator'
+ },
+ {
+ 'contents' => [
+ {
+ 'text' => '('
+ },
+ {
+ 'text' => 'formatting'
+ },
+ {
+ 'text' => ')'
+ }
+ ],
+ 'type' => 'menu_entry_node'
+ },
+ {
+ 'text' => '. ',
+ 'type' => 'menu_entry_separator'
+ },
+ {
+ 'contents' => [
{
'contents' => [
{
- 'cmdname' => '@'
+ 'text' => '``'
},
{
- 'text' => ' '
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => '--- something'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'asis',
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => '\'\'
+'
+ },
+ {
+ 'text' => ' '
},
{
'args' => [
{
'contents' => [
{
- 'text' => 'e'
+ 'text' => 'cmd'
}
],
- 'type' => 'following_arg'
+ 'type' => 'brace_command_arg'
}
],
- 'cmdname' => '\'',
+ 'cmdname' => 'command',
'source_info' => {
'file_name' => 'formatting.texi',
- 'line_nr' => 7,
+ 'line_nr' => 8,
'macro' => ''
}
},
@@ -264,182 +363,83 @@ $result_trees{'texi_formatting'} = {
{
'args' => [
{
- 'type' => 'brace_command_arg'
+ 'contents' => [
+ {
+ 'text' => 'a'
+ }
+ ],
+ 'type' => 'following_arg'
}
],
- 'cmdname' => 'equiv',
+ 'cmdname' => '`',
'source_info' => {
'file_name' => 'formatting.texi',
- 'line_nr' => 7,
+ 'line_nr' => 8,
'macro' => ''
}
+ },
+ {
+ 'text' => '
+'
}
],
- 'type' => 'brace_command_arg'
+ 'type' => 'preformatted'
}
],
- 'cmdname' => 'code',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 7,
- 'macro' => ''
- }
+ 'type' => 'menu_entry_description'
}
],
- 'type' => 'menu_entry_name'
- },
- {
- 'text' => ': ',
- 'type' => 'menu_entry_separator'
- },
- {
- 'contents' => [
- {
- 'text' => '('
- },
- {
- 'text' => 'formatting'
- },
- {
- 'text' => ')'
+ 'extra' => {
+ 'menu_entry_description' => {},
+ 'menu_entry_name' => {},
+ 'menu_entry_node' => {
+ 'manual_content' => [
+ {}
+ ]
}
- ],
- 'type' => 'menu_entry_node'
- },
- {
- 'text' => '. ',
- 'type' => 'menu_entry_separator'
+ },
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 7,
+ 'macro' => ''
+ },
+ 'type' => 'menu_entry'
},
{
- 'contents' => [
+ 'args' => [
{
'contents' => [
{
- 'text' => '``'
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => '--- something'
- }
- ],
- 'type' => 'brace_command_arg'
- }
- ],
- 'cmdname' => 'asis',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 7,
- 'macro' => ''
- }
- },
- {
- 'text' => '\'\'
-'
- },
- {
- 'text' => ' '
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'cmd'
- }
- ],
- 'type' => 'brace_command_arg'
- }
- ],
- 'cmdname' => 'command',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 8,
- 'macro' => ''
- }
- },
- {
- 'text' => ' '
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'a'
- }
- ],
- 'type' => 'following_arg'
- }
- ],
- 'cmdname' => '`',
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 8,
- 'macro' => ''
- }
- },
- {
- 'text' => '
-'
+ 'text' => 'direntry'
}
],
- 'type' => 'preformatted'
- }
- ],
- 'type' => 'menu_entry_description'
- }
- ],
- 'extra' => {
- 'menu_entry_description' => {},
- 'menu_entry_name' => {},
- 'menu_entry_node' => {
- 'manual_content' => [
- {}
- ]
- }
- },
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 7,
- 'macro' => ''
- },
- 'type' => 'menu_entry'
- },
- {
- 'args' => [
- {
- 'contents' => [
- {
- 'text' => 'direntry'
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
}
],
+ 'cmdname' => 'end',
'extra' => {
- 'spaces_after_argument' => '
-'
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'direntry'
},
- 'type' => 'line_arg'
+ 'source_info' => {
+ 'file_name' => 'formatting.texi',
+ 'line_nr' => 9,
+ 'macro' => ''
+ }
}
],
- 'cmdname' => 'end',
- 'extra' => {
- 'spaces_before_argument' => ' ',
- 'text_arg' => 'direntry'
- },
'source_info' => {
'file_name' => 'formatting.texi',
- 'line_nr' => 9,
+ 'line_nr' => 5,
'macro' => ''
}
}
],
- 'source_info' => {
- 'file_name' => 'formatting.texi',
- 'line_nr' => 5,
- 'macro' => ''
- }
+ 'type' => 'preamble_before_content'
}
],
'type' => 'before_node_section'
@@ -3064,12 +3064,12 @@ $result_trees{'texi_formatting'} = {
],
'type' => 'document_root'
};
-$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[5];
-$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_name'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[1];
-$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[0]{'args'}[3]{'contents'}[1];
-$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'menu_entry_description'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'args'}[5];
-$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'menu_entry_name'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'args'}[1];
-$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[2]{'contents'}[1]{'args'}[3]{'contents'}[1];
+$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[5];
+$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_name'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[1];
+$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[0]{'args'}[3]{'contents'}[1];
+$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'extra'}{'menu_entry_description'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'args'}[5];
+$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'extra'}{'menu_entry_name'} = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'args'}[1];
+$result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'extra'}{'menu_entry_node'}{'manual_content'}[0] = $result_trees{'texi_formatting'}{'contents'}[0]{'contents'}[1]{'contents'}[3]{'contents'}[1]{'args'}[3]{'contents'}[1];
$result_trees{'texi_formatting'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'texi_formatting'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'texi_formatting'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'texi_formatting'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'texi_formatting'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'extra'}{'menu_entry_description'} = $result_trees{'texi_formatting'}{'contents'}[2]{'contents'}[1]{'contents'}[0]{'args'}[3];
diff --git a/macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_node_reference.pl b/macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_node_reference.pl
new file mode 100644
index 0000000000..6caac8b471
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_node_reference.pl
@@ -0,0 +1,471 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'double_recursive_self_section_node_reference'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'type' => 'preamble_before_content'
+ }
+ ],
+ 'type' => 'before_node_section'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'Top'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'Top'
+ }
+ ],
+ 'normalized' => 'Top',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => ''
+ }
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'top'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'top',
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ }
+ ],
+ 'extra' => {
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'node1'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'node1'
+ }
+ ],
+ 'normalized' => 'node1',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 4,
+ 'macro' => ''
+ }
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'to node1'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'ref',
+ 'extra' => {
+ 'label' => {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'to '
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'node1'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'ref',
+ 'extra' => {
+ 'label' => {},
+ 'node_argument' => {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'node1'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'node_content' => [
+ {},
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {},
+ {}
+ ],
+ 'normalized' => 'to-node1'
+ }
+ ],
+ 'normalized' => 'to-node1',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => ''
+ }
+ },
+ 'node_argument' => {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'to-node1'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'chapter',
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ }
+ ],
+ 'extra' => {
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => ''
+ }
+ },
+ {}
+ ],
+ 'type' => 'document_root'
+};
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[3]{'extra'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[3]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[3]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[3]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[1]{'extra'}{'label'} = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[3];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[1]{'extra'}{'node_argument'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'extra'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'extra'}{'node_content'}[1] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[1];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[0]{'node_content'}[1] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[1];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_node_reference'}{'contents'}[5] = $result_trees{'double_recursive_self_section_node_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'};
+
+$result_texis{'double_recursive_self_section_node_reference'} = '@node Top
+@top top
+
+@node node1
+@chapter @ref{to node1}
+
+@node to @ref{node1}
+';
+
+
+$result_texts{'double_recursive_self_section_node_reference'} = 'top
+***
+
+1 to node1
+**********
+
+';
+
+$result_sectioning{'double_recursive_self_section_node_reference'} = {
+ 'structure' => {
+ 'section_childs' => [
+ {
+ 'cmdname' => 'top',
+ 'extra' => {
+ 'associated_node' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ },
+ 'structure' => {}
+ }
+ },
+ 'structure' => {
+ 'section_childs' => [
+ {
+ 'cmdname' => 'chapter',
+ 'extra' => {
+ 'associated_node' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'node1'
+ },
+ 'structure' => {}
+ }
+ },
+ 'structure' => {
+ 'section_level' => 1,
+ 'section_number' => 1,
+ 'section_up' => {},
+ 'toplevel_prev' => {},
+ 'toplevel_up' => {}
+ }
+ }
+ ],
+ 'section_level' => 0,
+ 'section_up' => {}
+ }
+ }
+ ],
+ 'section_level' => -1
+ }
+};
+$result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0]{'structure'}{'section_childs'}[0]{'structure'}{'section_up'} = $result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0];
+$result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0]{'structure'}{'section_childs'}[0]{'structure'}{'toplevel_prev'} = $result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0];
+$result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0]{'structure'}{'section_childs'}[0]{'structure'}{'toplevel_up'} = $result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0];
+$result_sectioning{'double_recursive_self_section_node_reference'}{'structure'}{'section_childs'}[0]{'structure'}{'section_up'} = $result_sectioning{'double_recursive_self_section_node_reference'};
+
+$result_nodes{'double_recursive_self_section_node_reference'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'associated_section' => {
+ 'cmdname' => 'top',
+ 'extra' => {},
+ 'structure' => {}
+ },
+ 'normalized' => 'Top'
+ },
+ 'structure' => {
+ 'node_next' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'associated_section' => {
+ 'cmdname' => 'chapter',
+ 'extra' => {},
+ 'structure' => {
+ 'section_number' => 1
+ }
+ },
+ 'normalized' => 'node1'
+ },
+ 'structure' => {
+ 'node_prev' => {},
+ 'node_up' => {}
+ }
+ }
+ }
+};
+$result_nodes{'double_recursive_self_section_node_reference'}{'structure'}{'node_next'}{'structure'}{'node_prev'} = $result_nodes{'double_recursive_self_section_node_reference'};
+$result_nodes{'double_recursive_self_section_node_reference'}{'structure'}{'node_next'}{'structure'}{'node_up'} = $result_nodes{'double_recursive_self_section_node_reference'};
+
+$result_menus{'double_recursive_self_section_node_reference'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'Top'
+ },
+ 'structure' => {}
+};
+
+$result_errors{'double_recursive_self_section_node_reference'} = [
+ {
+ 'error_line' => 'warning: @ref should not appear in @node
+',
+ 'file_name' => '',
+ 'line_nr' => 7,
+ 'macro' => '',
+ 'text' => '@ref should not appear in @node',
+ 'type' => 'warning'
+ },
+ {
+ 'error_line' => 'warning: @ref to `to node1\', different from node name `to @ref{node1}\'
+',
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => '',
+ 'text' => '@ref to `to node1\', different from node name `to @ref{node1}\'',
+ 'type' => 'warning'
+ }
+];
+
+
+$result_floats{'double_recursive_self_section_node_reference'} = {};
+
+
+
+$result_converted{'plaintext'}->{'double_recursive_self_section_node_reference'} = 'top
+***
+
+1 *note to *note node1::::
+**************************
+
+';
+
+$result_converted_errors{'plaintext'}->{'double_recursive_self_section_node_reference'} = [
+ {
+ 'error_line' => 'warning: @ref node name should not contain `:\'
+',
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => '',
+ 'text' => '@ref node name should not contain `:\'',
+ 'type' => 'warning'
+ }
+];
+
+
+
+$result_converted{'html'}->{'double_recursive_self_section_node_reference'} = '<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>top</title>
+
+<meta name="description" content="top">
+<meta name="keywords" content="top">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<link href="#Top" rel="start" title="Top">
+
+
+</head>
+
+<body lang="en">
+<div class="top-level-extent" id="Top">
+<div class="nav-panel">
+<p>
+Next: <a href="#node1" accesskey="n" rel="next"><a class="ref" href="#to-node1">to <a class="ref" href="#node1">node1</a></a></a> &nbsp; </p>
+</div>
+<h1 class="top" id="top">top</h1>
+
+<ul class="mini-toc">
+<li><a href="#node1" accesskey="1"><a class="ref" href="#to-node1">to <a class="ref" href="#node1">node1</a></a></a></li>
+</ul>
+<hr>
+<div class="chapter-level-extent" id="node1">
+<div class="nav-panel">
+<p>
+Previous: <a href="#Top" accesskey="p" rel="prev">top</a>, Up: <a href="#Top" accesskey="u" rel="up">top</a> &nbsp; </p>
+</div>
+<h2 class="chapter" id="to-node1-1">1 <a class="ref" href="#to-node1">to <a class="ref" href="#node1">node1</a></a></h2>
+
+<hr>
+<a class="node-id" id="to-node1"></a><div class="nav-panel">
+<p>
+ &nbsp; </p>
+</div>
+<h4 class="node">to <a class="ref" href="#node1"><a class="ref" href="#to-node1">to <a class="ref" href="#node1">node1</a></a></a></h4>
+</div>
+</div>
+
+
+
+</body>
+</html>
+';
+
+1;
diff --git a/macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_reference.pl b/macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_reference.pl
new file mode 100644
index 0000000000..c37bdb3dcd
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/sectioning/double_recursive_self_section_reference.pl
@@ -0,0 +1,382 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'double_recursive_self_section_reference'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'type' => 'preamble_before_content'
+ }
+ ],
+ 'type' => 'before_node_section'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'n1'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'n1'
+ }
+ ],
+ 'normalized' => 'n1',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => ''
+ }
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'n2'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'ref',
+ 'extra' => {
+ 'label' => {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'n2'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'n2'
+ }
+ ],
+ 'normalized' => 'n2',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 4,
+ 'macro' => ''
+ }
+ },
+ 'node_argument' => {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'n2'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'chapter',
+ 'contents' => [
+ {
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ }
+ ],
+ 'extra' => {
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ },
+ {},
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'n1'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'ref',
+ 'extra' => {
+ 'label' => {},
+ 'node_argument' => {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'n1'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'chapter',
+ 'extra' => {
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 5,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'document_root'
+};
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'extra'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'label'}{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[3] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'label'};
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'label'} = $result_trees{'double_recursive_self_section_reference'}{'contents'}[1];
+$result_trees{'double_recursive_self_section_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0] = $result_trees{'double_recursive_self_section_reference'}{'contents'}[4]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+
+$result_texis{'double_recursive_self_section_reference'} = '@node n1
+@chapter @ref{n2}
+
+@node n2
+@chapter @ref{n1}
+';
+
+
+$result_texts{'double_recursive_self_section_reference'} = '1 n2
+****
+
+2 n1
+****
+';
+
+$result_sectioning{'double_recursive_self_section_reference'} = {
+ 'structure' => {
+ 'section_childs' => [
+ {
+ 'cmdname' => 'chapter',
+ 'extra' => {
+ 'associated_node' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'n1'
+ },
+ 'structure' => {}
+ }
+ },
+ 'structure' => {
+ 'section_level' => 1,
+ 'section_number' => 1,
+ 'section_up' => {}
+ }
+ },
+ {
+ 'cmdname' => 'chapter',
+ 'extra' => {
+ 'associated_node' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'n2'
+ },
+ 'structure' => {}
+ }
+ },
+ 'structure' => {
+ 'section_level' => 1,
+ 'section_number' => 2,
+ 'section_prev' => {},
+ 'section_up' => {},
+ 'toplevel_prev' => {}
+ }
+ }
+ ],
+ 'section_level' => 0
+ }
+};
+$result_sectioning{'double_recursive_self_section_reference'}{'structure'}{'section_childs'}[0]{'structure'}{'section_up'} = $result_sectioning{'double_recursive_self_section_reference'};
+$result_sectioning{'double_recursive_self_section_reference'}{'structure'}{'section_childs'}[1]{'structure'}{'section_prev'} = $result_sectioning{'double_recursive_self_section_reference'}{'structure'}{'section_childs'}[0];
+$result_sectioning{'double_recursive_self_section_reference'}{'structure'}{'section_childs'}[1]{'structure'}{'section_up'} = $result_sectioning{'double_recursive_self_section_reference'};
+$result_sectioning{'double_recursive_self_section_reference'}{'structure'}{'section_childs'}[1]{'structure'}{'toplevel_prev'} = $result_sectioning{'double_recursive_self_section_reference'}{'structure'}{'section_childs'}[0];
+
+$result_nodes{'double_recursive_self_section_reference'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'associated_section' => {
+ 'cmdname' => 'chapter',
+ 'extra' => {},
+ 'structure' => {
+ 'section_number' => 1
+ }
+ },
+ 'normalized' => 'n1'
+ },
+ 'structure' => {
+ 'node_next' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'associated_section' => {
+ 'cmdname' => 'chapter',
+ 'extra' => {},
+ 'structure' => {
+ 'section_number' => 2
+ }
+ },
+ 'normalized' => 'n2'
+ },
+ 'structure' => {
+ 'node_prev' => {}
+ }
+ }
+ }
+};
+$result_nodes{'double_recursive_self_section_reference'}{'structure'}{'node_next'}{'structure'}{'node_prev'} = $result_nodes{'double_recursive_self_section_reference'};
+
+$result_menus{'double_recursive_self_section_reference'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'n1'
+ },
+ 'structure' => {}
+};
+
+$result_errors{'double_recursive_self_section_reference'} = [];
+
+
+$result_floats{'double_recursive_self_section_reference'} = {};
+
+
+
+$result_converted{'plaintext'}->{'double_recursive_self_section_reference'} = '1 *note n2::
+************
+
+2 *note n1::
+************
+
+';
+
+
+$result_converted{'html'}->{'double_recursive_self_section_reference'} = '<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Untitled Document</title>
+
+<meta name="description" content="Untitled Document">
+<meta name="keywords" content="Untitled Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<link href="#n1" rel="start" title="n1">
+
+
+</head>
+
+<body lang="en">
+<div class="chapter-level-extent" id="n1">
+<div class="nav-panel">
+<p>
+Next: <a href="#n2" accesskey="n" rel="next"><a class="ref" href="#n1"><a class="ref" href="#n2">n2</a></a></a> &nbsp; </p>
+</div>
+<h2 class="chapter" id="n2-1">1 <a class="ref" href="#n2"><a class="ref" href="#n1"><a class="ref" href="#n2">n2</a></a></a></h2>
+
+<hr>
+</div>
+<div class="chapter-level-extent" id="n2">
+<div class="nav-panel">
+<p>
+Previous: <a href="#n1" accesskey="p" rel="prev"><a class="ref" href="#n2">n2</a></a> &nbsp; </p>
+</div>
+<h2 class="chapter" id="n1-1">2 <a class="ref" href="#n1"><a class="ref" href="#n2">n2</a></a></h2>
+</div>
+
+
+
+</body>
+</html>
+';
+
+$result_converted_errors{'html'}->{'double_recursive_self_section_reference'} = [
+ {
+ 'error_line' => 'warning: must specify a title with a title command or @top
+',
+ 'text' => 'must specify a title with a title command or @top',
+ 'type' => 'warning'
+ }
+];
+
+
+1;
diff --git a/macros/texinfo/texinfo/tp/t/results/sectioning/recursive_self_section_reference.pl b/macros/texinfo/texinfo/tp/t/results/sectioning/recursive_self_section_reference.pl
new file mode 100644
index 0000000000..6804000625
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/t/results/sectioning/recursive_self_section_reference.pl
@@ -0,0 +1,223 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors
+ %result_indices %result_sectioning %result_nodes %result_menus
+ %result_floats %result_converted %result_converted_errors
+ %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'recursive_self_section_reference'} = {
+ 'contents' => [
+ {
+ 'contents' => [
+ {
+ 'contents' => [],
+ 'type' => 'preamble_before_content'
+ }
+ ],
+ 'type' => 'before_node_section'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'sharp'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'node_content' => [
+ {}
+ ],
+ 'nodes_manuals' => [
+ {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'sharp'
+ }
+ ],
+ 'normalized' => 'sharp',
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 1,
+ 'macro' => ''
+ }
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'text' => 'sharp'
+ }
+ ],
+ 'type' => 'brace_command_arg'
+ }
+ ],
+ 'cmdname' => 'ref',
+ 'extra' => {
+ 'label' => {},
+ 'node_argument' => {
+ 'node_content' => [
+ {}
+ ],
+ 'normalized' => 'sharp'
+ }
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ },
+ {
+ 'text' => ' tuple'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'chapter',
+ 'extra' => {
+ 'spaces_before_argument' => ' '
+ },
+ 'source_info' => {
+ 'file_name' => '',
+ 'line_nr' => 2,
+ 'macro' => ''
+ }
+ }
+ ],
+ 'type' => 'document_root'
+};
+$result_trees{'recursive_self_section_reference'}{'contents'}[1]{'extra'}{'node_content'}[0] = $result_trees{'recursive_self_section_reference'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'recursive_self_section_reference'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0] = $result_trees{'recursive_self_section_reference'}{'contents'}[1]{'args'}[0]{'contents'}[0];
+$result_trees{'recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'label'} = $result_trees{'recursive_self_section_reference'}{'contents'}[1];
+$result_trees{'recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'extra'}{'node_argument'}{'node_content'}[0] = $result_trees{'recursive_self_section_reference'}{'contents'}[2]{'args'}[0]{'contents'}[0]{'args'}[0]{'contents'}[0];
+
+$result_texis{'recursive_self_section_reference'} = '@node sharp
+@chapter @ref{sharp} tuple
+';
+
+
+$result_texts{'recursive_self_section_reference'} = '1 sharp tuple
+*************
+';
+
+$result_sectioning{'recursive_self_section_reference'} = {
+ 'structure' => {
+ 'section_childs' => [
+ {
+ 'cmdname' => 'chapter',
+ 'extra' => {
+ 'associated_node' => {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'sharp'
+ }
+ }
+ },
+ 'structure' => {
+ 'section_level' => 1,
+ 'section_number' => 1,
+ 'section_up' => {}
+ }
+ }
+ ],
+ 'section_level' => 0
+ }
+};
+$result_sectioning{'recursive_self_section_reference'}{'structure'}{'section_childs'}[0]{'structure'}{'section_up'} = $result_sectioning{'recursive_self_section_reference'};
+
+$result_nodes{'recursive_self_section_reference'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'associated_section' => {
+ 'cmdname' => 'chapter',
+ 'extra' => {},
+ 'structure' => {
+ 'section_number' => 1
+ }
+ },
+ 'normalized' => 'sharp'
+ }
+};
+
+$result_menus{'recursive_self_section_reference'} = {
+ 'cmdname' => 'node',
+ 'extra' => {
+ 'normalized' => 'sharp'
+ }
+};
+
+$result_errors{'recursive_self_section_reference'} = [];
+
+
+$result_floats{'recursive_self_section_reference'} = {};
+
+
+
+$result_converted{'plaintext'}->{'recursive_self_section_reference'} = '1 *note sharp:: tuple
+*********************
+
+';
+
+
+$result_converted{'html'}->{'recursive_self_section_reference'} = '<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Untitled Document</title>
+
+<meta name="description" content="Untitled Document">
+<meta name="keywords" content="Untitled Document">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<link href="#sharp" rel="start" title="sharp">
+
+
+</head>
+
+<body lang="en">
+<div class="chapter-level-extent" id="sharp">
+<h2 class="chapter" id="sharp-tuple">1 <a class="ref" href="#sharp">sharp</a> tuple</h2>
+</div>
+
+
+
+</body>
+</html>
+';
+
+$result_converted_errors{'html'}->{'recursive_self_section_reference'} = [
+ {
+ 'error_line' => 'warning: must specify a title with a title command or @top
+',
+ 'text' => 'must specify a title with a title command or @top',
+ 'type' => 'warning'
+ }
+];
+
+
+1;
diff --git a/macros/texinfo/texinfo/tp/tests/coverage_macro.texi b/macros/texinfo/texinfo/tp/tests/coverage_macro.texi
index 61625a3101..3e74954790 100644
--- a/macros/texinfo/texinfo/tp/tests/coverage_macro.texi
+++ b/macros/texinfo/texinfo/tp/tests/coverage_macro.texi
@@ -1039,6 +1039,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting/formatting.html
index b19ddf3488..7b585d3c1c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/anchor.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/anchor.html
index 19eea1b795..d8732d61a9 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/anchor.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/anchor.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter.html
index cf162cd1a6..be63c0b2cf 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1846,6 +1847,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2921,6 +2923,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4138,6 +4141,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter2.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter2.html
index e5209ebe86..1cf6b6112f 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter2.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/chapter2.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting.html
index f6eed90d4f..92d64bfda5 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1834,6 +1835,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2911,6 +2913,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_abt.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_abt.html
index 29a0f9a59b..c1bb29c032 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_abt.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_abt.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_ovr.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_ovr.html
index f86dfe7438..6eaa989b50 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_ovr.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_ovr.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_toc.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_toc.html
index 06b181018c..592f774290 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_toc.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/formatting_toc.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/index.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/index.html
index 1f6ca32432..6222e5063a 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/index.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/index.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/s_002d_002dect_002cion.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/s_002d_002dect_002cion.html
index ab452ca68a..de94b0f213 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/s_002d_002dect_002cion.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/s_002d_002dect_002cion.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsection.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsection.html
index 109535a4f6..23f995693b 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsection.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsection.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-_0060_0060simple_002ddouble_002d_002d.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
index 4ae610921b..7e3f160fb0 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
index 071c7a14f8..acf4f74b8c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_chm/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_docbook/formatting.xml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_docbook/formatting.xml
index cadca11fad..e3885efb68 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_docbook/formatting.xml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_docbook/formatting.xml
@@ -789,6 +789,8 @@ aaa</literallayout></textobject></inlinemediaobject>
aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{f--ile,aze,az,alt,.e--xt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
aaa</literallayout></textobject></inlinemediaobject>
+<literal>@image{f--ile,aze,az,alt,</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
+aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile@..jpg" format="JPG"></imagedata></imageobject></inlinemediaobject>
</para>
<!-- It is not reliable to use @verb inside other Texinfo constructs -->
@@ -1704,6 +1706,8 @@ aaa</literallayout></textobject></inlinemediaobject>
aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{f--ile,aze,az,alt,.e--xt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
aaa</literallayout></textobject></inlinemediaobject>
+<literal>@image{f--ile,aze,az,alt,</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
+aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile@..jpg" format="JPG"></imagedata></imageobject></inlinemediaobject>
</para>
<!-- It is not reliable to use @verb inside other Texinfo constructs -->
@@ -2606,6 +2610,8 @@ aaa</literallayout></textobject></inlinemediaobject>
aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{f--ile,aze,az,alt,.e--xt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
aaa</literallayout></textobject></inlinemediaobject>
+<literal>@image{f--ile,aze,az,alt,</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
+aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile@..jpg" format="JPG"></imagedata></imageobject></inlinemediaobject>
</para>
<!-- It is not reliable to use @verb inside other Texinfo constructs -->
@@ -3500,6 +3506,8 @@ aaa</literallayout></textobject></inlinemediaobject>
aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{f--ile,aze,az,alt,.e--xt}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
aaa</literallayout></textobject></inlinemediaobject>
+<literal>@image{f--ile,aze,az,alt,</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile.jpg" format="JPG"></imagedata></imageobject><imageobject><imagedata fileref="f--ile.png" format="PNG"></imagedata></imageobject><textobject><literallayout>ggg
+aaa</literallayout></textobject></inlinemediaobject>
<literal>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</literal> <inlinemediaobject><imageobject><imagedata fileref="f--ile@..jpg" format="JPG"></imagedata></imageobject></inlinemediaobject>
<!-- It is not reliable to use @verb inside other Texinfo constructs -->
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
index 5e184f38f9..d63198389e 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_enable_encoding/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/formatting.opf b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/formatting.opf
index f839cfb513..49a4c8ef39 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/formatting.opf
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/formatting.opf
@@ -13,41 +13,46 @@
<item id="unit1" media-type="application/xhtml+xml" href="xhtml/formatting.xhtml"/>
<item id="unit2" media-type="application/xhtml+xml" href="xhtml/chapter.xhtml"/>
<item id="unit3" media-type="application/xhtml+xml" href="xhtml/chapter2.xhtml"/>
- <item id="image1" media-type="e--xt/image" href="images/10-f--ile.e--xt"/>
- <item id="image2" media-type="image/png" href="images/14-f--ile.png"/>
- <item id="image3" media-type="image/png" href="images/15-f--ile.png"/>
- <item id="image4" media-type="e--xt/image" href="images/16-f--ile.e--xt"/>
- <item id="image5" media-type="image/png" href="images/17-f--ile.png"/>
- <item id="image6" media-type="image/png" href="images/18-f--ile.png"/>
- <item id="image7" media-type="e--xt/image" href="images/19-f--ile.e--xt"/>
- <item id="image8" media-type="e--xt/image" href="images/21-f--ile.e--xt"/>
- <item id="image9" media-type="image/png" href="images/25-f--ile.png"/>
- <item id="image10" media-type="image/png" href="images/26-f--ile.png"/>
- <item id="image11" media-type="e--xt/image" href="images/27-f--ile.e--xt"/>
- <item id="image12" media-type="image/png" href="images/28-f--ile.png"/>
- <item id="image13" media-type="image/png" href="images/29-f--ile.png"/>
- <item id="image14" media-type="image/png" href="images/3-f--ile.png"/>
- <item id="image15" media-type="e--xt/image" href="images/30-f--ile.e--xt"/>
+ <item id="image1" media-type="e--xt/image" href="images/11-f--ile.e--xt"/>
+ <item id="image2" media-type="image/png" href="images/15-f--ile.png"/>
+ <item id="image3" media-type="image/png" href="images/16-f--ile.png"/>
+ <item id="image4" media-type="e--xt/image" href="images/17-f--ile.e--xt"/>
+ <item id="image5" media-type="image/png" href="images/18-f--ile.png"/>
+ <item id="image6" media-type="image/png" href="images/19-f--ile.png"/>
+ <item id="image7" media-type="e--xt/image" href="images/20-f--ile.e--xt"/>
+ <item id="image8" media-type="image/png" href="images/21-f--ile.png"/>
+ <item id="image9" media-type="e--xt/image" href="images/23-f--ile.e--xt"/>
+ <item id="image10" media-type="image/png" href="images/27-f--ile.png"/>
+ <item id="image11" media-type="image/png" href="images/28-f--ile.png"/>
+ <item id="image12" media-type="e--xt/image" href="images/29-f--ile.e--xt"/>
+ <item id="image13" media-type="image/png" href="images/3-f--ile.png"/>
+ <item id="image14" media-type="image/png" href="images/30-f--ile.png"/>
+ <item id="image15" media-type="image/png" href="images/31-f--ile.png"/>
<item id="image16" media-type="e--xt/image" href="images/32-f--ile.e--xt"/>
- <item id="image17" media-type="image/png" href="images/36-f--ile.png"/>
- <item id="image18" media-type="image/png" href="images/37-f--ile.png"/>
- <item id="image19" media-type="e--xt/image" href="images/38-f--ile.e--xt"/>
- <item id="image20" media-type="image/png" href="images/39-f--ile.png"/>
- <item id="image21" media-type="image/png" href="images/4-f--ile.png"/>
- <item id="image22" media-type="image/png" href="images/40-f--ile.png"/>
- <item id="image23" media-type="e--xt/image" href="images/41-f--ile.e--xt"/>
- <item id="image24" media-type="e--xt/image" href="images/43-f--ile.e--xt"/>
- <item id="image25" media-type="image/png" href="images/47-f--ile.png"/>
- <item id="image26" media-type="image/png" href="images/48-f--ile.png"/>
- <item id="image27" media-type="e--xt/image" href="images/49-f--ile.e--xt"/>
+ <item id="image17" media-type="image/png" href="images/33-f--ile.png"/>
+ <item id="image18" media-type="e--xt/image" href="images/35-f--ile.e--xt"/>
+ <item id="image19" media-type="image/png" href="images/39-f--ile.png"/>
+ <item id="image20" media-type="image/png" href="images/4-f--ile.png"/>
+ <item id="image21" media-type="image/png" href="images/40-f--ile.png"/>
+ <item id="image22" media-type="e--xt/image" href="images/41-f--ile.e--xt"/>
+ <item id="image23" media-type="image/png" href="images/42-f--ile.png"/>
+ <item id="image24" media-type="image/png" href="images/43-f--ile.png"/>
+ <item id="image25" media-type="e--xt/image" href="images/44-f--ile.e--xt"/>
+ <item id="image26" media-type="image/png" href="images/45-f--ile.png"/>
+ <item id="image27" media-type="e--xt/image" href="images/47-f--ile.e--xt"/>
<item id="image28" media-type="e--xt/image" href="images/5-f--ile.e--xt"/>
- <item id="image29" media-type="image/png" href="images/50-f--ile.png"/>
- <item id="image30" media-type="image/png" href="images/51-f--ile.png"/>
- <item id="image31" media-type="e--xt/image" href="images/52-f--ile.e--xt"/>
- <item id="image32" media-type="e--xt/image" href="images/54-f--ile.e--xt"/>
- <item id="image33" media-type="image/png" href="images/6-f--ile.png"/>
- <item id="image34" media-type="image/png" href="images/7-f--ile.png"/>
- <item id="image35" media-type="e--xt/image" href="images/8-f--ile.e--xt"/>
+ <item id="image29" media-type="image/png" href="images/51-f--ile.png"/>
+ <item id="image30" media-type="image/png" href="images/52-f--ile.png"/>
+ <item id="image31" media-type="e--xt/image" href="images/53-f--ile.e--xt"/>
+ <item id="image32" media-type="image/png" href="images/54-f--ile.png"/>
+ <item id="image33" media-type="image/png" href="images/55-f--ile.png"/>
+ <item id="image34" media-type="e--xt/image" href="images/56-f--ile.e--xt"/>
+ <item id="image35" media-type="image/png" href="images/57-f--ile.png"/>
+ <item id="image36" media-type="e--xt/image" href="images/59-f--ile.e--xt"/>
+ <item id="image37" media-type="image/png" href="images/6-f--ile.png"/>
+ <item id="image38" media-type="image/png" href="images/7-f--ile.png"/>
+ <item id="image39" media-type="e--xt/image" href="images/8-f--ile.e--xt"/>
+ <item id="image40" media-type="image/png" href="images/9-f--ile.png"/>
</manifest>
<spine>
<itemref idref="unit1"/>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/10-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/11-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/10-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/11-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/14-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/16-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/14-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/16-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/16-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/17-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/16-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/17-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/17-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/19-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/17-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/19-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/19-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/20-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/19-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/20-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/21-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/21-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/21-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/21-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/25-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/23-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/25-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/23-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/26-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/27-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/26-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/27-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/27-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/29-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/27-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/29-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/29-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/30-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/29-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/30-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/30-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/31-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/30-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/31-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/36-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/33-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/36-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/33-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/37-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/35-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/37-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/35-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/38-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/42-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/38-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/42-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/43-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/43-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/43-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/43-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/47-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/44-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/47-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/44-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/48-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/45-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/48-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/45-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/49-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/47-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/49-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/47-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/50-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/52-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/50-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/52-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/52-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/53-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/52-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/53-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/54-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/54-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/54-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/54-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/10-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/55-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/10-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/55-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/14-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/56-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/14-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/56-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/16-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/57-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/16-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/57-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/17-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/59-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/17-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/59-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/19-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/9-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/19-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/images/9-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
index 690dcef58f..7dbe1ec543 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1837,19 +1838,20 @@ html ''
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
</p>
-<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/23-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/24-f-ilejpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/25-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/26-f-ilejpg" alt="altjk _&quot; %@"/>
</p>
-<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/25-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/26-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/27-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/28-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/29-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/30-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/31-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/27-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/28-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/29-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/30-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/31-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/32-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/33-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/34-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/32-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/33-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/35-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/36-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
@@ -2912,19 +2914,20 @@ html ''
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
</p>
-<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/34-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/35-f-ilejpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/37-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/38-f-ilejpg" alt="altjk _&quot; %@"/>
</p>
-<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/36-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/37-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/38-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/39-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/40-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/41-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/42-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/39-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/40-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/41-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/42-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/43-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/44-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/45-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/46-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/43-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/44-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/47-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/48-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
@@ -4129,19 +4132,20 @@ Invalid use of @':
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
-<code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/45-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/46-f-ilejpg" alt="altjk _&quot; %@"/>
+<code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/49-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/50-f-ilejpg" alt="altjk _&quot; %@"/>
-<code class="code">@image{f--ile}</code> <img class="image" src="../images/47-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/48-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/49-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/50-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/51-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/52-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/53-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<code class="code">@image{f--ile}</code> <img class="image" src="../images/51-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/52-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/53-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/54-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/55-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/56-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/57-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/58-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
-<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/54-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/55-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/59-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/60-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
index 0cf9d95f2f..b590b0887b 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting.xhtml
index 0eff7ca737..94fbf701b7 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1833,10 +1834,11 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/6-f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/7-f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/8-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/9-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/9-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/10-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/10-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/11-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/11-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/12-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
<strong class="author">author</strong><br/>
@@ -2901,19 +2903,20 @@ html ''
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
</p>
-<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/12-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/13-f-ilejpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/13-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/14-f-ilejpg" alt="altjk _&quot; %@"/>
</p>
-<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/14-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/15-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/16-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/17-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/18-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/19-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/20-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/15-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/16-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/17-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/18-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/19-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/20-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/21-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/22-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/21-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/22-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/23-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/24-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
index 92ed71d103..823b95993a 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
index 5ee030114a..10b8366e04 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
index 636f1808af..c9c2be2b35 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
index d73614b7b3..96df16bf61 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/formatting.opf b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/formatting.opf
index 94fa5a55a6..075d3baed5 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/formatting.opf
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/formatting.opf
@@ -18,41 +18,46 @@
<item id="unit6" media-type="application/xhtml+xml" href="xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml" properties="scripted"/>
<item id="unit7" media-type="application/xhtml+xml" href="xhtml/chapter2.xhtml" properties="scripted"/>
<item id="jsweblabels" media-type="application/xhtml+xml" href="xhtml/js_licenses.xhtml"/>
- <item id="image1" media-type="e--xt/image" href="images/10-f--ile.e--xt"/>
- <item id="image2" media-type="image/png" href="images/14-f--ile.png"/>
- <item id="image3" media-type="image/png" href="images/15-f--ile.png"/>
- <item id="image4" media-type="e--xt/image" href="images/16-f--ile.e--xt"/>
- <item id="image5" media-type="image/png" href="images/17-f--ile.png"/>
- <item id="image6" media-type="image/png" href="images/18-f--ile.png"/>
- <item id="image7" media-type="e--xt/image" href="images/19-f--ile.e--xt"/>
- <item id="image8" media-type="e--xt/image" href="images/21-f--ile.e--xt"/>
- <item id="image9" media-type="image/png" href="images/25-f--ile.png"/>
- <item id="image10" media-type="image/png" href="images/26-f--ile.png"/>
- <item id="image11" media-type="e--xt/image" href="images/27-f--ile.e--xt"/>
- <item id="image12" media-type="image/png" href="images/28-f--ile.png"/>
- <item id="image13" media-type="image/png" href="images/29-f--ile.png"/>
- <item id="image14" media-type="image/png" href="images/3-f--ile.png"/>
- <item id="image15" media-type="e--xt/image" href="images/30-f--ile.e--xt"/>
+ <item id="image1" media-type="e--xt/image" href="images/11-f--ile.e--xt"/>
+ <item id="image2" media-type="image/png" href="images/15-f--ile.png"/>
+ <item id="image3" media-type="image/png" href="images/16-f--ile.png"/>
+ <item id="image4" media-type="e--xt/image" href="images/17-f--ile.e--xt"/>
+ <item id="image5" media-type="image/png" href="images/18-f--ile.png"/>
+ <item id="image6" media-type="image/png" href="images/19-f--ile.png"/>
+ <item id="image7" media-type="e--xt/image" href="images/20-f--ile.e--xt"/>
+ <item id="image8" media-type="image/png" href="images/21-f--ile.png"/>
+ <item id="image9" media-type="e--xt/image" href="images/23-f--ile.e--xt"/>
+ <item id="image10" media-type="image/png" href="images/27-f--ile.png"/>
+ <item id="image11" media-type="image/png" href="images/28-f--ile.png"/>
+ <item id="image12" media-type="e--xt/image" href="images/29-f--ile.e--xt"/>
+ <item id="image13" media-type="image/png" href="images/3-f--ile.png"/>
+ <item id="image14" media-type="image/png" href="images/30-f--ile.png"/>
+ <item id="image15" media-type="image/png" href="images/31-f--ile.png"/>
<item id="image16" media-type="e--xt/image" href="images/32-f--ile.e--xt"/>
- <item id="image17" media-type="image/png" href="images/36-f--ile.png"/>
- <item id="image18" media-type="image/png" href="images/37-f--ile.png"/>
- <item id="image19" media-type="e--xt/image" href="images/38-f--ile.e--xt"/>
- <item id="image20" media-type="image/png" href="images/39-f--ile.png"/>
- <item id="image21" media-type="image/png" href="images/4-f--ile.png"/>
- <item id="image22" media-type="image/png" href="images/40-f--ile.png"/>
- <item id="image23" media-type="e--xt/image" href="images/41-f--ile.e--xt"/>
- <item id="image24" media-type="e--xt/image" href="images/43-f--ile.e--xt"/>
- <item id="image25" media-type="image/png" href="images/47-f--ile.png"/>
- <item id="image26" media-type="image/png" href="images/48-f--ile.png"/>
- <item id="image27" media-type="e--xt/image" href="images/49-f--ile.e--xt"/>
+ <item id="image17" media-type="image/png" href="images/33-f--ile.png"/>
+ <item id="image18" media-type="e--xt/image" href="images/35-f--ile.e--xt"/>
+ <item id="image19" media-type="image/png" href="images/39-f--ile.png"/>
+ <item id="image20" media-type="image/png" href="images/4-f--ile.png"/>
+ <item id="image21" media-type="image/png" href="images/40-f--ile.png"/>
+ <item id="image22" media-type="e--xt/image" href="images/41-f--ile.e--xt"/>
+ <item id="image23" media-type="image/png" href="images/42-f--ile.png"/>
+ <item id="image24" media-type="image/png" href="images/43-f--ile.png"/>
+ <item id="image25" media-type="e--xt/image" href="images/44-f--ile.e--xt"/>
+ <item id="image26" media-type="image/png" href="images/45-f--ile.png"/>
+ <item id="image27" media-type="e--xt/image" href="images/47-f--ile.e--xt"/>
<item id="image28" media-type="e--xt/image" href="images/5-f--ile.e--xt"/>
- <item id="image29" media-type="image/png" href="images/50-f--ile.png"/>
- <item id="image30" media-type="image/png" href="images/51-f--ile.png"/>
- <item id="image31" media-type="e--xt/image" href="images/52-f--ile.e--xt"/>
- <item id="image32" media-type="e--xt/image" href="images/54-f--ile.e--xt"/>
- <item id="image33" media-type="image/png" href="images/6-f--ile.png"/>
- <item id="image34" media-type="image/png" href="images/7-f--ile.png"/>
- <item id="image35" media-type="e--xt/image" href="images/8-f--ile.e--xt"/>
+ <item id="image29" media-type="image/png" href="images/51-f--ile.png"/>
+ <item id="image30" media-type="image/png" href="images/52-f--ile.png"/>
+ <item id="image31" media-type="e--xt/image" href="images/53-f--ile.e--xt"/>
+ <item id="image32" media-type="image/png" href="images/54-f--ile.png"/>
+ <item id="image33" media-type="image/png" href="images/55-f--ile.png"/>
+ <item id="image34" media-type="e--xt/image" href="images/56-f--ile.e--xt"/>
+ <item id="image35" media-type="image/png" href="images/57-f--ile.png"/>
+ <item id="image36" media-type="e--xt/image" href="images/59-f--ile.e--xt"/>
+ <item id="image37" media-type="image/png" href="images/6-f--ile.png"/>
+ <item id="image38" media-type="image/png" href="images/7-f--ile.png"/>
+ <item id="image39" media-type="e--xt/image" href="images/8-f--ile.e--xt"/>
+ <item id="image40" media-type="image/png" href="images/9-f--ile.png"/>
<item id="infojs1" media-type="text/css" href="js/info.css"/>
<item id="infojs2" media-type="text/javascript" href="js/info.js"/>
<item id="infojs3" media-type="text/javascript" href="js/modernizr.js"/>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/21-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/11-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/21-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/11-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/25-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/16-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/25-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/16-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/26-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/17-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/26-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/17-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/27-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/19-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/27-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/19-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/29-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/20-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/29-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/20-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/30-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/21-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/30-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/21-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/36-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/23-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/36-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/23-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/37-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/27-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/37-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/27-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/38-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/29-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/38-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/29-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/43-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/30-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/43-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/30-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/31-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/31-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/48-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/33-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/48-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/33-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/49-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/35-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/49-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/35-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/50-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/42-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/50-f--ile.png
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/42-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/43-f--ile.png
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/43-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/44-f--ile.e--xt
index e69de29bb2..e69de29bb2 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.e--xt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/44-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/45-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/45-f--ile.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/45-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.e--xt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/47-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/52-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/53-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/53-f--ile.e--xt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/53-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/54-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/55-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/55-f--ile.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/55-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/56-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/56-f--ile.e--xt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/56-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/57-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/57-f--ile.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/57-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/59-f--ile.e--xt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/59-f--ile.e--xt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/59-f--ile.e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/9-f--ile.png b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/9-f--ile.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/images/9-f--ile.png
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.css b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.css
index 14537b67ad..ac0e596484 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.css
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.css
@@ -141,6 +141,10 @@ div.toc ul ul {
margin-left: 1em;
}
+div.toc-sidebar a {
+ text-decoration: none;
+}
+
div.toc a[toc-current] {
font-weight: bold
}
@@ -226,6 +230,10 @@ table#keyboard-shortcuts th {
right: 0;
}
+.text-input input {
+ width: 25em;
+}
+
.error {
background-color: orange;
padding: 5px;
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.js b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.js
index 69c5ad95f3..521d14ed68 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.js
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/js/info.js
@@ -1,5 +1,5 @@
/* info.js - Javascript UI for Texinfo manuals
- Copyright (C) 2017-2019 Free Software Foundation, Inc.
+ Copyright (C) 2017-2022 Free Software Foundation, Inc.
This file is part of GNU Texinfo.
@@ -35,7 +35,7 @@
SCREEN_MIN_WIDTH: 700,
LOCAL_HTML_PAGE_PATTERN: "^([^:/]*[.](html|htm|xhtml))?([#].*)?$",
SHOW_SIDEBAR_HTML: '<span class="hide-icon">&#x21db;</span>',
- HIDE_SIDEBAR_HTML: '<span class="hide-icon">&#x21da;</span><span class="hide-text">Hide sidebar</span>',
+ HIDE_SIDEBAR_HTML: '<span class="hide-icon">&#x21da;</span><span class="hide-text"></span>',
SHOW_SIDEBAR_TOOLTIP: 'Show navigation sidebar',
HIDE_SIDEBAR_TOOLTIP: 'Hide navigation sidebar',
@@ -120,7 +120,7 @@
@arg {string} linkid - link identifier
@arg {string|false} [history] - method name that will be applied on
the 'window.history' object. */
- set_current_url: function (linkid, history, clicked = false) {
+ set_current_url: function (linkid, history, clicked) {
if (undef_or_null (history))
history = "pushState";
return { type: "current-url", url: linkid,
@@ -146,10 +146,32 @@
/** @arg {NodeListOf<Element>} links */
cache_index_links: function (links) {
var dict = {};
+ var text0 = "", text1 = ""; // for subentries
for (var i = 0; i < links.length; i += 1)
{
var link = links[i];
- dict[link.textContent] = href_hash (link_href (link));
+ var link_cl = link.classList;
+ var text = link.textContent;
+ if (link_cl.contains("index-entry-level-2"))
+ {
+ text = text0 + "; " + text1 + "; " + text;
+ }
+ else if (link_cl.contains("index-entry-level-1"))
+ {
+ text1 = text;
+ text = text0 + "; " + text;
+ }
+ else
+ {
+ text0 = text;
+ }
+
+ if ((link = link.parentElement.parentElement.lastChild)
+ && link.classList.contains("printindex-index-section")
+ && (link = link.firstChild))
+ {
+ dict[text] = href_hash (link_href (link));
+ }
}
return { type: "cache-index-links", links: dict };
},
@@ -1177,7 +1199,7 @@
store.dispatch ({ type: "iframe-ready", id: config.INDEX_ID });
store.dispatch ({
type: "echo",
- msg: "Welcome to Texinfo documentation viewer 6.1, type '?' for help."
+ msg: "Welcome to Texinfo documentation viewer 7.0.1, type '?' for help."
});
/* Call user hook. */
@@ -1356,6 +1378,8 @@
add_header (elem)
{
var h1 = document.querySelector ("h1.settitle");
+ if (!h1)
+ h1 = document.querySelector ("h1.top");
if (h1)
{
var a = document.createElement ("a");
@@ -1455,8 +1479,9 @@
if (linkid_contains_index (linkid))
{
/* Scan links that should be added to the index. */
- var index_links = document.querySelectorAll ("td[valign=top] a");
- store.dispatch (actions.cache_index_links (index_links));
+ var index_entries = document.querySelectorAll
+ ("td.printindex-index-entry a");
+ store.dispatch (actions.cache_index_links (index_entries));
}
add_icons ();
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
index 3c9e9e3233..0c07ea4173 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1838,19 +1839,20 @@ html ''
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
</p>
-<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/23-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/24-f-ilejpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/25-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/26-f-ilejpg" alt="altjk _&quot; %@"/>
</p>
-<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/25-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/26-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/27-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/28-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/29-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/30-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/31-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/27-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/28-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/29-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/30-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/31-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/32-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/33-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/34-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/32-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/33-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/35-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/36-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
@@ -2913,19 +2915,20 @@ html ''
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
</p>
-<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/34-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/35-f-ilejpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/37-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/38-f-ilejpg" alt="altjk _&quot; %@"/>
</p>
-<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/36-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/37-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/38-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/39-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/40-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/41-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/42-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/39-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/40-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/41-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/42-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/43-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/44-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/45-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/46-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/43-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/44-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/47-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/48-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
@@ -4130,19 +4133,20 @@ Invalid use of @':
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
-<code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/45-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/46-f-ilejpg" alt="altjk _&quot; %@"/>
+<code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/49-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/50-f-ilejpg" alt="altjk _&quot; %@"/>
-<code class="code">@image{f--ile}</code> <img class="image" src="../images/47-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/48-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/49-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/50-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/51-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/52-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/53-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<code class="code">@image{f--ile}</code> <img class="image" src="../images/51-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/52-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/53-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/54-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/55-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/56-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/57-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/58-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
-<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/54-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/55-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/59-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/60-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
index d858fa979c..7cc0bbe4ff 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/chapter2.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
index 5237bf3ea6..8af4b5d722 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1835,10 +1836,11 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/6-f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/7-f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/8-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/9-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/9-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/10-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/10-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/11-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/11-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/12-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
<strong class="author">author</strong><br/>
@@ -2903,19 +2905,20 @@ html ''
<code class="code">@image{,,2--xt}</code>
<code class="code">@image{,,,3--xt}</code>
</p>
-<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/12-f-ilejpg" alt="a&#8211;lt"/>
-<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/13-f-ilejpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f-ile,aze,,a--lt}</code> <img class="image" src="../images/13-f-ilejpg" alt="a&#8211;lt"/>
+<code class="code">@image{f-ile,,,alt@verb{:jk _&quot; %}}</code> <img class="image" src="../images/14-f-ilejpg" alt="altjk _&quot; %@"/>
</p>
-<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/14-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/15-f--ile.png" alt="alt"/>
-<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/16-f--ile.e--xt" alt="f--ile"/>
-<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/17-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/18-f--ile.png" alt="f--ile"/>
-<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/19-f--ile.e--xt" alt="alt"/>
-<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/20-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
+<p><code class="code">@image{f--ile}</code> <img class="image" src="../images/15-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,,alt}</code> <img class="image" src="../images/16-f--ile.png" alt="alt"/>
+<code class="code">@image{f--ile,,,,.e-d-xt}</code> <img class="image" src="../images/17-f--ile.e--xt" alt="f--ile"/>
+<code class="code">@image{f--ile,l--i}</code> <img class="image" src="../images/18-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="../images/19-f--ile.png" alt="f--ile"/>
+<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="../images/20-f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="../images/21-f--ile.png" alt="alt"/>
+<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="../images/22-f--ile_0040..file-ext-e--xt_007d" alt="alt"/>
</p>
-<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/21-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
-<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/22-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
+<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="../images/23-f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
+<code class="code">@image{file@verb{:jk _&quot; %@:},,,alt@verb{:jk _&quot; %@:}}</code> <img class="image" src="../images/24-filejk-__0022-_0025_0040jpg" alt="altjk _&quot; %@"/>
</p>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
index 5667d09fd9..a48b59e231 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_abt.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
index 6858c07d69..055f5a7576 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_fot.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
index e2bce7d4dd..666cabe9b1 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_ovr.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
index 435c4bd0df..6284272b7c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/formatting_toc.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
index 8ad0ed307a..812e907f47 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/s_002d_002dect_002cion.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
index 8058f19b99..08efc54868 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsection.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
index 070dba5776..e99a64defd 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-_0060_0060simple_002ddouble_002d_002d.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
index f5e5e1842b..c6968d2247 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_epub_nodes/formatting_epub_package/EPUB/xhtml/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.xhtml
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/anchor.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/anchor.html
index 58e8ff9a82..2eac27e922 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/anchor.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/anchor.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter.html
index 20d7b600c7..2df2150732 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1865,6 +1866,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2940,6 +2942,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4153,6 +4156,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter2.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
index 1967af8151..c7358eeba4 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/chapter2.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_abt.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_abt.html
index 792de3cfaa..1d43ba4665 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_abt.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_abt.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_ovr.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_ovr.html
index dfd7eb4297..4f19e2fb88 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_ovr.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_ovr.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_toc.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_toc.html
index 5591c7c854..a00bcb40cf 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_toc.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/formatting_toc.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/index.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/index.html
index 1f876396f7..bac8d2bced 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/index.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/index.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/s_002d_002dect_002cion.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/s_002d_002dect_002cion.html
index d50ed8023e..aded9374ff 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/s_002d_002dect_002cion.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/s_002d_002dect_002cion.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsection.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsection.html
index a421540d66..5f3e077660 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsection.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsection.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-_0060_0060simple_002ddouble_002d_002d.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
index 3638f5c5c2..fb465ab541 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
index 6b9beaa1fa..b50df0a305 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_exotic/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
index e92de14c54..728253dc17 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_fr_icons/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html/formatting.html
index b19ddf3488..7b585d3c1c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html32/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html32/formatting.html
index 4ca8811576..5a0af855dd 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html32/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html32/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1786,6 +1787,7 @@ html ''
<code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" alt="alt">
+<code>@image{f--ile,aze,az,alt,</code> <img src="f--ile.png" alt="alt">
<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b &#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
@@ -2837,6 +2839,7 @@ html ''
<code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" alt="alt">
+<code>@image{f--ile,aze,az,alt,</code> <img src="f--ile.png" alt="alt">
<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b &#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
@@ -3944,6 +3947,7 @@ html ''
<code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" alt="alt">
+<code>@image{f--ile,aze,az,alt,</code> <img src="f--ile.png" alt="alt">
<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b &#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
@@ -4993,6 +4997,7 @@ html ''
<code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" alt="alt">
+<code>@image{f--ile,aze,az,alt,</code> <img src="f--ile.png" alt="alt">
<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b &#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
@@ -6183,6 +6188,7 @@ Invalid use of @':
<code>@image{f--ile,l--i}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,,l--e}</code> <img src="f--ile.png" alt="f--ile">
<code>@image{f--ile,aze,az,alt,.e--xt}</code> <img src="f--ile.e--xt" alt="alt">
+<code>@image{f--ile,aze,az,alt,</code> <img src="f--ile.png" alt="alt">
<code>@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code>@image{f--ile,aze,az,@verb{:jk _&#34; %@:} @b{in b &#34;},e--xt}</code> <img src="f--ile.e--xt" alt="jk _&#34; %@ in b &#34;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html
index 2c3379a299..3468d34a7f 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_no_texi2html/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1904,6 +1905,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2979,6 +2981,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4196,6 +4199,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/anchor.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/anchor.html
index 19eea1b795..d8732d61a9 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/anchor.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/anchor.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html
index cbe15ee7f7..f030643246 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1866,6 +1867,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2941,6 +2943,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4158,6 +4161,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter2.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter2.html
index b4241e0b5d..bc1878eb2b 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter2.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/chapter2.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_abt.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_abt.html
index 89f4a75041..f8d8908f2c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_abt.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_abt.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_fot.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_fot.html
index 1e3fbc606d..545aa91a8e 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_fot.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_fot.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_ovr.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_ovr.html
index d22ca217a9..c785c63044 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_ovr.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_ovr.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_toc.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_toc.html
index fdcc1de8a8..40d0599933 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_toc.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/formatting_toc.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/index.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/index.html
index db31439ac6..187dd71529 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/index.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/index.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1839,6 +1840,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2916,6 +2918,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/s_002d_002dect_002cion.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/s_002d_002dect_002cion.html
index b97e8a4699..f80e25130b 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/s_002d_002dect_002cion.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/s_002d_002dect_002cion.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsection.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsection.html
index 9cd9a9b677..0e43bd3a8c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsection.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsection.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
index 02ef65c92b..e413d27a15 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
index e63bbdcfc0..b804676cfb 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_html_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_info/formatting.info b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_info/formatting.info
index 8d8c787308..85613a77bf 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_info/formatting.info
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_info/formatting.info
@@ -582,6 +582,7 @@ aaa"
aaa"
aaa"
'@image{f--ile,aze,az,alt,.e--xt}'
+aaa"
aaa"
'@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}' [alt]
@@ -1292,6 +1293,7 @@ aaa"
aaa"
aaa"
'@image{f--ile,aze,az,alt,.e--xt}'
+aaa"
aaa"
'@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}' [alt]
@@ -1959,6 +1961,7 @@ aaa"
aaa"
aaa"
'@image{f--ile,aze,az,alt,.e--xt}'
+aaa"
aaa"
'@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}' [alt]
@@ -2795,6 +2798,8 @@ aaa"
aaa"
@image{f--ile,aze,az,alt,.e--xt}
aaa"
+ @image{f--ile,aze,az,alt,
+aaa"
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} [alt]
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt}
@@ -2895,14 +2900,14 @@ aaa"
* Menu:
-* truc: chapter. (line 2172)
+* truc: chapter. (line 2173)
codeidx
* Menu:
-* a INDEX---ENTRY tẽ --- î: chapter. (line 2172)
+* a INDEX---ENTRY tẽ --- î: chapter. (line 2173)
cp
@@ -2915,20 +2920,20 @@ aaa"
* -option: chapter. (line 28)
* -option <1>: chapter. (line 688)
* -option <2>: chapter. (line 1359)
-* .: chapter. (line 2172)
-* ?: chapter. (line 2172)
-* a: chapter. (line 2172)
-* aaa, bbb: chapter. (line 2172)
-* a--a: chapter. (line 2172)
+* .: chapter. (line 2173)
+* ?: chapter. (line 2173)
+* a: chapter. (line 2173)
+* aaa, bbb: chapter. (line 2173)
+* a--a: chapter. (line 2173)
* a--asis: chapter. (line 500)
* a--asis <1>: chapter. (line 1160)
* a--asis <2>: chapter. (line 1958)
* b: chapter. (line 501)
* b <1>: chapter. (line 1161)
* b <2>: chapter. (line 1959)
-* b--b, c--c: chapter. (line 2172)
+* b--b, c--c: chapter. (line 2173)
* counting entry: chapter. (line 4)
-* d--dd, e--ee, f--ff: chapter. (line 2172)
+* d--dd, e--ee, f--ff: chapter. (line 2173)
* d--efcv_name: chapter. (line 341)
* d--efcv_name <1>: chapter. (line 344)
* d--efcv_name <2>: chapter. (line 1001)
@@ -2971,13 +2976,13 @@ aaa"
* d--efvr_name: chapter. (line 317)
* d--efvr_name <1>: chapter. (line 977)
* d--efvr_name <2>: chapter. (line 1775)
-* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2172)
+* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2173)
* index entry between item and itemx: chapter. (line 505)
* index entry between item and itemx <1>: chapter. (line 623)
* index entry between item and itemx <2>: chapter. (line 1165)
* index entry between item and itemx <3>: chapter. (line 1283)
* index entry between item and itemx <4>: chapter. (line 1963)
-* index entry between item and itemx <5>: chapter. (line 2113)
+* index entry between item and itemx <5>: chapter. (line 2114)
* index entry in footnote: chapter. (line 4)
* index entry within deffn: chapter. (line 292)
* index entry within deffn <1>: chapter. (line 952)
@@ -2988,8 +2993,8 @@ aaa"
* index entry within multitable: chapter. (line 225)
* index entry within multitable <1>: chapter. (line 885)
* index entry within multitable <2>: chapter. (line 1682)
-* t-ruc: chapter. (line 2172)
-* T-ruc: chapter. (line 2172)
+* t-ruc: chapter. (line 2173)
+* T-ruc: chapter. (line 2173)
* vtable i--tem code kbdinputstyle: chapter. (line 127)
* vtable i--tem code kbdinputstyle <1>: chapter. (line 787)
* vtable i--tem code kbdinputstyle <2>: chapter. (line 1582)
@@ -3029,8 +3034,8 @@ aaa"
* --foption: chapter. (line 28)
* --foption <1>: chapter. (line 688)
* --foption <2>: chapter. (line 1359)
-* .: chapter. (line 2172)
-* ?: chapter. (line 2172)
+* .: chapter. (line 2173)
+* ?: chapter. (line 2173)
* ``: chapter. (line 28)
* `` <1>: chapter. (line 688)
* `` <2>: chapter. (line 1359)
@@ -3042,11 +3047,11 @@ aaa"
* a <5>: chapter. (line 1282)
* a <6>: chapter. (line 1761)
* a <7>: chapter. (line 1962)
-* a <8>: chapter. (line 2112)
-* a <9>: chapter. (line 2172)
+* a <8>: chapter. (line 2113)
+* a <9>: chapter. (line 2173)
* after: chapter. (line 633)
* after <1>: chapter. (line 1293)
-* after <2>: chapter. (line 2123)
+* after <2>: chapter. (line 2124)
* arg2: chapter. (line 424)
* arg2 <1>: chapter. (line 1084)
* arg2 <2>: chapter. (line 1884)
@@ -3055,7 +3060,7 @@ aaa"
* b <2>: chapter. (line 1165)
* b <3>: chapter. (line 1283)
* b <4>: chapter. (line 1963)
-* b <5>: chapter. (line 2113)
+* b <5>: chapter. (line 2114)
* bidule machin: chapter. (line 300)
* bidule machin <1>: chapter. (line 960)
* bidule machin <2>: chapter. (line 1756)
@@ -3122,16 +3127,16 @@ aaa"
* deffnx <3>: chapter. (line 971)
* deffnx <4>: chapter. (line 1762)
* deffnx <5>: chapter. (line 1768)
-* f---aa: chapter. (line 2172)
-* f---bb, f---cc: chapter. (line 2172)
-* f---ddd, f---eee, ffff: chapter. (line 2172)
-* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2172)
+* f---aa: chapter. (line 2173)
+* f---bb, f---cc: chapter. (line 2173)
+* f---ddd, f---eee, ffff: chapter. (line 2173)
+* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2173)
* followed: chapter. (line 303)
* followed <1>: chapter. (line 631)
* followed <2>: chapter. (line 963)
* followed <3>: chapter. (line 1291)
* followed <4>: chapter. (line 1759)
-* followed <5>: chapter. (line 2121)
+* followed <5>: chapter. (line 2122)
* I: chapter. (line 291)
* I <1>: chapter. (line 313)
* I <2>: chapter. (line 951)
@@ -3146,7 +3151,7 @@ aaa"
* id ule <2>: chapter. (line 1752)
* INVALID: chapter. (line 635)
* INVALID <1>: chapter. (line 1295)
-* INVALID <2>: chapter. (line 2125)
+* INVALID <2>: chapter. (line 2126)
* log trap: chapter. (line 293)
* log trap <1>: chapter. (line 953)
* log trap <2>: chapter. (line 1749)
@@ -3170,10 +3175,10 @@ aaa"
* machin <11>: chapter. (line 1290)
* machin <12>: chapter. (line 1755)
* machin <13>: chapter. (line 1757)
-* machin <14>: chapter. (line 2117)
-* machin <15>: chapter. (line 2118)
-* machin <16>: chapter. (line 2119)
-* machin <17>: chapter. (line 2120)
+* machin <14>: chapter. (line 2118)
+* machin <15>: chapter. (line 2119)
+* machin <16>: chapter. (line 2120)
+* machin <17>: chapter. (line 2121)
* n--ame: chapter. (line 320)
* n--ame <1>: chapter. (line 323)
* n--ame <2>: chapter. (line 980)
@@ -3183,15 +3188,15 @@ aaa"
* name2: chapter. (line 398)
* name2 <1>: chapter. (line 1058)
* name2 <2>: chapter. (line 1857)
-* t--ruc: chapter. (line 2172)
-* T--ruc: chapter. (line 2172)
+* t--ruc: chapter. (line 2173)
+* T--ruc: chapter. (line 2173)
* truc: chapter. (line 292)
* truc <1>: chapter. (line 314)
* truc <2>: chapter. (line 952)
* truc <3>: chapter. (line 974)
* truc <4>: chapter. (line 1748)
* truc <5>: chapter. (line 1771)
-* xxx, zzz: chapter. (line 2172)
+* xxx, zzz: chapter. (line 2173)
vr
@@ -3294,20 +3299,20 @@ chapter 2
* -option: chapter. (line 28)
* -option <1>: chapter. (line 688)
* -option <2>: chapter. (line 1359)
-* .: chapter. (line 2172)
-* ?: chapter. (line 2172)
-* a: chapter. (line 2172)
-* aaa, bbb: chapter. (line 2172)
-* a--a: chapter. (line 2172)
+* .: chapter. (line 2173)
+* ?: chapter. (line 2173)
+* a: chapter. (line 2173)
+* aaa, bbb: chapter. (line 2173)
+* a--a: chapter. (line 2173)
* a--asis: chapter. (line 500)
* a--asis <1>: chapter. (line 1160)
* a--asis <2>: chapter. (line 1958)
* b: chapter. (line 501)
* b <1>: chapter. (line 1161)
* b <2>: chapter. (line 1959)
-* b--b, c--c: chapter. (line 2172)
-* counting entry: chapter. (line 2522)
-* d--dd, e--ee, f--ff: chapter. (line 2172)
+* b--b, c--c: chapter. (line 2173)
+* counting entry: chapter. (line 2523)
+* d--dd, e--ee, f--ff: chapter. (line 2173)
* d--efcv_name: chapter. (line 341)
* d--efcv_name <1>: chapter. (line 344)
* d--efcv_name <2>: chapter. (line 1001)
@@ -3350,14 +3355,14 @@ chapter 2
* d--efvr_name: chapter. (line 317)
* d--efvr_name <1>: chapter. (line 977)
* d--efvr_name <2>: chapter. (line 1775)
-* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2172)
+* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2173)
* index entry between item and itemx: chapter. (line 505)
* index entry between item and itemx <1>: chapter. (line 623)
* index entry between item and itemx <2>: chapter. (line 1165)
* index entry between item and itemx <3>: chapter. (line 1283)
* index entry between item and itemx <4>: chapter. (line 1963)
-* index entry between item and itemx <5>: chapter. (line 2113)
-* index entry in footnote: chapter. (line 2517)
+* index entry between item and itemx <5>: chapter. (line 2114)
+* index entry in footnote: chapter. (line 2518)
* index entry within deffn: chapter. (line 292)
* index entry within deffn <1>: chapter. (line 952)
* index entry within deffn <2>: chapter. (line 1748)
@@ -3367,8 +3372,8 @@ chapter 2
* index entry within multitable: chapter. (line 225)
* index entry within multitable <1>: chapter. (line 885)
* index entry within multitable <2>: chapter. (line 1682)
-* t-ruc: chapter. (line 2172)
-* T-ruc: chapter. (line 2172)
+* t-ruc: chapter. (line 2173)
+* T-ruc: chapter. (line 2173)
* vtable i--tem code kbdinputstyle: chapter. (line 127)
* vtable i--tem code kbdinputstyle <1>: chapter. (line 787)
* vtable i--tem code kbdinputstyle <2>: chapter. (line 1582)
@@ -3406,8 +3411,8 @@ chapter 2
* --foption: chapter. (line 28)
* --foption <1>: chapter. (line 688)
* --foption <2>: chapter. (line 1359)
-* .: chapter. (line 2172)
-* ?: chapter. (line 2172)
+* .: chapter. (line 2173)
+* ?: chapter. (line 2173)
* ``: chapter. (line 28)
* `` <1>: chapter. (line 688)
* `` <2>: chapter. (line 1359)
@@ -3419,11 +3424,11 @@ chapter 2
* a <5>: chapter. (line 1282)
* a <6>: chapter. (line 1761)
* a <7>: chapter. (line 1962)
-* a <8>: chapter. (line 2112)
-* a <9>: chapter. (line 2172)
+* a <8>: chapter. (line 2113)
+* a <9>: chapter. (line 2173)
* after: chapter. (line 633)
* after <1>: chapter. (line 1293)
-* after <2>: chapter. (line 2123)
+* after <2>: chapter. (line 2124)
* arg2: chapter. (line 424)
* arg2 <1>: chapter. (line 1084)
* arg2 <2>: chapter. (line 1884)
@@ -3432,7 +3437,7 @@ chapter 2
* b <2>: chapter. (line 1165)
* b <3>: chapter. (line 1283)
* b <4>: chapter. (line 1963)
-* b <5>: chapter. (line 2113)
+* b <5>: chapter. (line 2114)
* bidule machin: chapter. (line 300)
* bidule machin <1>: chapter. (line 960)
* bidule machin <2>: chapter. (line 1756)
@@ -3499,16 +3504,16 @@ chapter 2
* deffnx <3>: chapter. (line 971)
* deffnx <4>: chapter. (line 1762)
* deffnx <5>: chapter. (line 1768)
-* f---aa: chapter. (line 2172)
-* f---bb, f---cc: chapter. (line 2172)
-* f---ddd, f---eee, ffff: chapter. (line 2172)
-* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2172)
+* f---aa: chapter. (line 2173)
+* f---bb, f---cc: chapter. (line 2173)
+* f---ddd, f---eee, ffff: chapter. (line 2173)
+* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2173)
* followed: chapter. (line 303)
* followed <1>: chapter. (line 631)
* followed <2>: chapter. (line 963)
* followed <3>: chapter. (line 1291)
* followed <4>: chapter. (line 1759)
-* followed <5>: chapter. (line 2121)
+* followed <5>: chapter. (line 2122)
* I: chapter. (line 291)
* I <1>: chapter. (line 313)
* I <2>: chapter. (line 951)
@@ -3523,7 +3528,7 @@ chapter 2
* id ule <2>: chapter. (line 1752)
* INVALID: chapter. (line 635)
* INVALID <1>: chapter. (line 1295)
-* INVALID <2>: chapter. (line 2125)
+* INVALID <2>: chapter. (line 2126)
* log trap: chapter. (line 293)
* log trap <1>: chapter. (line 953)
* log trap <2>: chapter. (line 1749)
@@ -3547,10 +3552,10 @@ chapter 2
* machin <11>: chapter. (line 1290)
* machin <12>: chapter. (line 1755)
* machin <13>: chapter. (line 1757)
-* machin <14>: chapter. (line 2117)
-* machin <15>: chapter. (line 2118)
-* machin <16>: chapter. (line 2119)
-* machin <17>: chapter. (line 2120)
+* machin <14>: chapter. (line 2118)
+* machin <15>: chapter. (line 2119)
+* machin <16>: chapter. (line 2120)
+* machin <17>: chapter. (line 2121)
* n--ame: chapter. (line 320)
* n--ame <1>: chapter. (line 323)
* n--ame <2>: chapter. (line 980)
@@ -3560,35 +3565,35 @@ chapter 2
* name2: chapter. (line 398)
* name2 <1>: chapter. (line 1058)
* name2 <2>: chapter. (line 1857)
-* t--ruc: chapter. (line 2172)
-* T--ruc: chapter. (line 2172)
+* t--ruc: chapter. (line 2173)
+* T--ruc: chapter. (line 2173)
* truc: chapter. (line 292)
* truc <1>: chapter. (line 314)
* truc <2>: chapter. (line 952)
* truc <3>: chapter. (line 974)
* truc <4>: chapter. (line 1748)
* truc <5>: chapter. (line 1771)
-* xxx, zzz: chapter. (line 2172)
+* xxx, zzz: chapter. (line 2173)

Tag Table:
-Node: Top18466
-Node: chapter18651
-Ref: chapter-Footnote-196760
-Ref: chapter-Footnote-296780
-Ref: chapter-Footnote-396801
-Ref: chapter-Footnote-496821
-Ref: chapter-Footnote-596842
-Ref: chapter-Footnote-696862
-Ref: chapter-Footnote-796883
-Ref: chapter-Footnote-896921
-Node: s--ect,ion96941
-Node: subsection97144
-Ref: anchor97325
-Node: subsubsection ``simple-double--97325
-Node: subsubsection three---four----''97525
-Node: chapter297697
+Node: Top18548
+Node: chapter18733
+Ref: chapter-Footnote-197091
+Ref: chapter-Footnote-297111
+Ref: chapter-Footnote-397132
+Ref: chapter-Footnote-497152
+Ref: chapter-Footnote-597173
+Ref: chapter-Footnote-697193
+Ref: chapter-Footnote-797214
+Ref: chapter-Footnote-897252
+Node: s--ect,ion97272
+Node: subsection97475
+Ref: anchor97656
+Node: subsubsection ``simple-double--97656
+Node: subsubsection three---four----''97856
+Node: chapter298028

End Tag Table
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_inline_css/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
index c65d5e044b..71b8432a0c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_inline_css/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1812,6 +1813,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2889,6 +2891,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4022,6 +4025,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5097,6 +5101,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6314,6 +6319,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_latex/formatting.tex b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_latex/formatting.tex
index 6c16a66b7f..a8486a3c59 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_latex/formatting.tex
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_latex/formatting.tex
@@ -91,6 +91,11 @@ roundcorner=10pt}
+
+
+
+
+
\begin{document}
\frontmatter
@@ -1571,6 +1576,7 @@ Invalid use of @':\leavevmode{}\\
\texttt{@image\{f{-}{-}ile,l{-}{-}i\}} \includegraphics[width=l--i]{f--ile}
\texttt{@image\{f{-}{-}ile{,}{,}l{-}{-}e\}} \includegraphics[height=l--e]{f--ile}
\texttt{@image\{f{-}{-}ile,aze,az,alt,.e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
+\texttt{@image\{f{-}{-}ile,aze,az,alt,} \includegraphics[width=aze,height=az]{f--ile}
\texttt{@image\{@file\{f{-}{-}ile\}@@@.,aze,az,alt,@file\{.file ext\}\ e{-}{-}xt@\}} \includegraphics[width=aze,height=az]{f--ile@.}
\texttt{@image\{f{-}{-}ile,aze,az,@verb\{:jk \_" \%@:\}\ @b\{in b "\},e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
@@ -3220,6 +3226,7 @@ Invalid use of @':\leavevmode{}\\
\texttt{@image\{f{-}{-}ile,l{-}{-}i\}} \includegraphics[width=l--i]{f--ile}
\texttt{@image\{f{-}{-}ile{,}{,}l{-}{-}e\}} \includegraphics[height=l--e]{f--ile}
\texttt{@image\{f{-}{-}ile,aze,az,alt,.e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
+\texttt{@image\{f{-}{-}ile,aze,az,alt,} \includegraphics[width=aze,height=az]{f--ile}
\texttt{@image\{@file\{f{-}{-}ile\}@@@.,aze,az,alt,@file\{.file ext\}\ e{-}{-}xt@\}} \includegraphics[width=aze,height=az]{f--ile@.}
\texttt{@image\{f{-}{-}ile,aze,az,@verb\{:jk \_" \%@:\}\ @b\{in b "\},e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
@@ -3411,11 +3418,6 @@ g--roupe
\pagestyle{single}%
\mainmatter
\tableofcontents\newpage
-
-
-
-
-
\label{anchor:Top}%
\chapter{{chapter}}
\label{anchor:chapter}%
@@ -4890,6 +4892,7 @@ Invalid use of @':\leavevmode{}\\
\texttt{@image\{f{-}{-}ile,l{-}{-}i\}} \includegraphics[width=l--i]{f--ile}
\texttt{@image\{f{-}{-}ile{,}{,}l{-}{-}e\}} \includegraphics[height=l--e]{f--ile}
\texttt{@image\{f{-}{-}ile,aze,az,alt,.e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
+\texttt{@image\{f{-}{-}ile,aze,az,alt,} \includegraphics[width=aze,height=az]{f--ile}
\texttt{@image\{@file\{f{-}{-}ile\}@@@.,aze,az,alt,@file\{.file ext\}\ e{-}{-}xt@\}} \includegraphics[width=aze,height=az]{f--ile@.}
\texttt{@image\{f{-}{-}ile,aze,az,@verb\{:jk \_" \%@:\}\ @b\{in b "\},e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
@@ -6538,6 +6541,7 @@ Invalid use of @':\leavevmode{}\\
\texttt{@image\{f{-}{-}ile,l{-}{-}i\}} \includegraphics[width=l--i]{f--ile}
\texttt{@image\{f{-}{-}ile{,}{,}l{-}{-}e\}} \includegraphics[height=l--e]{f--ile}
\texttt{@image\{f{-}{-}ile,aze,az,alt,.e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
+\texttt{@image\{f{-}{-}ile,aze,az,alt,} \includegraphics[width=aze,height=az]{f--ile}
\texttt{@image\{@file\{f{-}{-}ile\}@@@.,aze,az,alt,@file\{.file ext\}\ e{-}{-}xt@\}} \includegraphics[width=aze,height=az]{f--ile@.}
\texttt{@image\{f{-}{-}ile,aze,az,@verb\{:jk \_" \%@:\}\ @b\{in b "\},e{-}{-}xt\}} \includegraphics[width=aze,height=az]{f--ile}
@@ -8655,6 +8659,7 @@ Invalid use of @':\leavevmode{}\\
\texttt{@image\{f{-}{-}ile,l{-}{-}i\}}\ \includegraphics[width=l--i]{f--ile}
\texttt{@image\{f{-}{-}ile{,}{,}l{-}{-}e\}}\ \includegraphics[height=l--e]{f--ile}
\texttt{@image\{f{-}{-}ile,aze,az,alt,.e{-}{-}xt\}}\ \includegraphics[width=aze,height=az]{f--ile}
+\texttt{@image\{f{-}{-}ile,aze,az,alt,}\ \includegraphics[width=aze,height=az]{f--ile}
\texttt{@image\{@file\{f{-}{-}ile\}@@@.,aze,az,alt,@file\{.file ext\}\ e{-}{-}xt@\}}\ \includegraphics[width=aze,height=az]{f--ile@.}
\texttt{@image\{f{-}{-}ile,aze,az,@verb\{:jk \_" \%@:\}\ @b\{in b "\},e{-}{-}xt\}}\ \includegraphics[width=aze,height=az]{f--ile}
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_macro_expand/formatting.texi b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_macro_expand/formatting.texi
index 72896e67c0..629c3d19e8 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_macro_expand/formatting.texi
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_macro_expand/formatting.texi
@@ -1056,6 +1056,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
@@ -2201,6 +2202,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
@@ -3350,6 +3352,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
@@ -4525,6 +4528,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
@@ -5681,6 +5685,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_mathjax/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
index 7df1f66798..352697fc96 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_mathjax/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1858,6 +1859,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2933,6 +2935,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4064,6 +4067,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5137,6 +5141,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/anchor.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/anchor.html
index 19eea1b795..d8732d61a9 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/anchor.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/anchor.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter.html
index cbe15ee7f7..f030643246 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1866,6 +1867,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2941,6 +2943,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4158,6 +4161,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter2.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter2.html
index b4241e0b5d..bc1878eb2b 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter2.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/chapter2.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_abt.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_abt.html
index 89f4a75041..f8d8908f2c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_abt.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_abt.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_fot.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_fot.html
index 1e3fbc606d..545aa91a8e 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_fot.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_fot.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_ovr.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_ovr.html
index d22ca217a9..c785c63044 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_ovr.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_ovr.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_toc.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_toc.html
index fdcc1de8a8..40d0599933 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_toc.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/formatting_toc.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/index.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/index.html
index db31439ac6..187dd71529 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/index.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/index.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1839,6 +1840,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2916,6 +2918,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/s_002d_002dect_002cion.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/s_002d_002dect_002cion.html
index b97e8a4699..f80e25130b 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/s_002d_002dect_002cion.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/s_002d_002dect_002cion.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsection.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsection.html
index 9cd9a9b677..0e43bd3a8c 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsection.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsection.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
index 02ef65c92b..e413d27a15 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
index e63bbdcfc0..b804676cfb 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_nodes/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
index 2cb8452876..9cb1408fef 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_numerical_entities/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt
index 3b07b4487c..aa5e4696fd 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt
@@ -595,6 +595,7 @@ aaa '@image{f--ile,l--i}' ggg
aaa '@image{f--ile,,l--e}' ggg
aaa
'@image{f--ile,aze,az,alt,.e--xt}' ggg
+aaa '@image{f--ile,aze,az,alt,' ggg
aaa
'@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}' [alt]
@@ -1262,6 +1263,7 @@ aaa '@image{f--ile,l--i}' ggg
aaa '@image{f--ile,,l--e}' ggg
aaa
'@image{f--ile,aze,az,alt,.e--xt}' ggg
+aaa '@image{f--ile,aze,az,alt,' ggg
aaa
'@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}' [alt]
@@ -2098,6 +2100,8 @@ aaa
aaa
@image{f--ile,aze,az,alt,.e--xt} ggg
aaa
+ @image{f--ile,aze,az,alt, ggg
+aaa
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} [alt]
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} ggg
@@ -2197,300 +2201,300 @@ aaa
* Menu:
-* truc: chapter. (line 2193)
+* truc: chapter. (line 2197)
codeidx
* Menu:
-* a INDEX---ENTRY tẽ --- î: chapter. (line 2193)
+* a INDEX---ENTRY tẽ --- î: chapter. (line 2197)
cp
* Menu:
* ": chapter. (line 28)
-* " <1>: chapter. (line 695)
-* " <2>: chapter. (line 1373)
+* " <1>: chapter. (line 696)
+* " <2>: chapter. (line 1375)
* -option: chapter. (line 28)
-* -option <1>: chapter. (line 695)
-* -option <2>: chapter. (line 1373)
-* .: chapter. (line 2193)
-* ?: chapter. (line 2193)
-* a: chapter. (line 2193)
-* aaa, bbb: chapter. (line 2193)
-* a--a: chapter. (line 2193)
+* -option <1>: chapter. (line 696)
+* -option <2>: chapter. (line 1375)
+* .: chapter. (line 2197)
+* ?: chapter. (line 2197)
+* a: chapter. (line 2197)
+* aaa, bbb: chapter. (line 2197)
+* a--a: chapter. (line 2197)
* a--asis: chapter. (line 500)
-* a--asis <1>: chapter. (line 1167)
-* a--asis <2>: chapter. (line 1972)
+* a--asis <1>: chapter. (line 1168)
+* a--asis <2>: chapter. (line 1974)
* b: chapter. (line 501)
-* b <1>: chapter. (line 1168)
-* b <2>: chapter. (line 1973)
-* b--b, c--c: chapter. (line 2193)
+* b <1>: chapter. (line 1169)
+* b <2>: chapter. (line 1975)
+* b--b, c--c: chapter. (line 2197)
* counting entry: chapter. (line 0)
-* d--dd, e--ee, f--ff: chapter. (line 2193)
+* d--dd, e--ee, f--ff: chapter. (line 2197)
* d--efcv_name: chapter. (line 341)
* d--efcv_name <1>: chapter. (line 344)
-* d--efcv_name <2>: chapter. (line 1008)
-* d--efcv_name <3>: chapter. (line 1011)
-* d--efcv_name <4>: chapter. (line 1813)
-* d--efcv_name <5>: chapter. (line 1816)
+* d--efcv_name <2>: chapter. (line 1009)
+* d--efcv_name <3>: chapter. (line 1012)
+* d--efcv_name <4>: chapter. (line 1815)
+* d--efcv_name <5>: chapter. (line 1818)
* d--efivar_name of c--lass: chapter. (line 386)
-* d--efivar_name of c--lass <1>: chapter. (line 1053)
-* d--efivar_name of c--lass <2>: chapter. (line 1858)
+* d--efivar_name of c--lass <1>: chapter. (line 1054)
+* d--efivar_name of c--lass <2>: chapter. (line 1860)
* d--efopt_name: chapter. (line 377)
-* d--efopt_name <1>: chapter. (line 1044)
-* d--efopt_name <2>: chapter. (line 1849)
+* d--efopt_name <1>: chapter. (line 1045)
+* d--efopt_name <2>: chapter. (line 1851)
* d--eftypecv_name of c--lass: chapter. (line 347)
* d--eftypecv_name of c--lass <1>: chapter. (line 350)
-* d--eftypecv_name of c--lass <2>: chapter. (line 1014)
-* d--eftypecv_name of c--lass <3>: chapter. (line 1017)
-* d--eftypecv_name of c--lass <4>: chapter. (line 1819)
-* d--eftypecv_name of c--lass <5>: chapter. (line 1822)
+* d--eftypecv_name of c--lass <2>: chapter. (line 1015)
+* d--eftypecv_name of c--lass <3>: chapter. (line 1018)
+* d--eftypecv_name of c--lass <4>: chapter. (line 1821)
+* d--eftypecv_name of c--lass <5>: chapter. (line 1824)
* d--eftypecv_name2 of c--lass2: chapter. (line 418)
* d--eftypecv_name2 of c--lass2 <1>: chapter. (line 421)
-* d--eftypecv_name2 of c--lass2 <2>: chapter. (line 1085)
-* d--eftypecv_name2 of c--lass2 <3>: chapter. (line 1088)
-* d--eftypecv_name2 of c--lass2 <4>: chapter. (line 1891)
-* d--eftypecv_name2 of c--lass2 <5>: chapter. (line 1894)
+* d--eftypecv_name2 of c--lass2 <2>: chapter. (line 1086)
+* d--eftypecv_name2 of c--lass2 <3>: chapter. (line 1089)
+* d--eftypecv_name2 of c--lass2 <4>: chapter. (line 1893)
+* d--eftypecv_name2 of c--lass2 <5>: chapter. (line 1896)
* d--eftypeivar_name of c--lass: chapter. (line 389)
-* d--eftypeivar_name of c--lass <1>: chapter. (line 1056)
-* d--eftypeivar_name of c--lass <2>: chapter. (line 1861)
+* d--eftypeivar_name of c--lass <1>: chapter. (line 1057)
+* d--eftypeivar_name of c--lass <2>: chapter. (line 1863)
* d--eftypevar_name: chapter. (line 383)
-* d--eftypevar_name <1>: chapter. (line 1050)
-* d--eftypevar_name <2>: chapter. (line 1855)
+* d--eftypevar_name <1>: chapter. (line 1051)
+* d--eftypevar_name <2>: chapter. (line 1857)
* d--eftypevr_name: chapter. (line 338)
-* d--eftypevr_name <1>: chapter. (line 1005)
-* d--eftypevr_name <2>: chapter. (line 1810)
+* d--eftypevr_name <1>: chapter. (line 1006)
+* d--eftypevr_name <2>: chapter. (line 1812)
* d--efvar_name: chapter. (line 371)
* d--efvar_name <1>: chapter. (line 374)
-* d--efvar_name <2>: chapter. (line 1038)
-* d--efvar_name <3>: chapter. (line 1041)
-* d--efvar_name <4>: chapter. (line 1843)
-* d--efvar_name <5>: chapter. (line 1846)
+* d--efvar_name <2>: chapter. (line 1039)
+* d--efvar_name <3>: chapter. (line 1042)
+* d--efvar_name <4>: chapter. (line 1845)
+* d--efvar_name <5>: chapter. (line 1848)
* d--efvr_name: chapter. (line 317)
-* d--efvr_name <1>: chapter. (line 984)
-* d--efvr_name <2>: chapter. (line 1789)
-* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2193)
+* d--efvr_name <1>: chapter. (line 985)
+* d--efvr_name <2>: chapter. (line 1791)
+* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2197)
* index entry between item and itemx: chapter. (line 505)
-* index entry between item and itemx <1>: chapter. (line 630)
-* index entry between item and itemx <2>: chapter. (line 1172)
-* index entry between item and itemx <3>: chapter. (line 1297)
-* index entry between item and itemx <4>: chapter. (line 1977)
-* index entry between item and itemx <5>: chapter. (line 2134)
+* index entry between item and itemx <1>: chapter. (line 631)
+* index entry between item and itemx <2>: chapter. (line 1173)
+* index entry between item and itemx <3>: chapter. (line 1299)
+* index entry between item and itemx <4>: chapter. (line 1979)
+* index entry between item and itemx <5>: chapter. (line 2138)
* index entry in footnote: chapter. (line 0)
* index entry within deffn: chapter. (line 292)
-* index entry within deffn <1>: chapter. (line 959)
-* index entry within deffn <2>: chapter. (line 1762)
+* index entry within deffn <1>: chapter. (line 960)
+* index entry within deffn <2>: chapter. (line 1764)
* index entry within itemize: chapter. (line 203)
-* index entry within itemize <1>: chapter. (line 870)
-* index entry within itemize <2>: chapter. (line 1673)
+* index entry within itemize <1>: chapter. (line 871)
+* index entry within itemize <2>: chapter. (line 1675)
* index entry within multitable: chapter. (line 225)
-* index entry within multitable <1>: chapter. (line 892)
-* index entry within multitable <2>: chapter. (line 1696)
-* t-ruc: chapter. (line 2193)
-* T-ruc: chapter. (line 2193)
+* index entry within multitable <1>: chapter. (line 893)
+* index entry within multitable <2>: chapter. (line 1698)
+* t-ruc: chapter. (line 2197)
+* T-ruc: chapter. (line 2197)
* vtable i--tem code kbdinputstyle: chapter. (line 127)
-* vtable i--tem code kbdinputstyle <1>: chapter. (line 794)
-* vtable i--tem code kbdinputstyle <2>: chapter. (line 1596)
+* vtable i--tem code kbdinputstyle <1>: chapter. (line 795)
+* vtable i--tem code kbdinputstyle <2>: chapter. (line 1598)
* vtable i--tem default kbdinputstyle: chapter. (line 122)
-* vtable i--tem default kbdinputstyle <1>: chapter. (line 789)
-* vtable i--tem default kbdinputstyle <2>: chapter. (line 1591)
+* vtable i--tem default kbdinputstyle <1>: chapter. (line 790)
+* vtable i--tem default kbdinputstyle <2>: chapter. (line 1593)
* vtable i--tem distinct kbdinputstyle: chapter. (line 137)
-* vtable i--tem distinct kbdinputstyle <1>: chapter. (line 804)
-* vtable i--tem distinct kbdinputstyle <2>: chapter. (line 1606)
+* vtable i--tem distinct kbdinputstyle <1>: chapter. (line 805)
+* vtable i--tem distinct kbdinputstyle <2>: chapter. (line 1608)
* vtable i--tem example kbdinputstyle: chapter. (line 132)
-* vtable i--tem example kbdinputstyle <1>: chapter. (line 799)
-* vtable i--tem example kbdinputstyle <2>: chapter. (line 1601)
+* vtable i--tem example kbdinputstyle <1>: chapter. (line 800)
+* vtable i--tem example kbdinputstyle <2>: chapter. (line 1603)
* vtable i--tem in example code kbdinputstyle: chapter. (line 129)
-* vtable i--tem in example code kbdinputstyle <1>: chapter. (line 796)
-* vtable i--tem in example code kbdinputstyle <2>: chapter. (line 1598)
+* vtable i--tem in example code kbdinputstyle <1>: chapter. (line 797)
+* vtable i--tem in example code kbdinputstyle <2>: chapter. (line 1600)
* vtable i--tem in example default kbdinputstyle: chapter. (line 124)
* vtable i--tem in example default kbdinputstyle <1>: chapter.
- (line 791)
+ (line 792)
* vtable i--tem in example default kbdinputstyle <2>: chapter.
- (line 1593)
+ (line 1595)
* vtable i--tem in example distinct kbdinputstyle: chapter. (line 139)
* vtable i--tem in example distinct kbdinputstyle <1>: chapter.
- (line 806)
+ (line 807)
* vtable i--tem in example distinct kbdinputstyle <2>: chapter.
- (line 1608)
+ (line 1610)
* vtable i--tem in example example kbdinputstyle: chapter. (line 134)
* vtable i--tem in example example kbdinputstyle <1>: chapter.
- (line 801)
+ (line 802)
* vtable i--tem in example example kbdinputstyle <2>: chapter.
- (line 1603)
+ (line 1605)
fn
* Menu:
* --foption: chapter. (line 28)
-* --foption <1>: chapter. (line 695)
-* --foption <2>: chapter. (line 1373)
-* .: chapter. (line 2193)
-* ?: chapter. (line 2193)
+* --foption <1>: chapter. (line 696)
+* --foption <2>: chapter. (line 1375)
+* .: chapter. (line 2197)
+* ?: chapter. (line 2197)
* ``: chapter. (line 28)
-* `` <1>: chapter. (line 695)
-* `` <2>: chapter. (line 1373)
+* `` <1>: chapter. (line 696)
+* `` <2>: chapter. (line 1375)
* a: chapter. (line 305)
* a <1>: chapter. (line 504)
-* a <2>: chapter. (line 629)
-* a <3>: chapter. (line 972)
-* a <4>: chapter. (line 1171)
-* a <5>: chapter. (line 1296)
-* a <6>: chapter. (line 1775)
-* a <7>: chapter. (line 1976)
-* a <8>: chapter. (line 2133)
-* a <9>: chapter. (line 2193)
-* after: chapter. (line 640)
-* after <1>: chapter. (line 1307)
-* after <2>: chapter. (line 2144)
+* a <2>: chapter. (line 630)
+* a <3>: chapter. (line 973)
+* a <4>: chapter. (line 1172)
+* a <5>: chapter. (line 1298)
+* a <6>: chapter. (line 1777)
+* a <7>: chapter. (line 1978)
+* a <8>: chapter. (line 2137)
+* a <9>: chapter. (line 2197)
+* after: chapter. (line 641)
+* after <1>: chapter. (line 1309)
+* after <2>: chapter. (line 2148)
* arg2: chapter. (line 424)
-* arg2 <1>: chapter. (line 1091)
-* arg2 <2>: chapter. (line 1898)
+* arg2 <1>: chapter. (line 1092)
+* arg2 <2>: chapter. (line 1900)
* b: chapter. (line 505)
-* b <1>: chapter. (line 630)
-* b <2>: chapter. (line 1172)
-* b <3>: chapter. (line 1297)
-* b <4>: chapter. (line 1977)
-* b <5>: chapter. (line 2134)
+* b <1>: chapter. (line 631)
+* b <2>: chapter. (line 1173)
+* b <3>: chapter. (line 1299)
+* b <4>: chapter. (line 1979)
+* b <5>: chapter. (line 2138)
* bidule machin: chapter. (line 300)
-* bidule machin <1>: chapter. (line 967)
-* bidule machin <2>: chapter. (line 1770)
+* bidule machin <1>: chapter. (line 968)
+* bidule machin <2>: chapter. (line 1772)
* d--effn_name: chapter. (line 284)
-* d--effn_name <1>: chapter. (line 951)
-* d--effn_name <2>: chapter. (line 1754)
+* d--effn_name <1>: chapter. (line 952)
+* d--effn_name <2>: chapter. (line 1756)
* d--efmac_name: chapter. (line 365)
-* d--efmac_name <1>: chapter. (line 1032)
-* d--efmac_name <2>: chapter. (line 1837)
+* d--efmac_name <1>: chapter. (line 1033)
+* d--efmac_name <2>: chapter. (line 1839)
* d--efmethod_name on c--lass: chapter. (line 392)
-* d--efmethod_name on c--lass <1>: chapter. (line 1059)
-* d--efmethod_name on c--lass <2>: chapter. (line 1864)
+* d--efmethod_name on c--lass <1>: chapter. (line 1060)
+* d--efmethod_name on c--lass <2>: chapter. (line 1866)
* d--efop_name on c--lass: chapter. (line 353)
* d--efop_name on c--lass <1>: chapter. (line 356)
-* d--efop_name on c--lass <2>: chapter. (line 1020)
-* d--efop_name on c--lass <3>: chapter. (line 1023)
-* d--efop_name on c--lass <4>: chapter. (line 1825)
-* d--efop_name on c--lass <5>: chapter. (line 1828)
+* d--efop_name on c--lass <2>: chapter. (line 1021)
+* d--efop_name on c--lass <3>: chapter. (line 1024)
+* d--efop_name on c--lass <4>: chapter. (line 1827)
+* d--efop_name on c--lass <5>: chapter. (line 1830)
* d--efspec_name: chapter. (line 368)
-* d--efspec_name <1>: chapter. (line 1035)
-* d--efspec_name <2>: chapter. (line 1840)
+* d--efspec_name <1>: chapter. (line 1036)
+* d--efspec_name <2>: chapter. (line 1842)
* d--eftypefn_name: chapter. (line 326)
* d--eftypefn_name <1>: chapter. (line 329)
-* d--eftypefn_name <2>: chapter. (line 993)
-* d--eftypefn_name <3>: chapter. (line 996)
-* d--eftypefn_name <4>: chapter. (line 1798)
-* d--eftypefn_name <5>: chapter. (line 1801)
+* d--eftypefn_name <2>: chapter. (line 994)
+* d--eftypefn_name <3>: chapter. (line 997)
+* d--eftypefn_name <4>: chapter. (line 1800)
+* d--eftypefn_name <5>: chapter. (line 1803)
* d--eftypefn_name2: chapter. (line 403)
-* d--eftypefn_name2 <1>: chapter. (line 1070)
-* d--eftypefn_name2 <2>: chapter. (line 1876)
+* d--eftypefn_name2 <1>: chapter. (line 1071)
+* d--eftypefn_name2 <2>: chapter. (line 1878)
* d--eftypefun_name: chapter. (line 380)
-* d--eftypefun_name <1>: chapter. (line 1047)
-* d--eftypefun_name <2>: chapter. (line 1852)
+* d--eftypefun_name <1>: chapter. (line 1048)
+* d--eftypefun_name <2>: chapter. (line 1854)
* d--eftypemethod_name on c--lass: chapter. (line 395)
-* d--eftypemethod_name on c--lass <1>: chapter. (line 1062)
-* d--eftypemethod_name on c--lass <2>: chapter. (line 1867)
+* d--eftypemethod_name on c--lass <1>: chapter. (line 1063)
+* d--eftypemethod_name on c--lass <2>: chapter. (line 1869)
* d--eftypeop_name on c--lass: chapter. (line 332)
* d--eftypeop_name on c--lass <1>: chapter. (line 335)
-* d--eftypeop_name on c--lass <2>: chapter. (line 999)
-* d--eftypeop_name on c--lass <3>: chapter. (line 1002)
-* d--eftypeop_name on c--lass <4>: chapter. (line 1804)
-* d--eftypeop_name on c--lass <5>: chapter. (line 1807)
+* d--eftypeop_name on c--lass <2>: chapter. (line 1000)
+* d--eftypeop_name on c--lass <3>: chapter. (line 1003)
+* d--eftypeop_name on c--lass <4>: chapter. (line 1806)
+* d--eftypeop_name on c--lass <5>: chapter. (line 1809)
* d--eftypeop_name2 on c--lass2: chapter. (line 408)
* d--eftypeop_name2 on c--lass2 <1>: chapter. (line 413)
-* d--eftypeop_name2 on c--lass2 <2>: chapter. (line 1075)
-* d--eftypeop_name2 on c--lass2 <3>: chapter. (line 1080)
-* d--eftypeop_name2 on c--lass2 <4>: chapter. (line 1881)
-* d--eftypeop_name2 on c--lass2 <5>: chapter. (line 1886)
+* d--eftypeop_name2 on c--lass2 <2>: chapter. (line 1076)
+* d--eftypeop_name2 on c--lass2 <3>: chapter. (line 1081)
+* d--eftypeop_name2 on c--lass2 <4>: chapter. (line 1883)
+* d--eftypeop_name2 on c--lass2 <5>: chapter. (line 1888)
* d--efun_name: chapter. (line 362)
-* d--efun_name <1>: chapter. (line 1029)
-* d--efun_name <2>: chapter. (line 1834)
+* d--efun_name <1>: chapter. (line 1030)
+* d--efun_name <2>: chapter. (line 1836)
* de--ffn_name: chapter. (line 287)
-* de--ffn_name <1>: chapter. (line 954)
-* de--ffn_name <2>: chapter. (line 1757)
+* de--ffn_name <1>: chapter. (line 955)
+* de--ffn_name <2>: chapter. (line 1759)
* deffn: chapter. (line 308)
* deffn <1>: chapter. (line 310)
-* deffn <2>: chapter. (line 975)
-* deffn <3>: chapter. (line 977)
-* deffn <4>: chapter. (line 1779)
-* deffn <5>: chapter. (line 1781)
+* deffn <2>: chapter. (line 976)
+* deffn <3>: chapter. (line 978)
+* deffn <4>: chapter. (line 1781)
+* deffn <5>: chapter. (line 1783)
* deffnx: chapter. (line 306)
* deffnx <1>: chapter. (line 311)
-* deffnx <2>: chapter. (line 973)
-* deffnx <3>: chapter. (line 978)
-* deffnx <4>: chapter. (line 1776)
-* deffnx <5>: chapter. (line 1782)
-* f---aa: chapter. (line 2193)
-* f---bb, f---cc: chapter. (line 2193)
-* f---ddd, f---eee, ffff: chapter. (line 2193)
-* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2193)
+* deffnx <2>: chapter. (line 974)
+* deffnx <3>: chapter. (line 979)
+* deffnx <4>: chapter. (line 1778)
+* deffnx <5>: chapter. (line 1784)
+* f---aa: chapter. (line 2197)
+* f---bb, f---cc: chapter. (line 2197)
+* f---ddd, f---eee, ffff: chapter. (line 2197)
+* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2197)
* followed: chapter. (line 303)
-* followed <1>: chapter. (line 638)
-* followed <2>: chapter. (line 970)
-* followed <3>: chapter. (line 1305)
-* followed <4>: chapter. (line 1773)
-* followed <5>: chapter. (line 2142)
+* followed <1>: chapter. (line 639)
+* followed <2>: chapter. (line 971)
+* followed <3>: chapter. (line 1307)
+* followed <4>: chapter. (line 1775)
+* followed <5>: chapter. (line 2146)
* I: chapter. (line 291)
* I <1>: chapter. (line 313)
-* I <2>: chapter. (line 958)
-* I <3>: chapter. (line 980)
-* I <4>: chapter. (line 1761)
-* I <5>: chapter. (line 1784)
+* I <2>: chapter. (line 959)
+* I <3>: chapter. (line 981)
+* I <4>: chapter. (line 1763)
+* I <5>: chapter. (line 1786)
* id i ule: chapter. (line 297)
-* id i ule <1>: chapter. (line 964)
-* id i ule <2>: chapter. (line 1767)
+* id i ule <1>: chapter. (line 965)
+* id i ule <2>: chapter. (line 1769)
* id ule: chapter. (line 296)
-* id ule <1>: chapter. (line 963)
-* id ule <2>: chapter. (line 1766)
-* INVALID: chapter. (line 642)
-* INVALID <1>: chapter. (line 1309)
-* INVALID <2>: chapter. (line 2146)
+* id ule <1>: chapter. (line 964)
+* id ule <2>: chapter. (line 1768)
+* INVALID: chapter. (line 643)
+* INVALID <1>: chapter. (line 1311)
+* INVALID <2>: chapter. (line 2150)
* log trap: chapter. (line 293)
-* log trap <1>: chapter. (line 960)
-* log trap <2>: chapter. (line 1763)
+* log trap <1>: chapter. (line 961)
+* log trap <2>: chapter. (line 1765)
* log trap1: chapter. (line 294)
-* log trap1 <1>: chapter. (line 961)
-* log trap1 <2>: chapter. (line 1764)
+* log trap1 <1>: chapter. (line 962)
+* log trap1 <2>: chapter. (line 1766)
* log trap2: chapter. (line 295)
-* log trap2 <1>: chapter. (line 962)
-* log trap2 <2>: chapter. (line 1765)
+* log trap2 <1>: chapter. (line 963)
+* log trap2 <2>: chapter. (line 1767)
* machin: chapter. (line 299)
* machin <1>: chapter. (line 301)
-* machin <2>: chapter. (line 634)
-* machin <3>: chapter. (line 635)
-* machin <4>: chapter. (line 636)
-* machin <5>: chapter. (line 637)
-* machin <6>: chapter. (line 966)
-* machin <7>: chapter. (line 968)
-* machin <8>: chapter. (line 1301)
-* machin <9>: chapter. (line 1302)
-* machin <10>: chapter. (line 1303)
-* machin <11>: chapter. (line 1304)
-* machin <12>: chapter. (line 1769)
-* machin <13>: chapter. (line 1771)
-* machin <14>: chapter. (line 2138)
-* machin <15>: chapter. (line 2139)
-* machin <16>: chapter. (line 2140)
-* machin <17>: chapter. (line 2141)
+* machin <2>: chapter. (line 635)
+* machin <3>: chapter. (line 636)
+* machin <4>: chapter. (line 637)
+* machin <5>: chapter. (line 638)
+* machin <6>: chapter. (line 967)
+* machin <7>: chapter. (line 969)
+* machin <8>: chapter. (line 1303)
+* machin <9>: chapter. (line 1304)
+* machin <10>: chapter. (line 1305)
+* machin <11>: chapter. (line 1306)
+* machin <12>: chapter. (line 1771)
+* machin <13>: chapter. (line 1773)
+* machin <14>: chapter. (line 2142)
+* machin <15>: chapter. (line 2143)
+* machin <16>: chapter. (line 2144)
+* machin <17>: chapter. (line 2145)
* n--ame: chapter. (line 320)
* n--ame <1>: chapter. (line 323)
-* n--ame <2>: chapter. (line 987)
-* n--ame <3>: chapter. (line 990)
-* n--ame <4>: chapter. (line 1792)
-* n--ame <5>: chapter. (line 1795)
+* n--ame <2>: chapter. (line 988)
+* n--ame <3>: chapter. (line 991)
+* n--ame <4>: chapter. (line 1794)
+* n--ame <5>: chapter. (line 1797)
* name2: chapter. (line 398)
-* name2 <1>: chapter. (line 1065)
-* name2 <2>: chapter. (line 1871)
-* t--ruc: chapter. (line 2193)
-* T--ruc: chapter. (line 2193)
+* name2 <1>: chapter. (line 1066)
+* name2 <2>: chapter. (line 1873)
+* t--ruc: chapter. (line 2197)
+* T--ruc: chapter. (line 2197)
* truc: chapter. (line 292)
* truc <1>: chapter. (line 314)
-* truc <2>: chapter. (line 959)
-* truc <3>: chapter. (line 981)
-* truc <4>: chapter. (line 1762)
-* truc <5>: chapter. (line 1785)
-* xxx, zzz: chapter. (line 2193)
+* truc <2>: chapter. (line 960)
+* truc <3>: chapter. (line 982)
+* truc <4>: chapter. (line 1764)
+* truc <5>: chapter. (line 1787)
+* xxx, zzz: chapter. (line 2197)
vr
@@ -2503,8 +2507,8 @@ aaa
* Menu:
* d--eftp_name: chapter. (line 359)
-* d--eftp_name <1>: chapter. (line 1026)
-* d--eftp_name <2>: chapter. (line 1831)
+* d--eftp_name <1>: chapter. (line 1027)
+* d--eftp_name <2>: chapter. (line 1833)
(8)
@@ -2549,285 +2553,285 @@ chapter 2
* Menu:
* ": chapter. (line 28)
-* " <1>: chapter. (line 695)
-* " <2>: chapter. (line 1373)
+* " <1>: chapter. (line 696)
+* " <2>: chapter. (line 1375)
* -option: chapter. (line 28)
-* -option <1>: chapter. (line 695)
-* -option <2>: chapter. (line 1373)
-* .: chapter. (line 2193)
-* ?: chapter. (line 2193)
-* a: chapter. (line 2193)
-* aaa, bbb: chapter. (line 2193)
-* a--a: chapter. (line 2193)
+* -option <1>: chapter. (line 696)
+* -option <2>: chapter. (line 1375)
+* .: chapter. (line 2197)
+* ?: chapter. (line 2197)
+* a: chapter. (line 2197)
+* aaa, bbb: chapter. (line 2197)
+* a--a: chapter. (line 2197)
* a--asis: chapter. (line 500)
-* a--asis <1>: chapter. (line 1167)
-* a--asis <2>: chapter. (line 1972)
+* a--asis <1>: chapter. (line 1168)
+* a--asis <2>: chapter. (line 1974)
* b: chapter. (line 501)
-* b <1>: chapter. (line 1168)
-* b <2>: chapter. (line 1973)
-* b--b, c--c: chapter. (line 2193)
-* counting entry: chapter. (line 2530)
-* d--dd, e--ee, f--ff: chapter. (line 2193)
+* b <1>: chapter. (line 1169)
+* b <2>: chapter. (line 1975)
+* b--b, c--c: chapter. (line 2197)
+* counting entry: chapter. (line 2534)
+* d--dd, e--ee, f--ff: chapter. (line 2197)
* d--efcv_name: chapter. (line 341)
* d--efcv_name <1>: chapter. (line 344)
-* d--efcv_name <2>: chapter. (line 1008)
-* d--efcv_name <3>: chapter. (line 1011)
-* d--efcv_name <4>: chapter. (line 1813)
-* d--efcv_name <5>: chapter. (line 1816)
+* d--efcv_name <2>: chapter. (line 1009)
+* d--efcv_name <3>: chapter. (line 1012)
+* d--efcv_name <4>: chapter. (line 1815)
+* d--efcv_name <5>: chapter. (line 1818)
* d--efivar_name of c--lass: chapter. (line 386)
-* d--efivar_name of c--lass <1>: chapter. (line 1053)
-* d--efivar_name of c--lass <2>: chapter. (line 1858)
+* d--efivar_name of c--lass <1>: chapter. (line 1054)
+* d--efivar_name of c--lass <2>: chapter. (line 1860)
* d--efopt_name: chapter. (line 377)
-* d--efopt_name <1>: chapter. (line 1044)
-* d--efopt_name <2>: chapter. (line 1849)
+* d--efopt_name <1>: chapter. (line 1045)
+* d--efopt_name <2>: chapter. (line 1851)
* d--eftypecv_name of c--lass: chapter. (line 347)
* d--eftypecv_name of c--lass <1>: chapter. (line 350)
-* d--eftypecv_name of c--lass <2>: chapter. (line 1014)
-* d--eftypecv_name of c--lass <3>: chapter. (line 1017)
-* d--eftypecv_name of c--lass <4>: chapter. (line 1819)
-* d--eftypecv_name of c--lass <5>: chapter. (line 1822)
+* d--eftypecv_name of c--lass <2>: chapter. (line 1015)
+* d--eftypecv_name of c--lass <3>: chapter. (line 1018)
+* d--eftypecv_name of c--lass <4>: chapter. (line 1821)
+* d--eftypecv_name of c--lass <5>: chapter. (line 1824)
* d--eftypecv_name2 of c--lass2: chapter. (line 418)
* d--eftypecv_name2 of c--lass2 <1>: chapter. (line 421)
-* d--eftypecv_name2 of c--lass2 <2>: chapter. (line 1085)
-* d--eftypecv_name2 of c--lass2 <3>: chapter. (line 1088)
-* d--eftypecv_name2 of c--lass2 <4>: chapter. (line 1891)
-* d--eftypecv_name2 of c--lass2 <5>: chapter. (line 1894)
+* d--eftypecv_name2 of c--lass2 <2>: chapter. (line 1086)
+* d--eftypecv_name2 of c--lass2 <3>: chapter. (line 1089)
+* d--eftypecv_name2 of c--lass2 <4>: chapter. (line 1893)
+* d--eftypecv_name2 of c--lass2 <5>: chapter. (line 1896)
* d--eftypeivar_name of c--lass: chapter. (line 389)
-* d--eftypeivar_name of c--lass <1>: chapter. (line 1056)
-* d--eftypeivar_name of c--lass <2>: chapter. (line 1861)
+* d--eftypeivar_name of c--lass <1>: chapter. (line 1057)
+* d--eftypeivar_name of c--lass <2>: chapter. (line 1863)
* d--eftypevar_name: chapter. (line 383)
-* d--eftypevar_name <1>: chapter. (line 1050)
-* d--eftypevar_name <2>: chapter. (line 1855)
+* d--eftypevar_name <1>: chapter. (line 1051)
+* d--eftypevar_name <2>: chapter. (line 1857)
* d--eftypevr_name: chapter. (line 338)
-* d--eftypevr_name <1>: chapter. (line 1005)
-* d--eftypevr_name <2>: chapter. (line 1810)
+* d--eftypevr_name <1>: chapter. (line 1006)
+* d--eftypevr_name <2>: chapter. (line 1812)
* d--efvar_name: chapter. (line 371)
* d--efvar_name <1>: chapter. (line 374)
-* d--efvar_name <2>: chapter. (line 1038)
-* d--efvar_name <3>: chapter. (line 1041)
-* d--efvar_name <4>: chapter. (line 1843)
-* d--efvar_name <5>: chapter. (line 1846)
+* d--efvar_name <2>: chapter. (line 1039)
+* d--efvar_name <3>: chapter. (line 1042)
+* d--efvar_name <4>: chapter. (line 1845)
+* d--efvar_name <5>: chapter. (line 1848)
* d--efvr_name: chapter. (line 317)
-* d--efvr_name <1>: chapter. (line 984)
-* d--efvr_name <2>: chapter. (line 1789)
-* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2193)
+* d--efvr_name <1>: chapter. (line 985)
+* d--efvr_name <2>: chapter. (line 1791)
+* g--gg, h--hh jjj, k--kk, l--ll: chapter. (line 2197)
* index entry between item and itemx: chapter. (line 505)
-* index entry between item and itemx <1>: chapter. (line 630)
-* index entry between item and itemx <2>: chapter. (line 1172)
-* index entry between item and itemx <3>: chapter. (line 1297)
-* index entry between item and itemx <4>: chapter. (line 1977)
-* index entry between item and itemx <5>: chapter. (line 2134)
-* index entry in footnote: chapter. (line 2525)
+* index entry between item and itemx <1>: chapter. (line 631)
+* index entry between item and itemx <2>: chapter. (line 1173)
+* index entry between item and itemx <3>: chapter. (line 1299)
+* index entry between item and itemx <4>: chapter. (line 1979)
+* index entry between item and itemx <5>: chapter. (line 2138)
+* index entry in footnote: chapter. (line 2529)
* index entry within deffn: chapter. (line 292)
-* index entry within deffn <1>: chapter. (line 959)
-* index entry within deffn <2>: chapter. (line 1762)
+* index entry within deffn <1>: chapter. (line 960)
+* index entry within deffn <2>: chapter. (line 1764)
* index entry within itemize: chapter. (line 203)
-* index entry within itemize <1>: chapter. (line 870)
-* index entry within itemize <2>: chapter. (line 1673)
+* index entry within itemize <1>: chapter. (line 871)
+* index entry within itemize <2>: chapter. (line 1675)
* index entry within multitable: chapter. (line 225)
-* index entry within multitable <1>: chapter. (line 892)
-* index entry within multitable <2>: chapter. (line 1696)
-* t-ruc: chapter. (line 2193)
-* T-ruc: chapter. (line 2193)
+* index entry within multitable <1>: chapter. (line 893)
+* index entry within multitable <2>: chapter. (line 1698)
+* t-ruc: chapter. (line 2197)
+* T-ruc: chapter. (line 2197)
* vtable i--tem code kbdinputstyle: chapter. (line 127)
-* vtable i--tem code kbdinputstyle <1>: chapter. (line 794)
-* vtable i--tem code kbdinputstyle <2>: chapter. (line 1596)
+* vtable i--tem code kbdinputstyle <1>: chapter. (line 795)
+* vtable i--tem code kbdinputstyle <2>: chapter. (line 1598)
* vtable i--tem default kbdinputstyle: chapter. (line 122)
-* vtable i--tem default kbdinputstyle <1>: chapter. (line 789)
-* vtable i--tem default kbdinputstyle <2>: chapter. (line 1591)
+* vtable i--tem default kbdinputstyle <1>: chapter. (line 790)
+* vtable i--tem default kbdinputstyle <2>: chapter. (line 1593)
* vtable i--tem distinct kbdinputstyle: chapter. (line 137)
-* vtable i--tem distinct kbdinputstyle <1>: chapter. (line 804)
-* vtable i--tem distinct kbdinputstyle <2>: chapter. (line 1606)
+* vtable i--tem distinct kbdinputstyle <1>: chapter. (line 805)
+* vtable i--tem distinct kbdinputstyle <2>: chapter. (line 1608)
* vtable i--tem example kbdinputstyle: chapter. (line 132)
-* vtable i--tem example kbdinputstyle <1>: chapter. (line 799)
-* vtable i--tem example kbdinputstyle <2>: chapter. (line 1601)
+* vtable i--tem example kbdinputstyle <1>: chapter. (line 800)
+* vtable i--tem example kbdinputstyle <2>: chapter. (line 1603)
* vtable i--tem in example code kbdinputstyle: chapter. (line 129)
-* vtable i--tem in example code kbdinputstyle <1>: chapter. (line 796)
-* vtable i--tem in example code kbdinputstyle <2>: chapter. (line 1598)
+* vtable i--tem in example code kbdinputstyle <1>: chapter. (line 797)
+* vtable i--tem in example code kbdinputstyle <2>: chapter. (line 1600)
* vtable i--tem in example default kbdinputstyle: chapter. (line 124)
* vtable i--tem in example default kbdinputstyle <1>: chapter.
- (line 791)
+ (line 792)
* vtable i--tem in example default kbdinputstyle <2>: chapter.
- (line 1593)
+ (line 1595)
* vtable i--tem in example distinct kbdinputstyle: chapter. (line 139)
* vtable i--tem in example distinct kbdinputstyle <1>: chapter.
- (line 806)
+ (line 807)
* vtable i--tem in example distinct kbdinputstyle <2>: chapter.
- (line 1608)
+ (line 1610)
* vtable i--tem in example example kbdinputstyle: chapter. (line 134)
* vtable i--tem in example example kbdinputstyle <1>: chapter.
- (line 801)
+ (line 802)
* vtable i--tem in example example kbdinputstyle <2>: chapter.
- (line 1603)
+ (line 1605)
* Menu:
* --foption: chapter. (line 28)
-* --foption <1>: chapter. (line 695)
-* --foption <2>: chapter. (line 1373)
-* .: chapter. (line 2193)
-* ?: chapter. (line 2193)
+* --foption <1>: chapter. (line 696)
+* --foption <2>: chapter. (line 1375)
+* .: chapter. (line 2197)
+* ?: chapter. (line 2197)
* ``: chapter. (line 28)
-* `` <1>: chapter. (line 695)
-* `` <2>: chapter. (line 1373)
+* `` <1>: chapter. (line 696)
+* `` <2>: chapter. (line 1375)
* a: chapter. (line 305)
* a <1>: chapter. (line 504)
-* a <2>: chapter. (line 629)
-* a <3>: chapter. (line 972)
-* a <4>: chapter. (line 1171)
-* a <5>: chapter. (line 1296)
-* a <6>: chapter. (line 1775)
-* a <7>: chapter. (line 1976)
-* a <8>: chapter. (line 2133)
-* a <9>: chapter. (line 2193)
-* after: chapter. (line 640)
-* after <1>: chapter. (line 1307)
-* after <2>: chapter. (line 2144)
+* a <2>: chapter. (line 630)
+* a <3>: chapter. (line 973)
+* a <4>: chapter. (line 1172)
+* a <5>: chapter. (line 1298)
+* a <6>: chapter. (line 1777)
+* a <7>: chapter. (line 1978)
+* a <8>: chapter. (line 2137)
+* a <9>: chapter. (line 2197)
+* after: chapter. (line 641)
+* after <1>: chapter. (line 1309)
+* after <2>: chapter. (line 2148)
* arg2: chapter. (line 424)
-* arg2 <1>: chapter. (line 1091)
-* arg2 <2>: chapter. (line 1898)
+* arg2 <1>: chapter. (line 1092)
+* arg2 <2>: chapter. (line 1900)
* b: chapter. (line 505)
-* b <1>: chapter. (line 630)
-* b <2>: chapter. (line 1172)
-* b <3>: chapter. (line 1297)
-* b <4>: chapter. (line 1977)
-* b <5>: chapter. (line 2134)
+* b <1>: chapter. (line 631)
+* b <2>: chapter. (line 1173)
+* b <3>: chapter. (line 1299)
+* b <4>: chapter. (line 1979)
+* b <5>: chapter. (line 2138)
* bidule machin: chapter. (line 300)
-* bidule machin <1>: chapter. (line 967)
-* bidule machin <2>: chapter. (line 1770)
+* bidule machin <1>: chapter. (line 968)
+* bidule machin <2>: chapter. (line 1772)
* d--effn_name: chapter. (line 284)
-* d--effn_name <1>: chapter. (line 951)
-* d--effn_name <2>: chapter. (line 1754)
+* d--effn_name <1>: chapter. (line 952)
+* d--effn_name <2>: chapter. (line 1756)
* d--efmac_name: chapter. (line 365)
-* d--efmac_name <1>: chapter. (line 1032)
-* d--efmac_name <2>: chapter. (line 1837)
+* d--efmac_name <1>: chapter. (line 1033)
+* d--efmac_name <2>: chapter. (line 1839)
* d--efmethod_name on c--lass: chapter. (line 392)
-* d--efmethod_name on c--lass <1>: chapter. (line 1059)
-* d--efmethod_name on c--lass <2>: chapter. (line 1864)
+* d--efmethod_name on c--lass <1>: chapter. (line 1060)
+* d--efmethod_name on c--lass <2>: chapter. (line 1866)
* d--efop_name on c--lass: chapter. (line 353)
* d--efop_name on c--lass <1>: chapter. (line 356)
-* d--efop_name on c--lass <2>: chapter. (line 1020)
-* d--efop_name on c--lass <3>: chapter. (line 1023)
-* d--efop_name on c--lass <4>: chapter. (line 1825)
-* d--efop_name on c--lass <5>: chapter. (line 1828)
+* d--efop_name on c--lass <2>: chapter. (line 1021)
+* d--efop_name on c--lass <3>: chapter. (line 1024)
+* d--efop_name on c--lass <4>: chapter. (line 1827)
+* d--efop_name on c--lass <5>: chapter. (line 1830)
* d--efspec_name: chapter. (line 368)
-* d--efspec_name <1>: chapter. (line 1035)
-* d--efspec_name <2>: chapter. (line 1840)
+* d--efspec_name <1>: chapter. (line 1036)
+* d--efspec_name <2>: chapter. (line 1842)
* d--eftypefn_name: chapter. (line 326)
* d--eftypefn_name <1>: chapter. (line 329)
-* d--eftypefn_name <2>: chapter. (line 993)
-* d--eftypefn_name <3>: chapter. (line 996)
-* d--eftypefn_name <4>: chapter. (line 1798)
-* d--eftypefn_name <5>: chapter. (line 1801)
+* d--eftypefn_name <2>: chapter. (line 994)
+* d--eftypefn_name <3>: chapter. (line 997)
+* d--eftypefn_name <4>: chapter. (line 1800)
+* d--eftypefn_name <5>: chapter. (line 1803)
* d--eftypefn_name2: chapter. (line 403)
-* d--eftypefn_name2 <1>: chapter. (line 1070)
-* d--eftypefn_name2 <2>: chapter. (line 1876)
+* d--eftypefn_name2 <1>: chapter. (line 1071)
+* d--eftypefn_name2 <2>: chapter. (line 1878)
* d--eftypefun_name: chapter. (line 380)
-* d--eftypefun_name <1>: chapter. (line 1047)
-* d--eftypefun_name <2>: chapter. (line 1852)
+* d--eftypefun_name <1>: chapter. (line 1048)
+* d--eftypefun_name <2>: chapter. (line 1854)
* d--eftypemethod_name on c--lass: chapter. (line 395)
-* d--eftypemethod_name on c--lass <1>: chapter. (line 1062)
-* d--eftypemethod_name on c--lass <2>: chapter. (line 1867)
+* d--eftypemethod_name on c--lass <1>: chapter. (line 1063)
+* d--eftypemethod_name on c--lass <2>: chapter. (line 1869)
* d--eftypeop_name on c--lass: chapter. (line 332)
* d--eftypeop_name on c--lass <1>: chapter. (line 335)
-* d--eftypeop_name on c--lass <2>: chapter. (line 999)
-* d--eftypeop_name on c--lass <3>: chapter. (line 1002)
-* d--eftypeop_name on c--lass <4>: chapter. (line 1804)
-* d--eftypeop_name on c--lass <5>: chapter. (line 1807)
+* d--eftypeop_name on c--lass <2>: chapter. (line 1000)
+* d--eftypeop_name on c--lass <3>: chapter. (line 1003)
+* d--eftypeop_name on c--lass <4>: chapter. (line 1806)
+* d--eftypeop_name on c--lass <5>: chapter. (line 1809)
* d--eftypeop_name2 on c--lass2: chapter. (line 408)
* d--eftypeop_name2 on c--lass2 <1>: chapter. (line 413)
-* d--eftypeop_name2 on c--lass2 <2>: chapter. (line 1075)
-* d--eftypeop_name2 on c--lass2 <3>: chapter. (line 1080)
-* d--eftypeop_name2 on c--lass2 <4>: chapter. (line 1881)
-* d--eftypeop_name2 on c--lass2 <5>: chapter. (line 1886)
+* d--eftypeop_name2 on c--lass2 <2>: chapter. (line 1076)
+* d--eftypeop_name2 on c--lass2 <3>: chapter. (line 1081)
+* d--eftypeop_name2 on c--lass2 <4>: chapter. (line 1883)
+* d--eftypeop_name2 on c--lass2 <5>: chapter. (line 1888)
* d--efun_name: chapter. (line 362)
-* d--efun_name <1>: chapter. (line 1029)
-* d--efun_name <2>: chapter. (line 1834)
+* d--efun_name <1>: chapter. (line 1030)
+* d--efun_name <2>: chapter. (line 1836)
* de--ffn_name: chapter. (line 287)
-* de--ffn_name <1>: chapter. (line 954)
-* de--ffn_name <2>: chapter. (line 1757)
+* de--ffn_name <1>: chapter. (line 955)
+* de--ffn_name <2>: chapter. (line 1759)
* deffn: chapter. (line 308)
* deffn <1>: chapter. (line 310)
-* deffn <2>: chapter. (line 975)
-* deffn <3>: chapter. (line 977)
-* deffn <4>: chapter. (line 1779)
-* deffn <5>: chapter. (line 1781)
+* deffn <2>: chapter. (line 976)
+* deffn <3>: chapter. (line 978)
+* deffn <4>: chapter. (line 1781)
+* deffn <5>: chapter. (line 1783)
* deffnx: chapter. (line 306)
* deffnx <1>: chapter. (line 311)
-* deffnx <2>: chapter. (line 973)
-* deffnx <3>: chapter. (line 978)
-* deffnx <4>: chapter. (line 1776)
-* deffnx <5>: chapter. (line 1782)
-* f---aa: chapter. (line 2193)
-* f---bb, f---cc: chapter. (line 2193)
-* f---ddd, f---eee, ffff: chapter. (line 2193)
-* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2193)
+* deffnx <2>: chapter. (line 974)
+* deffnx <3>: chapter. (line 979)
+* deffnx <4>: chapter. (line 1778)
+* deffnx <5>: chapter. (line 1784)
+* f---aa: chapter. (line 2197)
+* f---bb, f---cc: chapter. (line 2197)
+* f---ddd, f---eee, ffff: chapter. (line 2197)
+* f---ggg, f---hhh fjjj, f---kkk, f---lll: chapter. (line 2197)
* followed: chapter. (line 303)
-* followed <1>: chapter. (line 638)
-* followed <2>: chapter. (line 970)
-* followed <3>: chapter. (line 1305)
-* followed <4>: chapter. (line 1773)
-* followed <5>: chapter. (line 2142)
+* followed <1>: chapter. (line 639)
+* followed <2>: chapter. (line 971)
+* followed <3>: chapter. (line 1307)
+* followed <4>: chapter. (line 1775)
+* followed <5>: chapter. (line 2146)
* I: chapter. (line 291)
* I <1>: chapter. (line 313)
-* I <2>: chapter. (line 958)
-* I <3>: chapter. (line 980)
-* I <4>: chapter. (line 1761)
-* I <5>: chapter. (line 1784)
+* I <2>: chapter. (line 959)
+* I <3>: chapter. (line 981)
+* I <4>: chapter. (line 1763)
+* I <5>: chapter. (line 1786)
* id i ule: chapter. (line 297)
-* id i ule <1>: chapter. (line 964)
-* id i ule <2>: chapter. (line 1767)
+* id i ule <1>: chapter. (line 965)
+* id i ule <2>: chapter. (line 1769)
* id ule: chapter. (line 296)
-* id ule <1>: chapter. (line 963)
-* id ule <2>: chapter. (line 1766)
-* INVALID: chapter. (line 642)
-* INVALID <1>: chapter. (line 1309)
-* INVALID <2>: chapter. (line 2146)
+* id ule <1>: chapter. (line 964)
+* id ule <2>: chapter. (line 1768)
+* INVALID: chapter. (line 643)
+* INVALID <1>: chapter. (line 1311)
+* INVALID <2>: chapter. (line 2150)
* log trap: chapter. (line 293)
-* log trap <1>: chapter. (line 960)
-* log trap <2>: chapter. (line 1763)
+* log trap <1>: chapter. (line 961)
+* log trap <2>: chapter. (line 1765)
* log trap1: chapter. (line 294)
-* log trap1 <1>: chapter. (line 961)
-* log trap1 <2>: chapter. (line 1764)
+* log trap1 <1>: chapter. (line 962)
+* log trap1 <2>: chapter. (line 1766)
* log trap2: chapter. (line 295)
-* log trap2 <1>: chapter. (line 962)
-* log trap2 <2>: chapter. (line 1765)
+* log trap2 <1>: chapter. (line 963)
+* log trap2 <2>: chapter. (line 1767)
* machin: chapter. (line 299)
* machin <1>: chapter. (line 301)
-* machin <2>: chapter. (line 634)
-* machin <3>: chapter. (line 635)
-* machin <4>: chapter. (line 636)
-* machin <5>: chapter. (line 637)
-* machin <6>: chapter. (line 966)
-* machin <7>: chapter. (line 968)
-* machin <8>: chapter. (line 1301)
-* machin <9>: chapter. (line 1302)
-* machin <10>: chapter. (line 1303)
-* machin <11>: chapter. (line 1304)
-* machin <12>: chapter. (line 1769)
-* machin <13>: chapter. (line 1771)
-* machin <14>: chapter. (line 2138)
-* machin <15>: chapter. (line 2139)
-* machin <16>: chapter. (line 2140)
-* machin <17>: chapter. (line 2141)
+* machin <2>: chapter. (line 635)
+* machin <3>: chapter. (line 636)
+* machin <4>: chapter. (line 637)
+* machin <5>: chapter. (line 638)
+* machin <6>: chapter. (line 967)
+* machin <7>: chapter. (line 969)
+* machin <8>: chapter. (line 1303)
+* machin <9>: chapter. (line 1304)
+* machin <10>: chapter. (line 1305)
+* machin <11>: chapter. (line 1306)
+* machin <12>: chapter. (line 1771)
+* machin <13>: chapter. (line 1773)
+* machin <14>: chapter. (line 2142)
+* machin <15>: chapter. (line 2143)
+* machin <16>: chapter. (line 2144)
+* machin <17>: chapter. (line 2145)
* n--ame: chapter. (line 320)
* n--ame <1>: chapter. (line 323)
-* n--ame <2>: chapter. (line 987)
-* n--ame <3>: chapter. (line 990)
-* n--ame <4>: chapter. (line 1792)
-* n--ame <5>: chapter. (line 1795)
+* n--ame <2>: chapter. (line 988)
+* n--ame <3>: chapter. (line 991)
+* n--ame <4>: chapter. (line 1794)
+* n--ame <5>: chapter. (line 1797)
* name2: chapter. (line 398)
-* name2 <1>: chapter. (line 1065)
-* name2 <2>: chapter. (line 1871)
-* t--ruc: chapter. (line 2193)
-* T--ruc: chapter. (line 2193)
+* name2 <1>: chapter. (line 1066)
+* name2 <2>: chapter. (line 1873)
+* t--ruc: chapter. (line 2197)
+* T--ruc: chapter. (line 2197)
* truc: chapter. (line 292)
* truc <1>: chapter. (line 314)
-* truc <2>: chapter. (line 959)
-* truc <3>: chapter. (line 981)
-* truc <4>: chapter. (line 1762)
-* truc <5>: chapter. (line 1785)
-* xxx, zzz: chapter. (line 2193)
+* truc <2>: chapter. (line 960)
+* truc <3>: chapter. (line 982)
+* truc <4>: chapter. (line 1764)
+* truc <5>: chapter. (line 1787)
+* xxx, zzz: chapter. (line 2197)
Top section
1 chapter
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_rawtext/formatting.txt b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_rawtext/formatting.txt
index 714cab624e..ca36845a8d 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_rawtext/formatting.txt
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_rawtext/formatting.txt
@@ -770,6 +770,7 @@ Invalid use of @':
@image{f--ile,l--i} f--ile
@image{f--ile,,l--e} f--ile
@image{f--ile,aze,az,alt,.e--xt} f--ile
+@image{f--ile,aze,az,alt, f--ile
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} f--ile@.
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} f--ile
@@ -1601,6 +1602,7 @@ Invalid use of @':
@image{f--ile,l--i} f--ile
@image{f--ile,,l--e} f--ile
@image{f--ile,aze,az,alt,.e--xt} f--ile
+@image{f--ile,aze,az,alt, f--ile
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} f--ile@.
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} f--ile
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html
index adf31647cd..d5d02bd638 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_regions/formatting_regions.html
@@ -741,6 +741,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1849,6 +1850,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2925,6 +2927,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4034,6 +4037,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5250,6 +5254,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6338,6 +6343,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_textcontent/formatting b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_textcontent/formatting
index e95185fd9c..9cd36c3c2e 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_textcontent/formatting
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_textcontent/formatting
@@ -735,6 +735,7 @@ Invalid use of @':
@image{f--ile,l--i} f--ilel--i
@image{f--ile,,l--e} f--ilel--e
@image{f--ile,aze,az,alt,.e--xt} f--ileazeazalt.e--xt
+@image{f--ile,aze,az,alt, f--ileazeazalt
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} f--ile@.azeazalt.file ext e--xt}
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} f--ileazeazjk _" %@ in b "e--xt
@@ -1560,6 +1561,7 @@ Invalid use of @':
@image{f--ile,l--i} f--ilel--i
@image{f--ile,,l--e} f--ilel--e
@image{f--ile,aze,az,alt,.e--xt} f--ileazeazalt.e--xt
+@image{f--ile,aze,az,alt, f--ileazeazalt
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} f--ile@.azeazalt.file ext e--xt}
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} f--ileazeazjk _" %@ in b "e--xt
@@ -2406,6 +2408,7 @@ Invalid use of @':
@image{f--ile,l--i} f--ilel--i
@image{f--ile,,l--e} f--ilel--e
@image{f--ile,aze,az,alt,.e--xt} f--ileazeazalt.e--xt
+@image{f--ile,aze,az,alt, f--ileazeazalt
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} f--ile@.azeazalt.file ext e--xt}
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} f--ileazeazjk _" %@ in b "e--xt
@@ -3226,6 +3229,7 @@ Invalid use of @':
@image{f--ile,l--i} f--ilel--i
@image{f--ile,,l--e} f--ilel--e
@image{f--ile,aze,az,alt,.e--xt} f--ileazeazalt.e--xt
+@image{f--ile,aze,az,alt, f--ileazeazalt
@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@} f--ile@.azeazalt.file ext e--xt}
@image{f--ile,aze,az,@verb{:jk _" %@:} @b{in b "},e--xt} f--ileazeazjk _" %@ in b "e--xt
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
index edb7ebea70..99514329a4 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_weird_quotes/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xhtml/formatting.html b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xhtml/formatting.html
index 1c85f62eef..6b8371ca07 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xhtml/formatting.html
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xhtml/formatting.html
@@ -742,6 +742,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1850,6 +1851,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt"/>
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt"/>
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
@@ -2927,6 +2929,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt"/>
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt"/>
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
@@ -4060,6 +4063,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt"/>
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt"/>
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
@@ -5135,6 +5139,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt"/>
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt"/>
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
@@ -6352,6 +6357,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile"/>
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt"/>
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt"/>
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt"/>
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;"/>
diff --git a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xml/formatting.xml b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xml/formatting.xml
index 6497e4c884..154bf59587 100644
--- a/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xml/formatting.xml
+++ b/macros/texinfo/texinfo/tp/tests/layout/res_parser/formatting_xml/formatting.xml
@@ -1059,6 +1059,7 @@ Invalid use of @@':@*
@code{@@image@{f--ile,l--i@}} @image{f--ile,l--i}
@code{@@image@{f--ile,,l--e@}} @image{f--ile,,l--e}
@code{@@image@{f--ile,aze,az,alt,.e--xt@}} @image{f--ile,aze,az,alt,.e--xt}
+@code{@@image@{f--ile,aze,az,alt,} @image{f--ile,aze,az,alt,}
@code{@@image@{@@file@{f--ile@}@@@@@@.,aze,az,alt,@@file@{.file ext@} e--xt@@@}} @image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}}
@c It is not reliable to use @verb inside other Texinfo constructs
@@ -2194,6 +2195,7 @@ in verbatim ''
<code>&arobase;image&lbrace;f--ile,l--i&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>l--i</imagewidth></image>
<code>&arobase;image&lbrace;f--ile,,l--e&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imageheight>l--e</imageheight></image>
<code>&arobase;image&lbrace;f--ile,aze,az,alt,.e--xt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>.e--xt</imageextension></image>
+<code>&arobase;image&lbrace;f--ile,aze,az,alt,</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension></imageextension></image>
<code>&arobase;image&lbrace;&arobase;file&lbrace;f--ile&rbrace;&arobase;&arobase;&arobase;.,aze,az,alt,&arobase;file&lbrace;.file ext&rbrace; e--xt&arobase;&rbrace;</code> <image where="inline"><imagefile><file>f--ile</file>&arobase;&eosperiod;</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension><file>.file ext</file> e--xt&rbrace;</imageextension></image>
</para>
<!-- c It is not reliable to use @verb inside other Texinfo constructs -->
@@ -3333,6 +3335,7 @@ in verbatim ''
<code>&arobase;image&lbrace;f--ile,l--i&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>l--i</imagewidth></image>
<code>&arobase;image&lbrace;f--ile,,l--e&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imageheight>l--e</imageheight></image>
<code>&arobase;image&lbrace;f--ile,aze,az,alt,.e--xt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>.e--xt</imageextension></image>
+<code>&arobase;image&lbrace;f--ile,aze,az,alt,</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension></imageextension></image>
<code>&arobase;image&lbrace;&arobase;file&lbrace;f--ile&rbrace;&arobase;&arobase;&arobase;.,aze,az,alt,&arobase;file&lbrace;.file ext&rbrace; e--xt&arobase;&rbrace;</code> <image where="inline"><imagefile><file>f--ile</file>&arobase;&eosperiod;</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension><file>.file ext</file> e--xt&rbrace;</imageextension></image>
</para>
<!-- c It is not reliable to use @verb inside other Texinfo constructs -->
@@ -4499,6 +4502,7 @@ in verbatim ''
<code>&arobase;image&lbrace;f--ile,l--i&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>l--i</imagewidth></image>
<code>&arobase;image&lbrace;f--ile,,l--e&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imageheight>l--e</imageheight></image>
<code>&arobase;image&lbrace;f--ile,aze,az,alt,.e--xt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>.e--xt</imageextension></image>
+<code>&arobase;image&lbrace;f--ile,aze,az,alt,</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension></imageextension></image>
<code>&arobase;image&lbrace;&arobase;file&lbrace;f--ile&rbrace;&arobase;&arobase;&arobase;.,aze,az,alt,&arobase;file&lbrace;.file ext&rbrace; e--xt&arobase;&rbrace;</code> <image where="inline"><imagefile><file>f--ile</file>&arobase;&eosperiod;</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension><file>.file ext</file> e--xt&rbrace;</imageextension></image>
</para>
<!-- c It is not reliable to use @verb inside other Texinfo constructs -->
@@ -5633,6 +5637,7 @@ Invalid use of &arobase;':&linebreak;
<code>&arobase;image&lbrace;f--ile,l--i&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>l--i</imagewidth></image>
<code>&arobase;image&lbrace;f--ile,,l--e&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imageheight>l--e</imageheight></image>
<code>&arobase;image&lbrace;f--ile,aze,az,alt,.e--xt&rbrace;</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension>.e--xt</imageextension></image>
+<code>&arobase;image&lbrace;f--ile,aze,az,alt,</code> <image where="inline"><imagefile>f--ile</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension></imageextension></image>
<code>&arobase;image&lbrace;&arobase;file&lbrace;f--ile&rbrace;&arobase;&arobase;&arobase;.,aze,az,alt,&arobase;file&lbrace;.file ext&rbrace; e--xt&arobase;&rbrace;</code> <image where="inline"><imagefile><file>f--ile</file>&arobase;&eosperiod;</imagefile><imagewidth>aze</imagewidth><imageheight>az</imageheight><alttext>alt</alttext><imageextension><file>.file ext</file> e--xt&rbrace;</imageextension></image>
<!-- c It is not reliable to use @verb inside other Texinfo constructs -->
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/anchor.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/anchor.html
index f6368a1f65..57a05fbee4 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/anchor.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/anchor.html
@@ -744,6 +744,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
index 5f4392577f..e235abc43c 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
@@ -1991,6 +1992,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -3202,6 +3204,7 @@ html ''
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
</p>
<p><code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
@@ -4555,6 +4558,7 @@ Invalid use of @':
<code class="code">@image{f--ile,l--i}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,,l--e}</code> <img class="image" src="f--ile.png" alt="f--ile">
<code class="code">@image{f--ile,aze,az,alt,.e--xt}</code> <img class="image" src="f--ile.e--xt" alt="alt">
+<code class="code">@image{f--ile,aze,az,alt,</code> <img class="image" src="f--ile.png" alt="alt">
<code class="code">@image{@file{f--ile}@@@.,aze,az,alt,@file{.file ext} e--xt@}</code> <img class="image" src="f--ile%40..file%20ext%20e--xt%7d" alt="alt">
<code class="code">@image{f--ile,aze,az,@verb{:jk _&quot; %@:} @b{in b &quot;},e--xt}</code> <img class="image" src="f--ile.e--xt" alt="jk _&quot; %@ in b &quot;">
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
index c666c3beb9..39cf43e408 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/chapter2.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.htm b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.htm
index ef348d56b7..bfd381a8bd 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.htm
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.htm
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.html
index cb2128c275..0ec4de3f67 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/index.html
@@ -744,6 +744,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/s_002d_002dect_002cion.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/s_002d_002dect_002cion.html
index a2521e2f43..66c48c7ff3 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/s_002d_002dect_002cion.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/s_002d_002dect_002cion.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_abt.htm b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_abt.htm
index b84a7400f2..002a52628e 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_abt.htm
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_abt.htm
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_fot.htm b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_fot.htm
index 0bcf254fbb..2358d36df6 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_fot.htm
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_fot.htm
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_ovr.htm b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_ovr.htm
index 3149bf261b..5d0477a8c4 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_ovr.htm
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_ovr.htm
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_toc.htm b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_toc.htm
index e3e81788f6..49a2d3ad7f 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_toc.htm
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/sing_toc.htm
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsection.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsection.html
index 1c4a1723bc..3da158341c 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsection.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsection.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-_0060_0060simple_002ddouble_002d_002d.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
index 25bba6037b..d0160345c9 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-_0060_0060simple_002ddouble_002d_002d.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
index 0a9d36bfd4..df61fa943f 100644
--- a/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
+++ b/macros/texinfo/texinfo/tp/tests/tex_html/res_parser/formatting_singular/subsubsection-three_002d_002d_002dfour_002d_002d_002d_002d_0027_0027.html
@@ -743,6 +743,7 @@ Invalid use of @':
@image{f-ile,l-i} f-ile
@image{f-ile,,l-e} f-ile
@image{f-ile,aze,az,alt,.e-xt} f-ile
+@image{f-ile,aze,az,alt, f-ile
@image{@file{f-ile}@@@.,aze,az,alt,@file{.file ext} e-xt@} f-ile@.
@image{f-ile,aze,az,@verb{:jk _" %@:} @b{in b "},e-xt} f-ile
diff --git a/macros/texinfo/texinfo/tp/texi2any.pl b/macros/texinfo/texinfo/tp/texi2any.pl
index f1573241fa..804d0ba6ff 100644
--- a/macros/texinfo/texinfo/tp/texi2any.pl
+++ b/macros/texinfo/texinfo/tp/texi2any.pl
@@ -1200,8 +1200,9 @@ if (defined ($formats_table{$format}->{'init_file'})) {
if ($call_texi2dvi) {
if (defined(get_conf('OUTFILE')) and @ARGV > 1) {
- die sprintf(__('%s: when generating %s, only one input FILE may be specified with -o'."\n"),
- $real_command_name, format_name($format));
+ die _encode_message(
+ sprintf(__('%s: when generating %s, only one input FILE may be specified with -o'."\n"),
+ $real_command_name, format_name($format)));
}
} elsif($Xopt_arg_nr) {
document_warn(__('--Xopt option without printed output'));
@@ -1253,7 +1254,7 @@ if (defined($formats_table{$converted_format}->{'module'})) {
eval "require $module";
my $error = $@;
if ($error ne '') {
- die sprintf(__("error loading %s: %s"), $module, $error);
+ die _encode_message(sprintf(__("error loading %s: %s"), $module, $error));
};
eval "$module->import;";
@@ -1324,13 +1325,13 @@ if (get_conf('SHOW_BUILTIN_CSS_RULES')) {
}
# Main processing, process all the files given on the command line
-
# Note that the input file names are binary strings and are not decoded
my @input_files = @ARGV;
# use STDIN if not a tty, like makeinfo does
@input_files = ('-') if (!scalar(@input_files) and !-t STDIN);
-die sprintf(__("%s: missing file argument.\n"), $real_command_name)
- .sprintf(__("Try `%s --help' for more information.\n"), $real_command_name)
+die _encode_message(
+ sprintf(__("%s: missing file argument.\n"), $real_command_name)
+ .sprintf(__("Try `%s --help' for more information.\n"), $real_command_name))
unless (scalar(@input_files) >= 1);
my $file_number = -1;