[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.42 and 1.45

version 1.42, 2010/05/07 15:49:36 version 1.45, 2010/05/09 21:06:50
Line 402  args(struct mdoc *m, int line, int *pos, 
Line 402  args(struct mdoc *m, int line, int *pos, 
                 return(ARGS_EOLN);                  return(ARGS_EOLN);
   
         /*          /*
          * If the first character is a delimiter and we're to look for           * If the first character is a closing delimiter and we're to
          * delimited strings, then pass down the buffer seeing if it           * look for delimited strings, then pass down the buffer seeing
          * follows the pattern of [[::delim::][ ]+]+.           * if it follows the pattern of [[::delim::][ ]+]+.  Note that
            * we ONLY care about closing delimiters.
          */           */
   
         if ((fl & ARGS_DELIM) && mdoc_iscdelim(buf[*pos]) > 1) {          if ((fl & ARGS_DELIM) && mdoc_iscdelim(buf[*pos]) > 1) {
Line 412  args(struct mdoc *m, int line, int *pos, 
Line 413  args(struct mdoc *m, int line, int *pos, 
                         if ( mdoc_iscdelim(buf[i]) < 2)                          if ( mdoc_iscdelim(buf[i]) < 2)
                                 break;                                  break;
                         i++;                          i++;
                         if (0 == buf[i] || ' ' != buf[i])                          if ('\0' == buf[i] || ' ' != buf[i])
                                 break;                                  break;
                         i++;                          i++;
                         while (buf[i] && ' ' == buf[i])                          while (buf[i] && ' ' == buf[i])
                                 i++;                                  i++;
                 }                  }
   
                 if (0 == buf[i]) {                  if ('\0' == buf[i]) {
                         *v = &buf[*pos];                          *v = &buf[*pos];
                         if (' ' != buf[i - 1])                          if (' ' != buf[i - 1])
                                 return(ARGS_PUNCT);                                  return(ARGS_PUNCT);
Line 471  args(struct mdoc *m, int line, int *pos, 
Line 472  args(struct mdoc *m, int line, int *pos, 
                 } else if (pp && ! p) {                  } else if (pp && ! p) {
                         p = pp;                          p = pp;
                         *pos += 2;                          *pos += 2;
                 } else                  } else {
                           rc = ARGS_PEND;
                         p = strchr(*v, 0);                          p = strchr(*v, 0);
                   }
   
                 /* Whitespace check for eoln case... */                  /* Whitespace check for eoln case... */
                 if (0 == *p && ' ' == *(p - 1) && ! (ARGS_NOWARN & fl))                  if (0 == *p && ' ' == *(p - 1) && ! (ARGS_NOWARN & fl))
Line 666  static int
Line 669  static int
 argv_multi(struct mdoc *m, int line,  argv_multi(struct mdoc *m, int line,
                 struct mdoc_argv *v, int *pos, char *buf)                  struct mdoc_argv *v, int *pos, char *buf)
 {  {
         int              c;          enum margserr    ac;
         char            *p;          char            *p;
   
         for (v->sz = 0; ; v->sz++) {          for (v->sz = 0; ; v->sz++) {
                 if ('-' == buf[*pos])                  if ('-' == buf[*pos])
                         break;                          break;
                 c = args(m, line, pos, buf, 0, &p);                  ac = args(m, line, pos, buf, 0, &p);
                 if (ARGS_ERROR == c)                  if (ARGS_ERROR == ac)
                         return(0);                          return(0);
                 else if (ARGS_EOLN == c)                  else if (ARGS_EOLN == ac)
                         break;                          break;
   
                 if (0 == v->sz % MULTI_STEP)                  if (0 == v->sz % MULTI_STEP)
Line 693  static int
Line 696  static int
 argv_opt_single(struct mdoc *m, int line,  argv_opt_single(struct mdoc *m, int line,
                 struct mdoc_argv *v, int *pos, char *buf)                  struct mdoc_argv *v, int *pos, char *buf)
 {  {
         int              c;          enum margserr    ac;
         char            *p;          char            *p;
   
         if ('-' == buf[*pos])          if ('-' == buf[*pos])
                 return(1);                  return(1);
   
         c = args(m, line, pos, buf, 0, &p);          ac = args(m, line, pos, buf, 0, &p);
         if (ARGS_ERROR == c)          if (ARGS_ERROR == ac)
                 return(0);                  return(0);
         if (ARGS_EOLN == c)          if (ARGS_EOLN == ac)
                 return(1);                  return(1);
   
         v->sz = 1;          v->sz = 1;
Line 720  static int
Line 723  static int
 argv_single(struct mdoc *m, int line,  argv_single(struct mdoc *m, int line,
                 struct mdoc_argv *v, int *pos, char *buf)                  struct mdoc_argv *v, int *pos, char *buf)
 {  {
         int              c, ppos;          int              ppos;
           enum margserr    ac;
         char            *p;          char            *p;
   
         ppos = *pos;          ppos = *pos;
   
         c = args(m, line, pos, buf, 0, &p);          ac = args(m, line, pos, buf, 0, &p);
         if (ARGS_ERROR == c)          if (ARGS_ERROR == ac)
                 return(0);                  return(0);
         if (ARGS_EOLN == c)          if (ARGS_EOLN == ac)
                 return(mdoc_perr(m, line, ppos, EARGVAL));                  return(mdoc_perr(m, line, ppos, EARGVAL));
   
         v->sz = 1;          v->sz = 1;

Legend:
Removed from v.1.42  
changed lines
  Added in v.1.45

CVSweb