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

Diff for /mandoc/mdoc.c between version 1.19 and 1.20

version 1.19, 2009/01/06 15:49:44 version 1.20, 2009/01/07 15:53:00
Line 249  mdoc_alloc(void *data, const struct mdoc_cb *cb)
Line 249  mdoc_alloc(void *data, const struct mdoc_cb *cb)
   
   
 int  int
 mdoc_parseln(struct mdoc *mdoc, char *buf)  mdoc_endparse(struct mdoc *mdoc)
 {  {
   
           if (MDOC_HALT & mdoc->flags)
                   return(0);
           if (NULL == mdoc->first)
                   return(1);
   
           assert(mdoc->last);
           if ( ! macro_end(mdoc)) {
                   mdoc->flags |= MDOC_HALT;
                   return(0);
           }
           return(1);
   }
   
   
   int
   mdoc_parseln(struct mdoc *mdoc, int line, char *buf)
   {
         int               c, i;          int               c, i;
         char              tmp[5];          char              tmp[5];
   
           if (MDOC_HALT & mdoc->flags)
                   return(0);
   
         if ('.' != *buf) {          if ('.' != *buf) {
                 if (SEC_PROLOGUE == mdoc->sec_lastn)                  if (SEC_PROLOGUE == mdoc->sec_lastn)
                         return(mdoc_err(mdoc, -1, 0, ERR_SYNTAX_NOTEXT));                          return(mdoc_err(mdoc, -1, 0, ERR_SYNTAX_NOTEXT));
Line 270  mdoc_parseln(struct mdoc *mdoc, char *buf)
Line 291  mdoc_parseln(struct mdoc *mdoc, char *buf)
         while (buf[i] && ! isspace(buf[i]) && i < (int)sizeof(tmp))          while (buf[i] && ! isspace(buf[i]) && i < (int)sizeof(tmp))
                 i++;                  i++;
   
         if (i == (int)sizeof(tmp))          if (i == (int)sizeof(tmp)) {
                   mdoc->flags |= MDOC_HALT;
                 return(mdoc_err(mdoc, -1, 1, ERR_MACRO_NOTSUP));                  return(mdoc_err(mdoc, -1, 1, ERR_MACRO_NOTSUP));
         else if (i <= 2)          } else if (i <= 2) {
                   mdoc->flags |= MDOC_HALT;
                 return(mdoc_err(mdoc, -1, 1, ERR_MACRO_NOTSUP));                  return(mdoc_err(mdoc, -1, 1, ERR_MACRO_NOTSUP));
           }
   
         i--;          i--;
   
         (void)memcpy(tmp, buf + 1, (size_t)i);          (void)memcpy(tmp, buf + 1, (size_t)i);
         tmp[i++] = 0;          tmp[i++] = 0;
   
         if (MDOC_MAX == (c = mdoc_find(mdoc, tmp)))          if (MDOC_MAX == (c = mdoc_find(mdoc, tmp))) {
                   mdoc->flags |= MDOC_HALT;
                 return(mdoc_err(mdoc, c, 1, ERR_MACRO_NOTSUP));                  return(mdoc_err(mdoc, c, 1, ERR_MACRO_NOTSUP));
           }
   
         while (buf[i] && isspace(buf[i]))          while (buf[i] && isspace(buf[i]))
                 i++;                  i++;
   
         return(mdoc_macro(mdoc, c, 1, &i, buf));          if ( ! mdoc_macro(mdoc, c, 1, &i, buf)) {
                   mdoc->flags |= MDOC_HALT;
                   return(0);
           }
           return(1);
 }  }
   
   

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

CVSweb