* texi2mdoc: Prevent empty Bd/Ed listing after type definition.
@ 2015-03-09 18:55 kristaps
0 siblings, 0 replies; only message in thread
From: kristaps @ 2015-03-09 18:55 UTC (permalink / raw)
To: source
Log Message:
-----------
Prevent empty Bd/Ed listing after type definition.
This also includes some ifdef'd menu generation.
Modified Files:
--------------
texi2mdoc:
main.c
Revision Data
-------------
Index: main.c
===================================================================
RCS file: /home/cvs/mdocml/texi2mdoc/main.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -Lmain.c -Lmain.c -u -p -r1.64 -r1.65
--- main.c
+++ main.c
@@ -65,6 +65,9 @@ static void domath(struct texi *, enum t
static void domenu(struct texi *, enum texicmd, size_t *);
#endif
static void domultitable(struct texi *, enum texicmd, size_t *);
+#if 0
+static void donode(struct texi *, enum texicmd, size_t *);
+#endif
static void doquotation(struct texi *, enum texicmd, size_t *);
static void dotable(struct texi *, enum texicmd, size_t *);
static void dotop(struct texi *, enum texicmd, size_t *);
@@ -234,12 +237,20 @@ static const struct texitok __texitoks[T
{ domacro, "macro", 5 }, /* TEXICMD_MACRO */
{ doaccent, "=", 1 }, /* TEXICMD_MACRON */
{ domath, "math", 4 }, /* TEXICMD_MATH */
+#if 0
+ { domenu, "menu", 4 }, /* TEXICMD_MENU */
+#else
{ doignblock, "menu", 4 }, /* TEXICMD_MENU */
+#endif
{ dosymbol, "minus", 5 }, /* TEXICMD_MINUS */
{ domultitable, "multitable", 10 }, /* TEXICMD_MULTITABLE */
{ doignline, "need", 4 }, /* TEXICMD_NEED */
{ dosymbol, "\n", 1 }, /* TEXICMD_NEWLINE */
+#if 0
+ { donode, "node", 4 }, /* TEXICMD_NODE */
+#else
{ doignline, "node", 4 }, /* TEXICMD_NODE */
+#endif
{ doignline, "noindent", 8 }, /* TEXICMD_NOINDENT */
{ dosymbol, "O", 1 }, /* TEXICMD_O */
{ dosymbol, "OE", 2 }, /* TEXICMD_OE */
@@ -546,6 +557,12 @@ dodefn(struct texi *p, enum texicmd cmd,
}
break;
}
+
+ if (TEXICMD_END == peekcmd(p, *pos)) {
+ parseto(p, pos, blk);
+ return;
+ }
+
teximacro(p, "Bd -filled -offset indent");
parseto(p, pos, blk);
teximacro(p, "Ed");
@@ -1456,9 +1473,30 @@ doquotation(struct texi *p, enum texicmd
#if 0
static void
+donode(struct texi *p, enum texicmd cmd, size_t *pos)
+{
+
+ teximacroopen(p, "Ix");
+ texiputchars(p, "Node");
+ while (*pos < BUFSZ(p) && isspace(BUF(p)[*pos]))
+ advance(p, pos);
+ while (*pos < BUFSZ(p)) {
+ if (BUF(p)[*pos] == ',')
+ break;
+ else if (BUF(p)[*pos] == '\n')
+ break;
+ texiputchar(p, BUF(p)[*pos]);
+ advance(p, pos);
+ }
+
+ teximacroclose(p);
+ advanceeoln(p, pos, 1);
+}
+
+static void
domenu(struct texi *p, enum texicmd cmd, size_t *pos)
{
- size_t start;
+ size_t start, sv;
if (NULL != p->chapters) {
doignblock(p, cmd, pos);
@@ -1467,7 +1505,8 @@ domenu(struct texi *p, enum texicmd cmd,
advanceeoln(p, pos, 1);
- teximacro(p, "Bl -tag -width Ds");
+ texivspace(p);
+ teximacro(p, "Bl -tag -width Ds -compact");
while (*pos < BUFSZ(p)) {
/* Read to next menu item. */
while (*pos < BUFSZ(p) && ismspace(BUF(p)[*pos]))
@@ -1479,7 +1518,7 @@ domenu(struct texi *p, enum texicmd cmd,
advance(p, pos);
while (*pos < BUFSZ(p) && ismspace(BUF(p)[*pos]))
advance(p, pos);
- start = *pos;
+ sv = start = *pos;
while (*pos < BUFSZ(p) && ':' != BUF(p)[*pos])
advance(p, pos);
if (*pos == BUFSZ(p) || *pos == start) {
@@ -1487,9 +1526,15 @@ domenu(struct texi *p, enum texicmd cmd,
break;
}
teximacroopen(p, "It");
- teximacroopen(p, "Sx");
- for ( ; start < *pos; start++)
+ teximacroopen(p, "Lkx");
+ texiputchar(p, '"');
+ texiputchars(p, "Node");
+ for (start = sv; start < *pos; start++)
+ texiputchar(p, BUF(p)[start]);
+ texiputchars(p, "\" \"");
+ for (start = sv; start < *pos; start++)
texiputchar(p, BUF(p)[start]);
+ texiputchar(p, '"');
teximacroclose(p);
teximacroclose(p);
--
To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-03-09 18:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-09 18:55 texi2mdoc: Prevent empty Bd/Ed listing after type definition kristaps
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).