From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.sgregoratto.me (mail.sgregoratto.me [149.28.166.45]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTP id d338f80b for ; Fri, 22 Mar 2019 05:34:02 -0500 (EST) Received: from mail.sgregoratto.me (localhost [127.0.0.1]) by mail.sgregoratto.me (Postfix) with ESMTP id 113203E8D8 for ; Fri, 22 Mar 2019 21:33:59 +1100 (AEDT) Authentication-Results: mail.sgregoratto.me (amavisd-new); dkim=pass (1024-bit key) reason="pass (just generated, assumed good)" header.d=sgregoratto.me DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=sgregoratto.me; h=user-agent:content-disposition:content-type:content-type :mime-version:message-id:subject:subject:to:from:from:date:date; s=dkim; t=1553250838; x=1555842839; bh=6vmmmEuSSGmbgTDdhGDXLXAY 1mGwNNLAamPWttD+g0k=; b=FBfrdK7Bqw+7EZcwyXzqZTWFNAnmUrtg+9DYSme2 N+xmepCI/bs7kj+aW83sxlVBziinSVwbX8hsZlofGjWYNgDbJRIkzDGIeBKfVDYj BMX2BwprC3q6p5eLA3oA0TCNjvNHuT4KbEDSTspKfH2RTX4lPStor2qBigmkMeF9 fgM= X-Virus-Scanned: Debian amavisd-new at mail.sgregoratto.me Received: from mail.sgregoratto.me ([127.0.0.1]) by mail.sgregoratto.me (mail.sgregoratto.me [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id jRU4ieoXXdJK for ; Fri, 22 Mar 2019 21:33:58 +1100 (AEDT) Received: from localhost (172.44.179.58.sta.dodo.net.au [58.179.44.172]) by mail.sgregoratto.me (Postfix) with ESMTPSA id 6E8A43E8AE for ; Fri, 22 Mar 2019 21:33:58 +1100 (AEDT) Date: Fri, 22 Mar 2019 21:33:57 +1100 From: Stephen Gregoratto To: tech@mandoc.bsd.lv Subject: [PATCH docbook2mdoc] Add NODE_EMAIL Message-ID: <20190322103342.6idzehqruirutcog@BlackBox> X-Mailinglist: mandoc-tech Reply-To: tech@mandoc.bsd.lv MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline User-Agent: NeoMutt/20180716 Add support for the node. The official XSL stylesheets enclose the address in angle brackets, and so shall we. While we're at it, add a missing return statement for NODE_REFENTRYTITLE. I intend to add more nodes in the future so I'm starting with a small addition to get a feel of the code-base. Critique is fully welcome here. I hope to add node soon, so we can generate a full `.An` block. For example: Joe Bloggo Bloggs joe@foo.net Would transform into: .An Joe So Bloggo Sq Bloggs Aq Mt joe@foo.net The othername part may be overkill right now. Not sure if this would require it's own function like pnode_printrefsect(). Index: docbook2mdoc.c =================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.47 diff -u -p -r1.47 docbook2mdoc.c --- docbook2mdoc.c 8 Mar 2019 15:18:50 -0000 1.47 +++ docbook2mdoc.c 22 Mar 2019 10:07:15 -0000 @@ -105,6 +105,7 @@ static const struct node nodes[NODE__MAX { "constant", 0 }, { "copyright", NODE_IGNTEXT }, { "date", 0 }, + { "email", 0 }, { "emphasis", 0 }, { "entry", 0 }, { "envar", 0 }, @@ -1252,6 +1253,10 @@ pnode_print(struct parse *p, struct pnod pnode_printmopen(p); fputs("Dv", stdout); break; + case (NODE_EMAIL): + pnode_printmopen(p); + fputs("Aq Mt", stdout); + break; case (NODE_EMPHASIS): pnode_printmopen(p); fputs("Em", stdout); @@ -1522,6 +1527,7 @@ pnode_print(struct parse *p, struct pnod case (NODE_CODE): case (NODE_COMMAND): case (NODE_CONSTANT): + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENVAR): case (NODE_FILENAME): Index: extern.h =================================================================== RCS file: /cvs/docbook2mdoc/extern.h,v retrieving revision 1.25 diff -u -p -r1.25 extern.h --- extern.h 19 Mar 2015 10:04:32 -0000 1.25 +++ extern.h 22 Mar 2019 10:07:15 -0000 @@ -20,6 +20,7 @@ enum nodeid { NODE_CONSTANT, NODE_COPYRIGHT, NODE_DATE, + NODE_EMAIL, NODE_EMPHASIS, NODE_ENTRY, NODE_ENVAR, Index: rules.c =================================================================== RCS file: /cvs/docbook2mdoc/rules.c,v retrieving revision 1.25 diff -u -p -r1.25 rules.c --- rules.c 19 Mar 2015 10:04:32 -0000 1.25 +++ rules.c 22 Mar 2019 10:07:15 -0000 @@ -71,6 +71,7 @@ isparent(enum nodeid node, enum nodeid p return(0); case (NODE_ACRONYM): switch (parent) { + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): @@ -289,6 +290,7 @@ isparent(enum nodeid node, enum nodeid p return(0); case (NODE_DATE): switch (parent) { + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): @@ -311,8 +313,30 @@ isparent(enum nodeid node, enum nodeid p break; } return(0); + case (NODE_EMAIL): + switch (parent) { + case (NODE_ENTRY): + case (NODE_FUNCSYNOPSISINFO): + case (NODE_LINK): + case (NODE_PARA): + case (NODE_PROGRAMLISTING): + case (NODE_REFDESCRIPTOR): + case (NODE_REFENTRYTITLE): + case (NODE_REFNAME): + case (NODE_REFPURPOSE): + case (NODE_SCREEN): + case (NODE_SYNOPSIS): + case (NODE_TERM): + case (NODE_TITLE): + case (NODE_USERINPUT): + return(1); + default: + break; + } + return(0); case (NODE_EMPHASIS): switch (parent) { + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): @@ -577,6 +601,7 @@ isparent(enum nodeid node, enum nodeid p case (NODE_CODE): case (NODE_COMMAND): case (NODE_CONSTANT): + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_ENVAR): @@ -883,6 +908,7 @@ isparent(enum nodeid node, enum nodeid p return(0); case (NODE_QUOTE): switch (parent) { + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): @@ -920,6 +946,7 @@ isparent(enum nodeid node, enum nodeid p default: break; } + return(0); case (NODE_REFMETA): return(parent == NODE_REFENTRY); case (NODE_REFMETAINFO): @@ -966,6 +993,7 @@ isparent(enum nodeid node, enum nodeid p case (NODE_COMMAND): case (NODE_CONSTANT): case (NODE_EMPHASIS): + case (NODE_EMAIL): case (NODE_ENTRY): case (NODE_ENVAR): case (NODE_FILENAME): @@ -1208,6 +1236,7 @@ isparent(enum nodeid node, enum nodeid p case (NODE_TRADEMARK): switch (parent) { case (NODE_ACRONYM): + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): @@ -1350,6 +1379,7 @@ isparent(enum nodeid node, enum nodeid p return(0); case (NODE_WORDASWORD): switch (parent) { + case (NODE_EMAIL): case (NODE_EMPHASIS): case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): -- To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv