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

Diff for /mandoc/roff.c between version 1.350 and 1.351

version 1.350, 2018/12/14 05:18:03 version 1.351, 2018/12/14 06:33:14
Line 98  struct mctx {
Line 98  struct mctx {
 };  };
   
 struct  roff {  struct  roff {
         struct mparse   *parse; /* parse point */  
         struct roff_man *man; /* mdoc or man parser */          struct roff_man *man; /* mdoc or man parser */
         struct roffnode *last; /* leaf of stack */          struct roffnode *last; /* leaf of stack */
         struct mctx     *mstack; /* stack of macro contexts */          struct mctx     *mstack; /* stack of macro contexts */
Line 780  roff_free(struct roff *r)
Line 779  roff_free(struct roff *r)
 }  }
   
 struct roff *  struct roff *
 roff_alloc(struct mparse *parse, int options)  roff_alloc(int options)
 {  {
         struct roff     *r;          struct roff     *r;
   
         r = mandoc_calloc(1, sizeof(struct roff));          r = mandoc_calloc(1, sizeof(struct roff));
         r->parse = parse;  
         r->reqtab = roffhash_alloc(0, ROFF_RENAMED);          r->reqtab = roffhash_alloc(0, ROFF_RENAMED);
         r->options = options;          r->options = options;
         r->format = options & (MPARSE_MDOC | MPARSE_MAN);          r->format = options & (MPARSE_MDOC | MPARSE_MAN);
Line 844  roff_man_free(struct roff_man *man)
Line 842  roff_man_free(struct roff_man *man)
 }  }
   
 struct roff_man *  struct roff_man *
 roff_man_alloc(struct roff *roff, struct mparse *parse,  roff_man_alloc(struct roff *roff, const char *os_s, int quick)
         const char *os_s, int quick)  
 {  {
         struct roff_man *man;          struct roff_man *man;
   
         man = mandoc_calloc(1, sizeof(*man));          man = mandoc_calloc(1, sizeof(*man));
         man->parse = parse;  
         man->roff = roff;          man->roff = roff;
         man->os_s = os_s;          man->os_s = os_s;
         man->quick = quick;          man->quick = quick;
Line 3148  roff_EQ(ROFF_ARGS)
Line 3144  roff_EQ(ROFF_ARGS)
   
         assert(r->eqn == NULL);          assert(r->eqn == NULL);
         if (r->last_eqn == NULL)          if (r->last_eqn == NULL)
                 r->last_eqn = eqn_alloc(r->parse);                  r->last_eqn = eqn_alloc();
         else          else
                 eqn_reset(r->last_eqn);                  eqn_reset(r->last_eqn);
         r->eqn = r->last_eqn;          r->eqn = r->last_eqn;
Line 3182  roff_TS(ROFF_ARGS)
Line 3178  roff_TS(ROFF_ARGS)
                 mandoc_msg(MANDOCERR_BLK_BROKEN, ln, ppos, "TS breaks TS");                  mandoc_msg(MANDOCERR_BLK_BROKEN, ln, ppos, "TS breaks TS");
                 tbl_end(r->tbl, 0);                  tbl_end(r->tbl, 0);
         }          }
         r->tbl = tbl_alloc(ppos, ln, r->parse, r->last_tbl);          r->tbl = tbl_alloc(ppos, ln, r->last_tbl);
         if (r->last_tbl == NULL)          if (r->last_tbl == NULL)
                 r->first_tbl = r->tbl;                  r->first_tbl = r->tbl;
         r->last_tbl = r->tbl;          r->last_tbl = r->tbl;
Line 3659  roff_userdef(ROFF_ARGS)
Line 3655  roff_userdef(ROFF_ARGS)
                         ctx->argv = mandoc_reallocarray(ctx->argv,                          ctx->argv = mandoc_reallocarray(ctx->argv,
                             ctx->argsz, sizeof(*ctx->argv));                              ctx->argsz, sizeof(*ctx->argv));
                 }                  }
                 arg = mandoc_getarg(r->parse, &src, ln, &pos);                  arg = mandoc_getarg(&src, ln, &pos);
                 sz = 1;  /* For the terminating NUL. */                  sz = 1;  /* For the terminating NUL. */
                 for (ap = arg; *ap != '\0'; ap++)                  for (ap = arg; *ap != '\0'; ap++)
                         sz += *ap == '"' ? 4 : 1;                          sz += *ap == '"' ? 4 : 1;

Legend:
Removed from v.1.350  
changed lines
  Added in v.1.351

CVSweb