[xml2rfc] Missing <TD> - xml2rfc crashes

Roger Price <roger@rogerprice.org> Fri, 02 July 2021 13:54 UTC

Return-Path: <roger@rogerprice.org>
X-Original-To: xml2rfc@ietfa.amsl.com
Delivered-To: xml2rfc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D9BB83A1F78 for <xml2rfc@ietfa.amsl.com>; Fri, 2 Jul 2021 06:54:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.597
X-Spam-Level:
X-Spam-Status: No, score=-2.597 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b6cf30CjdCaV for <xml2rfc@ietfa.amsl.com>; Fri, 2 Jul 2021 06:54:49 -0700 (PDT)
Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E459E3A1F77 for <xml2rfc@ietf.org>; Fri, 2 Jul 2021 06:54:47 -0700 (PDT)
Received: (Authenticated sender: mailbox@rogerprice.org) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 7F39E1BF20E; Fri, 2 Jul 2021 13:54:45 +0000 (UTC)
Date: Fri, 02 Jul 2021 15:54:44 +0200
From: Roger Price <roger@rogerprice.org>
X-X-Sender: rprice@maria.rogerprice.org
To: xml2rfc Mailing List <xml2rfc@ietf.org>
Message-ID: <alpine.DEB.2.20.2107021538320.25376@maria.rogerprice.org>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
X-Message-Flag: Supplemental report to reaper.nsa.gov. rc=0
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Archived-At: <https://mailarchive.ietf.org/arch/msg/xml2rfc/nUf1G57-C9u9I8JR2oSYuzMFGtE>
Subject: [xml2rfc] Missing <TD> - xml2rfc crashes
X-BeenThere: xml2rfc@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: XML2RFC discussion list <xml2rfc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/xml2rfc>, <mailto:xml2rfc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/xml2rfc/>
List-Post: <mailto:xml2rfc@ietf.org>
List-Help: <mailto:xml2rfc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/xml2rfc>, <mailto:xml2rfc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Jul 2021 13:54:55 -0000

xml2rfc version 3.5.0.  When a <td> is missing in a table as in:

<table>
<thead>
<tr><th>Command     <th>Response             <th>Note
<tbody>
<tr><td>FSD         <td>OK FSD-SET
</table>

I get the error message:

Traceback (most recent call last):
   File "/usr/bin/xml2rfc", line 11, in <module>
     sys.exit(main())
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/run.py",
     line 739, in main
     writer.write(filename)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 345, in write
     text = self.process()
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 301, in process
     lines = self.render(self.root, width=72, joiners=joiners)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 369, in render
     res = func(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 3059, in render_rfc
     lines = self.ljoin(lines, c, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 561, in ljoin
     res = mklines(self.render(e, width, **kwargs), e)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 369, in render
     res = func(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 2237, in render_middle
     lines = self.ljoin(lines, c, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 561, in ljoin
     res = mklines(self.render(e, width, **kwargs), e)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 369, in render
     res = func(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 3329, in render_section
     lines = self.ljoin(lines, c, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 561, in ljoin
     res = mklines(self.render(e, width, **kwargs), e)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 369, in render
     res = func(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 3329, in render_section
     lines = self.ljoin(lines, c, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 561, in ljoin
     res = mklines(self.render(e, width, **kwargs), e)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 369, in render
     res = func(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 3329, in render_section
     lines = self.ljoin(lines, c, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 561, in ljoin
     res = mklines(self.render(e, width, **kwargs), e)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 369, in render
     res = func(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 4199, in render_table
     lines = self.build_table(e, width, **kwargs)
   File "/mnt/home/rprice/.local/lib/python3.5/site-packages/xml2rfc/writers/text.py",
     line 3982, in build_table
     del k, l
UnboundLocalError: local variable 'k' referenced before assignment

Roger