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

Diff for /mandoc/Attic/argv.c between version 1.48 and 1.51

version 1.48, 2009/03/11 00:39:58 version 1.51, 2009/03/14 05:21:58
Line 60  enum merr {
Line 60  enum merr {
 static  int              argv_a2arg(int, const char *);  static  int              argv_a2arg(int, const char *);
 static  int              args(struct mdoc *, int, int *,  static  int              args(struct mdoc *, int, int *,
                                 char *, int, char **);                                  char *, int, char **);
 static  int              argv(struct mdoc *, int, int,  static  int              argv(struct mdoc *, int,
                                 struct mdoc_argv *, int *, char *);                                  struct mdoc_argv *, int *, char *);
 static  int              argv_single(struct mdoc *, int,  static  int              argv_single(struct mdoc *, int,
                                 struct mdoc_argv *, int *, char *);                                  struct mdoc_argv *, int *, char *);
Line 94  static int mdoc_argvflags[MDOC_ARG_MAX] = {
Line 94  static int mdoc_argvflags[MDOC_ARG_MAX] = {
         ARGV_MULTI,     /* MDOC_Column */          ARGV_MULTI,     /* MDOC_Column */
         ARGV_SINGLE,    /* MDOC_Width */          ARGV_SINGLE,    /* MDOC_Width */
         ARGV_NONE,      /* MDOC_Compact */          ARGV_NONE,      /* MDOC_Compact */
         ARGV_SINGLE,    /* MDOC_Std */          ARGV_OPT_SINGLE, /* MDOC_Std */
         ARGV_NONE,      /* MDOC_Filled */          ARGV_NONE,      /* MDOC_Filled */
         ARGV_NONE,      /* MDOC_Words */          ARGV_NONE,      /* MDOC_Words */
         ARGV_NONE,      /* MDOC_Emphasis */          ARGV_NONE,      /* MDOC_Emphasis */
           ARGV_NONE,      /* MDOC_Symbolic */
         ARGV_NONE       /* MDOC_Symbolic */          ARGV_NONE       /* MDOC_Symbolic */
 };  };
   
Line 216  static int mdoc_argflags[MDOC_MAX] = {
Line 217  static int mdoc_argflags[MDOC_MAX] = {
         ARGS_DELIM, /* Brq */          ARGS_DELIM, /* Brq */
         0, /* Bro */          0, /* Bro */
         ARGS_DELIM, /* Brc */          ARGS_DELIM, /* Brc */
           ARGS_QUOTED, /* %C */
 };  };
   
   
Line 290  mdoc_argv(struct mdoc *mdoc, int line, int tok,
Line 292  mdoc_argv(struct mdoc *mdoc, int line, int tok,
   
         /* FIXME: whitespace if no value. */          /* FIXME: whitespace if no value. */
   
         if ( ! argv(mdoc, tok, line, &tmp, pos, buf))          if ( ! argv(mdoc, line, &tmp, pos, buf))
                 return(ARGV_ERROR);                  return(ARGV_ERROR);
   
         if (NULL == (arg = *v)) {          if (NULL == (arg = *v)) {
Line 576  args(struct mdoc *mdoc, int line, 
Line 578  args(struct mdoc *mdoc, int line, 
                                         return(0);                                          return(0);
   
                         if (p)                          if (p)
                                 return(ARGS_WORD);                                  return(ARGS_PHRASE);
   
                         /* Configure the eoln case, too. */                          /* Configure the eoln case, too. */
   
Line 588  args(struct mdoc *mdoc, int line, 
Line 590  args(struct mdoc *mdoc, int line, 
                                         return(0);                                          return(0);
                         *pos += (int)(p - *v);                          *pos += (int)(p - *v);
   
                         return(ARGS_WORD);                          return(ARGS_PHRASE);
                 }                  }
   
                 /* Do non-tabsep look-ahead here. */                  /* Do non-tabsep look-ahead here. */
Line 688  argv_a2arg(int tok, const char *argv)
Line 690  argv_a2arg(int tok, const char *argv)
                         return(MDOC_File);                          return(MDOC_File);
                 else if (xstrcmp(argv, "offset"))                  else if (xstrcmp(argv, "offset"))
                         return(MDOC_Offset);                          return(MDOC_Offset);
                   else if (xstrcmp(argv, "compact"))
                           return(MDOC_Compact);
                 break;                  break;
   
         case (MDOC_Bf):          case (MDOC_Bf):
Line 733  argv_a2arg(int tok, const char *argv)
Line 737  argv_a2arg(int tok, const char *argv)
                         return(MDOC_Offset);                          return(MDOC_Offset);
                 else if (xstrcmp(argv, "compact"))                  else if (xstrcmp(argv, "compact"))
                         return(MDOC_Compact);                          return(MDOC_Compact);
                   else if (xstrcmp(argv, "nested"))
                           return(MDOC_Nested);
                 break;                  break;
   
         case (MDOC_Rv):          case (MDOC_Rv):
Line 835  argv_single(struct mdoc *mdoc, int line, 
Line 841  argv_single(struct mdoc *mdoc, int line, 
  * multiple parameters.   * multiple parameters.
  */   */
 static int  static int
 argv(struct mdoc *mdoc, int tok, int line,  argv(struct mdoc *mdoc, int line,
                 struct mdoc_argv *v, int *pos, char *buf)                  struct mdoc_argv *v, int *pos, char *buf)
 {  {
         int              fl;  
   
         v->sz = 0;          v->sz = 0;
         v->value = NULL;          v->value = NULL;
         fl = mdoc_argvflags[v->arg];  
   
         /*          switch (mdoc_argvflags[v->arg]) {
          * Override the default per-argument value.  
          */  
   
         switch (tok) {  
         case (MDOC_Ex):  
                 fl = ARGV_OPT_SINGLE;  
                 break;  
         default:  
                 break;  
         }  
   
         switch (fl) {  
         case (ARGV_SINGLE):          case (ARGV_SINGLE):
                 return(argv_single(mdoc, line, v, pos, buf));                  return(argv_single(mdoc, line, v, pos, buf));
         case (ARGV_MULTI):          case (ARGV_MULTI):

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.51

CVSweb