This file contains a list of things yet to be done (see also in doc/TODO):

* Create detailed texinfo documentation (see in doc)

* add sample init files for different layouts
  - use events (onmousover, etc) for anchors
  - use style-sheets for formatting of various elements (like @example,
  etc).
  - xhtml with in line style
  - Singular manual style
  - How complicated could it be to get a creation of SGML ?
  - to LaTeX
  - to RTF
  - to open document

* document css classes, and have similar classes with makeinfo
-  makeinfo classes:
ul menu, 
ul index-cp index-*, 
div node (navigation bar), 

- texi2html classes:
table index-cp index-*, 
table menu, 
h3 node
ul toc,

- same classes:
pre verbatim, 
pre example display...,
table cartouche, 
small dots, small enddots, 
div contents shortcontents, div footnote, 
h? unnumbered chapter appendix...,
h1 settitle (title before contents, if not set by titlefont),
h1 titlefont (@titlefont),

* Document 
  Texi2HTML::THIS_ELEMENT
  $NEW_CROSSREF_STYLE, $EXTERNAL_CROSSREF_SPLIT, $INLINE_INSERTCOPYING
  $OVERVIEW_LINK_TO_TOC
  $Texi2HTML::THISDOC{'htmlxref'}
  $Texi2HTML::THISDOC{'current_lang'}
  $Texi2HTML::THISDOC{macro name}
  $Texi2HTML::THISDOC{'hyphenation'}
  $Texi2HTML::THISDOC{'do_about'}
  $Texi2HTML::THISDOC{'split_level'}

  $copying_comment, $titlepage better and $documentdescription
  $program_string
  $heading arguments $begin_paragraph_texi $tab_item_texi $begin_style_texi
  $begin_special_region $end_special_region $simple_command $thing_command
  Also element formatting documentation, especially print_foot_navigation
  is not up to date.
  new arguments and return args of index_summary_letter

* document the 'math' in 'args', in style_map, and simple_*math*. It
  could also be more flexible and similar with other environments, that
  is not only add a fixed key, but duplicate all the keys and add one.
  Documentation should only done once the interface is stable.

* document the new $image arguments/API

* don't double in title when the @top and @settitle are the same

* the following is erroneous, but maybe it could be better handled anyway
-> error with @item on same line than @table
@xref{node,
@table @emph
@item line
text
@end table
}

* test @printindex in diverse contexts
  and handle right things like
@code{
@printindex cp
}

* maybe some @-commands appearing on lines should stop paragraphs, namely
@page or @indent. That's not sure. More likely this should be up to the 
writer to add a line. There is a Config hash now for @style_map commands.
formats automatically stop paragraphs.

* honor stop_paragraph_command for misc_commands?

* @macro definition in @ifset is parsed but ignored. So in the following, the
@end ifset appearing in the macro is ignored, and the macro isn't defined.
Don't know if it's right.

@ifset a
@macro bidule
@end ifset
@end macro
@end ifset

* in chm.init (Jose Fonseca)

[WINDOWS]
 
Default=,"ug.hhc","ug.hhk","ug.html","ug.html",,,,,0x22520,,0x384e,,,,,,,,0

The numbers are a bitmask of the enabled buttons. The ones here are
IMO a good default. In the future you may also add that as an
option, as the Docbook XSL stylesheets do (see in
http://docbook.sourceforge.net/release/xsl/snapshot/doc/html/rn20.html
all the CHM related parameters one can change).

* many FIXME in the code

* in index_split the section associated with indices is the numbered section
  not the associated node where the @cindex are. Good or bad?

* maybe be quiet during special region expansion outside of document. It
  is not very clear that it is wrong, though. multiple_pass could be passed
  down to echo_warn/echo_error and no warning would be produced with
  multiple_pass > 1. Alternatively, line numbers could be passed down 
  like what is done with inline_insertcopying

* antispam @email
<script type="text/javascript">
<!--
/* This hacks the DOM so that copy&paste in Firefox ignores the "nospam"
   spans. */
function clean_antispam() {
  document.getElementById("span1").firstChild.nodeValue = "";
  document.getElementById("span2").firstChild.nodeValue = "";
}
//-->
</script>

<body onLoad="clean_antispam()">
<tt>&lt;bug-gnulib<span id="span1" style="display:none;">-nospam</span>&#64;<span id="span2" style="display:none;">nospam.</span>gnu.org&gt;</tt>
</body>

* menu_description is menucomment in xml. 
  menuentry is the menunode+menutitle+menucomment
  menu_comment in makeinfo --xml treated as normal text.
  the documentation, however uses the same words than in texi2html.

* Tests/formatting/code_not_closed.texi should trigger 2 errors, none
  are triggered currently.

* a FIXME in Tests/formatting/detailmenus.texi with a warning missing 
  for a menu entry for a spurious entry with no corresponding node entry.
  more precisely the node is not among the direct subsections.

* roff is certainly not uptodate. At least the @quote* and @guillem*

* the code of xml.c in makeinfo shows specific treatement of & in 
  definition arguments. I don't know what it corresponds with. All
  the definition argument parsing stuff is certainly worth asking
  on the texinfo list.

* something like
@math{@minus{} {\frac{1}{2}}} 
  leads to errors in makeinfo about misplaced { } because it seems that
  @minus turns on texinfo mode or the like, while
@math{{\frac{1}{2}} @minus{}}
  is error free.

* formatting/nodename_parentheses.texi gives wrong output.

* in @example, makeinfo --xml 

@ followed by a space
&space;@ followed by a tab
&space;@ followed 

texi2html
@ followed by a space
&space;
@ followed by a tab
&space;
@ followed 

* in xml 
@itemize
@item i--temize
@end itemize

makeinfo:
<itemize><itemfunction>&bullet;</itemfunction><item>
i--temize
</item>
        </itemize>
texi2html:
<itemize><itemfunction>&bullet;</itemfunction><item> i--temize
</item>
</itemize>

* in xml
@itemize @bullet{} a--n itemize line
@item i--tem 1
@item i--tem 2
@end itemize

makeinfo:
<itemize><itemfunction>&bullet; a--n itemize line</itemfunction><item>
i--tem 1
</item>
<item>
i--tem 2
</item>
        </itemize>
texi2html:
<itemize><itemfunction>&bullet; a&ndash;n itemize line</itemfunction><item> i--tem 1
</item>
<item> i--tem 2
</item>
</itemize>

* in xml
@enumerate
@item e--numerate
@end enumerate

makeinfo:
<enumerate first="1"><item>
e--numerate
</item>
        </enumerate>
texi2html:
<enumerate first="1"><item> e--numerate
</item>
</enumerate>

* add @detailmenu in coverage, and @group

* in imbrications.texi there should be a warning for
@defun aaaa
@deffnx bbbb
@end deffn
@end defun
 Makeinfo gives:
imbrications.texi:241: Must be in `@deffn' environment to use `@deffnx'.
imbrications.texi:259: `@end' expected `defun', but saw `deffn'.

* makeinfo doesn't warn for empty heading commands, like
** unnumberedsubsec without name (l. 284)

* makeinfo warn when there is no @settitle nor @top where it finds its title
in texi2tml there is no warning, and also the title is constructed
differently.

* makeinfo don't warn for empty deffn, but texi2dvi cannot process them

* enable_encoding.init is certainly dependent on USE_UNICODE through
the use of non 8 bit representation of characters.

* makeinfo in title, for @code{something} leads to `something'. In 
texi2html all the style commands are removed without extra formatting.

* test for @deffn with end of line protected in @footnote (to test 
  end of line protection in keep_texi).

* empty lines in @hyphenation are not valid for texi2dvi

* manuals/mini_ker result is not valid, but it looks like a validate bug?
  In any case, it may make sense to have @tex not starting paragraph,
  like @html, at least when expanding it.

* texinfo expands @-commands normally in @documentdescription, but keeps --,
  texi2html uses simple_format which removes most @commands but uses 
  entities

* clean formatting/def_cmds.texi to remove invalid texinfo and put it
  in an ifset.

* if a 'term' triggers no_paragraph, the ouput may be more valid. But a 
  center won't have any effect in it.

* end of line after a @contents should certainly be kept in xml.init

* texi2dvi doesn't accept @table in @format

* warnings and errors are somewhat random at present. Also it would be nice
  to have the same error messages than makeinfo.

* when there are nested complex_formats, a small format that doesn't have
  style, like smalldisplay in a format with style, like example, the
  smalldisplay will use the class of the above format, and lose the 
  small font property.

* macros/value_in_pass0_macros result is very different from texi2dvi and
  makeinfo. To be verified that cp in fn is style not in @code.

  Also certainly simpler and more focused tests to do for syn/syncode

* decide @documentencoding @. And maybe change regexp.

* html32 is not up to date: 
Error at line 2159, character 8:  unknown entity "euro"
Error at line 2161, character 7:  unknown entity "le"
Error at line 2162, character 7:  unknown entity "ge"

For headings. In normal it is strong.
Error at line 2616, character 4:  element "H1" not allowed here; check
        which elements this element may be contained within
Error at line 2619, character 4:  element "H1" not allowed here; check
        which elements this element may be contained within
Error at line 2622, character 4:  element "H2" not allowed here; check
        which elements this element may be contained within
Error at line 2625, character 4:  element "H3" not allowed here; check
        which elements this element may be contained within
Error at line 2628, character 4:  element "H4" not allowed here; check
        which elements this element may be contained within

* verify that code_style is used for code_style style @-commands 
  in remove_texi.

* docbook: in function no style. 
  replaceable is for @var or function argument. Only characters.

  Instead of synopsis may use specialized synopsis, funcsynopsis/funcprototype
  for deftype*, funcdef for defffn, ooclass for object oriented.

  also informalfigure in @float

* to solve above issue, the definition arg formatted with simple_format 
  should alo be passed down

* in docbook, when there is only one section <article> should be better
  than book. Maybe the best way to do that would be passing the 
  information that there is only one section to the functions formatting
  the page header and page footer.

* makeinfo has a lot of other short command line switches, but implement
  only those that are documented, in --help or info makeinfo.

* -I can take paths (separated by : or ;) not only directories.

* does documentlanguage cmd line apply to first or all files? 
  ask on bug-texinfo.

* now config variables are read-only after command line switches
  expansion. If defined, they set $Texi2HTML::THISDOC{'VAR'}
  and if not defined, $Texi2HTML::THISDOC{'VAR'} is autodetected.
  $Texi2HTML::THISDOC{'VAR'} is then used in the code.

  This means that, if a variable that was not autodetected becomes
  autodetected, the code will have to switch to using 
  $Texi2HTML::THISDOC{'VAR'} instead of $VAR. This is very bad since it
  means API breaking.

* makeinfo --no-header implies --no-split (and default for out file is stdout).

* in @titlepage, @title, @authors and similar commands should be 
  formatted when they happen and not at the beginning.

     @titlepage
     @titlefont{Software}
     @sp 1
     @title for something
     @subtitle subtitle
     @author by Somebody and Someone
     @author and Other people

* makeinfo.init not uptodate with makeinfo --html. Index entries link back
  now. And also look at floats?
  menu name is used instead of node in menu links url text.

* change LINK_BUTTONS for makeinfo.init to have next, up... nodes

* ignore spaces after @ command, before {, like texi2dvi does?

* failures with split index between node and section in indices/
  makeinfo_index_split first.html is missing
  makeinfo_nodes_before_top_and_sections needs to be checkedd (first 
                              should be in first.html?).

* error message when xref is followed by something else than . is missing.

* no line numbers when in footnotes.

* ignore spaces at end of @item line for @(|v|f)table. Also maybe 
  after @item, but to be careful with things prepended or commands used
  in for the whole line.

* add --command command line that gives inserted lines.

* @ogonek has 2 test files, and is in coverage. Maybe add it to encoding/*
  where other accents are used too. Or maybe tests should be more focused?

* empty macro in macros/empty_macro.texi is replaced by a new line, even 
  without arg, ie the form
@foo
  Should the new line be stripped? makeinfo does the same, so things are 
  likely to be right as is.

* for makeinfo, the following are not the same, looks like -I is not taken
  into account with a leading ./:
@include ./d2t_singular/surf_lib_noEx.tex
@include d2t_singular/surf_lib_noEx.tex
  for texi2html they are the same.

* makeinfo keeps @macro definitions in -E output. Maybe it should be done, 
  too, for expansion in places that are only expanded by texi2dvi, namely
  in @*headings, it could be better to delay @macro expansion to allow for
  different expansions at different places in the document, something that 
  cannot be done with texi2html -E.

* add 0x7F as a comment character (ignore to eol).

* add as a filter when things come from STDIN, and there is no file in 
  argument. If there is no setfilename, file name is stdin.info.

* @FORMAT like @tex, @html... should be kept with -E and certainly handled 
  in formatting function. Cf test/macros/out/texi_cond for a wrong output.

* texi2html doesn't understand `-o /dev/null'.  It aborts with
      *** /dev/ not writable
  report from Werner LEMBERG.

* texi2html's option -E suppresses creation of the default output
     file.  Since texi2html shall replace makeinfo completely, it
     should rather produce the output file instead for compatibility.
  report from Werner LEMBERG.

