code:
\input texinfo @c -*-texinfo-*-
@setfilename macro_in_misc.info

@hyphenation{some-where
be-low
  may-be to-morow
 }

@macro text
atext
@end macro

@node Top
@top top @text{}
@subheading Comment like: @text{}

Text line followed by a comment on the same line and another below @c comment @text{}
@c comment @text{}

@macro pagesizes_arg
200mm,150mm
@end macro

@macro afourpaper_macro
@afourpaper
@end macro

@pagesizes @pagesizes_arg{}
@afourpaper_macro{}
@headings on line following headings @text{}
@oddfooting some text ignored @text{}
@everyheading on line following everyheading @text{}

@macro need_arg
0.1
@end macro

@need @need_arg{}

@macro raisesections_macro
@raisesections
@end macro
@raisesections_macro{}
@macro lowersections_macro
@lowersections
@end macro
@lowersections_macro{}

@c tex error: Use of \ doesn't match its definition.
@ifnottex
@@definfoenclose phoo,//,\\  @definfoenclose phoo,//,\\

@phoo{bar}
@end ifnottex

@macro definfoenclose_name
phi
@end macro
@definfoenclose @definfoenclose_name{},:,:

@c this is required
@iftex
@global@let@phi=@i
@end iftex

@phi{bar}

@macro strong_macro
@strong
@end macro
@macro strong_name
strong
@end macro

@strong_macro{}{very strong}

@definfoenclose @strong_name{},(@strong_name{}:,:)

@strong_macro{}{ is it really strong? }

@kbd{something before kbdinputstyle}

@macro kbdinputstyle_arg
code
@end macro
@kbdinputstyle @kbdinputstyle_arg{}

@kbd{truc}

@example
@kbd{example}
@end example

@macro asis_arg
asis
@end macro
@macro zero
0
@end macro
@macro none_arg
none
@end macro
@macro four
4
@end macro
@macro six
6
@end macro

@paragraphindent @asis_arg{}
@paragraphindent @zero{}
@paragraphindent @none_arg{}
@paragraphindent @four{}
@firstparagraphindent @none_arg{}
@exampleindent @six{}

@macro end_arg
end
@end macro
@macro separate_arg
separate
@end macro
@footnotestyle @end_arg{}
@footnotestyle @separate_arg{}

@macro latin1
ISO-8859-1
@end macro
@documentencoding @latin1{}

@macro on_arg
on
@end macro
@macro off_arg
off
@end macro
@frenchspacing @on_arg{}
@frenchspacing @off_arg{}

@c accepts 10 or 11
@macro ten
10
@end macro
@fonttextsize @ten{}
@c accept false or true
@c makeinfo don't care about the arg and remove the remainiing of the line
@macro false_arg
false
@end macro
@macro true_arg
true
@end macro
@allowcodebreaks @false_arg{}
@code{false aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}

@allowcodebreaks @true_arg{}
@code{true aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}

@subheading command removed

@finalout

@macro page_macro
@page
@end macro
@macro noindent_macro
@noindent
@end macro
@macro refill_macro
@refill
@end macro

@@page @page_macro{} @@noindent @noindent_macro{} @@refill @refill_macro{} something

@noindent_macro{}     noindent at beginning of line
@noindent_macro{}
noindent on the preceding line
  @noindent_macro{}    noindent after space at beginning of line
@page         page at beginning of line
@page
After page on it's own line.

@@page @page_macro{}   @@noindent @noindent_macro{}    @@refill @refill_macro{}

@macro contents_macro
@contents
@end macro
@contents_macro{}

@subheading special

Only valid between iftex:
@c @@vskip @vskip @@cropmarks @cropmarks
Unknown ???
@c @@fillbreak  @fillbreak eol

@macro exdent_macro
@exdent
@end macro
@exdent_macro{} line after exdent

And now sp:

@macro two
2
@end macro
@sp @two{}

@macro result_macro
@result
@end macro

@clickstyle @result_macro{}

@menu
* node @text{}::
* bidule::
* bidule2::
@end menu

@node node @text{}
@chapter chapter
@menu
* truc::
@end menu

@node truc
@section section

@contents_macro{}

@node bidule
@chapter bidule

@macro shortcontents_macro
@shortcontents
@end macro
@shortcontents_macro{}

@node bidule2
@chapter last

@bye


code:
\input texinfo @c -*-texinfo-*-

@macro begin_file
macro_in_pass
@end macro
@macro end_file_name {ext}
texi_commands.\ext\
@end macro

@setfilename @begin_file{}@end_file_name{info}

@macro definfoenclose_name
phi
@end macro
@definfoenclose @definfoenclose_name{},:,:

@macro latin1
ISO-8859-1
@end macro

@macro documentencoding_command
@documentencoding
@end macro

@documentencoding_command @latin1{}

@macro multiinclude
macro_included.texi
@include inc_file.texi
@end macro

@node Top
@top top

@include @multiinclude

@themacro

macro_in_pass_texi_commands@{info@}
@end_file_name{info}

@bye

repo_name: mthl/texinfo

license: mit


code:
@macro themacro
in themacro
@end macro


code:
\input texinfo @c -*-texinfo-*-
@setfilename macro_zero.info

@node Top
@top top macro/value is a zero

@set zero 0

@macro zero
0
@end macro

Macro
@zero{}

Value
@value{zero}

@bye


code:
\input texinfo @c -*-texinfo-*-

@node Top
@top Test macro with include file and macro in macro

@c makeinfo doesn't like:
@c a new macro: @@<: @< !!!

@c makeinfo doesn't like:
@c @@aa without brace @aa

The file included:
@include file.texi
File has been included.

@macro macro1 {arg1, arg2 }
result of a macro with \arg1\ and
@include file.texi
\arg2\
@end macro

Right. @macro1 { @samp{first arg

no ?}, second arg}
Now define macro2
@macro macro2 { arg }
With a doubles arg \arg\ and re \arg\

@end macro
Call macro2
@macro2 { a simple @code{
arg}
}
Call macro2 with 2 args
@macro2 { arg with comma , here }
Define macro3
@macro macro3 { arg }
@example
/arg/

/arg/
@end example
@end macro
Call macro3
@macro3 { an arg }

@contents
@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename macros_in_pass0_macros.info

@node Top
@top macro in index commands

@macro cp
cp
@end macro
@macro fn
fn
@end macro
@macro syncodeindex_command
@syncodeindex
@end macro

@syncodeindex @cp{} @fn{}
@syncodeindex_command{} cp fn

@macro en
en
@end macro
@macro documentlanguage_command
@documentlanguage
@end macro

documentlanguage @documentlanguage  @en{}

documentlanguage on its line
@documentlanguage_command{}  en
line following documentlanguage

@macro truc
truc
@end macro

definedx truc
@defindex @truc{}
after

@macro trucindex_command
@trucindex
@end macro

@trucindex_command{} index truc

@macro codeidx
codeidx
@end macro

@defcodeindex @codeidx{}

@macro defcodeindex_entry
a @var{index entry} t@'e @^{@dotless{i}}
@end macro

@codeidxindex @defcodeindex_entry{}

@cindex cindex entry

@syncodeindex ky pg

@kindex @truc{} kindex
@pindex pindex @codeidx{}

@synindex truc cp

@defindex abc
@defindex defg

@synindex abc defg
@synindex defg ky

@defgindex defg index entry

@abcindex abc index entry

pg
@printindex pg

ky
@printindex ky

truc
@printindex truc

value truc
@printindex @truc{}

cp
@printindex cp

value cp
@printindex @cp{}

defg
@printindex defg

abc
@printindex abc

fn
@printindex fn

@bye


code:
@c \input texinfo   @c -*-texinfo-*-
@c %% my-bib-macros.texi --- Texinfo macros providing a crude
@c %% bibliography and citation capability.

@c % Copyright (C) 2004  Aaron S. Hawley

@c % Author: Aaron S. Hawley <ashawley@gnu.uvm.edu>
@c % Keywords: docs, texinfo, extensions, bib

@c % This file is free software; you can redistribute it and/or modify
@c % it under the terms of the GNU General Public License as published by
@c % the Free Software Foundation; either version 2, or (at your option)
@c % any later version.

@c % This file is distributed in the hope that it will be useful,
@c % but WITHOUT ANY WARRANTY; without even the implied warranty of
@c % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@c % GNU General Public License for more details.

@c % You should have received a copy of the GNU General Public License
@c % along with texi2html; see the file COPYING.  If not, write to
@c % the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@c % Boston, MA 02111-1307, USA.

@c %% Commentary:

@c %%% Introduction

@c %% Creates references to a ``Bibliography'' or ``References''
@c %% section of a Texinfo document, using Texinfo's
@c %% macro system.  Although not as terse a way to cite systems as is
@c %% found in document systems like TeX, the format is simpler and
@c %% the rendering  is easier for non-academic readers.

@c %

@c %%% Usage

@c %% References to cited works can be put in any section of a document.
@c %% The cited works must be put in either a Texinfo table (for
@c %% instance with ``@table @asis ... @end table'') or within a
@c %% Texinfo list (something like ``@enumerate ... @end enumerate''
@c %% or ``@itemize @bullet ... @end itemize'').  They are created
@c %% with the command ``@mybibitem{REF-NAME}''.  To cite a reference
@c %% with a @mybibitem use ``@mybibcite{REF-NAME}''.

@c %% The beginning of a document must include (using the @include
@c %% command) the file my-bib-macros.texi, which should be made
@c %% available in the current directory of the parent file.  A single
@c %% call should be made to choose to use a list or a table.  The
@c %% command to chose is called @mybibuselist{NODE}, where NODE is
@c %% the node containing the location where the references are listed.

@c %

@c %%% Example

@c %% \input texinfo   @c -*-texinfo-*-
@c %% @comment %**start of header
@c %% @setfilename my-file-with-bib.info
@c %% @settitle Texinfo with a Bibliography and References
@c %%
@c %% @include my-bib-macros.texi
@c %% @mybibuselist{References}
@c %%
@c %% @comment %**end of header
@c %%
@c %% @node Top
@c %% @top Top
@c %%
@c %% @menu
@c %% * Introduction::
@c %% * @mybibnode{}::
@c %%
@c %% @end menu
@c %%
@c %% @node Introduction
@c %% @chapter Introduction
@c %%
@c %% The ability of a documentation format to make cross references to a
@c %% bibliography, a feature of LaTeX @mybibcite{LaTeX2e}, isn't
@c %% currently supported in Texinfo.
@c %%
@c %% @node @mybibnode{}
@c %% @chapter References
@c %%
@c %% @itemize @asis
@c %%
@c %% @mybibitem{LaTeX2e} Leslie Lamport, LaTeX User's Guide and
@c %% Reference Manual, 2nd edition, Addison-Wesley, Reading,
@c %% Massachusetts, 1994.
@c %%
@c %% @end itemize
@c %%
@c %% @bye

@c %%

@c %% This example produces (in Info):

@c %%       1 Introduction
@c %%       **************
@c %%
@c %%       The ability of a documentation format to make cross
@c %%       references to a bibliography, a feature of LaTeX (See item
@c %%       [LaTeX2e] in *Note LaTeX2e: References.), is not currently
@c %%       supported in Texinfo.
@c %%
@c %%
@c %%       2 References
@c %%       ************
@c %%
@c %%       [LaTeX2e] Leslie Lamport, LaTeX User's Guide and Reference
@c %%       Manual, 2nd edition, Addison-Wesley, Reading,
@c %%       Massachusetts, 1994.

@c %% and (in printed output):

@c %%       1 Introduction
@c %%       **************
@c %%
@c %%       The ability of a documentation format to make cross
@c %%       references to a bibliography, a feature of LaTeX (See item
@c %%       [LaTeX2e] in Chapter 2 [References], page 3.), is not
@c %%       currently supported in Texinfo.
@c %%
@c %%
@c %%       2 References
@c %%       ************
@c %%
@c %%       [LaTeX2e] Leslie Lamport, LaTeX User's Guide and Reference
@c %%       Manual, 2nd edition, Addison-Wesley, Reading,
@c %%       Massachusetts, 1994.

@c %

@c %%% Notes

@c %% The pointers to references will be functional in hypertext
@c %% documentation (info, HTML, XML and others) and properly rendered
@c %% in print documents, because they are implemented with Texinfo's
@c %% cross referencing capabilities (using @anchor and @ref).  Failures
@c %% by an author to make proper references with ``my-bib-macros'' in
@c %% their document will give cross referencing errors by Texinfo
@c %% conversion tools.

@c %% Only one ``Reference'' section is allowed per document.

@c %% An improvement of this system would create cross references
@c %% (with @xref) at each cited work to all the originating cross
@c %% refererences.

@c %

@c %% Code:

@c % Configuration Options

@c %% @mybibsetrefnode : Defines the name of the node to contain
@c %% references.

@macro mybibsetrefnode{node}
@set mybibrefnode \node\
@end macro

@c %% @mybibnode{} : Macro to be placed at node containing references
@c %% and calls to @mybibcite{}

@macro mybibnode{}
@value{mybibrefnode}
@end macro

@c %% @mybibusetable : Whether each @mybibitem will be put in a
@c %% table.

@macro mybibusetable{node}
@set mybibtable true
@ifset mybiblist
@clear mybiblist
@end ifset
@mybibsetrefnode{\node\}
@end macro

@c %% @mybibuselist : Whether each @mybibitem will be put in a
@c %% list.

@macro mybibuselist{node}
@set mybiblist true
@ifset mybibtable
@clear mybibtable
@end ifset
@mybibsetrefnode{\node\}
@end macro

@c %% @mybibcite{REF} : Cites the cross reference REF.

@macro mybibcite{ref}
@ifclear mybibrefnode
@mybibmakeref{mybibsetrefnode was not used, \ref\}
@end ifclear
@c %**else if
@ifset mybibrefnode
@mybibmakeref{@mybibnode{}, \ref\}
@end ifset

@end macro

@macro mybibmakeref{node, ref}
(See item [\ref\] in @ref{\node\, \ref\}.)
@end macro

@c %% @mybibcite{REF} : Creates a cross referenced citation REF.

@macro mybibitem{ref}
@ifclear mybiblist
@ifclear mybibtable
@set mybiblist true
@end ifclear
@end ifclear
@ifset mybiblist
@item
@anchor{\ref\}[\ref\]
@end ifset
@c %**else if
@ifset mybibtable
@item @anchor{\ref\}[\ref\]
@end ifset

@end macro

@c %% my-bib-macros.texi ends here


code:
\input texinfo   @c -*-texinfo-*-
@comment %**start of header
@setfilename nested_ignore.info

@node Top
@top Top

@ignore
@ignore

@end ignore

@ignore
@end iftex
@ifinfo
@end ignore

@ignore
@end ifclear
@ifclear
@end ignore

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename nested_macro_calls

@node Top

@macro machin{}
(machin)
@end macro

@macro truc{}
@machin

@end macro

Before @truc{} after truc.


code:
\input texinfo @c -*-texinfo-*-

@setfilename no_arg_macro.info

@node Top

@macro texnl{}
@end macro

  This is a more low-level API.  The word break property is a property defined
  in Unicode Standard Annex #29, section ``Word Boundaries'', see
  @url{http://www.unicode.org/reports/tr29/#Word_Boundaries}.@texnl  It is used
  for determining the word breaks in a string.

@macro texnl2
@end macro

  This is a more low-level API.  The word break property is a property defined
  in Unicode Standard Annex #29, section ``Word Boundaries'', see
  @url{http://www.unicode.org/reports/tr29/#Word_Boundaries}.@texnl2  It is used
  for determining the word breaks in a string.

@bye


code:
\input texinfo.tex    @c -*-texinfo-*-

@setfilename node-expand.info

@c Makeinfo should expand non-macros such as @@ and @value
@c in node names and node references, including menus.
@c This file deliberately references "Node 1" both via
@c @value and directly; this should not trigger any errors,
@c as long as --commands-in-node-names is used.
@c Index entries should all be expanded as well.

@set node1 Node 1

@ifnottex

@node Top, (dir), (dir), (dir)
@top Expansion in Node Names

@end ifnottex

@menu
* @value{node1}  ::
* @@node `2'::
* ``node'' with---tricks::
@end menu

@xref{@@node `2'}.

@node @value{node1}, @@node `2', Top, Top
@chapter Chapter 1

@cindex entry for chapter 1
This is chapter 1.
@xref{@@node `2'}.

@set sec1 Section 1.1

@menu
* @value{sec1}::
@end menu

@node Section 1.1, , Node 1, Node 1
@comment  node-name,  next,  previous,  up

@cindex entry for section 1.1
This is section 1.1.

@node @@node `2', ``node'' with---tricks, @value{node1}, Top
@comment  node-name,  next,  previous,  up
@chapter Node 2

@cindex entry for chapter 2
This is chapter 2.
@xref{@value{node1}}.  @xref{Node 1}.
@xref{``node'' with---tricks, Node with some tricks}.

@node ``node'' with---tricks, , @@node `2', Top

@cindex tricks
Another node.

@printindex cp

@bye


code:
\input texinfo
@setfilename node-value.info
@set a--foo bar

@node Top, @value{a--foo}, (dir), (dir)
@top Var @value{a--foo}
@value{a--foo}

@node @value{a--foo}, BarFoo, Top, (dir)
@chapter BarFoo

@node BarFoo, , @value{a--foo}, (dir)
@chapter bar

@bye


code:
\input texinfo   @c -*-texinfo-*-
@comment %**start of header
@setfilename not_ifset_text.info

@node Top
@top Top

@ifset a

Flag a is set.

@end ifset

@bye


code:
\input texinfo
@smallbook
@setfilename quote-args.info
@settitle Quote-args facility in macros

@rmacro cat{a,b}
\a\\b\
@end rmacro

@macro FIXME{a}
@strong{FIXME: \a\}
@end macro

@node Top, , (dir), (dir)

@noindent
@FIXME{Many arguments, separated by commas, are processed here}
@cat{@cat{@cat{@cat{@cat{@cat{na, to}, po}, co}, tu}, oto},tam}
@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename file@c comment

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename file @c comment

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename simple_imbricated_macro.info

@node Top
@top element

@macro truc {}
truc.
@macro bidule {}
bidule.
@end macro
@end macro

@truc{}

@bidule{}

@bye


code:
\input texinfo @c -*-texinfo-*-

@node Top
@top Basic macro calls

Define a  simple macro
@example
@@macro macro1 @{arg1, arg2 @}
result: @@emph@{\arg1\@} protected \\ -> \\arg1\\  @@emp@{\arg2\@}
@@end macro
@end example

before macro @macro macro1 { arg1 , arg2 }
result: @emph{\arg1\} protected \\ -> \\arg1\\ @emph{\arg2\}
@end macro after end macro

Calling (normal)
@example
the @@macro1 @{ @@samp@{f\irst arg@}, second arg @} after macro
@end example
==================================

the @macro1 { @samp{f\irst arg}, second arg } after macro

-----------------------------------

the result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{second arg } after macro

====================================

Calling (one arg)
@example
@@macro1 @{ @@samp@{f\irst arg@}@}
@end example
==================================

@macro1 { @samp{f\irst arg}}

-----------------------------------

result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{}

====================================

Calling (no args)
@example
@@macro1 @@samp@{f\irst arg@}, second arg
@end example
==================================

@macro1 @samp{f\irst arg}, second arg

-----------------------------------

result: @emph{} protected \ -> \arg1\ @emph{} @samp{f\irst arg}, second arg

====================================

@ifhtml
Calling (three args)
@example
@@macro1 @{ @@samp@{f\irst arg@}, second arg, third arg@}
@end example
==================================

@macro1 { @samp{f\irst arg}, second arg, third arg}

-----------------------------------

result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{second arg}

====================================
@end ifhtml

define a macro with one arg
@example
@@macro macro2 @{ arg @}
we get \arg\ and another \arg\
and a last one on another line \arg\

and a last in another paragraph
@@end macro
@end example

@macro macro2 { arg }
we get \arg\ and another \arg\
and another one on another line \arg\

and a last in another paragraph
@end macro

Calling
@example
@@macro2 @{ arg, comma \, @}
@end example
==================================

@macro2 { arg, comma \, }

-----------------------------------

we get arg, comma , and another arg, comma ,
and another one another line arg, comma ,

and a last in another paragraph

==================================

Calling
@example
@@macro2  arg,  comma \,
@end example
==================================

@macro2  arg,  comma \,

-----------------------------------

we get arg, comma \, and another arg, comma \,
and another one on another line arg, comma \,

and a last in another paragraph

==================================

@macro ab
a

b
@end macro

now @@set comma ,
@set comma ,

@@set flagab @@ab
@set flagab @ab

the values:

======================================

flagab: @value{flagab}

--------------------------------------

makeinfo result (the macro in set is expanded and all the resulting lines
are replaced):

flagab: a

b

======================================

comma: @value{comma}

Calling macro1 with value
@example
@@macro1 @{ arg1 @@value@{comma@} arg2 @}
@end example
=======================================

@macro1 { arg1 @value{comma} arg2 }

---------------------------------------

makeinfo result (the comma don't separate args ; the value is expanded after
arguments parsing):

result: @emph{arg1 , arg2 } protected \ -> \arg1\ @emph{}

=======================================

In verbatim
@verbatim
comma: @value{comma}
@macro1{ bidule, truc}
@end verbatim

@set argument arg
@set bodyarg \arg\

Define macro
@example
@@macro testvaluebody @{ arg @}
result: @@emph@{\@@value@{bodyarg@}\  @}
@@end macro
@end example

@macro testvaluebody { arg }
result: @emph{\@value{bodyarg}\  }
@end macro

==================================

@testvaluebody{macro_arg1}

----------------------------------

makeinfo result (according to error message, the value isn't expanded
when the body is expanded; it is kept, but the second \ isn't):

result: @emph{\\arg\  }

==================================

Define macro
@example
@@macro testvalue @{ arg , the@@value@{argument@} @}
result: @@emph@{\arg\@} the \the\ thearg \thearg\ with value \the@@value@{argument@}\
@@end macro
@end example

@macro testvalue { arg , the@value{argument} }
result: @emph{\arg\} the \the\ thearg \thearg\ with value \the@value{argument}\
@end macro

==================================

@testvalue{macro_arg1}

----------------------------------

makeinfo (breaks) result:

result: @emph{macro_arg1} the \the thearg \thearg with value \thearg

==================================

Define macro without arg
@example
@@macro test1
test1
@@end macro
@end example

@macro test1
test1
@end macro

Call with @{@}:

==================================

@test1{} abc

----------------------------------

test1 abc

==================================

Call with something on the line

==================================

@test1 abc

----------------------------------

test1 abc

==================================

An empty set value

@set myspace

1 @value{myspace} 1

@contents
@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename file

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename @ @verb{: name :}@

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename test_include.info

@node Top

This is a very simple texi manual.
@include inc_file.texi

After inclusion.

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename test_include_with_setfilename.info

@node Top

Include a file that has a @@setfilename.
@include included_file_with_setfilename.texi

After inclusion.

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename test_paths.info

@node Top
@top test paths

@include inc_file.texi

@@include dot.
@c this leads to a different result with make distcheck since the file is not found
@c @include ./inc_file.texi

@include coverage_macro.texi

@@include dot path.
@include ./coverage_macro.texi

@image{formatting/f--ile}

@@image dot.
@image{./formatting/f--ile}

@@image dot parent.
@image{../test/formatting/f--ile}

@verbatiminclude formatting/simplest.texi

@@verbatiminclude dot.
@verbatiminclude ./formatting/simplest.texi

@bye


code:
texi test_include.texi
texi test_include_with_setfilename.texi
texi macros.texi
texi macro_zero.texi
texi simple_macro.texi
texi nested_macro_calls.texi
texi two_macros_on_a_line.texi
texi glossary.texi
texi imbricated_macros.texi
texi expansion_order.texi
texi ifclear_in_macro.texi
texi macro_call_in_ifset.texi
texi ifset_in_macro.texi
texi_ifset_defined ifset_in_macro.texi -D notes --macro-expand=@OUT_DIR@/ifset_in_macro.texi
dumptexi_ifset_defined ifset_in_macro.texi -D notes --set-customization-variable 'DUMP_TEXI 1'
texi not_ifset_text.texi
texi bib-example.texi
texi quote-args.texi
texi macro-at.texi
texi alias.texi
texi nested_ignore.texi
texi include_macro.texi
texi node-expand.texi
texi node-value.texi
texi value_in_pass0_macros.texi
texi macros_in_pass0_macros.texi
texi include-value.texi
texi value_in_misc_valid.texi
texi macro_in_misc.texi
texi macro_in_pass_texi_commands.texi
texi macro_commands_in_pass_texi_commands.texi
texi no_arg_macro.texi
texi empty_macro.texi
texi test_paths.texi
texi cond.texi --ifhtml --ifinfo --no-iftex
test_include test_include.texi
texi simple_imbricated_macro.texi
texi setfilename_comment.texi
texi bad_setfilename.texi
texi double_setfilename.texi
texi space_end_setfilename.texi
texi setfilename_space_comment.texi
texi space_in_setfilename.texi
# in the texinfo test suite, the default is info, and there is also a
# test with --html which doesn't make much sense here, replaced with --xml
# though it is not the same
cond cond.texi
cond_xml cond.texi --xml
cond_no-ifhtml_no-ifinfo_no-iftex cond.texi --no-ifhtml --no-ifinfo --no-iftex
cond_ifhtml_ifinfo_iftex cond.texi --ifhtml --ifinfo --iftex
cond_info cond.texi --info
defcondx_Dbar defxcond.texi -D bar
# --debug 1
defcondx_Ubar defxcond.texi -U bar
macro-at macro-at.texi
# --debug 1
value_in_pass0_macros_plain value_in_pass0_macros.texi --macro-expand=@OUT_DIR@/value_in_pass0_macros-expanded.texi
macros_in_pass0_macros_plain macros_in_pass0_macros.texi --macro-expand=@OUT_DIR@/macros_in_pass0_macros-expanded.texi
macro-at_info macro-at.texi --info
#value_in_pass0_macros value_in_pass0_macros.texi --init makeinfo.pm
#macros_in_pass0_macros macros_in_pass0_macros.texi --init makeinfo.pm
node-expand_plain node-expand.texi
#node-expand node-expand.texi --init makeinfo.pm
node-expand_xml node-expand.texi --xml
node-expand_info node-expand.texi --info
include-value include-value.texi
value_in_misc value_in_misc_valid.texi --iftex
macro_in_misc macro_in_misc.texi
macro_commands_in_pass_texi_commands macro_commands_in_pass_texi_commands.texi
test_include_with_setfilename_info test_include_with_setfilename.texi --info
no_arg_macro_info no_arg_macro.texi --info
simple_imbricated_macro simple_imbricated_macro.texi
test_paths test_paths.texi
setfilename_comment setfilename_comment.texi
bad_setfilename bad_setfilename.texi
double_setfilename double_setfilename.texi
space_end_setfilename space_end_setfilename.texi
setfilename_space_comment setfilename_space_comment.texi
space_in_setfilename space_in_setfilename.texi


code:
texi test_include.texi
texi test_include_with_setfilename.texi
texi macros.texi
texi macro_zero.texi
texi simple_macro.texi
texi nested_macro_calls.texi
texi two_macros_on_a_line.texi
texi glossary.texi
texi imbricated_macros.texi
texi expansion_order.texi
texi ifclear_in_macro.texi
texi macro_call_in_ifset.texi
texi ifset_in_macro.texi
texi_ifset_defined ifset_in_macro.texi -D notes --macro-expand=@OUT_DIR@/ifset_in_macro.texi
dumptexi_ifset_defined ifset_in_macro.texi -D notes --set-init-var 'DUMP_TEXI 1'
texi not_ifset_text.texi
texi bib-example.texi
texi quote-args.texi
texi macro-at.texi
texi alias.texi
texi nested_ignore.texi
texi include_macro.texi
texi node-expand.texi
texi node-value.texi
texi value_in_pass0_macros.texi
texi macros_in_pass0_macros.texi
texi include-value.texi
texi value_in_misc_valid.texi
texi macro_in_misc.texi
texi macro_in_pass_texi_commands.texi
texi macro_commands_in_pass_texi_commands.texi
texi no_arg_macro.texi
texi empty_macro.texi
texi test_paths.texi
texi cond.texi --ifhtml --ifinfo --no-iftex
test_include test_include.texi
texi simple_imbricated_macro.texi
texi setfilename_comment.texi
texi bad_setfilename.texi
texi double_setfilename.texi
texi space_end_setfilename.texi
texi setfilename_space_comment.texi
texi space_in_setfilename.texi
# in the texinfo test suite, the default is info, and there is also a
# test with --html which doesn't make much sense here, replaced with --xml
# though it is not the same
cond cond.texi
cond_xml cond.texi --xml
cond_no-ifhtml_no-ifinfo_no-iftex cond.texi --no-ifhtml --no-ifinfo --no-iftex
cond_ifhtml_ifinfo_iftex cond.texi --ifhtml --ifinfo --iftex
cond_info cond.texi --info
defcondx_Dbar defxcond.texi -D bar
defcondx_Ubar defxcond.texi -U bar
macro-at macro-at.texi
value_in_pass0_macros_plain value_in_pass0_macros.texi --macro-expand=@OUT_DIR@/value_in_pass0_macros-expanded.texi
macros_in_pass0_macros_plain macros_in_pass0_macros.texi --macro-expand=@OUT_DIR@/macros_in_pass0_macros-expanded.texi
macro-at_info macro-at.texi --info
value_in_pass0_macros value_in_pass0_macros.texi --init makeinfo.pm
macros_in_pass0_macros macros_in_pass0_macros.texi --init makeinfo.pm
node-expand_plain node-expand.texi
node-expand node-expand.texi --init makeinfo.pm
node-expand_xml node-expand.texi --xml
node-expand_info node-expand.texi --info
include-value include-value.texi
value_in_misc value_in_misc_valid.texi --iftex
macro_in_misc macro_in_misc.texi
macro_commands_in_pass_texi_commands macro_commands_in_pass_texi_commands.texi
test_include_with_setfilename_info test_include_with_setfilename.texi --info
no_arg_macro_info no_arg_macro.texi --info
simple_imbricated_macro simple_imbricated_macro.texi
test_paths test_paths.texi
setfilename_comment setfilename_comment.texi
bad_setfilename bad_setfilename.texi
double_setfilename double_setfilename.texi
space_end_setfilename space_end_setfilename.texi
setfilename_space_comment setfilename_space_comment.texi
space_in_setfilename space_in_setfilename.texi


code:
\input texinfo @c -*-texinfo-*-

@setfilename two_macros_on_a_line

@node Top
@top top

@macro mymacro
in mymacro
@end macro

@macro mymacro_with_args{arg}
in with args
now the arg \arg\
after
@end macro

@@mymacro@{@} @@mymacro@{@}
@mymacro{} @mymacro{}

@@mymacro @@mymacro@{@}
@mymacro @mymacro{}

@@mymacro@{@} @@mymacro
@mymacro{} @mymacro

with args
@mymacro_with_args {an
arg

in macro} @mymacro{}

@bye


code:
\input texinfo @c -*-texinfo-*-
@setfilename value_in_misc.info

@hyphenation{some-where
be-low
  may-be to-morow
 }

@set text atext

@node Top
@top top @value{text}
@subheading Comment like: @value{text}

Text line followed by a comment on the same line and another below @c comment @value{text}
@c comment @value{text}

@set pagesizes_arg 200mm,150mm
@set afourpaper_macro @afourpaper

@ifnottex
@pagesizes @value{pagesizes_arg}
@end ifnottex
@value{afourpaper_macro}
@headings on line following headings @value{text}
@oddfooting some text ignored @value{text}
@everyheading on line following everyheading @value{text}

@set need_arg 0.1

@ifnottex
@need @value{need_arg}
@end ifnottex

@set raisesections_macro @raisesections
@value{raisesections_macro}
@set lowersections_macro @lowersections
@value{lowersections_macro}

@c tex error: Use of \ doesn't match its definition.
@ifnottex
@@definfoenclose phoo,//,\\  @definfoenclose phoo,//,\\

@phoo{bar}
@end ifnottex

@set definfoenclose_name phi
@definfoenclose @value{definfoenclose_name},:,:

@ifclear texi2html
@c this is required
@iftex
@global@let@phi=@i
@end iftex
@end ifclear

@phi{bar}

@set strong_macro @strong
@set strong_name strong

@iftex
@value{strong_macro}{very strong}
@end iftex
@strong{very strong}

@definfoenclose @value{strong_name},(@value{strong_name}:,:)

@iftex
@value{strong_macro}{ is it really strong? }
@end iftex
@strong{ is it really strong? }

@kbd{something before kbdinputstyle}

@set kbdinputstyle_arg code
@ifnottex
@kbdinputstyle @value{kbdinputstyle_arg}
@end ifnottex

@kbd{truc}

@example
@kbd{example}
@end example

@set asis_arg asis
@set zero 0
@set none_arg none
@set four 4
@set six 6

@ifnottex
@paragraphindent @value{asis_arg}
@paragraphindent @value{zero}
@paragraphindent @value{none_arg}
@paragraphindent @value{four}
@firstparagraphindent @value{none_arg}
@exampleindent @value{six}
@end ifnottex

@set end_arg end
@set separate_arg separate
@footnotestyle @value{end_arg}
@footnotestyle @value{separate_arg}

@set latin1 ISO-8859-1
@ifnottex
@documentencoding @value{latin1}
@end ifnottex

@set on_arg on
@set off_arg off
@ifnottex
@frenchspacing @value{on_arg}
@frenchspacing @value{off_arg}
@end ifnottex

@c accepts 10 or 11
@set ten 10
@ifnottex
@fonttextsize @value{ten}
@end ifnottex
@c accept false or true
@c makeinfo don't care about the arg and remove the remainiing of the line
@set false_arg false
@set true_arg true
@ifnottex
@allowcodebreaks @value{false_arg}
@end ifnottex
@code{false aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}

@ifnottex
@allowcodebreaks @value{true_arg}
@end ifnottex
@code{true aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}

@subheading command removed

@finalout

@set page_macro @page
@set noindent_macro @noindent
@set refill_macro @refill

@@page @value{page_macro} @@noindent @value{noindent_macro} @@refill @value{refill_macro} something

@value{noindent_macro}     noindent at beginning of line
@value{noindent_macro}
noindent on the preceding line
  @value{noindent_macro}    noindent after space at beginning of line
@page         page at beginning of line
@page
After page on it's own line.

@@page @value{page_macro}   @@noindent @value{noindent_macro}    @@refill @value{refill_macro}

@set contents_macro @contents
@value{contents_macro}

@subheading special

Only valid between iftex:
@c @@vskip @vskip @@cropmarks @cropmarks
Unknown ???
@c @@fillbreak  @fillbreak eol

@set exdent_macro @exdent
@ifnottex
@value{exdent_macro} line after exdent
@end ifnottex

And now sp:

@set two 2
@iftex
@ifnottex
@sp @value{two}
@end ifnottex
@end iftex
@sp 2

@set result_macro @result

@clickstyle @value{result_macro}

@menu
* node @value{text}::
* bidule::
* bidule2::
@end menu

@node node @value{text}
@chapter chapter
@menu
* truc::
@end menu

@node truc
@section section

@value{contents_macro}

@node bidule
@chapter bidule

@set shortcontents_macro @shortcontents
@value{shortcontents_macro}

@node bidule2
@chapter last

@bye


code:
\input texinfo @c -*-texinfo-*-

@setfilename value_in_pass0_macros.info

@node Top
@top value in index commands

@set cp cp
@set fn fn
@set syncodeindex_command @syncodeindex

@syncodeindex @value{cp} @value{fn}
@value{syncodeindex_command} cp fn

@set en en
@set documentlanguage_command @documentlanguage

documentlanguage @documentlanguage  @value{en}

documentlanguage on its line
@value{documentlanguage_command}  en
line following documentlanguage

@set truc truc

definedx truc
@defindex @value{truc}
after

@set trucindex_command @trucindex

@value{trucindex_command} index truc

@set codeidx codeidx

@defcodeindex @value{codeidx}

@set defcodeindex_entry a @var{index entry} t@'e @^{@dotless{i}}

@codeidxindex @value{defcodeindex_entry}

@cindex cindex entry

@syncodeindex ky pg

@kindex @value{truc} kindex
@pindex pindex @value{codeidx}

@synindex truc cp

@defindex abc
@defindex defg

@synindex abc defg
@synindex defg ky

@defgindex defg index entry

@abcindex abc index entry

pg
@printindex pg

ky
@printindex ky

truc
@printindex truc

value truc
@printindex @value{truc}

cp
@printindex cp

value cp
@printindex @value{cp}

defg
@printindex defg

abc
@printindex abc

fn
@printindex fn

@bye


code:
#! /bin/sh

set -e

user=pertusus

command=$1

commands_list="(pack/packt2h/sign/signt2h/unpack/get/clean/upload)"

if [ "z$command" = 'z' ]; then
  echo "Need something to do $commands_list"
  exit 1
fi
shift;

download_dir="download-mirror.savannah.gnu.org/releases/texinfo"

if [ z"$1" != 'z' ]; then
  VERSION=$1
  shift
else
  VERSION=`grep '^VERSION = ' ../../Makefile | sed 's/^VERSION = *//'`
fi

if [ z"$VERSION" = 'z' ]; then
  echo "Cannot find version"
  exit 1
fi

if [ z"$1" != 'z' ]; then
  user=$1
fi

tp_tests_name=tp_tests_results-$VERSION
texi2html_tests_name=t2h_tests_results
files_tests_name=t2h_tests_files
#manuals=t2h_tests_big_manuals

if [ $command = 'packt2h' ]; then
  rm -f $texi2html_tests_name.tar.gz $files_tests_name.tar.gz #$manuals.tar.gz
  (
  cd ..
  tar c --exclude-vcs -z -f test/$texi2html_tests_name.tar.gz test/*/res/ test/*/res_all/ test/*/res_info/ test/*/res_html/ test/*/res_docbook/ test/*/res_xml/ test/many_input_files/*_res/
  tar c --exclude-vcs -z -f test/$files_tests_name.tar.gz test/info_coverage/f--ile*
  #tar c --exclude-vcs -z -f test/$manuals.tar.gz test/manuals/*.texi test/tar_manual/*.texi test/singular_manual/*.tex* test/singular_manual/d2t_singular/
  )
elif [ $command = 'pack' ]; then
  rm -f $tp_tests_name.tar.gz
  (
  cd ..
  tar c --exclude-vcs -z -f test/$tp_tests_name.tar.gz test/*/res_parser*/
  )
elif [ $command = 'get' ]; then :
  wget -N -r -np -A '*.tar.gz*' http://$download_dir/ || exit 1
  for file in $texi2html_tests_name $tp_tests_name $files_tests_name; do
    if [ -f  $download_dir/$file.tar.gz ]; then
      cp -a $download_dir/$file.tar.gz ..
    else
      echo "WARNING: missing $download_dir/$file.tar.gz" 1>&2
    fi
  done
elif [ $command = 'clean' ]; then
  rm -rf download-mirror.savannah.gnu.org
  rm -f $texi2html_tests_name.tar.gz $tp_tests_name.tar.gz $files_tests_name.tar.gz
  rm -f ../$texi2html_tests_name.tar.gz ../$tp_tests_name.tar.gz ../$files_tests_name.tar.gz
elif [ $command = 'unpack' ]; then
  (
  cd ..
  for file in $files_tests_name $texi2html_tests_name $tp_tests_name; do
    if [ -f $file.tar.gz ]; then
      tar x -z -f $file.tar.gz
    else
      echo "WARNING: missing $file.tar.gz" 1>&2
    fi
  done
  #tar x -z -f test/$manuals.tar.gz

  )
  for dir in */; do
    if [ -f "$dir/htmlxref.cnf-texinfo" ]; then
      mkdir -p $dir/.texinfo/
      cp -p "$dir/htmlxref.cnf-texinfo" $dir/.texinfo/
    fi
    if [ -f "$dir/htmlxref.cnf-ref" ]; then
      cp -p "$dir/htmlxref.cnf-ref" $dir/htmlxref.cnf
    fi
  done
  cp -p sectioning/renamednodes.cnf-ref sectioning/equivalent_nodes-noderename.cnf
elif [ $command = 'sign' ]; then
  mkdir -p ../upload
  cp -a $tp_tests_name.tar.gz ../upload
  gpg -b --use-agent ../upload/$tp_tests_name.tar.gz
elif [ $command = 'signt2h' ]; then
  mkdir -p ../upload
  cp -a $texi2html_tests_name.tar.gz $files_tests_name.tar.gz ../upload
  gpg -b --use-agent ../upload/$texi2html_tests_name.tar.gz
  gpg -b --use-agent ../upload/$files_tests_name.tar.gz
elif [ $command = 'upload' ]; then
  rsync -a -essh ../upload/ $user@dl.sv.gnu.org:/releases/texinfo/
else
  echo "Unknown command $commands_list"
  exit 1
fi


code:
EXTRA_DIST = cvs.texi info-stnd.texi texinfo.texi mini_ker.texi \
 version-stnd.texi version.texi fdl.texi hello.texi fdl-hello.texi \
 mini_ker_t2h.init cvs.init tests.txt res res_all res_info

DISTCLEANFILES = tests.log tests.out

distclean-local:
	rm -rf out out_all out_info diffs

dist-hook:
	rm -rf `find $(distdir)/res $(distdir)/res_info $(distdir)/res_all -name .svn`


code:
$complex_format_map->{'menu_comment'} =
        {
           'begin' => q{"
"},
           'end' => q{"
"}, 'pre_style' => "$MENU_PRE_STYLE", 'class' => 'menu-comment',
            'style' => 'code'
        };

if (get_conf('SIMPLE_MENU'))
{
    foreach my $format ('menu', 'detailmenu')
    {
        $complex_format_map->{$format} = { 'begin' => q{''} , 'end' => q{''},
        'pre_style' => "$MENU_PRE_STYLE", 'class' => 'menu-preformatted',
        'style' => 'code'

       };
    }
}

1;