1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063 |
- use strict;
- use File::Spec;
- BEGIN { if (defined($ENV{'top_srcdir'})) {unshift @INC, File::Spec->catdir($ENV{'top_srcdir'}, 'tp');} }
- require 't/test_utils.pl';
- my $accents_text = '@node Top
- @top top
- should be e`: @`{e} @`e
- should be e\': @\'{e} @\'e
- should be e^: @^{e} @^e
- should be u": @"{u} @"u
- should be i`: @`{i} @`i
- should be i\': @\'{i} @\'i
- should be i^: @^{i} @^i
- should be u": @"{u} @"u
- should be c,: @,{c} @,c
- should be n~: @~{n} @~n
- should be e=: @={e} @=e
- should be e@w{\'}\': @H{e} @H e
- should be e.: @dotaccent{e} @dotaccent e
- should be e*: @ringaccent{e} @ringaccent e
- should be ee[: @tieaccent{ee}
- should be e(: @u{e} @u e
- should be e_: @ubaraccent{e} @ubaraccent e
- should be .e: @udotaccent{e} @udotaccent e
- should be e<: @v{e} @v e
- should be a; : @ogonek{a} @ogonek a
- should be e; : @ogonek{e} @ogonek e
- upside down: @questiondown{} @exclamdown{}
- A-with-circle: @aa{},@AA{}
- AE, OE ligatures: @ae{} @AE{} @oe{} @OE{}
- dotless i, j: @dotless{i} @dotless{j}
- Polish suppressed-L: @l{} @L{}
- O-with-slash: @o{} @O{}
- es-zet or sharp S: @ss{}
- pounds sterling: @pounds{}
- @c arg is command -- @dotless{i} is special-cased for HTML
- should be dotless i`: @`{@dotless{i}}
- should be dotless i\': @\'{@dotless{i}}
- should be dotless i^: @^{@dotless{i}}
- should be dotless i": @"{@dotless{i}}
- @c arg is command -- @dotless{j}
- should be dotless j`: @`{@dotless{j}}
- should be dotless j\': @\'{@dotless{j}}
- should be dotless j^: @^{@dotless{j}}
- should be dotless j": @"{@dotless{j}}
- ';
- my $latin1_accents_text = '@documentencoding ISO-8859-1
- '.$accents_text;
- my $weird_accents_text = '@documentencoding ISO-8859-1
- @node Top
- @top top
- @={@~{@dotless{i}}}
- @={@,{@~{n}}}
- @={@ubaraccent{a}}
- @^{@udotaccent{@`r}}
- @={@\'{@`{r}}}
- ';
- my $inline_text = '
- @inlinefmt{html, <blink>html</blink> ``},
- @inlinefmt{plaintext, plaintext ``},
- @inlinefmt{xml, <para>xml</para> ``},
- @inlinefmt{docbook, <emphasis>docbook</emphasis> ``},
- @inlinefmt{tex, $\underline{a < b @code{tex \hbox{ code }}}$ ``}
- @inlineraw{html, raw <blink>html</blink> ``},
- @inlineraw{plaintext, raw plaintext ``},
- @inlineraw{xml, raw <para>xml</para> ``},
- @inlineraw{docbook, raw <emphasis>docbook</emphasis> ``},
- @inlineraw{tex, raw $\underline{a < b @code{tex \hbox{ code }}}$ ``}
- ';
- my $raw_commands_text = '
- @html
- <blink>html</blink> ``}
- @end html
- @xml
- <para>xml</para> ``}
- @end xml
- @docbook
- <emphasis>docbook</emphasis> ``}
- @end docbook
- @tex
- $\underline{a < b @code{tex \hbox{ code }}}$ ``}
- @end tex
- ';
- my $top_in_ref_text =
- '@node Top
- @code{@@ref@{Top,cross ref name@}} @ref{Top,cross ref name}
- @code{@@ref@{Top,,title@}} @ref{Top,,title}
- @code{@@ref@{Top,,,file name@}} @ref{Top,,,file name}
- @code{@@ref@{Top,,,,manual@}} @ref{Top,,,,manual}
- @code{@@ref@{Top,cross ref name,title,@}} @ref{Top,cross ref name,title,}
- @code{@@ref@{Top,cross ref name,,file name@}} @ref{Top,cross ref name,,file name}
- @code{@@ref@{Top,cross ref name,,,manual@}} @ref{Top,cross ref name,,,manual}
- @code{@@ref@{Top,cross ref name,title,file name@}} @ref{Top,cross ref name,title,file name}
- @code{@@ref@{Top,cross ref name,title,,manual@}} @ref{Top,cross ref name,title,,manual}
- @code{@@ref@{Top,cross ref name,title, file name, manual@}} @ref{Top,cross ref name,title, file name, manual}
- @code{@@ref@{Top,,title,file name@}} @ref{Top,,title,file name}
- @code{@@ref@{Top,,title,,manual@}} @ref{Top,,title,,manual}
- @code{@@ref@{Top,,title, file name, manual@}} @ref{Top,,title, file name, manual}
- @code{@@ref@{Top,,,file name,manual@}} @ref{Top,,,file name,manual}
- @code{@@ref@{(pman)Top,cross ref name@}} @ref{(pman)Top,cross ref name}
- @code{@@ref@{(pman)Top,,title@}} @ref{(pman)Top,,title}
- @code{@@ref@{(pman)Top,,,file name@}} @ref{(pman)Top,,,file name}
- @code{@@ref@{(pman)Top,,,,manual@}} @ref{(pman)Top,,,,manual}
- @code{@@ref@{(pman)Top,cross ref name,title,@}} @ref{(pman)Top,cross ref name,title,}
- @code{@@ref@{(pman)Top,cross ref name,,file name@}} @ref{(pman)Top,cross ref name,,file name}
- @code{@@ref@{(pman)Top,cross ref name,,,manual@}} @ref{(pman)Top,cross ref name,,,manual}
- @code{@@ref@{(pman)Top,cross ref name,title,file name@}} @ref{(pman)Top,cross ref name,title,file name}
- @code{@@ref@{(pman)Top,cross ref name,title,,manual@}} @ref{(pman)Top,cross ref name,title,,manual}
- @code{@@ref@{(pman)Top,cross ref name,title, file name, manual@}} @ref{(pman)Top,cross ref name,title, file name, manual}
- @code{@@ref@{(pman)Top,,title,file name@}} @ref{(pman)Top,,title,file name}
- @code{@@ref@{(pman)Top,,title,,manual@}} @ref{(pman)Top,,title,,manual}
- @code{@@ref@{(pman)Top,,title, file name, manual@}} @ref{(pman)Top,,title, file name, manual}
- @code{@@ref@{(pman)Top,,,file name,manual@}} @ref{(pman)Top,,,file name,manual}
- @code{@@inforef@{Top, cross ref name, file name@}} @inforef{Top, cross ref name, file name}
- @code{@@inforef@{Top@}} @inforef{Top}
- @code{@@inforef@{Top, cross ref name@}} @inforef{Top, cross ref name}
- @code{@@inforef@{Top,,file name@}} @inforef{Top,,file name}
- ';
- my $at_commands_in_refs_text = '@node Top
- @top Top
- @menu
- * @- @{ @}::
- * @ @ @! @* @. @: .@: @? @@::
- * @atchar{} @lbracechar{} @rbracechar{} @backslashchar{} @hashchar{}::
- * @LaTeX{} @TeX{} @bullet{} @comma{} @copyright{} @dots{} @enddots{}::
- * @equiv{} @error{} @euro{} @exclamdown{} @expansion{} @minus{}::
- * @geq{} @leq{} @arrow{}::
- * @ordf{} @ordm{} @point{} @pounds{} @print{} @questiondown{} @registeredsymbol{}::
- * @result{} @textdegree{} a@tie{}b @today{} @aa{}::
- * @AA{} @ae{} @oe{} @AE{} @OE{} @o{} @O{} @ss{} @l{} @L{} @DH{} @dh{} @TH{} @th{}::
- * @"{a} @~{e} @^{@dotless{i}} @^{a} @`{a} @\'e @,{c} @={e} @ringaccent{e} @H{e} @ogonek{e}::
- * @dotaccent{e} @u{e} @ubaraccent{e} @udotaccent{e} @v{e} @dotless{j} @tieaccent{ee}::
- * @dotless{i} @`{@=E} @,{@\'C}::
- * @quotedblleft{} @quotedblright{} @quoteleft{} @quoteright{} @quotedblbase{} @quotesinglbase{}::
- * @guillemetleft{} @guillemetright{} @guillemotleft{} @guillemotright{} @guilsinglleft{} @guilsinglright{}::
- * `` \'\' --- -- ` \'::
- * @acronym{AAA, fff} @acronym{AAA} @acronym{BBB}::
- * @abbr{CCC, rrr} @abbr{CCC} @abbr{DDD}::
- * @email{someone@@somewher, the someone} @email{no_explain@@there}::
- * @image{f--ile1} @image{f--ile,aze,az,alt,e--xt}::
- * @verb{. @ {} . .}::
- * @cite{cite @asis{asis}} @w{in @@w @b{b}} @r{in r} @sc{sc} @strong{str} @t{t} @var{var} @dfn{dfn} @i{i}::
- * @env{env} @code{code} @option{option} @samp{samp} @command{command} @file{file} @kbd{C-x @key{ESC}}::
- * 8.27@dmn{in}::
- * @sansserif{sansserif} @slanted{slanted}::
- * @indicateurl{indicateurl}::
- * @sub{g}H 3@sup{rd}::
- * @url{http://somewhere_aaa} @url{url, text} @uref{/man.cgi/1/ls,,ls}::
- @end menu
- @node @- @{ @}
- @chapter @- @{ @}
- @node @ @ @! @* @. @: .@: @? @@
- @chapter @ @ @! @* @. @: .@: @? @@
- @node @atchar{} @lbracechar{} @rbracechar{} @backslashchar{} @hashchar{}
- @chapter @atchar{} @lbracechar{} @rbracechar{} @backslashchar{} @hashchar{}
- @node @LaTeX{} @TeX{} @bullet{} @comma{} @copyright{} @dots{} @enddots{}
- @chapter @LaTeX{} @TeX{} @bullet{} @comma{} @copyright{} @dots{} @enddots{}
- @node @equiv{} @error{} @euro{} @exclamdown{} @expansion{} @minus{}
- @chapter @equiv{} @error{} @euro{} @exclamdown{} @expansion{} @minus{}
- @node @geq{} @leq{} @arrow{}
- @chapter @geq{} @leq{} @arrow{}
- @node @ordf{} @ordm{} @point{} @pounds{} @print{} @questiondown{} @registeredsymbol{}
- @chapter @ordf{} @ordm{} @point{} @pounds{} @print{} @questiondown{} @registeredsymbol{}
- @node @result{} @textdegree{} a@tie{}b @today{} @aa{}
- @chapter @result{} @textdegree{} a@tie{}b @today{} @aa{}
- @node @AA{} @ae{} @oe{} @AE{} @OE{} @o{} @O{} @ss{} @l{} @L{} @DH{} @dh{} @TH{} @th{}
- @chapter @AA{} @ae{} @oe{} @AE{} @OE{} @o{} @O{} @ss{} @l{} @L{} @DH{} @dh{} @TH{} @th{}
- @node @"{a} @~{e} @^{@dotless{i}} @^{a} @`{a} @\'e @,{c} @={e} @ringaccent{e} @H{e} @ogonek{e}
- @chapter @"{a} @~{e} @^{@dotless{i}} @^{a} @`{a} @\'e @,{c} @={e} @ringaccent{e} @H{e} @ogonek{e}
- @node @dotaccent{e} @u{e} @ubaraccent{e} @udotaccent{e} @v{e} @dotless{j} @tieaccent{ee}
- @chapter @dotaccent{e} @u{e} @ubaraccent{e} @udotaccent{e} @v{e} @dotless{j} @tieaccent{ee}
- @node @dotless{i} @`{@=E} @,{@\'C}
- @chapter @dotless{i} @`{@=E} @,{@\'C}
- @node @quotedblleft{} @quotedblright{} @quoteleft{} @quoteright{} @quotedblbase{} @quotesinglbase{}
- @chapter @quotedblleft{} @quotedblright{} @quoteleft{} @quoteright{} @quotedblbase{} @quotesinglbase{}
- @node @guillemetleft{} @guillemetright{} @guillemotleft{} @guillemotright{} @guilsinglleft{} @guilsinglright{}
- @chapter @guillemetleft{} @guillemetright{} @guillemotleft{} @guillemotright{} @guilsinglleft{} @guilsinglright{}
- @node `` \'\' --- -- ` \'
- @chapter `` \'\' --- -- ` \'
- @node @acronym{AAA, fff} @acronym{AAA} @acronym{BBB}
- @chapter @acronym{AAA, fff} @acronym{AAA} @acronym{BBB}
- @node @abbr{CCC, rrr} @abbr{CCC} @abbr{DDD}
- @ifnottex
- @chapter @abbr{CCC, rrr} @abbr{CCC} @abbr{DDD}
- @end ifnottex
- @node @email{someone@@somewher, the someone} @email{no_explain@@there}
- @chapter @email{someone@@somewher, the someone} @email{no_explain@@there}
- @node @image{f--ile1} @image{f--ile,aze,az,alt,e--xt}
- @ifnottex
- @chapter @image{f--ile1} @image{f--ile,aze,az,alt,e--xt}
- @end ifnottex
- @node @verb{. @ {} . .}
- @ifnottex
- @chapter @verb{. @ {} . .}
- @end ifnottex
- @node @cite{cite @asis{asis}} @w{in @@w @b{b}} @r{in r} @sc{sc} @strong{str} @t{t} @var{var} @dfn{dfn} @i{i}
- @chapter @cite{cite @asis{asis}} @w{in @@w @b{b}} @r{in r} @sc{sc} @strong{str} @t{t} @var{var} @dfn{dfn} @i{i}
- @node @env{env} @code{code} @option{option} @samp{samp} @command{command} @file{file} @kbd{C-x @key{ESC}}
- @chapter @env{env} @code{code} @option{option} @samp{samp} @command{command} @file{file} @kbd{C-x @key{ESC}}
- @node 8.27@dmn{in}
- @chapter 8.27@dmn{in}
- @node @sansserif{sansserif} @slanted{slanted}
- @chapter @sansserif{sansserif} @slanted{slanted}
- @node @indicateurl{indicateurl}
- @chapter @indicateurl{indicateurl}
- @node @sub{g}H 3@sup{rd}
- @chapter @sub{g}H 3@sup{rd}
- @node @url{http://somewhere_aaa} @url{url, text} @uref{/man.cgi/1/ls,,ls}
- @chapter @url{http://somewhere_aaa} @url{url, text} @uref{/man.cgi/1/ls,,ls}
- @ref{@- @{ @}}
- @ref{@ @ @! @* @. @: .@: @? @@}
- @ref{@atchar{} @lbracechar{} @rbracechar{} @backslashchar{} @hashchar{}}
- @ref{@LaTeX{} @TeX{} @bullet{} @comma{} @copyright{} @dots{} @enddots{}}
- @ref{@equiv{} @error{} @euro{} @exclamdown{} @expansion{} @minus{}}
- @ref{@geq{} @leq{} @arrow{}}
- @ref{@ordf{} @ordm{} @point{} @pounds{} @print{} @questiondown{} @registeredsymbol{}}
- @ref{@result{} @textdegree{} a@tie{}b @today{} @aa{}}
- @ref{@AA{} @ae{} @oe{} @AE{} @OE{} @o{} @O{} @ss{} @l{} @L{} @DH{} @dh{} @TH{} @th{}}
- @ref{@"{a} @~{e} @^{@dotless{i}} @^{a} @`{a} @\'e @,{c} @={e} @ringaccent{e} @H{e} @ogonek{e}}
- @ref{@dotaccent{e} @u{e} @ubaraccent{e} @udotaccent{e} @v{e} @dotless{j} @tieaccent{ee}}
- @ref{@dotless{i} @`{@=E} @,{@\'C}}
- @ref{@quotedblleft{} @quotedblright{} @quoteleft{} @quoteright{} @quotedblbase{} @quotesinglbase{}}
- @ref{@guillemetleft{} @guillemetright{} @guillemotleft{} @guillemotright{} @guilsinglleft{} @guilsinglright{}}
- @ref{`` \'\' --- -- ` \'}
- @ref{@acronym{AAA, fff} @acronym{AAA} @acronym{BBB}}
- @ifnottex
- @ref{@abbr{CCC, rrr} @abbr{CCC} @abbr{DDD}}
- @end ifnottex
- @ref{@email{someone@@somewher, the someone} @email{no_explain@@there}}
- @ifnottex
- @ref{@image{f--ile1} @image{f--ile,aze,az,alt,e--xt}}
- @ref{@verb{. @ {} . .}}
- @end ifnottex
- @ref{@cite{cite @asis{asis}} @w{in @@w @b{b}} @r{in r} @sc{sc} @strong{str} @t{t} @var{var} @dfn{dfn} @i{i}}
- @ref{@env{env} @code{code} @option{option} @samp{samp} @command{command} @file{file} @kbd{C-x @key{ESC}}}
- @ref{8.27@dmn{in}}
- @ref{@sansserif{sansserif} @slanted{slanted}}
- @ref{@indicateurl{indicateurl}}
- @ref{@sub{g}H 3@sup{rd}}
- @ref{@url{http://somewhere_aaa} @url{url, text} @uref{/man.cgi/1/ls,,ls}}
- @bye
- ';
- my @test_cases = (
- ['accentenc',
- $latin1_accents_text
- ],
- ['weird_accents',
- $weird_accents_text
- ],
- ['weird_accents_disable_encoding',
- $weird_accents_text, {}, {'ENABLE_ENCODING' => 0}
- ],
- ['accent',
- $accents_text
- ],
- ['accent_with_text',
- '@u{--a} @dotless{--b} @^{--@dotless{i}} @^{--@dotless{j}} @^{--a}
- '],
- ['empty_accent',
- '@`{}
- '],
- ['some_at_commands_in_ref_nodes',
- '
- @node Top
- @top Top
- @menu
- * A @sc{sc @~n @aa{} @TeX{}} node @"i @"{@dotless{i}} @`{@=E} @l{} @,{@\'C} @exclamdown{}::
- @end menu
- @node A @sc{sc @~n @aa{} @TeX{}} node @"i @"{@dotless{i}} @`{@=E} @l{} @,{@\'C} @exclamdown{}
- @chapter A @sc{sc} node @"i @"{@dotless{i}} @`{@=E} @l{} @,{@\'C} @exclamdown{}
- see @ref{a @strong{strong} ref with @sc{sc}@comma{} a i trema @"i@comma{} a dotless i trema @"{@dotless{i}} @`{@=E} and exclamdown @exclamdown{},,,manual}.
- '],
- ['at_commands_in_refs',
- $at_commands_in_refs_text,
- {}, {'TEST' => 1}], # TEST => 1 triggers @today constant expansion for diffs
- ['refs_formatting',
- '@node chapter
- @chapter chapter
- @code{@@ref@{chapter,cross ref name@}} @ref{chapter,cross ref name}
- @code{@@ref@{chapter,,title@}} @ref{chapter,,title}
- @code{@@ref@{chapter,,,file name@}} @ref{chapter,,,file name}
- @code{@@ref@{chapter,,,,manual@}} @ref{chapter,,,,manual}
- @code{@@ref@{chapter,cross ref name,title,@}} @ref{chapter,cross ref name,title,}
- @code{@@ref@{chapter,cross ref name,,file name@}} @ref{chapter,cross ref name,,file name}
- @code{@@ref@{chapter,cross ref name,,,manual@}} @ref{chapter,cross ref name,,,manual}
- @code{@@ref@{chapter,cross ref name,title,file name@}} @ref{chapter,cross ref name,title,file name}
- @code{@@ref@{chapter,cross ref name,title,,manual@}} @ref{chapter,cross ref name,title,,manual}
- @code{@@ref@{chapter,cross ref name,title, file name, manual@}} @ref{chapter,cross ref name,title, file name, manual}
- @code{@@ref@{chapter,,title,file name@}} @ref{chapter,,title,file name}
- @code{@@ref@{chapter,,title,,manual@}} @ref{chapter,,title,,manual}
- @code{@@ref@{chapter,,title, file name, manual@}} @ref{chapter,,title, file name, manual}
- @code{@@ref@{chapter,,,file name,manual@}} @ref{chapter,,,file name,manual}
- @code{@@ref@{(pman)anode,cross ref name@}} @ref{(pman)anode,cross ref name}
- @code{@@ref@{(pman)anode,,title@}} @ref{(pman)anode,,title}
- @code{@@ref@{(pman)anode,,,file name@}} @ref{(pman)anode,,,file name}
- @code{@@ref@{(pman)anode,,,,manual@}} @ref{(pman)anode,,,,manual}
- @code{@@ref@{(pman)anode,cross ref name,title,@}} @ref{(pman)anode,cross ref name,title,}
- @code{@@ref@{(pman)anode,cross ref name,,file name@}} @ref{(pman)anode,cross ref name,,file name}
- @code{@@ref@{(pman)anode,cross ref name,,,manual@}} @ref{(pman)anode,cross ref name,,,manual}
- @code{@@ref@{(pman)anode,cross ref name,title,file name@}} @ref{(pman)anode,cross ref name,title,file name}
- @code{@@ref@{(pman)anode,cross ref name,title,,manual@}} @ref{(pman)anode,cross ref name,title,,manual}
- @code{@@ref@{(pman)anode,cross ref name,title, file name, manual@}} @ref{(pman)anode,cross ref name,title, file name, manual}
- @code{@@ref@{(pman)anode,,title,file name@}} @ref{(pman)anode,,title,file name}
- @code{@@ref@{(pman)anode,,title,,manual@}} @ref{(pman)anode,,title,,manual}
- @code{@@ref@{(pman)anode,,title, file name, manual@}} @ref{(pman)anode,,title, file name, manual}
- @code{@@ref@{(pman)anode,,,file name,manual@}} @ref{(pman)anode,,,file name,manual}
- @code{@@inforef@{chapter, cross ref name, file name@}} @inforef{chapter, cross ref name, file name}
- @code{@@inforef@{chapter@}} @inforef{chapter}
- @code{@@inforef@{chapter, cross ref name@}} @inforef{chapter, cross ref name}
- @code{@@inforef@{chapter,,file name@}} @inforef{chapter,,file name}
- '],
- ['top_in_ref',
- $top_in_ref_text
- ],
- ['ref_error_formatting',
- '
- @code{@@ref@{node@}} @ref{node}
- @code{@@ref@{,cross ref name@}} @ref{,cross ref name}
- @code{@@ref@{,,title@}} @ref{,,title}
- @code{@@ref@{,,,file name@}} @ref{,,,file name}
- @code{@@ref@{,,,,manual@}} @ref{,,,,manual}
- @code{@@ref@{node,cross ref name@}} @ref{node,cross ref name}
- @code{@@ref@{node,,title@}} @ref{node,,title}
- @code{@@ref@{node,,,file name@}} @ref{node,,,file name}
- @code{@@ref@{node,,,,manual@}} @ref{node,,,,manual}
- @code{@@ref@{node,cross ref name,title,@}} @ref{node,cross ref name,title,}
- @code{@@ref@{node,cross ref name,,file name@}} @ref{node,cross ref name,,file name}
- @code{@@ref@{node,cross ref name,,,manual@}} @ref{node,cross ref name,,,manual}
- @code{@@ref@{node,cross ref name,title,file name@}} @ref{node,cross ref name,title,file name}
- @code{@@ref@{node,cross ref name,title,,manual@}} @ref{node,cross ref name,title,,manual}
- @code{@@ref@{node,cross ref name,title, file name, manual@}} @ref{node,cross ref name,title, file name, manual}
- @code{@@ref@{node,,title,file name@}} @ref{node,,title,file name}
- @code{@@ref@{node,,title,,manual@}} @ref{node,,title,,manual}
- @code{@@ref@{node,,title, file name, manual@}} @ref{node,,title, file name, manual}
- @code{@@ref@{node,,,file name,manual@}} @ref{node,,,file name,manual}
- @code{@@ref@{,cross ref name,title,@}} @ref{,cross ref name,title,}
- @code{@@ref@{,cross ref name,,file name@}} @ref{,cross ref name,,file name}
- @code{@@ref@{,cross ref name,,,manual@}} @ref{,cross ref name,,,manual}
- @code{@@ref@{,cross ref name,title,file name@}} @ref{,cross ref name,title,file name}
- @code{@@ref@{,cross ref name,title,,manual@}} @ref{,cross ref name,title,,manual}
- @code{@@ref@{,cross ref name,title, file name, manual@}} @ref{,cross ref name,title, file name, manual}
- @code{@@ref@{,,title,file name@}} @ref{,,title,file name}
- @code{@@ref@{,,title,,manual@}} @ref{,,title,,manual}
- @code{@@ref@{,,title, file name, manual@}} @ref{,,title, file name, manual}
- @code{@@ref@{,,,file name,manual@}} @ref{,,,file name,manual}
- @code{@@inforef@{,cross ref name @}} @inforef{,cross ref name }
- @code{@@inforef@{,,file name@}} @inforef{,,file name}
- @code{@@inforef@{,cross ref name, file name@}} @inforef{,cross ref name, file name}
- @code{@@inforef@{@}} @inforef{}
- @code{@@inforef@{node, cross ref name, file name@}} @inforef{node, cross ref name, file name}
- @code{@@inforef@{node@}} @inforef{node}
- @code{@@inforef@{node, cross ref name@}} @inforef{node, cross ref name}
- @code{@@inforef@{node,,file name@}} @inforef{node,,file name}
- '],
- ['ref_in_sectioning',
- '@contents
- @node Top
- @top for example @ref{node} (@pxref{node}) (@pxref{Top,,, file, Manual})
- @menu
- * node::
- * chap::
- @end menu
- @node node
- @chapter @xref{node,,title, file name, Manual}.
- @node chap
- @chapter @ref{node} just node
- @section @ref{node, cross ref name} node, crossref arg2
- @section @ref{@code{node},, @samp{title}} code node, samptitle arg3
- @section @ref{@code{node},,, file name} code node, file name
- @section @ref{node,,,, Manual } node and manual
- @section @ref{Top,,,, Manual } Top and manual
- @section @ref{,,,, Manual } no node just manual
- @section @ref{,,, file name} no node just file name
- @section @inforef{a, b, c} inforef a b c
- @section (@pxref{ Top ,,, file name }) pxref Top file name, spaces
- @section (@pxref{,,, file name }) pxref file name only, spaces
- @section @xref{Top,,,filename}, xref Top filename only, no spaces
- @section @xref{,,,filename}. xref filename only, no spaces
- '],
- ['unknown_value',
- '@value{unknown}'],
- ['test_sp',
- 'Para
- @sp 1
- other para
- Now lone @@sp:
- @sp 1
- @sp 2
- Para after sp
- A
- @sp 2
- B
- sp after para
- @sp 1
- '],
- ['sp_in_example',
- '@example
- Para
- @sp 1
- other para
- Now lone @@sp:
- @sp 1
- @sp 2
- Para after sp
- A
- @sp 2
- B
- sp after para
- @sp 1
- @end example
- '],
- ['line_breaks',
- '@documentdescription
- a document @* yes!
- @end documentdescription
- @settitle the manual @* new version
- @title AWK As A Major Systems Programming @* Language---Revisited
- @center in center @* line break
- @table @strong
- @item with break @* after
- @itemx withx breakx @* afterx
- Text
- @end table
- @quotation Q@* uotation
- T
- @end quotation
- '],
- ['documentencoding_utf8_and_insertions',
- '@documentencoding utf-8
- -- --- \'\' `` ` \' @code{in code}. @~e.
- @example
- -- --- \'\' `` ` \' @code{in code}. @~e.
- @end example
- '],
- ['no_documentencoding_and_insertions',
- '
- -- --- \'\' `` ` \' @code{in code}. @~e.
- @example
- -- --- \'\' `` ` \' @code{in code}. @~e.
- @end example
- '],
- ['test_deftypefnnewline',
- '
- @deftypefnnewline on
- @node Top
- @deftypefun data-type name arguments...
- aaa
- @end deftypefun
- @deffn fun arg
- fff
- @end deffn
- @deftypefnnewline off
- @deftypefun data-type2 name2 arguments2...
- aaa2
- @end deftypefun
- @deffn fun2 arg2
- fff2
- @end deffn
- '],
- ['raw_block_commands',
- $raw_commands_text,
- {'expanded_formats' => ['tex', 'docbook', 'html', 'xml']}
- ],
- ['raw_block_commands_expand_tex',
- $raw_commands_text,
- {'expanded_formats' => ['tex', 'docbook', 'html', 'xml']},
- {'expanded_formats' => ['tex']},
- ],
- ['inline',
- $inline_text,
- ],
- ['inline_expand_tex',
- $inline_text, {'expanded_formats' => ['tex']},
- {'expanded_formats' => ['tex']},
- ],
- ['inlinefmtifelse',
- '@inlinefmtifelse{html,,else html no if}.
- @inlinefmtifelse{html,if html,else html}.
- @inlinefmtifelse{plaintext,if plaintext no second arg}.
- @inlinefmtifelse{plaintext,if plaintext,else plaintext}.
- @inlinefmtifelse{xml,if xml empty second arg,}.
- @inlinefmtifelse{ docbook , if docbook spaces , else docbook spaces }.
- @inlinefmtifelse{ tex , if tex spaces , else tex spaces }.
- @inlinefmtifelse{docbook,if docbook,else docbook}.
- @inlinefmtifelse{tex,if tex,else tex}.
- ',
- {'expanded_formats' => []}
- ],
- ['inlineifsetifclear',
- '@inlineifclear{aaa, iclear first }.
- @inlineifset{aaa, ifset first }.
- @set aaa
- @inlineifclear{aaa, ifclear second }.
- @inlineifset{aaa, ifset second }.
- '],
- ['table_in_display_in_example',
- '@example
- @display
- @table @asis
- @item item
- Line
- @end table
- @end display
- @end example
- '],['table_in_example_in_display',
- '@display
- @example
- @table @asis
- @item item
- Line
- @end table
- @end example
- @end display
- '],
- ['complex_nestings',
- '@node Top
- @example
- deffs
- @defun {my def} args @var{arg} @dots{}
- @defunx {other def} no args
- @deffn {type} {name} and now the args
- @defvar {variables} variable-name
- @defvarx {variables too} other-variable
- THis is the defvar
- A table within the def
- @table @asis
- @item item
- text
- more text
- @item second item
- @end table
- explanation
- @end defvar
- @end deffn
- @end defun
- @end example
- '],
- ['verbatiminclude_paths',
- '
- @verbatiminclude inc_file.texi
- @@verbatiminclude dot full path.
- @verbatiminclude ./t/include_dir/inc_file.texi
- @@verbatiminclude parent
- @verbatiminclude ../include_dir/inc_file.texi
- @@verbatiminclude dot full parent path
- @verbatiminclude ./tp/t/include_dir/inc_file.texi
- @c does not work in the standalone perl module
- @c @@verbatiminclude full parent path
- @c @verbatiminclude tp/t/include_dir/inc_file.texi
- ',{'include_directories' => ['.', '..', 't/include_dir']}],
- ['image_with_spaces',
- '@image{f--ile,,,@ }.
- @image{f--ile,,,@:}.
- '],
- ['image_extension',
- '@image{f---ile,,,,gr--a}
- '],
- ['image_formatting',
- '@node Top
- @code{@@image@{f--ile@}} @image{f--ile}
- @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,,,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,,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}
- @example
- @code{@@image@{f--ile@}} @image{f--ile}
- @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,,,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,,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}
- @end example
- @image{f--ile,,,a very long alt argument that could span more than one line who knows}
- in para
- @image{f--ile,,,a very long alt argument that could span more than one line who knows}.
- '],
- ['enumerate_above_ten',
- '@enumerate 14
- @item a
- @end enumerate
- '],
- ['footnote_no_number',
- '@node Top
- Para@footnote{Footnote 1.}.
- Para2@footnote{Footnote 2.}.
- ',{} , {'NUMBER_FOOTNOTES' => 0}],
- ['footnote_no_number_separate',
- '@node Top
- Para@footnote{Footnote 1.}.
- Para2@footnote{Footnote 2.}.
- ',{} , {'NUMBER_FOOTNOTES' => 0, 'footnotestyle' => 'separate'}],
- ['things_before_setfilename',
- undef, {'test_file' => 'things_before_setfilename.texi'}
- ],
- ['things_before_setfilename_no_element',
- undef, {'test_file' => 'things_before_setfilename_no_element.texi'}
- ],
- ['spaces_in_node_names',
- '@node Top
- @menu
- * a@ @ ::
- * b@verb{: :}::
- * c@ ::
- @end menu
- @node a@ @
- @node b@verb{: :}
- @node c@w{ }
- @ref{a@ @ }
- @ref{b@verb{: :}}
- @ref{c@w{ }}
- '],
- ['spaces_in_empty_node_names',
- '@node Top
- @menu
- * @ @ ::
- * @verb{: :}::
- * @ ::
- @end menu
- @node @ @
- @node @verb{: :}
- @node @w{ }
- @ref{@ @ }
- @ref{@verb{: :}}
- @ref{@w{ }}
- '],
- ['normal_font_in_monospace',
- '@example
- in example @r{in r---now @code{in co---de}}
- @end example
- @command{in command---c @r{in r---r @file{in file---}}}.
- '],
- ['index_entry_in_preformatted',
- '@node Top
- @example
- @cindex first
- text
- @cindex other @c comment
- text2
- @cindex last
- @end example
- '],
- ['printindex_merged_indices_code_style',
- '@node Top
- @synindex cp fn
- @synindex vr fn
- @cindex c``b
- @vindex v``j
- @findex f``g
- @defcodeindex cdi
- @synindex cdi fn
- @cdiindex cdi``h
- @defindex ddi
- @syncodeindex ddi cp
- @ddiindex ddi``g
- @printindex fn
- '],
- ['email_table_command_as_argument',
- '@table @email
- @item www-discuss@@gnu.org
- discussion
- @end table
- '],
- ['at_commands_in_raw',
- '@node Top
- @macro othermacro{}
- Other macro
- @end macro
- @html
- <b>in b@footnote{in footnote}.</b>
- @anchor{anchor in html}
- @end html
- @kbd{in kbd before tex}@footnote{second footnote}.
- @tex
- @kbdinputstyle code
- in tex@footnote{footnote in tex}
- @anchor{anchor in tex}
- @cindex entry
- @findex fentry1
- @float Figs, f1
- Float
- @caption{Fcaption}
- @end float
- @menu
- * n::
- @end menu
- @acronym{FF, Fi Foo}
- @synindex cp fn
- @defindex new
- @definfoenclose a,:,:
- @alias moviecite = cite
- @documentlanguage fr
- @errormsg{mymsg}
- @ref{Somewhere}.
- @set flag soemthing
- @macro mymacro{}
- truc
- @end macro
- @macro macroarg{arg}
- Some \arg\.
- @end macro
- @unmacro othermacro
- @end tex
- @value{flag}.
- @kbd{in kbd after tex}.
- @xref{anchor in html}.
- @ref{anchor in tex}.
- @findex fentry2
- @newindex newidx entry
- @printindex cp
- @printindex fn
- @listoffloats Figs
- @acronym{FF}.
- @a{tt}.
- @moviecite{movie name}
- Macro not unmacroed @othermacro{}.
- Macros that should not be defined: @mymacro{}. @macroarg{with arg}.
- ', {'expanded_formats' => ['html']}, {'expanded_formats' => ['html']}
- ],
- );
- my @html_text_cases = (
- ['accentenc_no_entity',
- $latin1_accents_text, {}, {'ENABLE_ENCODING' => 1,
- 'ENABLE_ENCODING_USE_ENTITY' => 0}
- ],
- ['accentenc_enable_encoding',
- $latin1_accents_text, {}, {'ENABLE_ENCODING' => 1}
- ],
- ['top_in_ref_keep_top',
- $top_in_ref_text,
- {}, {'KEEP_TOP_EXTERNAL_REF' => 1}],
- );
- my @file_tests = (
- ['char_latin1_utf8_in_refs',
- undef, {'test_file' => 'char_latin1_utf8_in_refs.texi'}
- ],
- ['char_latin1_latin1_in_refs',
- undef, {'test_file' => 'char_latin1_latin1_in_refs.texi'}
- ],
- ['char_latin2_latin2_in_refs',
- undef, {'test_file' => 'char_latin2_latin2_in_refs.texi'}
- ],
- ['japanese_shift_jis',
- undef, {'test_file' => 'japanese_shift_jis.texi'}
- ],
- ['sample_utf8',
- undef, {'test_file' => 'sample_utf8.texi'}
- ],
- ['at_commands_in_refs_utf8',
- '@setfilename at_commands_in_refs_utf8.info
- @documentencoding utf-8
- '.
- $at_commands_in_refs_text,
- {'todo' =>
- {'file_info' => 'different results from XS and pure Perl modules',
- }}, {'TEST' => 1}], # TEST => 1 triggers @today constant expansion for diffs
- ['at_commands_in_refs_latin1',
- '@setfilename at_commands_in_refs_latin1.info
- @documentencoding ISO-8859-15
- '.
- $at_commands_in_refs_text,
- {}, {'TEST' => 1}], # TEST => 1 triggers @today constant expansion for diffs
- );
- my %info_tests = (
- 'image_with_spaces' => 1,
- 'image_extension' => 1,
- 'image_formatting' => 1,
- 'footnote_no_number' => 1,
- 'footnote_no_number_separate' => 1,
- 'some_at_commands_in_ref_nodes' => 1,
- 'at_commands_in_refs' => 1,
- 'things_before_setfilename' => 1,
- 'things_before_setfilename_no_element' => 1,
- 'spaces_in_node_names' => 1,
- 'spaces_in_empty_node_names' => 1,
- );
- my %html_tests = (
- 'at_commands_in_refs' => 1,
- 'things_before_setfilename' => 1,
- 'things_before_setfilename_no_element' => 1,
- 'line_breaks' => 1,
- );
- my %xml_file_tests = (
- 'char_latin1_latin1_in_refs' => 1,
- );
- foreach my $test (@test_cases) {
- push @{$test->[2]->{'test_formats'}}, 'plaintext';
- if ($html_tests{$test->[0]}) {
- push @{$test->[2]->{'test_formats'}}, 'html';
- } else {
- push @{$test->[2]->{'test_formats'}}, 'html_text';
- }
- push @{$test->[2]->{'test_formats'}}, 'xml';
- push @{$test->[2]->{'test_formats'}}, 'docbook';
- push @{$test->[2]->{'test_formats'}}, 'info'
- if ($info_tests{$test->[0]});
- }
- foreach my $test (@html_text_cases) {
- push @{$test->[2]->{'test_formats'}}, 'html_text';
- }
- foreach my $test (@file_tests) {
- push @{$test->[2]->{'test_formats'}}, 'file_html';
- push @{$test->[2]->{'test_formats'}}, 'file_info';
- if ($xml_file_tests{$test->[0]}) {
- push @{$test->[2]->{'test_formats'}}, ('file_xml', 'file_docbook');
- }
- }
- our ($arg_test_case, $arg_generate, $arg_debug);
- run_all ('converters_tests', [@test_cases, @file_tests, @html_text_cases],
- $arg_test_case, $arg_generate, $arg_debug);
- 1;
|