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

Diff for /mandoc/mdoc.c between version 1.151 and 1.153

version 1.151, 2010/06/27 16:36:22 version 1.153, 2010/07/01 22:35:54
Line 239  mdoc_parseln(struct mdoc *m, int ln, char *buf, int of
Line 239  mdoc_parseln(struct mdoc *m, int ln, char *buf, int of
                 return(0);                  return(0);
   
         m->flags |= MDOC_NEWLINE;          m->flags |= MDOC_NEWLINE;
   
           /*
            * Let the roff nS register switch SYNOPSIS mode early,
            * such that the parser knows at all times
            * whether this mode is on or off.
            * Note that this mode is also switched by the Sh macro.
            */
           if (m->regs->regs[(int)REG_nS].set) {
                   if (m->regs->regs[(int)REG_nS].v.u)
                           m->flags |= MDOC_SYNOPSIS;
                   else
                           m->flags &= ~MDOC_SYNOPSIS;
           }
   
         return(('.' == buf[offs] || '\'' == buf[offs]) ?          return(('.' == buf[offs] || '\'' == buf[offs]) ?
                         mdoc_pmacro(m, ln, buf, offs) :                          mdoc_pmacro(m, ln, buf, offs) :
                         mdoc_ptext(m, ln, buf, offs));                          mdoc_ptext(m, ln, buf, offs));
Line 332  node_append(struct mdoc *mdoc, struct mdoc_node *p)
Line 346  node_append(struct mdoc *mdoc, struct mdoc_node *p)
                 p->parent->tail = p;                  p->parent->tail = p;
                 break;                  break;
         case (MDOC_BODY):          case (MDOC_BODY):
                   if (p->end)
                           break;
                 assert(MDOC_BLOCK == p->parent->type);                  assert(MDOC_BLOCK == p->parent->type);
                 p->parent->body = p;                  p->parent->body = p;
                 break;                  break;
Line 371  node_alloc(struct mdoc *m, int line, int pos, 
Line 387  node_alloc(struct mdoc *m, int line, int pos, 
   
         /* Flag analysis. */          /* Flag analysis. */
   
           if (MDOC_SYNOPSIS & m->flags)
                   p->flags |= MDOC_SYNPRETTY;
           else
                   p->flags &= ~MDOC_SYNPRETTY;
         if (MDOC_NEWLINE & m->flags)          if (MDOC_NEWLINE & m->flags)
                 p->flags |= MDOC_LINE;                  p->flags |= MDOC_LINE;
         m->flags &= ~MDOC_NEWLINE;          m->flags &= ~MDOC_NEWLINE;
   
         /* Section analysis. */  
   
         if (SEC_SYNOPSIS == p->sec)  
                 p->flags |= MDOC_SYNPRETTY;  
   
         /* Register analysis. */  
   
         if (m->regs->regs[(int)REG_nS].set) {  
                 if (m->regs->regs[(int)REG_nS].v.u)  
                         p->flags |= MDOC_SYNPRETTY;  
                 else  
                         p->flags &= ~MDOC_SYNPRETTY;  
         }  
   
         return(p);          return(p);
 }  }
   
Line 431  mdoc_body_alloc(struct mdoc *m, int line, int pos, enu
Line 437  mdoc_body_alloc(struct mdoc *m, int line, int pos, enu
         if ( ! node_append(m, p))          if ( ! node_append(m, p))
                 return(0);                  return(0);
         m->next = MDOC_NEXT_CHILD;          m->next = MDOC_NEXT_CHILD;
           return(1);
   }
   
   
   int
   mdoc_endbody_alloc(struct mdoc *m, int line, int pos, enum mdoct tok,
                   struct mdoc_node *body, enum mdoc_endbody end)
   {
           struct mdoc_node *p;
   
           p = node_alloc(m, line, pos, tok, MDOC_BODY);
           p->pending = body;
           p->end = end;
           if ( ! node_append(m, p))
                   return(0);
           m->next = MDOC_NEXT_SIBLING;
         return(1);          return(1);
 }  }
   

Legend:
Removed from v.1.151  
changed lines
  Added in v.1.153

CVSweb