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

Diff for /mandoc/mdoc_argv.c between version 1.3 and 1.9

version 1.3, 2009/04/12 19:45:26 version 1.9, 2009/07/06 09:21:24
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org>   * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 32 
Line 32 
  * There's no limit to the number or arguments that may be allocated.   * There's no limit to the number or arguments that may be allocated.
  */   */
   
   /* FIXME .Bf Li raises "macro-like parameter". */
   /* FIXME .Bl -column should deprecate old-groff syntax. */
   
 #define ARGS_QUOTED     (1 << 0)  #define ARGS_QUOTED     (1 << 0)
 #define ARGS_DELIM      (1 << 1)  #define ARGS_DELIM      (1 << 1)
 #define ARGS_TABSEP     (1 << 2)  #define ARGS_TABSEP     (1 << 2)
Line 105  static int mdoc_argvflags[MDOC_ARG_MAX] = {
Line 108  static int mdoc_argvflags[MDOC_ARG_MAX] = {
 };  };
   
 static  int mdoc_argflags[MDOC_MAX] = {  static  int mdoc_argflags[MDOC_MAX] = {
         0, /* \" */          0, /* Ap */
         0, /* Dd */          0, /* Dd */
         0, /* Dt */          0, /* Dt */
         0, /* Os */          0, /* Os */
Line 116  static int mdoc_argflags[MDOC_MAX] = {
Line 119  static int mdoc_argflags[MDOC_MAX] = {
         ARGS_DELIM | ARGS_QUOTED, /* Dl */          ARGS_DELIM | ARGS_QUOTED, /* Dl */
         0, /* Bd */          0, /* Bd */
         0, /* Ed */          0, /* Ed */
         0, /* Bl */          ARGS_QUOTED, /* Bl */
         0, /* El */          0, /* El */
         0, /* It */          0, /* It */
         ARGS_DELIM, /* Ad */          ARGS_DELIM, /* Ad */
Line 212  static int mdoc_argflags[MDOC_MAX] = {
Line 215  static int mdoc_argflags[MDOC_MAX] = {
         0, /* Fr */          0, /* Fr */
         0, /* Ud */          0, /* Ud */
         0, /* Lb */          0, /* Lb */
         0, /* Ap */  
         ARGS_DELIM, /* Lp */          ARGS_DELIM, /* Lp */
         ARGS_DELIM | ARGS_QUOTED, /* Lk */          ARGS_DELIM | ARGS_QUOTED, /* Lk */
         ARGS_DELIM | ARGS_QUOTED, /* Mt */          ARGS_DELIM | ARGS_QUOTED, /* Mt */
Line 367  perr(struct mdoc *mdoc, int line, int pos, enum merr c
Line 369  perr(struct mdoc *mdoc, int line, int pos, enum merr c
                 p = "argument requires a value";                  p = "argument requires a value";
                 break;                  break;
         }          }
   
         assert(p);          assert(p);
         return(mdoc_perr(mdoc, line, pos, p));          return(mdoc_perr(mdoc, line, pos, p));
 }  }
Line 376  static int
Line 379  static int
 pwarn(struct mdoc *mdoc, int line, int pos, enum mwarn code)  pwarn(struct mdoc *mdoc, int line, int pos, enum mwarn code)
 {  {
         char            *p;          char            *p;
         int              c;  
   
         p = NULL;          p = NULL;
         c = WARN_SYNTAX;  
         switch (code) {          switch (code) {
         case (WQUOTPARM):          case (WQUOTPARM):
                 p = "unexpected quoted parameter";                  p = "unexpected quoted parameter";
Line 389  pwarn(struct mdoc *mdoc, int line, int pos, enum mwarn
Line 391  pwarn(struct mdoc *mdoc, int line, int pos, enum mwarn
                 break;                  break;
         case (WCOLEMPTY):          case (WCOLEMPTY):
                 p = "last list column is empty";                  p = "last list column is empty";
                 c = WARN_COMPAT;  
                 break;                  break;
         case (WTAILWS):          case (WTAILWS):
                 p = "trailing whitespace";                  p = "trailing whitespace";
                 c = WARN_COMPAT;  
                 break;                  break;
         }          }
   
         assert(p);          assert(p);
         return(mdoc_pwarn(mdoc, line, pos, c, p));          return(mdoc_pwarn(mdoc, line, pos, p));
 }  }
   
   
Line 754  static int
Line 755  static int
 argv_multi(struct mdoc *mdoc, int line,  argv_multi(struct mdoc *mdoc, int line,
                 struct mdoc_argv *v, int *pos, char *buf)                  struct mdoc_argv *v, int *pos, char *buf)
 {  {
         int              c, ppos;          int              c;
         char            *p;          char            *p;
   
         ppos = *pos;  
   
         for (v->sz = 0; ; v->sz++) {          for (v->sz = 0; ; v->sz++) {
                 if ('-' == buf[*pos])                  if ('-' == buf[*pos])
                         break;                          break;
Line 780  argv_multi(struct mdoc *mdoc, int line, 
Line 779  argv_multi(struct mdoc *mdoc, int line, 
                         return(verr(mdoc, EMALLOC));                          return(verr(mdoc, EMALLOC));
         }          }
   
         if (v->sz)          return(1);
                 return(1);  
   
         return(perr(mdoc, line, ppos, EARGVAL));  
 }  }
   
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.9

CVSweb