[xml2rfc] Missing page header

clive at demon.net (Clive D.W. Feather) Wed, 09 February 2005 02:23 UTC

From: "clive at demon.net"
Date: Wed, 09 Feb 2005 02:23:35 +0000
Subject: [xml2rfc] Missing page header
Message-ID: <20050209102321.GB61487@finch-staff-1.thus.net>
X-Date: Wed Feb 9 02:23:35 2005

A recent change to xml2rfc has caused an odd effect: one page of the
text version of my document doesn't have a page header. That is, the

    Internet-Draft        <title>              <month>

line is missing from the top of page 17.

I can't create a short test case from my document, but I have discovered
that it's fairly fragile. I *think* it's related to <vspace>. The relevant
XML source is:

    ...
    <list style="hanging">
    <t hangText="HANGING TEXT"><vspace />
    About 6 lines of text here.
    About 6 lines of text here.
    About 6 lines of text here.
    About 6 lines of text here.
    About 6 lines of text here.
    About 6 lines of text here.
    <vspace blankLines="1" /></t>             <=====
    <t>
    This is the special line.
    <vspace blankLines="1" /></t>
    <t hangText="IHAVE"><vspace />
    One line of text here.
    <vspace blankLines="1" /></t>

The text "This is the special line" is at the top of the page missing the
header line. If I pad out the previous paragraph to make it wrap on to the
next page, the problem goes away. If I remove the <vspace /> directive
marked with the arrow, the problem also goes away. Diffing the two cases
shows that:
* The blank line following the header line is missing as well.
* Page breaks are coming two text lines later in the erroneous file; that
  is, two lines of text move from the top of one page to the bottom of the
  previous one, and the ^L lines are on the same line numbers of both
  files. Once a major section break occurs, two blank lines are inserted
  and the documents are then back in sync.
 
The XML context of the above syntax is:

    <?xml version='1.0'?>
    <!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
    <?rfc strict='yes'?>
    <?rfc compact='no'?>
    <?rfc editing='no'?> 
    <?rfc symrefs='yes'?>
    <?rfc sortrefs='yes'?>
    <?rfc emoticonic='yes'?>
    <?rfc toc='yes'?>
    <?rfc tocdepth='9'?>
    <rfc ipr="full3667" docName="draft-ietf-nntpext-base-25">
      <middle>
        <section title="TITLE">
          <section anchor="anchor1" title="TITLE">
            <section anchor="anchor2" title="TITLE">
              <t>
                <list style="hanging">

where the <list> is the one at the start of the extract above.

I hope this is enough information.

-- 
Clive D.W. Feather  | Work:  <clive@demon.net>   | Tel:    +44 20 8495 6138
Internet Expert     | Home:  <clive@davros.org>  | Fax:    +44 870 051 9937
Demon Internet      | WWW: http://www.davros.org | Mobile: +44 7973 377646
Thus plc            |                            |
>From charles_levert at gna.org  Wed Feb  9 07:31:45 2005
From: charles_levert at gna.org (Charles Levert)
Date: Wed Feb  9 04:31:53 2005
Subject: Missing page header  [xml2rfc]
In-Reply-To: <20050209102321.GB61487@finch-staff-1.thus.net>
References: <20050209102321.GB61487@finch-staff-1.thus.net>
Message-ID: <20050209123145.GA2247@localhost.localdomain>

* On Wednesday 2005-02-09 at 10:23:21 +0000, Clive D.W. Feather wrote:
> A recent change to xml2rfc has caused an odd effect: one page of the
> text version of my document doesn't have a page header. That is, the
> 
>     Internet-Draft        <title>              <month>
> 
> line is missing from the top of page 17.
> 
> I can't create a short test case from my document, but I have discovered
> that it's fairly fragile. I *think* it's related to <vspace>. The relevant
> XML source is:

> I hope this is enough information.

Can you send me the exact file that causes the problem?
Otherwise, it's difficult to recreate the exact situation
(position of the line in the current page) that triggers
the problem.

Thanks.
>From clive at demon.net  Thu Feb 10 06:36:27 2005
From: clive at demon.net (Clive D.W. Feather)
Date: Wed Feb  9 22:36:39 2005
Subject: Missing page header  [xml2rfc]
In-Reply-To: <20050209123145.GA2247@localhost.localdomain>
References: <20050209102321.GB61487@finch-staff-1.thus.net>
	<20050209123145.GA2247@localhost.localdomain>
Message-ID: <20050210063627.GA70649@finch-staff-1.thus.net>

Charles Levert said:
>> A recent change to xml2rfc has caused an odd effect: one page of the
>> text version of my document doesn't have a page header.

> Can you send me the exact file that causes the problem?

I didn't want to, because it was awfully long.

However, I've produced the following test case for you. The problem appears
at the top of page 4.

========
<?xml version='1.0'?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
<?rfc strict='yes'?>
<?rfc compact='no'?>
<?rfc editing='no'?>
<?rfc symrefs='yes'?>
<?rfc sortrefs='yes'?>
<?rfc emoticonic='yes'?>
<?rfc toc='yes'?>
<?rfc tocdepth='9'?>
<rfc ipr="full3667" docName="draft-ietf-nntpext-base-25">
<front>
  <title>Test file</title>
  <author initials="C.D.W." surname="Feather" fullname="Clive D.W. Feather">
    <organization>Thus plc</organization>
    <address>
      <postal>
        <street>322 Regents Park Road</street>
        <city>London</city>
        <code>N3 2QQ</code>
        <country>GB</country>
      </postal>
      <phone>     +44 20 8495 6138 </phone>
      <facsimile> +44 870 051 9937 </facsimile>
      <email>clive@demon.net</email>
      <uri>http://www.davros.org/</uri>
    </address>
  </author>
  <date year="2005" month="February" day="8" />
  <area>Test</area>
  <workgroup>Test</workgroup>
  <keyword>Test</keyword>
  <abstract><t>This is a test.</t></abstract>
</front>
<middle>
<section title="Introduction">
<t>This is where I hope to break things.</t>
<t>
<list style="hanging">
<t hangText="APPROACH"><vspace />
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots and lots and lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We really need a lot of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We'll need lots of text to fill this page.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.
We're getting close to the bottom, I hope.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
Weeble weeble weeble.  Weeble weeble weeble.  Weeble weeble weeble.
That should do it.
<vspace blankLines="1" /></t>
<t>Natter gromish rhubarb.<vspace blankLines="1" /></t>
<t hangText="DEPARTURE"><vspace />
Either it broke or it didn't.
<vspace blankLines="1" /></t>
</list>
</t>
</section>
<section title="Security Considerations">
<t>This section is necessary.</t>
</section>
</middle>
</rfc>
========

-- 
Clive D.W. Feather  | Work:  <clive@demon.net>   | Tel:    +44 20 8495 6138
Internet Expert     | Home:  <clive@davros.org>  | Fax:    +44 870 051 9937
Demon Internet      | WWW: http://www.davros.org | Mobile: +44 7973 377646
Thus plc            |                            |
>From charles_levert at gna.org  Thu Feb 10 06:25:22 2005
From: charles_levert at gna.org (Charles Levert)
Date: Thu Feb 10 03:25:33 2005
Subject: Missing page header  [xml2rfc]
In-Reply-To: <20050209102321.GB61487@finch-staff-1.thus.net>
References: <20050209102321.GB61487@finch-staff-1.thus.net>
Message-ID: <20050210112522.GA23012@localhost.localdomain>

* On Wednesday 2005-02-09 at 10:23:21 +0000, Clive D.W. Feather wrote:
> A recent change to xml2rfc has caused an odd effect: one page of the
> text version of my document doesn't have a page header. That is, the
> 
>     Internet-Draft        <title>              <month>
> 
> line is missing from the top of page 17.
> 
> I *think* it's related to <vspace>.

I have found and fixed the problem (with the help of the
test case you sent).  It can happen with either <vspace />
or <?rfc needLines='...'?>.

It is not a recent problem, however.  I was able to
replicate some form of it in every version I tried (that's
every one down to 1.25).  The problematic code being the
same confirms this.

It can affect the nr rendering engine as well, but the
consequence will then be an almost blank page, one page
later.

The fix will be in what I will soon submit to Marshall
as 1.29rc3, along with some improvements to the very same
affected code.

Thanks for reporting the problem.