[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.2 and 1.9

version 1.2, 2009/03/31 13:50:19 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   * purpose with or without fee is hereby granted, provided that the above
  * above copyright notice and this permission notice appear in all   * copyright notice and this permission notice appear in all copies.
  * copies.  
  *   *
  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  * PERFORMANCE OF THIS SOFTWARE.  
  */   */
 #include <sys/types.h>  #include <sys/types.h>
   
Line 34 
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 107  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 118  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 214  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 369  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 378  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 391  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 756  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 782  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.2  
changed lines
  Added in v.1.9

CVSweb