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

Diff for /mandoc/roff.c between version 1.115 and 1.118

version 1.115, 2011/01/01 15:45:18 version 1.118, 2011/01/02 10:10:57
Line 86  struct roff {
Line 86  struct roff {
         struct regset   *regs; /* read/writable registers */          struct regset   *regs; /* read/writable registers */
         struct roffstr  *first_string; /* user-defined strings & macros */          struct roffstr  *first_string; /* user-defined strings & macros */
         const char      *current_string; /* value of last called user macro */          const char      *current_string; /* value of last called user macro */
         struct tbl      *first_tbl; /* first table parsed */          struct tbl_node *first_tbl; /* first table parsed */
         struct tbl      *last_tbl; /* last table parsed */          struct tbl_node *last_tbl; /* last table parsed */
         struct tbl      *tbl; /* current table being parsed */          struct tbl_node *tbl; /* current table being parsed */
 };  };
   
 struct  roffnode {  struct  roffnode {
Line 301  roffnode_push(struct roff *r, enum rofft tok, const ch
Line 301  roffnode_push(struct roff *r, enum rofft tok, const ch
 static void  static void
 roff_free1(struct roff *r)  roff_free1(struct roff *r)
 {  {
         struct tbl      *t;          struct tbl_node *t;
   
         while (r->first_tbl) {          while (r->first_tbl) {
                 t = r->first_tbl;                  t = r->first_tbl;
Line 515  roff_parseln(struct roff *r, int ln, char **bufp, 
Line 515  roff_parseln(struct roff *r, int ln, char **bufp, 
 }  }
   
   
 int  void
 roff_endparse(struct roff *r)  roff_endparse(struct roff *r)
 {  {
   
         /* FIXME: if r->tbl */  
         if (r->last)          if (r->last)
                 (*r->msg)(MANDOCERR_SCOPEEXIT, r->data,                  (*r->msg)(MANDOCERR_SCOPEEXIT, r->data,
                                 r->last->line, r->last->col, NULL);                                  r->last->line, r->last->col, NULL);
         return(1);  
           if (r->tbl) {
                   (*r->msg)(MANDOCERR_SCOPEEXIT, r->data,
                                   r->tbl->line, r->tbl->pos, NULL);
                   tbl_end(r->tbl);
                   r->tbl = NULL;
           }
 }  }
   
   
Line 1138  roff_T_(ROFF_ARGS)
Line 1143  roff_T_(ROFF_ARGS)
         if (NULL == r->tbl)          if (NULL == r->tbl)
                 (*r->msg)(MANDOCERR_NOSCOPE, r->data, ln, ppos, NULL);                  (*r->msg)(MANDOCERR_NOSCOPE, r->data, ln, ppos, NULL);
         else          else
                 tbl_restart(r->tbl);                  tbl_restart(ppos, ln, r->tbl);
   
         return(ROFF_IGN);          return(ROFF_IGN);
 }  }
Line 1147  roff_T_(ROFF_ARGS)
Line 1152  roff_T_(ROFF_ARGS)
 static enum rofferr  static enum rofferr
 roff_TS(ROFF_ARGS)  roff_TS(ROFF_ARGS)
 {  {
         struct tbl      *t;          struct tbl_node *t;
   
         if (r->tbl) {          if (r->tbl) {
                 (*r->msg)(MANDOCERR_SCOPEBROKEN, r->data, ln, ppos, NULL);                  (*r->msg)(MANDOCERR_SCOPEBROKEN, r->data, ln, ppos, NULL);

Legend:
Removed from v.1.115  
changed lines
  Added in v.1.118

CVSweb