=================================================================== RCS file: /cvs/pod2mdoc/pod2mdoc.c,v retrieving revision 1.23 retrieving revision 1.27 diff -u -p -r1.23 -r1.27 --- pod2mdoc/pod2mdoc.c 2014/04/07 11:46:03 1.23 +++ pod2mdoc/pod2mdoc.c 2014/07/11 09:10:50 1.27 @@ -1,4 +1,4 @@ -/* $Id: pod2mdoc.c,v 1.23 2014/04/07 11:46:03 kristaps Exp $ */ +/* $Id: pod2mdoc.c,v 1.27 2014/07/11 09:10:50 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * @@ -460,6 +460,13 @@ formatcode(struct state *st, const char *buf, size_t * (*start) += dsz; break; } + if (*start < end) { + assert('>' == buf[*start]); + (*start)++; + } + if (isspace(last)) + while (*start < end && isspace((int)buf[*start])) + (*start)++; return(0); } @@ -504,7 +511,12 @@ formatcode(struct state *st, const char *buf, size_t * printf("Ar "); break; } - printf("Sy "); + if (0 == strncmp(buf + *start, "NULL", 4) && + ('=' == buf[*start + 4] || + '>' == buf[*start + 4])) + printf("Dv "); + else + printf("Sy "); break; case (FMT_CODE): printf("Qo Li "); @@ -1263,8 +1275,6 @@ readfile(const struct args *args, const char *fname) time_t ttm; struct stat st; - assert(NULL != fname); - fd = 0 != strcmp("-", fname) ? open(fname, O_RDONLY, 0) : STDIN_FILENO; @@ -1370,8 +1380,8 @@ main(int argc, char *argv[]) /* Accept only a single input file. */ - if (argc > 2) - return(EXIT_FAILURE); + if (argc > 1) + goto usage; else if (1 == argc) fname = *argv; @@ -1380,7 +1390,7 @@ main(int argc, char *argv[]) usage: fprintf(stderr, "usage: %s [-d date] " - "[-n title] [-s section]\n", name); + "[-n title] [-s section] [file]\n", name); return(EXIT_FAILURE); }