bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: wrong-type-argument


From: Bruce Korb
Subject: Re: wrong-type-argument
Date: Mon, 01 Oct 2001 06:39:09 -0700

Eli Zaretskii wrote:

> > = = = = = = =  ANALYSIS  = = = = = = =
> > 1.  "@xref{Features}" was not expanded
> > 2.  <P>...</P> were not inserted

> I cannot reproduce this on my system.  I get what I expect: HTML
> output, with resolved @xref, <P>, and other HTML conversions.
> 
> What version ...

See below.  It is version 1.51.

> > @iftex
> > @ifhtml
> 
> What do you expect @ifhtml inside @iftex to produce?  It cannot
> possibly yield anything useful: @iftex is not processed under --html
> switch.

My expectation is that the text following these two macros should
never appear in any output ever.  But it does, tho only in the HTML.

> > 1.  The @ifxxx stuff needs work for HTML
> 
> It works flawlessly for me.
> 
> > 2.  @multitable needs work for HTML
> 
> Also works.

It does?  It produces an HTML table?  Cool.  I would not need
to use the @ifhtml stuff if proper tables were produced.  But
what texinfo version do I need?  I'm running SuSE Linux built
this year (2001).  Besides, the doc for it says this should work.

> Conclusion: I need a complete reproducible example, including the
> version of makeinfo you are using and the exact command line used to
> invoke makeinfo.

Attached is the example that breaks.  It is incorporated
via "@include" into the autogen documentation.  The only
issues you should have with it are no preamble and no @bye.
I commented away the '@ref{xxx}' macro.

Just for grins, I have extracted and attached the HTML
output from the invocation noted below.

Here's the invocation and version information:

> $ texi2html -menu -split_chapter -verbose autogen.texi
> # reading from autogen.texi
> # end of pass 1
> # end of pass 2
> # end of pass 3
> # end of pass 4
> # creating autogen_toc.html...
> # creating autogen_1.html...
> # creating autogen_2.html...
> # creating autogen_3.html...
> # creating autogen_4.html...
> # creating autogen_5.html...
> # creating autogen_6.html...
> # creating autogen_7.html...
> # creating autogen_8.html...
> # creating autogen_9.html...
> # creating autogen_10.html...
> # creating autogen_11.html...
> # that's all folks
> 
> $ texi2html --version
> This is texi2html 1.51

Attachment: compete.texi
Description: TeXInfo document

Competitive Feature Analysis

Here is a feature comparison of AutoOpts and five other command line parser generators. They all read a file that describes the program options and produce code to parse command line options. Each has their own format for describing options.

All versions support both short options (flags) and GNU-type long options. clig, however, is unique in that you must choose one or the other. Either way, clig options are introduced with a single hyphen. The other packages identify long options with doubled hyphens.

  1. AutoOpts is a component of AutoGen. AutoGen has many capabilities, but here we concentrate on the portion called AutoOpts. AutoOpts is the most general of these programs, and has the most extensive documentation. It is the only one that supports shell scripts as well as C programs. It also supports command option processing from a configuration file or the environment.
  2. clig generates a skeleton man page and can also update a previously generated man page.
  3. Little is known by me [Bruce] about genparse.
  4. gaa supports option input from a configuration file as well as the command line. NOTE HOWEVER: gaa is not maintained.
  5. gengetopt is the only one that generates a skeleton main.c instead of a separate parsing function. Since you must edit this file to create your program, rerunning gengetopt will wipe out any such changes.
  6. wyg uses flex and bison to generate a configuration file parser, but uses getopt_long to parse the command line options.
Comparative Analysis Table
Feature \ Package # 1 2 3 4 5 6
C language app yes yes yes yes yes yes
shell script app yes no no no no no
package result parser parser parser parser main.c parser
config file input yes no no yes no yes
environment input yes no no no no no
config file output yes no no no no no
command line yes yes yes yes yes yes
parameter types [1] 4 5 5 11 4
callback functions yes no yes yes yes no
multiple parameters yes yes no no no no
optional parameters yes yes no no no no
default values yes yes yes yes no yes
range checks no yes yes no no no
enumeration options yes no no no no no
option data struct struct struct struct vars struct
usage() yes yes yes yes yes yes
man page yes yes no no no no
texinfo usage yes no no no no no
makefile no no no no no no
developer dependencies Guile tcl none none none bison,flex
user dependencies [2] none none none none none

The following gibberish is for TeX processing ONLY. Unfortunately, there is a bug in the texi2html processor and it seems to be emitting this stuff for HTML, too. This is wrong, but I cannot fix it. The bug has been reported. Sorry.

@ifnothtml Comparative Analysis Table @multitable @columnfractions .26 .11 .11 .11 .11 .11 .11

  • Feature \ Package # @tab 1 @tab 2 @tab 3 @tab 4 @tab 5 @tab 6
  • C language app @tab yes @tab yes @tab yes @tab yes @tab yes @tab yes
  • shell script app @tab yes @tab no @tab no @tab no @tab no @tab no
  • package result @tab parser @tab parser @tab parser @tab parser @tab main.c @tab parser
  • config file input @tab yes @tab no @tab no @tab yes @tab no @tab yes
  • environment input @tab yes @tab no @tab no @tab no @tab no @tab no
  • config file output @tab yes @tab no @tab no @tab no @tab no @tab no
  • command line @tab yes @tab yes @tab yes @tab yes @tab yes @tab yes
  • parameter types @tab [1] @tab 4 @tab 5 @tab 5 @tab 11 @tab 4
  • callback functions @tab yes @tab no @tab yes @tab yes @tab yes @tab no
  • multiple parameters @tab yes @tab yes @tab no @tab no @tab no @tab no
  • optional parameters @tab yes @tab yes @tab no @tab no @tab no @tab no
  • default values @tab yes @tab yes @tab yes @tab yes @tab no @tab yes
  • range checks @tab no @tab yes @tab yes @tab no @tab no @tab no
  • enumeration options @tab yes @tab no @tab no @tab no @tab no @tab no
  • option data @tab struct @tab struct @tab struct @tab struct @tab vars @tab struct
  • usage() @tab yes @tab yes @tab yes @tab yes @tab yes @tab yes
  • man page @tab yes @tab yes @tab no @tab no @tab no @tab no
  • texinfo usage @tab yes @tab no @tab no @tab no @tab no @tab no
  • makefile @tab no @tab no @tab no @tab no @tab no @tab no
  • developer dependencies @tab Guile @tab tcl @tab none @tab none @tab none @tab bison,flex
  • user dependencies @tab [2] @tab none @tab none @tab none @tab none @tab none

    [1] See the lengthy list of features, section AutoOpts Features.

    [2] There is a user-visible dependency iff the developer does a dynamic link to the libopts.so library. Developers are free to either link statically or ship libopts.so with their product. A Debian package would need only a dependency on the package supplying libopts (libopts11, at present).

    The Guile library is now generally pre-installed on all GNU/Linux systems.

    -- James R. Van Zandt


    reply via email to

    [Prev in Thread] Current Thread [Next in Thread]