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

Diff for /mandoc/mdoc.c between version 1.127 and 1.130

version 1.127, 2010/05/08 10:25:27 version 1.130, 2010/05/13 06:22:11
Line 289  mdoc_parseln(struct mdoc *m, int ln, char *buf)
Line 289  mdoc_parseln(struct mdoc *m, int ln, char *buf)
         if (MDOC_HALT & m->flags)          if (MDOC_HALT & m->flags)
                 return(0);                  return(0);
   
         return('.' == *buf ? mdoc_pmacro(m, ln, buf) :          m->flags |= MDOC_NEWLINE;
           return('.' == *buf ?
                           mdoc_pmacro(m, ln, buf) :
                         mdoc_ptext(m, ln, buf));                          mdoc_ptext(m, ln, buf));
 }  }
   
Line 453  node_alloc(struct mdoc *m, int line, int pos, 
Line 455  node_alloc(struct mdoc *m, int line, int pos, 
         p->pos = pos;          p->pos = pos;
         p->tok = tok;          p->tok = tok;
         p->type = type;          p->type = type;
           if (MDOC_NEWLINE & m->flags)
                   p->flags |= MDOC_LINE;
           m->flags &= ~MDOC_NEWLINE;
         return(p);          return(p);
 }  }
   
Line 689  mdoc_ptext(struct mdoc *m, int line, char *buf)
Line 693  mdoc_ptext(struct mdoc *m, int line, char *buf)
   
         /* Allocate the whole word. */          /* Allocate the whole word. */
   
         return(mdoc_word_alloc(m, line, 0, buf));          if ( ! mdoc_word_alloc(m, line, 0, buf))
                   return(0);
   
           /*
            * End-of-sentence check.  If the last character is an unescaped
            * EOS character, then flag the node as being the end of a
            * sentence.  The front-end will know how to interpret this.
            */
   
           assert(i);
   
           if (mandoc_eos(buf, (size_t)i))
                   m->last->flags |= MDOC_EOS;
   
           return(1);
 }  }
   
   
Line 712  int
Line 730  int
 mdoc_pmacro(struct mdoc *m, int ln, char *buf)  mdoc_pmacro(struct mdoc *m, int ln, char *buf)
 {  {
         enum mdoct      tok;          enum mdoct      tok;
         int             i, j;          int             i, j, sv;
         char            mac[5];          char            mac[5];
   
         /* Empty lines are ignored. */          /* Empty lines are ignored. */
Line 732  mdoc_pmacro(struct mdoc *m, int ln, char *buf)
Line 750  mdoc_pmacro(struct mdoc *m, int ln, char *buf)
                         return(1);                          return(1);
         }          }
   
           sv = i;
   
         /* Copy the first word into a nil-terminated buffer. */          /* Copy the first word into a nil-terminated buffer. */
   
         for (j = 0; j < 4; j++, i++) {          for (j = 0; j < 4; j++, i++) {
Line 779  mdoc_pmacro(struct mdoc *m, int ln, char *buf)
Line 799  mdoc_pmacro(struct mdoc *m, int ln, char *buf)
          * Begin recursive parse sequence.  Since we're at the start of           * Begin recursive parse sequence.  Since we're at the start of
          * the line, we don't need to do callable/parseable checks.           * the line, we don't need to do callable/parseable checks.
          */           */
         if ( ! mdoc_macro(m, tok, ln, 1, &i, buf))          if ( ! mdoc_macro(m, tok, ln, sv, &i, buf))
                 goto err;                  goto err;
   
         return(1);          return(1);

Legend:
Removed from v.1.127  
changed lines
  Added in v.1.130

CVSweb