tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: Ingo Schwarze <schwarze@usta.de>
To: Michael Forney <mforney@mforney.org>
Cc: tech@mandoc.bsd.lv, kristaps@bsd.lv
Subject: Re: [texi2mdoc] Documents without @node
Date: Tue, 13 Nov 2018 11:25:39 +0100	[thread overview]
Message-ID: <20181113102539.GE82487@athene.usta.de> (raw)
In-Reply-To: <CAGw6cBsOAYm5OO-EUgMyHk7X5D0P3W7NJkYz2RVH0b61j_cG2w@mail.gmail.com>

Hi Michael,

Michael Forney wrote on Mon, Nov 12, 2018 at 05:23:14PM -0800:

> First, since ffmpeg.texi[0] does not contain a `@node Top` line, I get
> an essentially blank (see below) output. I'm not very familiar with
> texinfo, but the manual seems to suggest that this is an invalid
> document[1]. Should texi2mdoc try to support documents with no top
> node by creating one implicitly upon @top?

Probably.

According to my understanding, tools in Kristaps' tradition attempt
to reach two goals at once: have validating parsers and provide
diagnostics about syntax and style problems in the input on the one
hand, but also "just work" for stuff commonly encountered in
practice, on the other hand.

Now, i have no idea whether lack of @node Top is a common problem or
not, but i wouldn't want to start an investigation, to not spend too
much time.  Anyway, the consequence of the syntax issue is drastic,
so maybe it would even be worthwhile to handle it if it is not all
that common.

Even though no longer new, texi2mdoc(1) is still experimental to
such a degree that i think moving quickly makes sense, even taking
the risk of occasional regressions, so i committed right away,
see below.

@Kristaps: you are more familiar with the code - if you have concerns,
just speak up or fix it, whichever causes less work for you.

> If not, should it fail with an error message rather than just
> producing an empty document?

I think so: mandoc(1) also warns about empty documents;
but see above and below.

Yours,
  Ingo


Log Message:
-----------
If "@node Top" is missing, assume the document starts at "@top".
For example, this occurs in ffmpeg(1).
Issue reported and workaround proposed
by Michael Forney <mforney at mforney dot org>.

Modified Files:
--------------
    texi2mdoc:
        main.c

Revision Data
-------------
Index: main.c
===================================================================
RCS file: /home/cvs/mdocml/texi2mdoc/main.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -Lmain.c -Lmain.c -u -p -r1.72 -r1.73
--- main.c
+++ main.c
@@ -1988,6 +1988,13 @@ dosection(struct texi *p, enum texicmd c
 	switch (cmd) {
 	case (TEXICMD_TOP):
 		sec = 0;
+		if (p->nodesz)
+			break;
+		texiwarn(p, "@node Top is missing, assuming it implicitly");
+		p->nodesz++;
+		p->ign--;
+		p->nodecur = texicache(p, "Top", 3);
+		teximdocopen(p, pos);
 		break;
 	case (TEXICMD_APPENDIX):
 	case (TEXICMD_CHAPTER):
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

  parent reply	other threads:[~2018-11-13 10:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-13  1:23 Michael Forney
2018-11-13  9:13 ` Ingo Schwarze
2018-11-13 10:25 ` Ingo Schwarze [this message]
2018-11-13 19:07   ` Michael Forney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181113102539.GE82487@athene.usta.de \
    --to=schwarze@usta.de \
    --cc=kristaps@bsd.lv \
    --cc=mforney@mforney.org \
    --cc=tech@mandoc.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).