=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/main.c,v retrieving revision 1.18 retrieving revision 1.19 diff -c -r1.18 -r1.19 *** src/usr.bin/mandoc/main.c 2009/10/27 21:40:07 1.18 --- src/usr.bin/mandoc/main.c 2009/12/22 23:58:00 1.19 *************** *** 1,4 **** ! /* $Id: main.c,v 1.18 2009/10/27 21:40:07 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * --- 1,4 ---- ! /* $Id: main.c,v 1.19 2009/12/22 23:58:00 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * *************** *** 17,23 **** #include #include - #include #include #include #include --- 17,22 ---- *************** *** 95,101 **** __dead static void version(void); __dead static void usage(void); ! extern char *__progname; int --- 94,100 ---- __dead static void version(void); __dead static void usage(void); ! static const char *progname; int *************** *** 105,112 **** struct buf ln, blk; struct curparse curp; ! bzero(&curp, sizeof(struct curparse)); curp.inttype = INTT_AUTO; curp.outtype = OUTT_ASCII; --- 104,117 ---- struct buf ln, blk; struct curparse curp; ! progname = strrchr(argv[0], '/'); ! if (progname == NULL) ! progname = argv[0]; ! else ! ++progname; + memset(&curp, 0, sizeof(struct curparse)); + curp.inttype = INTT_AUTO; curp.outtype = OUTT_ASCII; *************** *** 144,151 **** argc -= optind; argv += optind; ! bzero(&ln, sizeof(struct buf)); ! bzero(&blk, sizeof(struct buf)); rc = 1; --- 149,156 ---- argc -= optind; argv += optind; ! memset(&ln, 0, sizeof(struct buf)); ! memset(&blk, 0, sizeof(struct buf)); rc = 1; *************** *** 170,180 **** argv++; if (*argv && rc) { if (curp.lastman) ! if ( ! man_reset(curp.lastman)) ! rc = 0; if (curp.lastmdoc) ! if ( ! mdoc_reset(curp.lastmdoc)) ! rc = 0; curp.lastman = NULL; curp.lastmdoc = NULL; } --- 175,183 ---- argv++; if (*argv && rc) { if (curp.lastman) ! man_reset(curp.lastman); if (curp.lastmdoc) ! mdoc_reset(curp.lastmdoc); curp.lastman = NULL; curp.lastmdoc = NULL; } *************** *** 199,205 **** version(void) { ! (void)printf("%s %s\n", __progname, VERSION); exit(EXIT_SUCCESS); } --- 202,208 ---- version(void) { ! (void)printf("%s %s\n", progname, VERSION); exit(EXIT_SUCCESS); } *************** *** 210,216 **** (void)fprintf(stderr, "usage: %s [-V] [-foption...] " "[-mformat] [-Ooption] [-Toutput] " ! "[-Werr...]\n", __progname); exit(EXIT_FAILURE); } --- 213,219 ---- (void)fprintf(stderr, "usage: %s [-V] [-foption...] " "[-mformat] [-Ooption] [-Toutput] " ! "[-Werr...]\n", progname); exit(EXIT_FAILURE); } *************** *** 219,225 **** man_init(struct curparse *curp) { int pflags; - struct man *man; struct man_cb mancb; mancb.man_err = merr; --- 222,227 ---- *************** *** 236,245 **** if (curp->fflags & NO_IGN_ESCAPE) pflags &= ~MAN_IGN_ESCAPE; ! if (NULL == (man = man_alloc(curp, pflags, &mancb))) ! warnx("memory exhausted"); ! ! return(man); } --- 238,244 ---- if (curp->fflags & NO_IGN_ESCAPE) pflags &= ~MAN_IGN_ESCAPE; ! return(man_alloc(curp, pflags, &mancb)); } *************** *** 247,253 **** mdoc_init(struct curparse *curp) { int pflags; - struct mdoc *mdoc; struct mdoc_cb mdoccb; mdoccb.mdoc_err = merr; --- 246,251 ---- *************** *** 266,275 **** if (curp->fflags & NO_IGN_CHARS) pflags &= ~MDOC_IGN_CHARS; ! if (NULL == (mdoc = mdoc_alloc(curp, pflags, &mdoccb))) ! warnx("memory exhausted"); ! ! return(mdoc); } --- 264,270 ---- if (curp->fflags & NO_IGN_CHARS) pflags &= ~MDOC_IGN_CHARS; ! return(mdoc_alloc(curp, pflags, &mdoccb)); } *************** *** 281,294 **** curp->file = file; if (-1 == (curp->fd = open(curp->file, O_RDONLY, 0))) { ! warn("%s", curp->file); return(-1); } c = fdesc(blk, ln, curp); if (-1 == close(curp->fd)) ! warn("%s", curp->file); return(c); } --- 276,289 ---- curp->file = file; if (-1 == (curp->fd = open(curp->file, O_RDONLY, 0))) { ! perror(curp->file); return(-1); } c = fdesc(blk, ln, curp); if (-1 == close(curp->fd)) ! perror(curp->file); return(c); } *************** *** 315,329 **** */ if (-1 == fstat(curp->fd, &st)) ! warn("%s", curp->file); else if ((size_t)st.st_blksize > sz) sz = st.st_blksize; if (sz > blk->sz) { blk->buf = realloc(blk->buf, sz); if (NULL == blk->buf) { ! warn("realloc"); ! return(-1); } blk->sz = sz; } --- 310,324 ---- */ if (-1 == fstat(curp->fd, &st)) ! perror(curp->file); else if ((size_t)st.st_blksize > sz) sz = st.st_blksize; if (sz > blk->sz) { blk->buf = realloc(blk->buf, sz); if (NULL == blk->buf) { ! perror(NULL); ! exit(EXIT_FAILURE); } blk->sz = sz; } *************** *** 332,338 **** for (lnn = pos = comment = 0; ; ) { if (-1 == (ssz = read(curp->fd, blk->buf, sz))) { ! warn("%s", curp->file); return(-1); } else if (0 == ssz) break; --- 327,333 ---- for (lnn = pos = comment = 0; ; ) { if (-1 == (ssz = read(curp->fd, blk->buf, sz))) { ! perror(curp->file); return(-1); } else if (0 == ssz) break; *************** *** 344,351 **** ln->sz += 256; /* Step-size. */ ln->buf = realloc(ln->buf, ln->sz); if (NULL == ln->buf) { ! warn("realloc"); ! return(-1); } } --- 339,346 ---- ln->sz += 256; /* Step-size. */ ln->buf = realloc(ln->buf, ln->sz); if (NULL == ln->buf) { ! perror(NULL); ! return(EXIT_FAILURE); } } *************** *** 408,415 **** /* NOTE a parser may not have been assigned, yet. */ if ( ! (man || mdoc)) { ! (void)fprintf(stderr, "%s: not a manual\n", ! curp->file); return(0); } --- 403,409 ---- /* NOTE a parser may not have been assigned, yet. */ if ( ! (man || mdoc)) { ! fprintf(stderr, "%s: Not a manual\n", curp->file); return(0); } *************** *** 524,530 **** else if (0 == strcmp(arg, "an")) *tflags = INTT_MAN; else { ! warnx("bad argument: -m%s", arg); return(0); } --- 518,524 ---- else if (0 == strcmp(arg, "an")) *tflags = INTT_MAN; else { ! fprintf(stderr, "%s: Bad argument", arg); return(0); } *************** *** 545,551 **** else if (0 == strcmp(arg, "html")) *tflags = OUTT_HTML; else { ! warnx("bad argument: -T%s", arg); return(0); } --- 539,545 ---- else if (0 == strcmp(arg, "html")) *tflags = OUTT_HTML; else { ! fprintf(stderr, "%s: Bad argument", arg); return(0); } *************** *** 557,563 **** foptions(int *fflags, char *arg) { char *v, *o; ! const char *toks[7]; toks[0] = "ign-scope"; toks[1] = "no-ign-escape"; --- 551,557 ---- foptions(int *fflags, char *arg) { char *v, *o; ! const char *toks[8]; toks[0] = "ign-scope"; toks[1] = "no-ign-escape"; *************** *** 565,571 **** toks[3] = "no-ign-chars"; toks[4] = "ign-errors"; toks[5] = "strict"; ! toks[6] = NULL; while (*arg) { o = arg; --- 559,566 ---- toks[3] = "no-ign-chars"; toks[4] = "ign-errors"; toks[5] = "strict"; ! toks[6] = "ign-escape"; ! toks[7] = NULL; while (*arg) { o = arg; *************** *** 589,596 **** *fflags |= NO_IGN_ESCAPE | NO_IGN_MACRO | NO_IGN_CHARS; break; default: ! warnx("bad argument: -f%s", o); return(0); } } --- 584,594 ---- *fflags |= NO_IGN_ESCAPE | NO_IGN_MACRO | NO_IGN_CHARS; break; + case (6): + *fflags &= ~NO_IGN_ESCAPE; + break; default: ! fprintf(stderr, "%s: Bad argument", o); return(0); } } *************** *** 619,625 **** *wflags |= WARN_WERR; break; default: ! warnx("bad argument: -W%s", o); return(0); } } --- 617,623 ---- *wflags |= WARN_WERR; break; default: ! fprintf(stderr, "%s: Bad argument", o); return(0); } }