code:
EXTRA_DIST = nested_formats.texi \
 tests.txt res res_info res_all

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`

repo_name: mthl/texinfo

license: mit


code:
#! /usr/bin/perl -w

# expand the manuals with nested formats using texi2html and test
# with makeinfo on these expanded manuals (it is likely that makeinfo
# cannot expand those manuals in some cases).
use strict;

open (TXT, 'tests.txt') or die "Cannot open tests.txt: $!\n";

mkdir ("all_texi");

while (<TXT>)
{
   next if /^\s*\#/;
   if (/^(\w+) nested_formats.texi -D (\w+) *$/)
   {
      my $dir = $1;
      my $def = $2;
      my $format;
      mkdir ("all_texi/$dir");
      if ($def =~ /[a-z]+_([a-z]+)$/)
      {
         $format = $1;
      }
      system("perl -w -x ../../texi2html.pl --force nested_formats.texi -D $def --macro-expand=all_texi/$format-nested_formats.texi");
      system ("cp all_texi/$format-nested_formats.texi all_texi/$dir/nested_formats.texi");
      #system ("perl -w -x ../../texi2html.pl -D $def --expand-macro=all_texi/$dir/$format-nested_formats.texi");
      system ("cd all_texi/$dir/ && makeinfo --force nested_formats.texi 2>nested_formats.2");
   }
   else
   {
       print STDERR "Ignoring $_";
   }
}


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

@c value not expanded, by makeinfo nor by texi2html
@c @setfilename nested_formats.info

@ifset format_itemize
@set format_command_begin @itemize
@set format_command itemize
@end ifset

@ifset format_menu
@set format_command_begin @menu
@set format_command menu
@end ifset

@ifset format_float
@set format_command_begin @float
@set format_command float
@end ifset

@ifset format_table
@set format_command_begin @table
@set format_command table
@end ifset

@ifset format_flushright
@set format_command_begin @flushright
@set format_command flushright
@end ifset

@ifset format_multitable
@set format_command_begin @multitable
@set format_command multitable
@end ifset

@ifset format_cartouche
@set format_command_begin @cartouche
@set format_command cartouche
@end ifset

@ifset format_enumerate
@set format_command_begin @enumerate
@set format_command enumerate
@end ifset

@ifset format_deffn
@set format_command_begin @deffn fun arg arg1
@set format_command deffn
@end ifset

@ifset format_example
@set format_command_begin @example
@set format_command example
@end ifset

@ifset format_quotation
@set format_command_begin @quotation
@set format_command quotation
@end ifset

@ifclear format_command
@set format_command_begin @group
@set format_command group
@end ifclear

@c @setfilename @value{format_command}.info

@node Top
@top Test nested @value{format_command}

@macro mymacro
in macro

@value{format_command_begin}
@end @value{format_command}

@value{format_command_begin}
in format_command
@end @value{format_command}

Something
@value{format_command_begin}
@end @value{format_command}

Something
@value{format_command_begin}
in group
@end @value{format_command}

Something2
@value{format_command_begin}
@end @value{format_command}
After

Something2
@value{format_command_begin}
in group
@end @value{format_command}
After

@sp 2
@value{format_command_begin}
in group
@end @value{format_command}

@value{format_command_begin}
@quotation
A quot---ation
@end quotation
@end @value{format_command}

@subheading subheading

@verbatim
in verbatim
@end verbatim

@xml
<para> xml para </xml>
@end xml

@html
html
@end html

@tex
$$\\partial_t \\eta (t) = g(\\eta(t),\\varphi(t))$$
@end tex

@itemize @bullet{}
@item i--tem 1
@item i--tem 2
@end itemize

@enumerate
@item e--numerate
@end enumerate

@multitable @columnfractions 0.6 0.7
@headitem mu--ltitable headitem @tab another tab
@item mu--ltitable item @tab multitable tab
@item mu--ltitable item 2 @tab multitable tab 2
@item lone mu--ltitable item
@end multitable

@example
e--xample  some
   text
@end example

@smallexample
s--mallexample
@end smallexample

@deffn c--ategory d--effn_name a--rguments...
d--effn
@end deffn

@table @bullet
@item a
l--ine
@end table

@cartouche
c--artouche
@end cartouche

@flushleft
f--lushleft
@end flushleft

@flushright
f--lushright
@end flushright

@center ce--ntered line

@value{format_command_begin}
in macro, a format_command containing some other commands.
@itemize @bullet{}
@item i--tem 1
@item i--tem 2
@end itemize

@enumerate
@item e--numerate
@end enumerate

@multitable @columnfractions 0.6 0.7
@headitem mu--ltitable headitem @tab another tab
@item mu--ltitable item @tab multitable tab
@item mu--ltitable item 2 @tab multitable tab 2
@item lone mu--ltitable item
@end multitable

@example
e--xample  some
   text
@end example

@smallexample
s--mallexample
@end smallexample

@deffn c--ategory d--effn_name a--rguments...
d--effn
@end deffn

@table @bullet
@item a
l--ine
@end table

@cartouche
c--artouche
@end cartouche

@flushleft
f--lushleft
@end flushleft

@flushright
f--lushright
@end flushright

@center ce--ntered line
@end @value{format_command}

@end macro

Call macro
@mymacro{}

Call macro in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}

Call macro in itemize at the beginning of an item
@itemize a--n itemize line
@item @mymacro{}
@item item 1
Call macro in itemize
@mymacro{}
@item item 2
Call macro in itemize in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end itemize

Call macro in enumerate at the beginning of enumerate
@enumerate
@item @mymacro{}
@item enumerate
Call macro in enumerate
@mymacro{}
@item enumerate2
Call macro in enumerate in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end enumerate

@multitable @columnfractions 0.6 0.7
@headitem mu--ltitable headitem @tab another tab
@item multitable item @tab multitable tab. And after Call macro in mutitable
after item
@item @mymacro{}
@item multitable item 2 @tab multitable tab 2
Call macro in mutitable
@mymacro{}
@item lone multitable item
Call macro in mutitable in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end multitable

call macro at the example beginning
@example
@mymacro{}
example  some
   text
call macro in example
@mymacro{}

more example text
call macro in example in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end example

@smallexample
s--mallexample
@end smallexample

@deffn c--ategory d--effn_name a--rguments...
deffn
call macro in deffn
@mymacro{}
deffn continues
call macro in deffn in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end deffn

call macro in deffn at the beginning
@deffn c--ategory2 d--effn_name2 a--rguments2...
@mymacro{}
@end deffn

@table @bullet
@item a line
call macro in table
@mymacro{}
call macro in table at an item beginning
@item a line
@mymacro{}
@item a line2
call macro in table in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end table

call macro at cartouche begin
@cartouche
@mymacro{}
cartouche
call macro in cartouche
@mymacro{}
call macro in cartouche in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end cartouche

@flushleft
call macro in flushleft
@mymacro{}
flushleft
call macro in flushleft in format_command
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end flushleft

@flushright
@mymacro{}
flushright
@value{format_command_begin}
@mymacro{}
@end @value{format_command}
@end flushright

@bye


code:
texi nested_formats.texi
# no macros, generated in all_texi by generate_all_texi.pl
#multitable-nested_formats multitable-nested_formats.texi
#enumerate-nested_formats enumerate-nested_formats.texi
# macros
nested_group nested_formats.texi
nested_itemize nested_formats.texi -D format_itemize
nested_menu nested_formats.texi -D format_menu
# nested floats are broken. Not a big deal
#nested_float nested_formats.texi -D format_float
nested_table nested_formats.texi -D format_table
nested_flushright nested_formats.texi -D format_flushright
nested_multitable nested_formats.texi -D format_multitable
# -debug 255
nested_cartouche nested_formats.texi -D format_cartouche
nested_enumerate nested_formats.texi -D format_enumerate
nested_deffn nested_formats.texi -D format_deffn
nested_example nested_formats.texi -D format_example
nested_quotation nested_formats.texi -D format_quotation


code:
#! /bin/sh
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.

if [ z"$srcdir" = 'z' ]; then
  srcdir=.
fi

"$srcdir"/parser_tests.sh "$@" all \
 macros sectioning coverage formatting info_coverage encodings indices \
 nested_formats contents \
 htmlxref \
 htmlxref-only_mono htmlxref-only_split layout \
 invalid


code:
#! /bin/sh
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.

if [ z"$srcdir" = 'z' ]; then
  srcdir=.
fi

"$srcdir"/parser_tests.sh "$@" all \
 misc manuals xemacs_manual texi2html_manual tar_manual singular_manual


code:
#! /bin/sh
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.

if [ z"$srcdir" = 'z' ]; then
  srcdir=.
fi

command=run_parser.sh

if [ z"$1" = 'zall' ]; then
  command=run_parser_all.sh
  shift
fi

arg=
if [ z"$1" = 'z-clean' ]; then
  arg='-clean'
  shift
elif [ z"$1" = 'z-copy' ]; then
  arg='-copy'
  shift
fi

if [ z"$1" = 'zall' ]; then
  command=run_parser_all.sh
  shift
fi

failed=0
while [ z"$1" != 'z' ]; do
  dir=$1
  shift
  [ -d "$dir" ] || mkdir $dir
  (export srcdir_test=$dir; cd "$dir" && ../"$srcdir"/"$command" $arg)
  result=$?
  echo "$dir: $result"
  [ $result != 0 ] && failed=1
done

exit $failed


code:
#! /bin/sh
# Copyright (C) 2013 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.

if [ z"$srcdir" = 'z' ]; then
  srcdir=.
fi

"$srcdir"/parser_tests.sh "$@" all \
  tex_html tex_html_manuals tex_html_singular


code:
#! /bin/sh
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.

#set -x

#echo "SRCDIR $srcdir srcdir_test $srcdir_test"

LC_ALL=C; export LC_ALL

res_dir=res
out_dir=out
outdir="$out_dir/"
command=texi2html.pl
diffs_dir=diffs

logfile=tests.log

clean=no
if [ z"$1" = 'z-clean' ]; then
  clean=yes
  shift
fi

copy=no
if [ z"$1" = 'z-copy' ]; then
  [ -d "$res_dir" ] || mkdir "$res_dir"
  copy=yes
  shift
fi

no_latex2html=yes
if which latex2html > /dev/null 2>&1; then
  no_latex2html=no
fi

no_tex4ht=yes
if which httexi > /dev/null 2>&1; then
  no_tex4ht=no
fi

no_html2wiki=yes
if which html2wiki > /dev/null 2>&1; then
  no_html2wiki=no
fi

one_test=no
if [ z"$1" != 'z' ]; then
  one_test=yes
  the_test=$1
  if [ "z$the_test" = "ztexi" ]; then
    the_file=$2
    [ "z$the_file" != "z" ] && the_basename=`basename $the_file .texi`
  fi
fi

if [ "z$srcdir_test" = 'z' ]; then
  testdir=.
  srcdir_test=.
else
  if [ "z$srcdir" = 'z' ]; then
     testdir=..
  else
     testdir=../$srcdir
  fi
fi

results_dir="$testdir/$srcdir_test/$res_dir"
test_file='tests.txt'
driving_file="$testdir/$srcdir_test/$test_file"

if [ -f "$driving_file" ]; then
  :
else
  echo "Cannot find test driving file $driving_file" 1>&2
  exit 1
fi

if [ "z$clean" = 'zyes' -o "z$copy" = 'zyes' ]; then
  while read line
  do
    if echo $line | grep -qs '^ *#'; then continue; fi
# there are better ways
    dir=`echo $line | awk '{print $1}'`
    file=`echo $line | awk '{print $2}'`
    remaining=`echo $line | sed 's/[a-zA-Z0-9_./-]\+ \+[a-zA-Z0-9_./-]\+ *//'`
    [ "z$dir" = 'z' -o "$zfile" = 'z' ] && continue
    basename=`basename $file .texi`
    if [ "z$dir" = 'ztexi' ]; then
      dir="texi_${basename}"
    fi
    if [ "z$clean" = 'zyes' ]; then
      [ -d "$out_dir/$dir" ] && rm -rf "$out_dir/$dir"
    else
      if [ -d "$out_dir/$dir" ]; then
        if [ -d "$res_dir/$dir" ]; then
          # ugly hack to avoid CVS and .svn
          rm -f "$res_dir/$dir/"?*.*
        else
           mkdir "$res_dir/$dir/"
        fi
        cp -r "$out_dir/$dir/"* "$res_dir/$dir/"
        rm -f "$res_dir/$dir/"*.png "$res_dir/$dir/"*_l2h.css
      else
        echo "No dir $out_dir/$dir" 1>&2
      fi
    fi
  done < "$driving_file"
  exit 0
fi

. ../path_separator || exit 1

[ -d "$diffs_dir" ] || mkdir "$diffs_dir"
[ -d "$out_dir" ] || mkdir "$out_dir"

if tmp_dir=`mktemp -p /tmp -d l2h_t2h_XXXXXXXX`; then
  :
else
  exit 1
fi

echo "result_dir $results_dir, driving_file $driving_file" > $logfile

return_code=0

while read line
do
  if echo $line | grep -qs '^ *#'; then continue; fi
# there are better ways
  dir=`echo $line | awk '{print $1}'`
  file=`echo $line | awk '{print $2}'`
  [ "z$dir" = 'z' -o "$zfile" = 'z' ] && continue
  basename=`basename $file .texi`
  remaining=`echo $line | sed 's/[a-zA-Z0-9_./-]\+ \+[a-zA-Z0-9_./-]\+ *//' | sed 's,@PATH_SEPARATOR@,'"${PATH_SEPARATOR}$testdir/$srcdir_test/"',g'`
  src_file="$testdir/$srcdir_test/$file"
  if [ $one_test = 'yes' -a "z$dir" != "z$the_test" ]; then
    continue
  fi
  export T2H_HOME="`pwd`""/$testdir/$srcdir_test/../../"
  if [ "z$dir" = 'ztexi' ]; then
    if [ $one_test = 'yes' -a "z$the_basename" != 'z' -a "z$basename" != "z$the_basename" ]; then
      continue
    fi
    one_test_done=yes
    dir="texi_${basename}"
    [ -d "$out_dir/$dir" ] && rm -rf "$out_dir/$dir"
    mkdir "$out_dir/$dir"
    remaining_out_dir=`echo $remaining | sed 's,@OUT_DIR@,'"${out_dir}/$dir/"',g'`
    # -I $testdir/$srcdir_test/ is useful when file name is found using
    # @setfilename
    echo "$dir" >> $logfile
    echo "perl -w -x $testdir/$srcdir_test/../../$command --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ --error-limit=1000 --set-init-var 'TEST 1' --output $out_dir/$dir/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var 'DUMP_TEXI 1' --macro-expand=$out_dir/$dir/$basename.texi $remaining_out_dir $src_file 2>$out_dir/$dir/$basename.2" >> $logfile
    eval "perl -w -x $testdir/$srcdir_test/../../$command --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ --error-limit=1000 --set-init-var 'TEST 1' --output $out_dir/$dir/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var 'DUMP_TEXI 1' --macro-expand=$out_dir/$dir/$basename.texi $remaining_out_dir $src_file 2>$out_dir/$dir/$basename.2"
    ret=$?
  else
    use_latex2html=no
    use_tex4ht=no
    maybe_use_latex2html=no
    if echo "$remaining" | grep -qs -- '-l2h'; then
      maybe_use_latex2html=yes
    fi
    if echo "$remaining" | grep -qs -- 'L2H 1'; then
      maybe_use_latex2html=yes
    fi
    if [ $maybe_use_latex2html = 'yes' ]; then
      if [ "$no_latex2html" = 'yes' ]; then
        echo "S: (no latex2html) $dir"
        continue
      fi
      use_latex2html=yes
      l2h_tmp_dir="--set-init-var 'L2H_TMP $tmp_dir'"
    elif echo "$remaining" | grep -qs -- '-init tex4ht.pm'; then
      if [ "$no_tex4ht" = 'yes' ]; then
        echo "S: (no tex4ht) $dir"
        continue
      fi
      use_tex4ht=yes
    fi
    if [ $use_tex4ht = 'yes' -o $use_latex2html = 'yes' ]; then
      if echo "$remaining" | grep -qs -- '-init mediawiki.pm'; then
       if [ "$no_html2wiki" = 'yes' ]; then
         echo "S: (no html2wiki) $current"
         continue
       fi
      fi
    fi
    one_test_done=yes
    [ -d "$out_dir/$dir" ] && rm -rf "$out_dir/$dir"
    mkdir "$out_dir/$dir"
    remaining_out_dir=`echo $remaining | sed 's,@OUT_DIR@,'"${out_dir}/$dir/"',g'`
    echo "$dir" >> $logfile
    echo "perl -w -x $testdir/$srcdir_test/../../$command --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var L2H_FILE=$testdir/$srcdir_test/../../examples/l2h.init --error-limit=1000 --set-init-var 'TEST 1' $l2h_tmp_dir --output $out_dir/$dir/ $remaining_out_dir $src_file > $out_dir/$dir/$basename.1 2>$out_dir/$dir/$basename.2" >> $logfile
    eval "perl -w -x $testdir/$srcdir_test/../../$command --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var L2H_FILE=$testdir/$srcdir_test/../../examples/l2h.init --error-limit=1000 --set-init-var 'TEST 1' $l2h_tmp_dir --output $out_dir/$dir/ $remaining_out_dir $src_file > $out_dir/$dir/$basename.1 2>$out_dir/$dir/$basename.2"
    ret=$?
    rm -f $out_dir/$dir/*_l2h_images.log $out_dir/$dir/*_tex4ht_*.log \
      $out_dir/$dir/*_tex4ht_*.idv $out_dir/$dir/*_tex4ht_*.dvi \
      $out_dir/$dir/*_tex4ht_tex.html
  fi
  if [ $ret = 0 ]; then
    sed -i -e 's/^texexpand.*/texexpand /' "$out_dir/$dir/$basename.2"
    sed -i '/is no longer supported at.*line/d' "$out_dir/$dir/$basename.2"
    if [ "$use_latex2html" = 'yes' ]; then
      sed -i -e 's/CONTENT="LaTeX2HTML.*/CONTENT="LaTeX2HTML">/' -e \
       's/with LaTeX2HTML.*/with LaTeX2HTML/' "$out_dir/$dir/"*"_l2h.html"
      # "*"_images.pl" files are not guaranteed to be present
      for file in "${outdir}$dir/"*"_images.pl" "${outdir}$dir/"*"_labels.pl"; do
       if [ -f "$file" ]; then
        sed -i -e 's/^# LaTeX2HTML.*/# LaTeX2HTML/' "$file"
       fi
      done
      for file in "${outdir}$dir/"*.htm* "${outdir}$dir/"*-l2h_cache.pm "${outdir}$dir/"*_l2h_images.pl; do
       if [ -f "$file" ]; then
       # different rounding on different computers !
        sed -i -e 's/WIDTH="\([0-9]*\)\([0-9]\)"/WIDTH="100"/' -e 's/HEIGHT="\([0-9]*\)\([0-9]\)"/HEIGHT="\10"/' "$file"
       fi
      done
      rm -f "$out_dir/$dir/"*".aux"  "$out_dir/$dir/"*"_images.out"
    fi
    if [ "$use_latex2html" = 'yes' -o "$use_tex4ht" = 'yes' ]; then
      rm -f "$out_dir/$dir/$basename.1"
    fi
    if [ -d "$results_dir/$dir" ]; then
      diff -a -u --exclude=CVS --exclude=.svn --exclude='*.png' --exclude='*_l2h.css' -r "$results_dir/$dir" "$out_dir/$dir" 2>>$logfile > "$diffs_dir/$dir.diff"
      dif_ret=$?
      if [ $dif_ret != 0 ]; then
        echo "D: $diffs_dir/$dir.diff"
        return_code=1
      else
        rm "$diffs_dir/$dir.diff"
      fi
    else
      echo "no res: $dir"
    fi
  else
    echo "F: $out_dir/$dir/$basename.2"
    return_code=1
  fi
done < "$driving_file"

rm -rf $tmp_dir

if [ "$one_test" = 'yes' -a "z$one_test_done" != "zyes" ]; then
  echo "$the_test $the_file test not found"
fi

exit $return_code


code:
#! /bin/sh
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.

#set -x

#echo "SRCDIR $srcdir srcdir_test $srcdir_test"

LC_ALL=C; export LC_ALL

res_dir=res
out_dir=out
command=texi2html.pl
diffs_dir=diffs

logfile=tests.log
main_command='texi2any.pl'

commands='texi2html.pl: makeinfo.pl:_info texi2any.pl:_all'

clean=no
if [ z"$1" = 'z-clean' ]; then
  clean=yes
  shift
fi

copy=no
if [ z"$1" = 'z-copy' ]; then
  [ -d "$res_dir" ] || mkdir "$res_dir"
  copy=yes
  shift
fi

no_latex2html=yes
if which latex2html > /dev/null 2>&1; then
  no_latex2html=no
fi

no_tex4ht=yes
if which httexi > /dev/null 2>&1; then
  no_tex4ht=no
fi

no_html2wiki=yes
if which html2wiki > /dev/null 2>&1; then
  no_html2wiki=no
fi

one_test=no
if [ z"$1" != 'z' ]; then
  one_test=yes
  the_test=$1
  if [ "z$the_test" = "ztexi" ]; then
    the_file=$2
    [ "z$the_file" != "z" ] && the_basename=`basename $the_file .texi`
  fi
fi

if [ "z$srcdir_test" = 'z' ]; then
  testdir=.
  srcdir_test=.
else
  if [ "z$srcdir" = 'z' ]; then
     testdir=..
  else
     testdir=../$srcdir
  fi
fi

base_results_dir="$testdir/$srcdir_test"
test_file='tests.txt'
driving_file="$testdir/$srcdir_test/$test_file"

if [ -f "$driving_file" ]; then
  :
else
  echo "Cannot find test driving file $driving_file" 1>&2
  exit 1
fi

first_line=`head -1 "$driving_file"`
if echo $first_line |grep -qs '^# formats'; then
  formats=`echo $first_line |sed 's/^# formats //'`
  commands="$commands $formats"
fi

if [ "z$clean" = 'zyes' -o "z$copy" = 'zyes' ]; then
  while read line
  do
    if echo $line | grep -qs '^ *#'; then continue; fi
# there are better ways
    dir=`echo $line | awk '{print $1}'`
    file=`echo $line | awk '{print $2}'`
    remaining=`echo $line | sed 's/[a-zA-Z0-9_./-]\+ \+[a-zA-Z0-9_./-]\+ *//'`
    [ "z$dir" = 'z' -o "$zfile" = 'z' ] && continue
    basename=`basename $file .texi`
    if [ "z$dir" = 'ztexi' ]; then
      dir="texi_${basename}"
    fi
    if [ "z$clean" = 'zyes' ]; then
      for command_dir in $commands; do
        dir_suffix=`echo $command_dir | cut -d':' -f2`
        outdir="${out_dir}${dir_suffix}/"
        [ -d "${outdir}$dir" ] && rm -rf "${outdir}$dir"
      done
    else
      for command_dir in $commands; do
        dir_suffix=`echo $command_dir | cut -d':' -f2`
        outdir="${out_dir}${dir_suffix}/"
        resdir="${res_dir}${dir_suffix}/"
        if [ -d "$resdir" ]; then
          :
        else
          mkdir "$resdir"
        fi
        if [ -d "${outdir}$dir" ]; then
          if [ -d "${resdir}$dir" ]; then
          # ugly hack to avoid CVS and .svn
            rm -f "${resdir}$dir/"?*.*
          else
             mkdir "${resdir}$dir/"
          fi
          cp -r "${outdir}$dir/"* "${resdir}$dir/"
          rm -f "${resdir}$dir/"*.png "${resdir}$dir/"*_l2h.css
        else
          echo "No dir ${outdir}$dir" 1>&2
        fi
      done
    fi
  done < "$driving_file"
  exit 0
fi

. ../path_separator || exit 1

[ -d "$diffs_dir" ] || mkdir "$diffs_dir"
for command_dir in $commands; do
  dir_suffix=`echo $command_dir | cut -d':' -f2`
  outdir="${out_dir}${dir_suffix}/"
  [ -d "${outdir}" ] || mkdir "${outdir}"
done

if tmp_dir=`mktemp -p /tmp -d l2h_t2h_XXXXXXXX`; then
  :
else
  exit 1
fi

echo "base_result_dir $base_results_dir, driving_file $driving_file" > $logfile

return_code=0

while read line
do
  if echo $line | grep -qs '^ *#'; then continue; fi
# there are better ways
  current=`echo $line | awk '{print $1}'`
  file=`echo $line | awk '{print $2}'`
  [ "z$current" = 'z' -o "$zfile" = 'z' ] && continue
  basename=`basename $file .texi`
  remaining=`echo $line | sed 's/[a-zA-Z0-9_./-]\+ \+[a-zA-Z0-9_./-]\+ *//' | sed 's,@PATH_SEPARATOR@,'"${PATH_SEPARATOR}$testdir/$srcdir_test/"',g'`
  src_file="$testdir/$srcdir_test/$file"
  if [ $one_test = 'yes' -a "z$current" != "z$the_test" ]; then
    continue
  fi
  for command_dir in $commands; do
    format_option=
    command=`echo $command_dir | cut -d':' -f1`
    dir_suffix=`echo $command_dir | cut -d':' -f2`
    format=`echo $dir_suffix |sed 's/^_//'`
    if [ z"$command" = 'z' ]; then
      command=$main_command
      format_option="--$format"
    fi
    command_run=
    for command_location_dir in "$testdir/$srcdir_test/../../" ../../; do
      if [ -f "$command_location_dir/$command" ]; then
        command_run="$command_location_dir/$command"
        break
      fi
    done
    if [ z"$command_run" = 'z' ]; then
      echo "Command $command not found"
      exit 1
    fi
    export T2H_HOME="`pwd`""/$testdir/$srcdir_test/../../"
    outdir="${out_dir}${dir_suffix}/"
    results_dir="$testdir/$srcdir_test/${res_dir}${dir_suffix}"
    if [ "z$current" = 'ztexi' ]; then
      if [ $one_test = 'yes' -a "z$the_basename" != 'z' -a "z$basename" != "z$the_basename" ]; then
        continue 2
      fi
      one_test_done=yes
      dir="texi_${basename}"

      [ -d "${outdir}$dir" ] && rm -rf "${outdir}$dir"
      mkdir "${outdir}$dir"
      remaining_out_dir=`echo $remaining | sed 's,@OUT_DIR@,'"${outdir}$dir/"',g'`
      command_file=
      # -I $testdir/$srcdir_test/ is useful when file name is found using
      # @setfilename
      echo "$command $dir" >> $logfile
      echo "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ --error-limit=1000 --set-init-var TEST=1 --output ${outdir}$dir/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var=DUMP_TEXI=1 --macro-expand=${outdir}$dir/$basename.texi $remaining_out_dir $src_file 2>${outdir}$dir/$basename.2" >> $logfile
      eval "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ --error-limit=1000 --set-init-var TEST=1 --output ${outdir}$dir/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var=DUMP_TEXI=1 --macro-expand=${outdir}$dir/$basename.texi $remaining_out_dir $src_file 2>${outdir}$dir/$basename.2"
      ret=$?
    else
      one_test_done=yes
      use_latex2html=no
      use_tex4ht=no
      l2h_tmp_dir=
      maybe_use_latex2html=no
      if echo "$remaining" | grep -qs -- '-l2h'; then
        maybe_use_latex2html=yes
      fi
      if echo "$remaining" | grep -qs -- 'L2H 1'; then
        maybe_use_latex2html=yes
      fi
      if [ $maybe_use_latex2html = 'yes' ]; then
        if [ "$no_latex2html" = 'yes' ]; then
          echo "S: (no latex2html) $current"
          continue 2
        fi
        use_latex2html=yes
        l2h_tmp_dir="--set-init-var 'L2H_TMP $tmp_dir'"
      elif echo "$remaining" | grep -qs -- '-init tex4ht.pm'; then
        if [ "$no_tex4ht" = 'yes' ]; then
          echo "S: (no tex4ht) $current"
          continue 2
        fi
        use_tex4ht=yes
      fi
      if [ $use_tex4ht = 'yes' -o $use_latex2html = 'yes' ]; then
        if echo "$remaining" | grep -qs -- '-init mediawiki.pm'; then
         if [ "$no_html2wiki" = 'yes' ]; then
           echo "S: (no html2wiki) $current"
           continue 2
         fi
        fi
      fi
      dir=$current
      [ -d "${outdir}$dir" ] && rm -rf "${outdir}$dir"
      mkdir "${outdir}$dir"
      remaining_out_dir=`echo $remaining | sed 's,@OUT_DIR@,'"${outdir}$dir/"',g'`
      echo "$command $dir" >> $logfile
      echo "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var L2H_FILE=$testdir/$srcdir_test/../../examples/l2h.init --error-limit=1000 --set-init-var TEST=1 --set-init-var L2H_CLEAN=0 $l2h_tmp_dir --output ${outdir}$dir/ $remaining_out_dir $src_file > ${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2" >> $logfile
      eval "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ --conf-dir $testdir/$srcdir_test/../ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var L2H_FILE=$testdir/$srcdir_test/../../examples/l2h.init --error-limit=1000 --set-init-var TEST=1 --set-init-var L2H_CLEAN=0 $l2h_tmp_dir --output ${outdir}$dir/ $remaining_out_dir $src_file > ${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2"
      ret=$?
      # *_l2h_images.pl has not reproducible cached entries
      rm -f ${outdir}$dir/*_l2h_images.log ${outdir}$dir/*_l2h_images.pl \
        ${outdir}$dir/*_tex4ht_*.log \
        ${outdir}$dir/*_tex4ht_*.idv ${outdir}$dir/*_tex4ht_*.dvi \
        ${outdir}$dir/*_tex4ht_tex.html* ${outdir}$dir/*_l2h.html.*
    fi
    if [ $ret = 0 ]; then
      diff_base="${dir}${dir_suffix}"
      sed -i -e 's/^texexpand.*/texexpand /' "${outdir}$dir/$basename.2"
      sed -i '/is no longer supported at.*line/d' "${outdir}$dir/$basename.2"
      if [ "$use_latex2html" = 'yes' ]; then
        # in case the output format is not html there won't be "*"_l2h.html files
        for file in "${outdir}$dir/"*"_l2h.html"; do
         if [ -f "$file" ]; then
          sed -i -e 's/CONTENT="LaTeX2HTML.*/CONTENT="LaTeX2HTML">/' -e \
            's/with LaTeX2HTML.*/with LaTeX2HTML/' "$file"
          fi
        done
        # "*"_images.pl" files are not guaranteed to be present
        for file in "${outdir}$dir/"*"_images.pl" "${outdir}$dir/"*"_labels.pl"; do
         if [ -f "$file" ]; then
          sed -i -e 's/^# LaTeX2HTML.*/# LaTeX2HTML/' "$file"
         fi
        done
        for file in "${outdir}$dir/"*.htm* "${outdir}$dir/"*-l2h_cache.pm "${outdir}$dir/"*_l2h_images.pl; do
         if [ -f "$file" ]; then
         # different rounding on different computers !
          sed -i -e 's/WIDTH="\([0-9]*\)\([0-9]\)"/WIDTH="100"/' -e 's/HEIGHT="\([0-9]*\)\([0-9]\)"/HEIGHT="\10"/' "$file"
         fi
        done
        rm -f "${outdir}$dir/"*".aux"  "${outdir}$dir/"*"_images.out"
      fi
      if [ "$use_latex2html" = 'yes' -o "$use_tex4ht" = 'yes' ]; then
        rm -f "${outdir}$dir/$basename.1"
      fi
      if [ -d "$results_dir/$dir" ]; then
        diff -a -u --exclude=CVS --exclude=.svn --exclude='*.png' --exclude='*_l2h.css' -r "$results_dir/$dir" "${outdir}$dir" 2>>$logfile > "$diffs_dir/$diff_base.diff"
        dif_ret=$?
        if [ $dif_ret != 0 ]; then
          echo "D: $diffs_dir/$diff_base.diff"
          return_code=1
        else
          rm "$diffs_dir/$diff_base.diff"
        fi
      else
        echo "no res($format): $dir"
      fi
    else
      echo "F: ${outdir}$dir/$basename.2"
      return_code=1
    fi
  done
done < "$driving_file"

rm -rf $tmp_dir

if [ "$one_test" = 'yes' -a "z$one_test_done" != "zyes" ]; then
  echo "$the_test $the_file test not found"
fi

exit $return_code


code:
EXTRA_DIST = sectioning.texi novalidate.texi first_section_no_node.texi \
 nodes_before_top.texi nodes_after_top.texi section_nodes_before_top.texi \
 nodes_after_top_before_section.texi nodes_test.texi no_section.texi \
 no_node.texi no_section_no_top.texi one_section.texi one_node.texi \
 one_node_and_section.texi first_section_and_nodes.texi double_top.texi \
 rec_nodes.texi lower_subsub.texi raiselowersections.texi \
 top_without_node.texi before_node_and_section.texi \
 section_before_chapter.texi node_footnote.texi at_commands_in_refs.texi \
 test_refs.texi equivalent_nodes.texi nodename_parentheses.texi \
 section_file.texi html-top.texi menu-whitespace.texi nodes_id.texi \
 node-whitespace.texi two_footnotes_in_nodes.texi section_in_unnumbered.texi \
 top.texi more_nodes_than_sections.texi no_node_no_top.texi \
 placed_things_before_element.texi menutextorder.texi semi_auto.texi \
 no_element.texi anchor_in_footnote.texi test_two_include.texi \
 only_documentencoding.texi more_sections_than_nodes.texi \
 nodename_parentheses.texi one_element.texi empty_nodes.texi \
 weird_at_commands_in_nodes.texi double_node_anchor_float.texi \
 nodes_after_top_before_chapter.texi \
 chapter_before_part.texi part_before_section.texi \
 part_before_chapter.texi section_before_part.texi \
 hole_in_sectioning.texi section_before_top_no_node.texi \
 section_before_top.texi \
 part_chapter_after_top.texi part_node_chapter_after_top.texi \
 node_part_chapter_after_top.texi node_part_chapter_after_chapter.texi \
 part_node_after_top.texi part_node_before_top.texi \
 section_chapter_before_top_nodes.texi section_chapter_before_top.texi \
 part_node_appendix.texi part_appendix.texi part_node_part_appendix.texi \
 part_node_part_node_appendix.texi part_node_node_part_appendix.texi \
 other_at_comands_in_nodes_refs.texi text_before_line_command.texi \
 loop_nodes.texi \
 test_directions.init test_renamed_nodes.init tests.txt renamednodes.cnf-ref \
 res res_all res_info res_docbook res_xml res_html

DISTCLEANFILES = tests.log tests.out

distclean-local:
	rm -rf out out_all out_info out_docbook out_xml out_html diffs

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


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

@node Top
@top Top

In top node@footnote{in footnote
@anchor{Anchor in footnote}.
}

@menu
* chapter::
@end menu

@node chapter
@chapter Chap

@ref{Anchor in footnote}.

@bye


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

@node Top
@top Top

@menu
* A @sc{sc} node @"i @"{@dotless{i}} @`{@=E} @l{} @,{@'C} @exclamdown{}::
@end menu

@node A @sc{sc} 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}.
@bye


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

@setfilename before_node_and_section

Garbage
ref to Top @ref{Top}.
@cindex index entry before anything
Hey@footnote{a footnote}.
An anchor @anchor{anchor1}.

@menu
* node1::
@end menu

@node Top
@top top @@top section
Node top

ref to anchor1@footnote{another footnote}, which is before @@node Top: @ref{anchor1}.
@menu
* node1::
@end menu

@node node1
@chapter node1 chapter

@printindex cp

@bye


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

@chapter chapter

@part part

@bye


code:
@node node1

@node node1

@anchor{node1}

@anchor{anchor1}

@node anchor1

@float Text, node1
@end float

@float Text, anchor1
@end float

@float Text, float1
@end float

@node float1


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

@setfilename double_top

@node ToP, top
Top node

@menu
* top::
* TOP:: myself
@end menu

@node top,,ToP,Top
second node (@@node top,,ToP,Top).
anchor@{TOP@} @anchor{TOP}.
ref to TOP: @ref{TOP}.

@bye


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

@setfilename empty_nodes.info
@node Top
@top Test empty nodes

@xref{@:}.
@xref{@asis{ }}.

@node

@node @c comment

@node @
@node @:
@node @asis{ }

@bye


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

@setfilename equivalent_nodes.info

@node before top, @asis{node},,(dir)

@node Top

Equivalent nodes in node line and in menu.

@menu
* @strong{node}::
@end menu

@node node

@float Figure, @samp{node}
A figure
@end float

@listoffloats Figure

Ref to node @ref{node}.

Ref to @@samp@{node@} @ref{@samp{node}}.

@bye


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

@setfilename first_section_and_nodes.info

Garbage

@titlefont{Example with a section before the top node and another node}

@unnumbered before nodes

in unnumbered

@node Top
Top node

@titlefont{   }
@titlefont{This is the top node}
@titlefont{second titlefont}

@node second node,,,(dir)

@titlefont{This is the second node}
second node

@bye


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

@setfilename first_section_no_node

Garbage

@unnumbered before nodes

in unnumbered

@node Top
@top top section
Top node

@node second node,,,(dir)
@section second

second node

@bye


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

@node Top
@top Top

@chapter Chapter

@section section

@subsubsection subsubsection with no subsection above

@subsection the subsection

@bye


code:
\input texinfo
@setfilename top.info

@node start
@top

@bye


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

@setfilename loop_nodes.info

@node Top
@top top

@menu
* node up::
@end menu

@node node up,,,node down

@menu
* node middle::
@end menu

@node node middle,,,node up

@menu
* node down::
@end menu

@node node down

@bye


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

@node Top
@top

@menu
* Chapter::
@end menu

@node Chapter
@chapter Chapter

@menu
* Section::
@end menu

@node Section
@section Section

@menu
* Subsection::
@end menu

@node Subsection
@subsection Subsection

@menu
* Subsubsection::
* Lowered subsec::
@end menu

@node Subsubsection
@subsubsection Subsubsection

@lowersections
@node Lowered subsec
@subsection Lowered subsec

@menu
* Lowered subsubsection::
@end menu

@node Lowered subsubsection
@subsubsection Lowered subsubsection
@raisesections

@contents
@bye


code:
@setfilename top.info

@node Top
@top Top

@menu
* first::
@end menu

@node first
@chapter first

@menu   @c
* second::
@end menu

@node second
@section second


code:
\input texinfo
@setfilename menutextorder.texi

@menu
* foo::
* bar::
@end menu

@node bar
@chapter bar

@menu
* onesub2::
@end menu

@node onesub1
@section One sub 1

@node onesub2
@section One sub 2

@node foo
@chapter foo

@menu
* sub1::
* sub3::
* sub2::
@end menu

@node sub1
@section Sub1

@node sub2
@section Sub2

@node sub3
@section Sub3

@bye


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

@setfilename more_nodes_than_sections.info

@unnumbered Unnumbered

Unnumbered before top.

@node Top
@top top section
Top node

@menu
* section node::
@end menu

@chapter Chapter

In chapter

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

section.

@contents

@bye


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

@setfilename more_sections_than_nodes.info

@node Top
@top top

@menu
* n c2::
* n c3::
* n c3 s1 s2::
@end menu

@chapter c1

@node n c2
@chapter c2

@section s1

@node n c3, n c3 s1 s2, n c2, Top
@chapter c3

@menu
* n c3 s 2::
@end menu

@section C3 s1

@node n c3 s 2
@section c3 s2

@section c3 s3

@chapter c4

@section c3 s1

@subsection c3 s1 s1

@node n c3 s1 s2,,n c3,Top
@subsection c3 s1 s2

@appendix appendix

@bye


code:
\input texinfo
@setfilename no_element.info
@settitle no_element test
@documentencoding ISO-8859-1

@anchor{An anchor}

Ref to the anchor:
@ref{An anchor}

Ref to the anchor in footnote:
@ref{Anchor in footnote}.

@footnote{In footnote.

@anchor{Anchor in footnote}

Ref to main text anchor
@ref{An anchor}
}

@float , float anchor
In float
@end float

Ref to float
@ref{float anchor}.

@menu
* An anchor::                menu entry pointing to the anchor.
@end menu

@cindex index entry

@bye


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

@setfilename no_node

Garbage

@unnumbered unnumbered

in unnumbered

@top top section
Top node

@section second

second node

@chapter Chapter

Text of chapter

@section Section of chapter

@subsection subsection 1

@subsection subsection 2

@chapter Chapter 2

Text of chapter 2

@bye


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

@setfilename no_node_no_top

Garbage

@unnumbered unnumbered

in unnumbered

@chapter First chapter
In first chapter.

@section second

second node

@chapter Chapter

Text of chapter

@section Section of chapter

@subsection subsection 1

@subsection subsection 2

@chapter Chapter 2

Text of chapter 2

@bye


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

@setfilename no_section

Garbage

@titlefont{Titlefont before top node}

@node ToP
Top node

@menu
* second node::
* TOP:: myself
@end menu

@node second node,,top,TOP
second node (@@node second node,,top,TOP).
@c anchor TOP: @anchor{TOP}.

@menu
* other node::
@end menu

@node other node,,,second node
@c anchor top @anchor{top}.
ref to TOP @ref{TOP}.

@bye


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

@setfilename no_section_no_top

Garbage

@node first,,,(dir)
first node

@menu
* second node::
@end menu

@node second node,,first,first
second node

@bye


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

@setfilename node-whitespace.info

@c Makeinfo should collapse whitespace in node names.

@ifnottex

@node Top
@top Whitespace in Node Names

@end ifnottex

@menu
* Chap  1.3  ::
* Chap  1.4  :Chap  1.4.
@end menu

@node Chap  1.3
@chapter Chap 1.3

Can I reach here?

@node Chap      1.4
@chapter Another space test

How about here?
@xref{Chap      1.3}.

@bye


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

@setfilename node_footnote.info

@node Top

@menu
* @'a::
* @^a::
* chapter::
* @`a::
@end menu

@node @'a

node @'a,
Footnote 1@footnote{foot 1 @'a}.

@node @^a

node @^a,
Footnote 2@footnote{foot 2 @^a}.

@node chapter
@chapter chapter

@menu
* @`a::
@end menu

@node @`a

node @`a,
Footnote 3@footnote{foot 3 @`a}.

@bye


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

@node Top
@top top

@menu
* chapter node::
* part chapter node::
@end menu

@node chapter node

@chapter chapter node

@node part chapter node
@part part

@chapter chapter with part node

@bye


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

@node Top
@top top

@menu
* chapter node::
@end menu

@node chapter node
@part part

@chapter chapter

@bye


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

@node Top
@top The top node

@menu
* Node (with parentheses)::
* Other node::
* (manual)node::
@end menu

@node Node (with parentheses)
@chapter Section (nodename with parentheses)

Dummy section

@node Other node
@chapter Section (nodename without parentheses)

Dummy link to @ref{Node (with parentheses)}.

Dummy link to @ref{(manual)node}.

@node (manual)node
@chapter (manual)node

Dummy section with (manual)node node syntax.

@contents
@bye


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

@setfilename nodes_after_top.info

@node Top
Top node
@menu
* second node::
* third node::
@end menu

@node second node, third node,Top,Top

second node

@node third node,,second node,Top

@bye


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

@setfilename nodes_after_top_before_chapter.info

@node Top
Top node
@menu
* second node::
* third node::
@end menu

@node second node, third node,Top,Top

second node

@node third node,,second node,Top
@chapter chapter

@bye


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

@setfilename nodes_after_top_before_section.info

@node Top
Top node
@menu
* second node::
* third node::
@end menu

@node second node, third node,Top,Top

second node

@node third node,,second node,Top
@subsection subsection

@bye


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

@setfilename nodes_before_top

@node first, Top, ,(dir)

in first node
@menu
* node in menu before top::
@end menu

@titlefont{A titlefont in a node}

@node node in menu before top,,,first

node in menu before top text

@node Top,,first
@top top section
Top node
@menu
* second node::
@end menu

@node second node
@chapter a chapter

second node

@bye


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

@setfilename nodes_id.info

@node Top
@top Test nodes before constructs for docbook id construction

@menu
* node1::
* node2::
* node3::
* node4::
* node5::
* node6::
* node7::
* node8::
* node9::
* node10::
* node11::
* node12::
* node13::
* node14::
@end menu

@node node1,,Top,Top

Text.

@node node2,,,Top

@table @asis
@item table
descr
@end table

@node node3,,,Top

@multitable @columnfractions 6 7
@headitem mu--ltitable headitem @tab another tab
@item mu--ltitable item @tab multitable tab
@item mu--ltitable item 2 @tab multitable tab 2
@item lone mu--ltitable item
@end multitable

@node node4,,,Top

@inforef{chapter, cross ref name, file name}

@node node5,,,Top

@xref{node4, cross ref name, title, file name, manual}.

@node node6,,,Top

@xref{node5}.

@node node7,,,Top

@cartouche
cartouche
@end cartouche

@node node8,,,Top

@itemize
@item item
@end itemize

@node node9,,,Top

@code{some code}.

@node node10,,,Top

@group
@example
example
@end example
@end group

@node node11,,,Top

@footnote{@cite{footnote}}.

@node node12,,,Top

@float Text
float
@caption{Caption}
@end float

@node node13,,,Top

@subheading subheading

@node node14,,,Top

@image{image}.

@bye


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

@setfilename nodes_test.info

Garbage

@titlefont{A title font in the text before a node}

@node first,node1,lop,lop
@c @subsection s1
node in first but not the first...

@node lop, first,nonexistant node in prev for @@top,(texinfo) Copying
@top

@menu
* first::
* node1::
* node inexistant in menu:: non existing
* node1:description.  Description and node reversed
* description:node1.  Right description and node
* (info)::
@end menu

@node Top
This is the top node...

@node node1

@c Some text

@unnumbered
node1 text

@node node below node1,,,node1

Should be a warning for not being in menus and not having a menu entry in
node1

@bye


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

@setfilename novalidate.info

@novalidate

@node first, Top, ,(dir)

@xref{it doesn't exists}
in first node
@menu
* node in menu before top::
* other node in menu before top::
@end menu

@node node in menu before top,,,first

node in menu before top text

@node other node in menu before top, node not existing,,,first

@node Top,,first
@top top section
Top node
@menu
* second node::
* other node not existing::
@end menu

@node second node
@chapter a chapter

second node

@bye


code:
\input texinfo
@setfilename one_element.info
@settitle one_element test
@documentencoding ISO-8859-1

@node Top
@top top section

@anchor{An anchor}

Ref to the anchor:
@ref{An anchor}

Ref to the anchor in footnote:
@ref{Anchor in footnote}.

@footnote{In footnote.

@anchor{Anchor in footnote}

Ref to main text anchor
@ref{An anchor}
}

@float , float anchor
In float
@end float

Ref to float
@ref{float anchor}.

@menu
* An anchor::                menu entry pointing to the anchor.
@end menu

@cindex index entry

@bye


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

@setfilename one_node

Garbage

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

anchor ref @anchor{ref}.

@menu
* (gcc):: ref to gcc
@end menu

ref to ref @ref{ref}.

Some text.

@bye


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

@setfilename one_node_and_section

Garbage

@node one node
Top node

anchor ref @anchor{ref}.

@subsection One section

@menu
* (gcc):: ref to gcc
@end menu

ref to ref @ref{ref}.

Some text@footnote{A footnote}.

@bye


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

@setfilename one_section

Garbage

@subsection The subsection

anchor ref @anchor{ref}.

@menu
* (gcc):: ref to gcc
@end menu

ref to ref @ref{ref}.

Some text.

@bye


code:
\input texinfo
@setfilename only_documentencoding.info

@documentencoding ISO-8859-1


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

@node Top
@top Top

@menu
* @- @{ @}::
* @  @	 @! @* @. @: .@: @? @@::
* @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}::
* @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}::
* @url{http://somewhere_aaa} @url{url, text} @uref{/man.cgi/1/ls,,ls}::
@end menu

@node @- @{ @}
@chapter @- @{ @}

@node @  @	 @! @* @. @: .@: @? @@
@chapter @  @	 @! @* @. @: .@: @? @@

@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 @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 @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{@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{@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{@url{http://somewhere_aaa} @url{url, text} @uref{/man.cgi/1/ls,,ls}}

@bye


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

@node Top
@top top

@menu
* chapter node::
@end menu

@part Part 1

@node chapter node
@chapter chapter

@appendix Appendix

@bye


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

@part part

@chapter chapter

@bye


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

@part part

@section section

@bye


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

@node Top
@top top

@menu
* chapter::
@end menu

@part part

@node chapter
@chapter chapter

@bye


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

@node Top
@top top

@menu
* part node after top::
@end menu

@node part node after top
@part part

@bye


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

@node Top
@top top

@menu
* chapter node::
* appendix node::
@end menu

@part Part 1

@node chapter node
@chapter chapter

@node appendix node
@appendix Appendix

@bye


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

@node part node before top, Top,,Top
@part part

@node Top
@top top

@menu
* part node before top::
@end menu

@bye


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

@node Top
@top top

@menu
* a node after part::
* chapter::
@end menu

@part part

@node a node after part, chapter, Top, Top
After a node after part

@node chapter
@chapter chapter

@bye


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

@node Top
@top top

@menu
* chapter node::
* appendix part::
@end menu

@part Part 1

@node chapter node
@chapter chapter

@node appendix part
@part Part Appendix

@appendix Appendix

@bye


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

@node Top
@top top

@menu
* chapter node::
@end menu

@part Part 1

@node chapter node
@chapter chapter

@part Part Appendix

@appendix Appendix

@bye


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

@node Top
@top top

@menu
* chapter node::
* appendix node::
@end menu

@part Part 1

@node chapter node
@chapter chapter

@part Part Appendix

@node appendix node
@appendix Appendix

@bye


code:
\input texinfo
@setfilename placed_things_before_element.info
@settitle before element test

@anchor{An anchor}

Ref to the anchor:
@ref{An anchor}

Ref to the anchor in footnote:
@ref{Anchor in footnote}.

@footnote{In footnote.

@anchor{Anchor in footnote}

Ref to main text anchor
@ref{An anchor}
}

@float , float anchor
In float
@end float

Ref to float
@ref{float anchor}.

@menu
* An anchor::                menu entry pointing to the anchor.
@end menu

@cindex index entry

@section section

Ref to anchor
@ref{An anchor}

Ref to footnote anchor
@ref{Anchor in footnote}

@bye


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

@node Top
@top
@menu
* Chapter::
* Second chapter::
@end menu

@node Chapter
@chapter Chapter

@menu
@ifclear include
* Chapter in included file::
@end ifclear
@end menu

@set do-top

@lowersections

@ifclear include
@include section_file.texi
@end ifclear
@raisesections

@clear do-top

@node Second chapter
@chapter Second chapter

Second chapter

@contents
@bye


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

@setfilename rec_nodes

@node ToP
Top node

@menu
* second node::
* node following second::
@end menu

@node second node,,Top,Top
second node (@@node second node,,top,TOP).
@c anchor TOP: @anchor{TOP}.

@menu
* other node::
* second node::
@end menu

@node other node,,,second node
@c anchor top @anchor{top}.
@c ref to TOP @ref{TOP}.

@menu
* other node::
@end menu

@node node up node following second,,,node following second
@menu
* node following second::
@end menu

in node up node following second

@node node following second,,,node up node following second

in node following second
@menu
* node up node following second::
@end menu

@bye


code:
 @c a comment

@code{a node beginning with @@c}
 old strong  @strong{node}
 @@{} @strong{node}

@@{} error here

some node an error too


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

@section section

@chapter chapter

@bye


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

@section section

@part part

@bye


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

@node section node,,,Top
@section section

@node Top
@top top

@menu
*section node::
@end menu

@bye


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

@section section

@top top

@bye


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

@setfilename section_chapter_before_top.info

@section section

@chapter chapter

@top top

@bye


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

@setfilename section_chapter_before_top_nodes.info

@node section node
@section section

@node chapter node
@chapter chapter

@menu
* section node::
@end menu

@node Top
@top top

@menu
* chapter node::
@end menu

@bye


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

@ifclear do-top
@node Top
@top

@menu
* Chapter in included file::
@end menu
@end ifclear

@node Chapter in included file
@chapter Chapter in included file

@menu
* Section::
@end menu

@node Section
@section Section

@menu
* Subsection::
@end menu

@node Subsection
@subsection Subsection

@ifset subsub
@menu
* Subsubsection::
@end menu

@node Subsubsection
@subsubsection Subsubsection
@end ifset

@ifclear do-top
@contents
@bye
@end ifclear


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

@setfilename section_in_unnumbered.info
@setcontentsaftertitlepage

@node Top
@top Test section in unnumbered

@contents

Menu:

@menu
* chapter::
* unnumbered::
* chapter 2::
* chapter 3::
* unnumbered 4::
@end menu

@node chapter
@chapter chapter

@menu
* section in chapter::
@end menu

@node section in chapter
@section section in chapter

@node unnumbered
@unnumbered unnumbered

@menu
* section in unnumbered::
@end menu

@node section in unnumbered
@section section in unnumbered

@node chapter 2
@chapter chapter 2

@menu
* unnumberedsec 2::
* unnumberedsec 2-1::
@end menu

@node unnumberedsec 2
@unnumberedsec unnumbered section 2

@menu
* unnumbered sub 2::
* numbered sub 2::
* unnumbered sub2 2::
* numbered sub2 2::
@end menu

@node unnumbered sub 2
@unnumberedsubsec unnumbered subsection 2

@node numbered sub 2
@subsection numbered subsection 2

@node unnumbered sub2 2
@unnumberedsubsec unnumbered subsection2 2

@node numbered sub2 2
@subsection numbered subsection2 2

@node unnumberedsec 2-1
@unnumberedsec unnumberedsec 2-1

@menu
* numbered sub 2-1::
@end menu

@node numbered sub 2-1
@subsection numbered subsection 2-1

@node chapter 3
@chapter chapter 3

@menu
* unnumberedsec 3::
* section 3-1::
* unnumberedsec 3-2::
* section 3-3::
* unnumberedsec 3-4::
@end menu

@node unnumberedsec 3
@unnumberedsec unnumbered section 3

@menu
* unnumbered sub 3::
* numbered sub 3::
* unnumbered sub2 3::
* numbered sub2 3::
@end menu

@node unnumbered sub 3
@unnumberedsubsec unnumbered subsection 3

@node numbered sub 3
@subsection numbered subsection 3

@node unnumbered sub2 3
@unnumberedsubsec unnumbered subsection2 3

@node numbered sub2 3
@subsection numbered subsection2 3

@node section 3-1
@section section 3-1

@node unnumberedsec 3-2
@unnumberedsec unnumberedsec 3-2

@menu
* numbered sub 3-2::
@end menu

@node numbered sub 3-2
@subsection numbered subsection 3-2

@node section 3-3
@section section 3-3

@menu
* subsection 3-3::
@end menu

@node subsection 3-3
@subsection subsection 3-3

@node unnumberedsec 3-4
@unnumberedsec unnumberedsec 3-4

@menu
* numbered sub 3-4::
@end menu

@node numbered sub 3-4
@subsection numbered subsection 3-4

@node unnumbered 4
@unnumbered unnumbered  4

@menu
* unnumberedsec 4::
@end menu

@node unnumberedsec 4
@unnumberedsec unnumbered section 4

@menu
* unnumbered sub 4::
* numbered sub 4::
* unnumbered sub2 4::
* numbered sub2 4::
@end menu

@node unnumbered sub 4
@unnumberedsubsec unnumbered subsection 4

@node numbered sub 4
@subsection numbered subsection 4

@node unnumbered sub2 4
@unnumberedsubsec unnumbered subsection2 4

@node numbered sub2 4
@subsection numbered subsection2 4

@c @contents

@bye


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

@setfilename section_nodes_before_top.info

@node first before top, second before top,,Top

@cindex first before top

@node second before top, Top, first before top,Top
@unnumbered Unnumbered before top

@node Top,,second before top,(dir)
@top Top

@menu
* first before top::
* second before top::
* index::
* after index::
* after index node::
@end menu

@node index, after index, Top,Top
@appendix Concept index

@printindex cp

@node after index, after index node, index, Top
@appendix second appendix

@cindex after index

@node after index node,, after index, Top

@cindex after index node

@bye


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

@node Top,First node,(dir)
@top
@menu
* First node::    node 1
  explaination no heading ?
* and here ?
With command @^{@dotless{i}} and
a @cite{me}.

heading
* between node::
node in between

heading
or not ?
* Second node::   node 2

heading with spaces around

* Third node unnumbered:: unnumbered in Top menu
* Last node no description::

description here

@end menu

@node First node,,Top,Top
@chapter first node chapter

first node chapter text
@menu
* unnumbered:: un
* unnumbered2:: un2
* numbered:: nu

@end menu

@node unnumbered
@unnumberedsec unnumbered section

@menu
* unnumbered sub:: un
* numbered sub:: nu
* unnumbered sub2:: un2
* numbered sub2:: nu2
@end menu

@node unnumbered sub
@unnumberedsubsec unnumbered subsection

@node numbered sub
@subsection numbered subsection

@node unnumbered sub2
@unnumberedsubsec unnumbered subsection2

@node numbered sub2
@subsection numbered subsection2

@node unnumbered2
@unnumberedsec unnumbered section2

@menu
*  numbered sub3::
@end menu

@node numbered sub3
@subsection numbered subsection3

@node numbered
@section  numbered section

@node between node,,,Top

between node, node without sectioning node

@node Second node,Third node unnumbered,,Top

Second node text

@chapter second node chapter

second node chapter text.

@node Third node unnumbered
@unnumbered unnumbered chapter

unnumbered chapter text.

@node Last node no description,,Third node unnumbered,Top

@contents
@bye


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

@node Top
@top Top

@menu
* Chap1::
* Section non auto::
@end menu

@node Chap1
@chapter Chapter 1

@menu
* Sec in chapter::
@end menu

@node Sec in chapter
@section Sec in chapter

@node Section non auto,, Chap1, Top
@section Section

@bye


code:
@SECTION_BUTTONS = ();

foreach my $direction (('Up', 'Forward', 'Back', 'Next',
                        'Prev', 'FastForward', 'FastBack', 'This', 'NodeUp',
                        'NodePrev', 'NodeNext', 'NodeForward', NodeBack ))
#                        'NodePrev', 'NodeNext', 'ToplevelPrev', 'ToplevelNext',  'Following' ))

{
    my $direction_node = "node-".$direction;
    my $direction_href = "href-".$direction;
    my $direction_name = "name-".$direction;
    push @SECTION_BUTTONS, \"|", \$direction_node, \$Texi2HTML::NODE{$direction}, \$direction_href, \$Texi2HTML::HREF{$direction}, \$direction_name, \$Texi2HTML::NAME{$direction}, \"|";
}

@MISC_BUTTONS = @SECTION_BUTTONS;
@TOP_BUTTONS = @SECTION_BUTTONS;

1;


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

@setfilename test_refs.info
@node Top
@top Test refs

@menu
* other nodes::
@end menu

@subheading Testing distant nodes

@verb{: a  node :} @ref{ a  node ,,, manual}@*
@example
mono : manual.html#a-node
split: ../manual/a-node.html#a-node
@end example

@verb{;:;} @ref{:,,,manual}
@example
mono : manual.html#_003a
split: ../manual/_003a.html#_003a
@end example

@verb{:Top:} @ref{ top ,,, manual}@*
@example
mono : manual.html#Top
split: ../manual/index.html#Top
@end example

@verb{:(texinfo)Cross References:} @ref{(texinfo)Cross References}
@example
mono: texinfo.html#Cross-References
split: ../texinfo/Cross-References.html#Cross-References
@end example

@subheading Testing manual name

@verb{:../manual/doc.texi:} @ref{node,,, ../manual/doc.texi}@*
@example
mono : doc.html#node
split: ../doc/node.html#node
@end example

@subheading Testing local nodes

@verb{:!_"#$%&'()*+-.:} @ref{!_"#$%&'()*+-.}
@example
target: #_0021_005f_0022_0023_0024_0025_0026_0027_0028_0029_002a_002b_002d_002e
@end example

@verb{:/;<=>?[\]^_`|~:} @ref{/;<=>?[\]^_`|~}@*
@example
target: #_002f_003b_003c_003d_003e_003f_005b_005c_005d_005e_005f_0060_007c_007e
@end example

@verb{:Top:} @ref{ Top}
@example
target: #Top
@end example

@verb{: local   node:} @ref{  local   node}
@example
target: #local-node
@end example

@node other nodes, !_"#$%&'()*+-., Top, Top
@chapter Chapter with nodes

@example
id: other-nodes
@end example

@verb{:Top:} @ref{ Top}
@example
target: #Top
@end example

@menu
* !_"#$%&'()*+-.::
* /;<=>?[\]^_`|~::
* local node::
@end menu

@node !_"#$%&'()*+-., /;<=>?[\]^_`|~, other nodes, other nodes
@example
id: _0021_005f_0022_0023_0024_0025_0026_0027_0028_0029_002a_002b_002d_002e
@end example

@node /;<=>?[\]^_`|~,local   node,!_"#$%&'()*+-., other nodes
@example
id: 002f_003b_003c_003d_003e_003f_005b_005c_005d_005e_005f_0060_007c_007e
@end example

@node  local   node,,/;<=>?[\]^_`|~,other nodes
@example
id: local-node
@end example

@bye


code:
%renamed_nodes = (
 'old node' => 'node',
 'Top' => 'node',
 'ToP' => 'node',
 'old non existing' => 'non existing file',
 '@strong{}' => 'node',
);


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

@setfilename test_two_include.info

@node Top

Include version
@include version.texi

include inc_file
@include inc_file.texi

After inclusion.

@bye


code:
# formats :_xml :_docbook :_html
texi html-top.texi
texi empty_nodes.texi
top top.texi
sectioning sectioning.texi
#--debug 1
sectioning_directions sectioning.texi --init test_directions.init
novalidate novalidate.texi
#makeinfo_novalidate_split novalidate.texi --init makeinfo.pm --no-node-file
# --debug 255
#makeinfo_novalidate_unsplit novalidate.texi --init makeinfo.pm --split no --no-node-file
#makeinfo_novalidate_unsplit_node_file novalidate.texi --init makeinfo.pm --split no
# in docbook, the @top 'chapter' is closed before the section, makeinfo
# closes it after the section.
# also text before first chapter is not allowed in docbook.
first_section_no_node first_section_no_node.texi
nodes_before_top nodes_before_top.texi
nodes_after_top nodes_after_top.texi --set-customization-variable 'USE_NODES 1'
nodes_after_top_no_node nodes_after_top.texi
section_nodes_before_top section_nodes_before_top.texi
nodes_after_top_before_chapter nodes_after_top_before_chapter.texi
nodes_after_top_before_section nodes_after_top_before_section.texi --split chapter
nodes_after_top_before_section_use_nodes nodes_after_top_before_section.texi --set-customization-variable 'USE_NODES 1'
nodes_after_top_before_section_use_nodes_chapter nodes_after_top_before_section.texi --set-customization-variable 'USE_NODES 1' --split chapter
nodes_after_top_before_chapter_use_nodes_chapter nodes_after_top_before_chapter.texi --set-customization-variable 'USE_NODES 1' --split chapter
# --debug 255
nodes_test nodes_test.texi
no_section_no_node no_section.texi
no_section no_section.texi --set-customization-variable 'USE_NODES 1'
no_section_directions no_section.texi --init test_directions.init --set-customization-variable 'USE_NODES 1'
no_section_directions_no_node no_section.texi --init test_directions.init
no_node no_node.texi
no_node_directions no_node.texi --init test_directions.init
no_node_chapter_split no_node.texi --split chapter
no_node_no_top no_node_no_top.texi
no_section_no_top no_section_no_top.texi --set-customization-variable 'USE_NODES 1'
no_section_no_top_no_node no_section_no_top.texi
one_section one_section.texi
one_node_no_node one_node.texi
one_node one_node.texi --set-customization-variable 'USE_NODES 1'
one_node_and_section one_node_and_section.texi
first_section_and_nodes first_section_and_nodes.texi
double_top double_top.texi
rec_nodes rec_nodes.texi --set-customization-variable 'USE_NODES 1'
rec_nodes_no_node rec_nodes.texi
#makeinfo_rec_nodes rec_nodes.texi --init makeinfo.pm --no-node-files
lower_subsub lower_subsub.texi
raiselowersections raiselowersections.texi
top_without_node top_without_node.texi
before_node_and_section before_node_and_section.texi
section_before_chapter section_before_chapter.texi
node_footnote_end node_footnote.texi --footnote-style=end
# --debug 255
node_footnote_use_node node_footnote.texi --set-customization-variable 'USE_NODES 1' --node-files --footnote-style=end --split node
test_refs test_refs.texi
test_refs_chapter test_refs.texi --split chapter
test_refs_nodes test_refs.texi --split node --node-files --set-customization-variable 'USE_NODES 1'
at_commands_in_refs at_commands_in_refs.texi
other_at_comands_in_nodes_refs other_at_comands_in_nodes_refs.texi
equivalent_nodes equivalent_nodes.texi --set-customization-variable 'USE_NODES 1'
equivalent_nodes_no_node equivalent_nodes.texi
equivalent_nodes_test_renamed_nodes equivalent_nodes.texi --init test_renamed_nodes.init
html-top_no_Top_node html-top.texi
menu-whitespace_plain menu-whitespace.texi
#menu-whitespace menu-whitespace.texi --init makeinfo.pm
menu-whitespace_xml menu-whitespace.texi --xml
node-whitespace_plain node-whitespace.texi
#node-whitespace node-whitespace.texi --init makeinfo.pm
nodename_parentheses nodename_parentheses.texi
nodes_id_docbook nodes_id.texi --docbook
two_footnotes_in_nodes_plain two_footnotes_in_nodes.texi
#two_footnotes_in_nodes two_footnotes_in_nodes.texi --init makeinfo.pm
section_in_unnumbered section_in_unnumbered.texi
#more_nodes_than_sections more_nodes_than_sections.texi --init makeinfo.pm
more_sections_than_nodes more_sections_than_nodes.texi
no_element no_element.texi
one_element one_element.texi
#--debug 255
placed_things_before_element placed_things_before_element.texi
menutextorder menutextorder.texi
semi_auto semi_auto.texi
anchor_in_footnote anchor_in_footnote.texi
test_two_include test_two_include.texi -I .@PATH_SEPARATOR@../manuals@PATH_SEPARATOR@../macros
only_documentencoding only_documentencoding.texi
weird_at_commands_in_nodes weird_at_commands_in_nodes.texi
double_node_anchor_float double_node_anchor_float.texi
empty_nodes empty_nodes.texi
section_before_part section_before_part.texi
part_before_section part_before_section.texi
chapter_before_part chapter_before_part.texi
part_before_chapter part_before_chapter.texi
hole_in_sectioning hole_in_sectioning.texi
section_before_top section_before_top.texi
section_before_top_no_node section_before_top_no_node.texi
part_chapter_after_top part_chapter_after_top.texi
part_node_chapter_after_top part_node_chapter_after_top.texi
node_part_chapter_after_top node_part_chapter_after_top.texi
node_part_chapter_after_chapter node_part_chapter_after_chapter.texi
part_node_before_top part_node_before_top.texi
part_node_after_top part_node_after_top.texi
section_chapter_before_top section_chapter_before_top.texi
section_chapter_before_top_nodes section_chapter_before_top_nodes.texi
part_node_appendix part_node_appendix.texi
part_appendix part_appendix.texi
part_node_part_appendix part_node_part_appendix.texi
part_node_part_node_appendix part_node_part_node_appendix.texi
part_node_node_part_appendix part_node_node_part_appendix.texi
empty_top_node_up menu-whitespace.texi --set-customization-variable TOP_NODE_UP
text_before_line_command text_before_line_command.texi
loop_nodes loop_nodes.texi

test_refs_docbook test_refs.texi --docbook
at_commands_in_refs_info at_commands_in_refs.texi --info
two_footnotes_in_nodes_info two_footnotes_in_nodes.texi --info
two_footnotes_in_nodes_separated_info two_footnotes_in_nodes.texi --info --footnote-style=separate
node_footnote_info node_footnote.texi --info
node_footnote_separated_info node_footnote.texi --info --footnote-style=separate
anchor_in_footnote_info anchor_in_footnote.texi --info
anchor_in_footnote_separated_info anchor_in_footnote.texi --info --footnote-style=separate
novalidate_info novalidate.texi --info


code:
# formats :_docbook :_xml :_html
texi html-top.texi
texi empty_nodes.texi
top top.texi
sectioning sectioning.texi
sectioning_directions sectioning.texi --init test_directions.init
novalidate novalidate.texi
makeinfo_novalidate_split novalidate.texi --init makeinfo.pm --no-node-file
# --debug 255
makeinfo_novalidate_unsplit novalidate.texi --init makeinfo.pm --split no --no-node-file
makeinfo_novalidate_unsplit_node_file novalidate.texi --init makeinfo.pm --split no
# in docbook, the @top 'chapter' is closed before the section, makeinfo
# closes it after the section.
# also text before first chapter is not allowed in docbook.
first_section_no_node first_section_no_node.texi
nodes_before_top nodes_before_top.texi
nodes_after_top nodes_after_top.texi --set-init-var 'USE_NODES 1'
nodes_after_top_no_node nodes_after_top.texi
section_nodes_before_top section_nodes_before_top.texi
nodes_after_top_before_chapter nodes_after_top_before_chapter.texi
nodes_after_top_before_section nodes_after_top_before_section.texi --split chapter
nodes_after_top_before_section_use_nodes nodes_after_top_before_section.texi --set-init-var 'USE_NODES 1'
nodes_after_top_before_section_use_nodes_chapter nodes_after_top_before_section.texi --set-init-var 'USE_NODES 1' --split chapter
nodes_after_top_before_chapter_use_nodes_chapter nodes_after_top_before_chapter.texi --set-init-var 'USE_NODES 1' --split chapter
# --debug 255
nodes_test nodes_test.texi
no_section_no_node no_section.texi
no_section no_section.texi --set-init-var 'USE_NODES 1'
no_section_directions no_section.texi --init test_directions.init --set-init-var 'USE_NODES 1'
no_section_directions_no_node no_section.texi --init test_directions.init
no_node no_node.texi
no_node_directions no_node.texi --init test_directions.init
no_node_chapter_split no_node.texi --split chapter
no_node_no_top no_node_no_top.texi
no_section_no_top no_section_no_top.texi --set-init-var 'USE_NODES 1'
no_section_no_top_no_node no_section_no_top.texi
one_section one_section.texi
one_node_no_node one_node.texi
one_node one_node.texi --set-init-var 'USE_NODES 1'
one_node_and_section one_node_and_section.texi
first_section_and_nodes first_section_and_nodes.texi
double_top double_top.texi
rec_nodes rec_nodes.texi --set-init-var 'USE_NODES 1'
rec_nodes_no_node rec_nodes.texi
makeinfo_rec_nodes rec_nodes.texi --init makeinfo.pm --no-node-files
lower_subsub lower_subsub.texi
raiselowersections raiselowersections.texi
top_without_node top_without_node.texi
before_node_and_section before_node_and_section.texi
section_before_chapter section_before_chapter.texi
node_footnote_end node_footnote.texi --footnote-style=end
# --debug 255
node_footnote_use_node node_footnote.texi --set-init-var 'USE_NODES 1' --node-files --footnote-style=end --split node
test_refs test_refs.texi
test_refs_chapter test_refs.texi --split chapter
test_refs_nodes test_refs.texi --split node --node-files --set-init-var 'USE_NODES 1'
at_commands_in_refs at_commands_in_refs.texi
other_at_comands_in_nodes_refs other_at_comands_in_nodes_refs.texi
equivalent_nodes equivalent_nodes.texi --set-init-var 'USE_NODES 1'
equivalent_nodes_no_node equivalent_nodes.texi
equivalent_nodes_test_renamed_nodes equivalent_nodes.texi --init test_renamed_nodes.init
html-top_no_Top_node html-top.texi
menu-whitespace_plain menu-whitespace.texi
menu-whitespace menu-whitespace.texi --init makeinfo.pm
menu-whitespace_xml menu-whitespace.texi --xml
node-whitespace_plain node-whitespace.texi
node-whitespace node-whitespace.texi --init makeinfo.pm
nodename_parentheses nodename_parentheses.texi
nodes_id_docbook nodes_id.texi --docbook
two_footnotes_in_nodes_plain two_footnotes_in_nodes.texi
two_footnotes_in_nodes two_footnotes_in_nodes.texi --init makeinfo.pm
section_in_unnumbered section_in_unnumbered.texi
more_nodes_than_sections more_nodes_than_sections.texi --init makeinfo.pm
more_sections_than_nodes more_sections_than_nodes.texi
no_element no_element.texi
one_element one_element.texi
#--debug 255
placed_things_before_element placed_things_before_element.texi
menutextorder menutextorder.texi
semi_auto semi_auto.texi
anchor_in_footnote anchor_in_footnote.texi
test_two_include test_two_include.texi -I .@PATH_SEPARATOR@../manuals@PATH_SEPARATOR@../macros
only_documentencoding only_documentencoding.texi
weird_at_commands_in_nodes weird_at_commands_in_nodes.texi
double_node_anchor_float double_node_anchor_float.texi
empty_nodes empty_nodes.texi
section_before_part section_before_part.texi
part_before_section part_before_section.texi
chapter_before_part chapter_before_part.texi
part_before_chapter part_before_chapter.texi
hole_in_sectioning hole_in_sectioning.texi
section_before_top section_before_top.texi
section_before_top_no_node section_before_top_no_node.texi
part_chapter_after_top part_chapter_after_top.texi
part_node_chapter_after_top part_node_chapter_after_top.texi
node_part_chapter_after_top node_part_chapter_after_top.texi
node_part_chapter_after_chapter node_part_chapter_after_chapter.texi
part_node_before_top part_node_before_top.texi
part_node_after_top part_node_after_top.texi
section_chapter_before_top section_chapter_before_top.texi
section_chapter_before_top_nodes section_chapter_before_top_nodes.texi
part_node_appendix part_node_appendix.texi
part_appendix part_appendix.texi
part_node_part_appendix part_node_part_appendix.texi
part_node_part_node_appendix part_node_part_node_appendix.texi
part_node_node_part_appendix part_node_node_part_appendix.texi
empty_top_node_up menu-whitespace.texi --set-init-var TOP_NODE_UP
text_before_line_command text_before_line_command.texi
loop_nodes loop_nodes.texi

test_refs_docbook test_refs.texi --docbook
at_commands_in_refs_info at_commands_in_refs.texi --info
two_footnotes_in_nodes_info two_footnotes_in_nodes.texi --info
two_footnotes_in_nodes_separated_info two_footnotes_in_nodes.texi --info --footnote-style=separate
node_footnote_info node_footnote.texi --info
node_footnote_separated_info node_footnote.texi --info --footnote-style=separate
anchor_in_footnote_info anchor_in_footnote.texi --info
anchor_in_footnote_separated_info anchor_in_footnote.texi --info --footnote-style=separate
novalidate_info novalidate.texi --info


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

before setfilename @setfilename text_before_node_command.info

before title @title the title

@node Top
@chapter test text before a node

@menu
* LD Version Scripts::
* ttt::
@end menu

i@node LD Version Scripts
--- @chapter LD Version Scripts

ddd @contents

@quotation
aaa @author quotation author
quotation
@end quotation

@node ttt
@chapter ttt chap

@shortcontents

@bye


code:
\input texinfo
@setfilename top.info
@settitle top test

@c This traditional top node uses @ifinfo for testing.
@c Therefore there will be warnings when processing with --html.
@c The solution is to use @ifnottex instead.

@ifinfo
@node Top
@top Top test

Typical top node.
@end ifinfo

@menu
* Subnode::
@end menu

@node Subnode
@chapter Subnode

Subnode.

@bye


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

@setfilename top_without_node

Garbage

@node a node,,,(dir)
@unnumbered unnumbered

in unnumbered

@top top section
Top section

@titlefont{The top section, no top node}

@node second,,,(dir)
@section second

second node

@chapter Chapter

Text of chapter

@chapter Chapter 2

Text of chapter 2

@bye


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

@setfilename two_footnotes_in_nodes.info

@node Top
@top 2 footnotes in 2 nodes

A@footnote{Footnote Top/1

para2}

B@footnote{Footnote Top/2

para2}

@menu
* chapter::
@end menu

@node chapter
@chapter chapter

C@footnote{Footnote chapter/1

para2}

D@footnote{Footnote chapter/2

para2}

@bye


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

@setfilename weird_at_commands_in_nodes.info

@node Top
@top Top

@menu
* a@ ::
* a@:::
* b@.:c@.
@end menu

@node a@

@node a@:

@node c@.

@bye


code:
@comment -*-texinfo-*-
@comment Id: COPYING.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@comment this file contains the copyright notice on Singular
@ifclear VERSION
@include version.texi
@end ifclear

@cindex copyright
@cindex factory
@cindex GMP
@cindex MP
@cindex readline
@cindex libfac

@center @sc{Singular} version @value{VERSION}
@center @uref{http://www.uni-kl.de/,,University of Kaiserslautern}
@center @uref{http://www.mathematik.uni-kl.de/,,Department of Mathematics} and  @uref{http://www.mathematik.uni-kl.de/~zca/,,Centre for Computer Algebra}
@center Authors: @uref{http://www.mathematik.uni-kl.de/~greuel,,G.-M. Greuel}, @uref{http://www.mathematik.uni-kl.de/~pfister,,G. Pfister}, @uref{http://www.mathematik.uni-kl.de/~hannes,,H. Schoenemann}

@center Copyright @copyright{} 1986-2003
@sp 2
@center @strong{NOTICE}

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ( version 2 of the License );
with the following additional restrictions (which override any conflicting
restrictions in the GPL):

The following software used with @sc{Singular} have their own copyright:
the omalloc library, the readline library,
the Gnu Multiple Precision Library (GMP),
NTL: A Library for doing Number Theory (NTL),
the Multi Protocol library (MP), the
Singular-Factory library, the Singular-libfac library, and,
for the Windows distributions the Cygwin DLL and the Cygwin tools (Cygwin), and the
XEmacs editor (XEmacs).

Their copyrights and licenses can be found in the accompanying files
which are distributed along with these packages.

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

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
(see @uref{http://www.gnu.org/copyleft/gpl.html,,GPL})

Please send any comments or bug reports to
@email{singular@@mathematik.uni-kl.de}.

Please register yourself as a @sc{Singular} user by using the
registration form on the @sc{Singular} homepage
              @uref{http://www.singular.uni-kl.de}.
If for some reason you cannot access the registration form, you
can also register by sending an email to
              @email{singular@@mathematik.uni-kl.de}
with subject line @code{register} and body containing the following data:
     your name, email address, organisation, country and platform(s).

If you use Singular or parts thereof in a project and/or publish
results that were partly obtained using @sc{Singular}, we ask you to
cite @sc{Singular} and inform us thereof -- see
@uref{http://www.singular.uni-kl.de/how_to_cite.html},
for information on how to cite Singular.

@heading Availability

The latest information about @sc{Singular} is always available from
@uref{http://www.singular.uni-kl.de}.
@ifset singularmanual
The program @sc{Singular} and the above mentioned parts are available via
anonymous ftp through the following addresses:
@table @asis
@item GMP, libreadline
@copyright{} Free Software Foundation
@* @uref{ftp://ftp.gnu.ai.mit.edu} or its mirrors
@item MP
@copyright{} Gray/Kajler/Wang, Kent State University
@* @uref{http://www.symbolicnet.org/areas/protocols/mp.html}
@item NTL
@copyright{} Victor Shoup
@* @uref{ftp://www.shoup.net}
@item Singular-Factory
@copyright{} Greuel/Stobbe, University of Kaiserslautern:
@* @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/Factory}
@item Singular-libfac
@copyright{}  Messollen, University of Saarbr@"ucken:
@* @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/Libfac}
@item @sc{Singular} binaries and sources
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/} or via a
WWW brow@-ser from
@uref{http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/}
@item Cygwin
@uref{http://www.cygwin.com/}
@item Xemacs
@uref{http://www.xemacs.org}
@end table
@end ifset

@heading Acknowledgements

The development of @sc{Singular} is directed and coordinated by
Gert-Martin Greuel, Gerhard Pfister, and Hans
Sch@"onemann.

@cindex  Greuel, Gert-Martin
@cindex  Pfister, Gerhard
@cindex Sch@"onemann, Hans

Currently, the @sc{Singular} team has the following members:
Olaf Bachmann,
Anne Fr@"ubis-Kr@"uger,
Thomas Keilen,
Kai Kr@"uger,
Christoph Lossen,
Viktor Levandovskyy,
Wilfred Pohl,
Mathias Schulze,
Eric Westenberger,
and
Tim Wichmann.
@cindex Bachmann, Olaf
@cindex Fr@"ubis-Kr@"uger, Anne
@cindex Keilen, Thomas
@cindex Kr@"uger, Kai
@cindex Lossen, Christoph
@cindex Levandovskyy, Viktor
@cindex Pohl, Wilfred
@cindex Schulze, Mathias
@cindex Westenberger, Eric
@cindex Wichmann, Tim

Past members of the @sc{Singular} team are:
Hubert Grassmann,
Wolfgang Neumann,
Jens Schmidt,
R@"udiger Stobbe.
@cindex Grassmann, Hubert
@cindex Neumann, Wolfgang
@cindex Schmidt, Jens
@cindex Stobbe, R@"udiger

Further contributions to @sc{Singular} were made by:
Thomas Bayer,
Isabelle Bermejo,
Stephan Endra@ss{},
Jose Ignacio Farran Martin,
Wolfram Decker,
Philippe Gimenez,
Christian Gorzel,
Agnes Heydtmann,
Dietmar Hillebrand,
Tobias Hirsch,
Martin Lamm,
Bernd Martin,
Michael Me@ss{}ollen,
Thomas N@"u@ss{}ler,
Moritz Wenk.

We should like to acknowledge the financial support given by
the Volkswagen-Stiftung,
the Deutsche Forschungsgemeinschaft
and the Stiftung f@"ur Innovation des Landes Rheinland-Pfalz
to the @sc{Singular} project.


code:
@comment -*-texinfo-*-
@comment Id: INSTALL_mac.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE:    INSTALL_classicMac.texi
@c PURPOSE: Installation instructions for Singular on Macintosh

@ifclear VERSION
@include version.texi
@end ifclear

@ifclear singularmanual
@majorheading Installation instructions for @sc{Singular} on a (classic) Macintosh
@end ifclear

@heading Installation preliminaries

This is the final distribution of @sc{Singular} as MPW tool.
Newer versions of @sc{Singular} will only be available for MacOS X (which is handled like other @sc{Unix}-systems).
To install @sc{Singular} on a Macintosh (PPC only), you need the file @code{Singular-2-0-2-ppc-MPW.sea.hqx} resp. @code{Singular-2-0-2-ppc-MPW.hqx} which you can obtain by public ftp from @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular}.
Furthermore, you need MacOS version >= 8.5 with an installed MPW shell.
This version works also without Carbon.

@include register.texi

@heading Installing @sc{Singular} on MacOS X

Please see @uref{INSTALL_unix.html}.
In contrast to other Unix systems, under MacOS X, @sc{Singular} is only available as a shell command and there is no Emacs interface.
Enter @code{Singular} in a terminal under Aqua to run @sc{Singular}.
Alternatively, you may choose @code{Terminal} as the application to open the file @code{Singular} with and put it into the dock.

@heading Installing Singular

@enumerate

@item
Make sure that you have MPW  installed on your system.
See below for instructions on how to install MPW and how to avoid conflicts with the @code{Carbon.lib}.

@item
Download the file @code{Singular-2-0-2-ppc-MPW.sea.hqx}.

@item
Expand the downloaded file using a standard Expander (like Compact Pro or StuffIt) to obtain the corresponding self-extracting @code{Singular-2-0-2-ppc-MPW.sea} file.

@item
Click on the self-extracting @code{Singular-2-0-2-ppc-MPW.sea} file.
This  will create a new folder named @code{Singular:} which contains the @sc{Singular} program in the subfolder @code{2-0-2:ppc-MPW:}.
Do not change the structure of the subfolders.

@item
Make the folder which contains the executable to the working directory of the MPW shell.
To start @sc{Singular}, you need to type @code{Singular} in the MPW worksheet.
Clicking on the @sc{Singular} icon on the desktop, starts up the MPW shell (the working directory of the MPW shell is then the directory of the executable).
If you start the MPW shell manually, you must set the working directory to the directory of the @sc{Singular} program.
You may use the directory menu or write into the startup file of the MPW shell the line
@smallexample
setdirectory "@{Boot@}"Singular:2-0-2:ppc-MPW:
@end smallexample
if @code{"@{Boot@}"Singular:2-0-2:ppc-MPW:} is the folder of the executable.

After unpacking, you will have a directory structure like:
@table @code
@item Singular:2-0-2:ppc-MPW:Singular
Singular executable
@item Singular:2-0-2:ppc-MPW:libparse
parser for Singular libraries
@item Singular:2-0-2:LIB:
Singular libraries
@item Singular:2-0-2:LIB:gftables:
Singular gftables
@item Singular:2-0-2:doc:singular.idx
index of inline help
@item Singular:2-0-2:doc:singular.hlp
file for inline help
@item Singular:2-0-2:README
information of the distribution
@item Singular:2-0-2:README.hlml
@item Singular:2-0-2:COPYING
license information
@item Singular:2-0-2:COPYING.html
@item Singular:2-0-2:NEWS
news in the distribution
@item Singular:2-0-2:NEWS.html
@item Singular:2-0-2:INSTALL
instructions like this file
@end table

The @sc{Singular} libraries have a special form to work here.
Do not use the libraries from other distributions.
They are not compatible.
A supplementary file is @code{Singular-2-0-2-html.sea.hqx} which contains the html pages.
You can use this with a browser but not from the program @sc{Singular}.
The self-extracting archive will create the folder @code{html:} and you may extract it at @code{"@{Boot@}"Singular:2-0-2:}.

@end enumerate

@heading Installing MPW

The final version of MPW is downloadable from Apple at @uref{ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./MPW-GM_Images/}.
Older versions of @code{Carbon.lib} may conflict with the latest MPW.
In this case, you need to update @code{Carbon.lib} or work without it.

@heading Restrictions

Some typical Unix features of @sc{Singular} are not working with MPW, e.g. links and cooperation with other programs like XEmacs and xterm.

For any other troubles, please send an email to @email{singular@@mathematik.uni-kl.de} and include the header which is displayed by starting up @sc{Singular}
with the @code{-v} option, and a description of your machine and operating system.

@include info.texi

@ifclear singularmanual
Good luck and enjoy! Your @sc{Singular} team.
@end ifclear