[BACK]Return to main.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/main.c between version 1.59 and 1.60

version 1.59, 2010/01/29 14:39:38 version 1.60, 2010/03/22 20:43:00
Line 72  struct curparse {
Line 72  struct curparse {
 #define WARN_WALL        (1 << 0)       /* All-warnings mask. */  #define WARN_WALL        (1 << 0)       /* All-warnings mask. */
 #define WARN_WERR        (1 << 2)       /* Warnings->errors. */  #define WARN_WERR        (1 << 2)       /* Warnings->errors. */
         int               fflags;          int               fflags;
 #define IGN_SCOPE        (1 << 0)       /* Ignore scope errors. */  #define FL_IGN_SCOPE     (1 << 0)       /* Ignore scope errors. */
 #define NO_IGN_ESCAPE    (1 << 1)       /* Don't ignore bad escapes. */  #define FL_NIGN_ESCAPE   (1 << 1)       /* Don't ignore bad escapes. */
 #define NO_IGN_MACRO     (1 << 2)       /* Don't ignore bad macros. */  #define FL_NIGN_MACRO    (1 << 2)       /* Don't ignore bad macros. */
 #define NO_IGN_CHARS     (1 << 3)       /* Don't ignore bad chars. */  #define FL_NIGN_CHARS    (1 << 3)       /* Don't ignore bad chars. */
 #define IGN_ERRORS       (1 << 4)       /* Ignore failed parse. */  #define FL_IGN_ERRORS    (1 << 4)       /* Ignore failed parse. */
         enum intt         inttype;      /* Input parsers... */          enum intt         inttype;      /* Input parsers... */
         struct man       *man;          struct man       *man;
         struct man       *lastman;          struct man       *lastman;
Line 90  struct curparse {
Line 90  struct curparse {
         char              outopts[BUFSIZ];          char              outopts[BUFSIZ];
 };  };
   
   #define FL_STRICT         FL_NIGN_ESCAPE | \
                             FL_NIGN_MACRO | \
                             FL_NIGN_CHARS
   
 static  int               foptions(int *, char *);  static  int               foptions(int *, char *);
 static  int               toptions(enum outt *, char *);  static  int               toptions(struct curparse *, char *);
 static  int               moptions(enum intt *, char *);  static  int               moptions(enum intt *, char *);
 static  int               woptions(int *, char *);  static  int               woptions(int *, char *);
 static  int               merr(void *, int, int, const char *);  static  int               merr(void *, int, int, const char *);
Line 144  main(int argc, char *argv[])
Line 148  main(int argc, char *argv[])
                         (void)strlcat(curp.outopts, ",", BUFSIZ);                          (void)strlcat(curp.outopts, ",", BUFSIZ);
                         break;                          break;
                 case ('T'):                  case ('T'):
                         if ( ! toptions(&curp.outtype, optarg))                          if ( ! toptions(&curp, optarg))
                                 return(EXIT_FAILURE);                                  return(EXIT_FAILURE);
                         break;                          break;
                 case ('W'):                  case ('W'):
Line 172  main(int argc, char *argv[])
Line 176  main(int argc, char *argv[])
                 curp.fd = STDIN_FILENO;                  curp.fd = STDIN_FILENO;
   
                 c = fdesc(&blk, &ln, &curp);                  c = fdesc(&blk, &ln, &curp);
                 if ( ! (IGN_ERRORS & curp.fflags))                  if ( ! (FL_IGN_ERRORS & curp.fflags))
                         rc = 1 == c ? 1 : 0;                          rc = 1 == c ? 1 : 0;
                 else                  else
                         rc = -1 == c ? 0 : 1;                          rc = -1 == c ? 0 : 1;
Line 180  main(int argc, char *argv[])
Line 184  main(int argc, char *argv[])
   
         while (rc && *argv) {          while (rc && *argv) {
                 c = ffile(&blk, &ln, *argv, &curp);                  c = ffile(&blk, &ln, *argv, &curp);
                 if ( ! (IGN_ERRORS & curp.fflags))                  if ( ! (FL_IGN_ERRORS & curp.fflags))
                         rc = 1 == c ? 1 : 0;                          rc = 1 == c ? 1 : 0;
                 else                  else
                         rc = -1 == c ? 0 : 1;                          rc = -1 == c ? 0 : 1;
Line 244  man_init(struct curparse *curp)
Line 248  man_init(struct curparse *curp)
   
         pflags = MAN_IGN_MACRO | MAN_IGN_ESCAPE | MAN_IGN_CHARS;          pflags = MAN_IGN_MACRO | MAN_IGN_ESCAPE | MAN_IGN_CHARS;
   
         if (curp->fflags & NO_IGN_MACRO)          if (curp->fflags & FL_NIGN_MACRO)
                 pflags &= ~MAN_IGN_MACRO;                  pflags &= ~MAN_IGN_MACRO;
         if (curp->fflags & NO_IGN_CHARS)          if (curp->fflags & FL_NIGN_CHARS)
                 pflags &= ~MAN_IGN_CHARS;                  pflags &= ~MAN_IGN_CHARS;
         if (curp->fflags & NO_IGN_ESCAPE)          if (curp->fflags & FL_NIGN_ESCAPE)
                 pflags &= ~MAN_IGN_ESCAPE;                  pflags &= ~MAN_IGN_ESCAPE;
   
         return(man_alloc(curp, pflags, &mancb));          return(man_alloc(curp, pflags, &mancb));
Line 268  mdoc_init(struct curparse *curp)
Line 272  mdoc_init(struct curparse *curp)
   
         pflags = MDOC_IGN_MACRO | MDOC_IGN_ESCAPE | MDOC_IGN_CHARS;          pflags = MDOC_IGN_MACRO | MDOC_IGN_ESCAPE | MDOC_IGN_CHARS;
   
         if (curp->fflags & IGN_SCOPE)          if (curp->fflags & FL_IGN_SCOPE)
                 pflags |= MDOC_IGN_SCOPE;                  pflags |= MDOC_IGN_SCOPE;
         if (curp->fflags & NO_IGN_ESCAPE)          if (curp->fflags & FL_NIGN_ESCAPE)
                 pflags &= ~MDOC_IGN_ESCAPE;                  pflags &= ~MDOC_IGN_ESCAPE;
         if (curp->fflags & NO_IGN_MACRO)          if (curp->fflags & FL_NIGN_MACRO)
                 pflags &= ~MDOC_IGN_MACRO;                  pflags &= ~MDOC_IGN_MACRO;
         if (curp->fflags & NO_IGN_CHARS)          if (curp->fflags & FL_NIGN_CHARS)
                 pflags &= ~MDOC_IGN_CHARS;                  pflags &= ~MDOC_IGN_CHARS;
   
         return(mdoc_alloc(curp, pflags, &mdoccb));          return(mdoc_alloc(curp, pflags, &mdoccb));
Line 546  moptions(enum intt *tflags, char *arg)
Line 550  moptions(enum intt *tflags, char *arg)
   
   
 static int  static int
 toptions(enum outt *tflags, char *arg)  toptions(struct curparse *curp, char *arg)
 {  {
   
         if (0 == strcmp(arg, "ascii"))          if (0 == strcmp(arg, "ascii"))
                 *tflags = OUTT_ASCII;                  curp->outtype = OUTT_ASCII;
         else if (0 == strcmp(arg, "lint"))          else if (0 == strcmp(arg, "lint")) {
                 *tflags = OUTT_LINT;                  curp->outtype = OUTT_LINT;
                   curp->wflags |= WARN_WALL;
                   curp->fflags |= FL_STRICT;
           }
         else if (0 == strcmp(arg, "tree"))          else if (0 == strcmp(arg, "tree"))
                 *tflags = OUTT_TREE;                  curp->outtype = OUTT_TREE;
         else if (0 == strcmp(arg, "html"))          else if (0 == strcmp(arg, "html"))
                 *tflags = OUTT_HTML;                  curp->outtype = OUTT_HTML;
         else if (0 == strcmp(arg, "xhtml"))          else if (0 == strcmp(arg, "xhtml"))
                 *tflags = OUTT_XHTML;                  curp->outtype = OUTT_XHTML;
         else {          else {
                 fprintf(stderr, "%s: Bad argument\n", arg);                  fprintf(stderr, "%s: Bad argument\n", arg);
                 return(0);                  return(0);
Line 587  foptions(int *fflags, char *arg)
Line 594  foptions(int *fflags, char *arg)
                 o = arg;                  o = arg;
                 switch (getsubopt(&arg, UNCONST(toks), &v)) {                  switch (getsubopt(&arg, UNCONST(toks), &v)) {
                 case (0):                  case (0):
                         *fflags |= IGN_SCOPE;                          *fflags |= FL_IGN_SCOPE;
                         break;                          break;
                 case (1):                  case (1):
                         *fflags |= NO_IGN_ESCAPE;                          *fflags |= FL_NIGN_ESCAPE;
                         break;                          break;
                 case (2):                  case (2):
                         *fflags |= NO_IGN_MACRO;                          *fflags |= FL_NIGN_MACRO;
                         break;                          break;
                 case (3):                  case (3):
                         *fflags |= NO_IGN_CHARS;                          *fflags |= FL_NIGN_CHARS;
                         break;                          break;
                 case (4):                  case (4):
                         *fflags |= IGN_ERRORS;                          *fflags |= FL_IGN_ERRORS;
                         break;                          break;
                 case (5):                  case (5):
                         *fflags |= NO_IGN_ESCAPE |                          *fflags |= FL_STRICT;
                                    NO_IGN_MACRO | NO_IGN_CHARS;  
                         break;                          break;
                 case (6):                  case (6):
                         *fflags &= ~NO_IGN_ESCAPE;                          *fflags &= ~FL_NIGN_ESCAPE;
                         break;                          break;
                 default:                  default:
                         fprintf(stderr, "%s: Bad argument\n", o);                          fprintf(stderr, "%s: Bad argument\n", o);

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.60

CVSweb