tech@mandoc.bsd.lv
 help / color / Atom feed
* [texi2mdoc] Documents without @node
@ 2018-11-13  1:23 Michael Forney
  2018-11-13  9:13 ` Ingo Schwarze
  2018-11-13 10:25 ` Ingo Schwarze
  0 siblings, 2 replies; 4+ messages in thread
From: Michael Forney @ 2018-11-13  1:23 UTC (permalink / raw)
  To: tech

In preparing the texi2mdoc patch I just sent, I noticed a couple of
things with the latest CVS version compared to 0.1.2.

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? If not, should it fail with
an error message rather than just producing an empty document?

Actually, the output document is not completely blank, it contains
quite a few `.Pp` lines. It looks like this is because the
`fputs(".Pp\n", p->outfile)` in parseword is not guarded by a check of
p->ign, which I believe is a bug.

[0] https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/doc/ffmpeg.texi
[1] https://www.gnu.org/software/texinfo/manual/texinfo/html_node/The-Top-Node.html#The-Top-Node
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [texi2mdoc] Documents without @node
  2018-11-13  1:23 [texi2mdoc] Documents without @node Michael Forney
@ 2018-11-13  9:13 ` Ingo Schwarze
  2018-11-13 10:25 ` Ingo Schwarze
  1 sibling, 0 replies; 4+ messages in thread
From: Ingo Schwarze @ 2018-11-13  9:13 UTC (permalink / raw)
  To: Michael Forney; +Cc: tech

Hi Micheal,

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

> Actually, the output document is not completely blank, it contains
> quite a few `.Pp` lines. It looks like this is because the
> `fputs(".Pp\n", p->outfile)` in parseword is not guarded by a check of
> p->ign, which I believe is a bug.

I think you are right, so i committed your suggestion.
It also improves some valid documents; some had .Pp lines
even before the .Dd line.

Thanks for the report and analysis,
  Ingo


Log Message:
-----------
Add missing p->ign guard for paragraph breaks in parseword();
bug reported by Michael Forney <mforney at mforney dot org>.

Modified Files:
--------------
    texi2mdoc:
        util.c

Revision Data
-------------
Index: util.c
===================================================================
RCS file: /home/cvs/mdocml/texi2mdoc/util.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -Lutil.c -Lutil.c -u -p -r1.35 -r1.36
--- util.c
+++ util.c
@@ -728,7 +728,8 @@ parseword(struct texi *p, size_t *pos, c
 	if (p->seenvs > 0 && 0 == p->literal && TEXILIST_TABLE != p->list) {
 		if (p->outcol > 0)
 			fputc('\n', p->outfile);
-		fputs(".Pp\n", p->outfile);
+		if (p->ign == 0)
+			fputs(".Pp\n", p->outfile);
 		p->outcol = 0;
 	}
 
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [texi2mdoc] Documents without @node
  2018-11-13  1:23 [texi2mdoc] Documents without @node Michael Forney
  2018-11-13  9:13 ` Ingo Schwarze
@ 2018-11-13 10:25 ` Ingo Schwarze
  2018-11-13 19:07   ` Michael Forney
  1 sibling, 1 reply; 4+ messages in thread
From: Ingo Schwarze @ 2018-11-13 10:25 UTC (permalink / raw)
  To: Michael Forney; +Cc: tech, kristaps

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [texi2mdoc] Documents without @node
  2018-11-13 10:25 ` Ingo Schwarze
@ 2018-11-13 19:07   ` Michael Forney
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Forney @ 2018-11-13 19:07 UTC (permalink / raw)
  To: Ingo Schwarze; +Cc: tech, kristaps

On 2018-11-13, Ingo Schwarze <schwarze@usta.de> wrote:
> 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>.

Perfect, thanks! I can confirm that this fixes the issue with ffmpeg.texi.
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-13  1:23 [texi2mdoc] Documents without @node Michael Forney
2018-11-13  9:13 ` Ingo Schwarze
2018-11-13 10:25 ` Ingo Schwarze
2018-11-13 19:07   ` Michael Forney

tech@mandoc.bsd.lv

Archives are clonable: git clone --mirror http://inbox.vuxu.org/mandoc-tech

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.mandoc.tech


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git