=================================================================== RCS file: /cvs/pod2mdoc/pod2mdoc.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -p -r1.11 -r1.12 --- pod2mdoc/pod2mdoc.c 2014/04/01 08:31:00 1.11 +++ pod2mdoc/pod2mdoc.c 2014/04/01 11:58:32 1.12 @@ -1,4 +1,4 @@ -/* $Id: pod2mdoc.c,v 1.11 2014/04/01 08:31:00 kristaps Exp $ */ +/* $Id: pod2mdoc.c,v 1.12 2014/04/01 11:58:32 kristaps Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * @@ -817,6 +817,26 @@ ordinary(struct state *st, const char *buf, size_t sta printf("\\&"); else if ('\n' == last && '\'' == buf[start]) printf("\\&"); +#if notyet + /* + * If we're in the SYNOPSIS, have square + * brackets indicate that we're opening and + * closing an optional context. + */ + if (SECT_SYNOPSIS == st->sect) { + if ('[' == buf[start] || + ']' == buf[start]) { + if (last != '\n') + putchar('\n'); + if ('[' == buf[start]) + printf(".Oo\n"); + else + printf(".Oc\n"); + start++; + continue; + } + } +#endif putchar(last = buf[start++]); if ('\\' == last) putchar('e'); @@ -861,19 +881,7 @@ ordinary(struct state *st, const char *buf, size_t sta for ( ; start < end; start++) if (' ' != buf[start] && '\t' != buf[start]) break; - } else if (start < end) { - /* - * Default: print the character. - * Escape initial control characters. - */ - if ('\n' == last && '.' == buf[start]) - printf("\\&"); - else if ('\n' == last && '\'' == buf[start]) - printf("\\&"); - putchar(last = buf[start++]); - if ('\\' == last) - putchar('e'); - } + } } if (last != '\n')