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

Diff for /mandoc/roff.c between version 1.226 and 1.228

version 1.226, 2014/08/19 16:52:32 version 1.228, 2014/09/06 23:24:32
Line 122  struct roff {
Line 122  struct roff {
         int              options; /* parse options */          int              options; /* parse options */
         int              rstacksz; /* current size limit of rstack */          int              rstacksz; /* current size limit of rstack */
         int              rstackpos; /* position in rstack */          int              rstackpos; /* position in rstack */
           int              format; /* current file in mdoc or man format */
         char             control; /* control character */          char             control; /* control character */
 };  };
   
Line 456  roff_reset(struct roff *r)
Line 457  roff_reset(struct roff *r)
 {  {
   
         roff_free1(r);          roff_free1(r);
           r->format = r->options & (MPARSE_MDOC | MPARSE_MAN);
         r->control = 0;          r->control = 0;
 }  }
   
Line 475  roff_alloc(struct mparse *parse, int options)
Line 477  roff_alloc(struct mparse *parse, int options)
         r = mandoc_calloc(1, sizeof(struct roff));          r = mandoc_calloc(1, sizeof(struct roff));
         r->parse = parse;          r->parse = parse;
         r->options = options;          r->options = options;
           r->format = options & (MPARSE_MDOC | MPARSE_MAN);
         r->rstackpos = -1;          r->rstackpos = -1;
   
         roffhash_init();          roffhash_init();
Line 756  roff_parseln(struct roff *r, int ln, char **bufp,
Line 759  roff_parseln(struct roff *r, int ln, char **bufp,
                 return(roff_parsetext(bufp, szp, pos, offs));                  return(roff_parsetext(bufp, szp, pos, offs));
         }          }
   
           /* Skip empty request lines. */
   
           if ((*bufp)[pos] == '"') {
                   mandoc_msg(MANDOCERR_COMMENT_BAD, r->parse,
                       ln, pos, NULL);
                   return(ROFF_IGN);
           } else if ((*bufp)[pos] == '\0')
                   return(ROFF_IGN);
   
         /*          /*
          * If a scope is open, go to the child handler for that macro,           * If a scope is open, go to the child handler for that macro,
          * as it may want to preprocess before doing anything with it.           * as it may want to preprocess before doing anything with it.
Line 1776  roff_Dd(ROFF_ARGS)
Line 1788  roff_Dd(ROFF_ARGS)
 {  {
         const char *const       *cp;          const char *const       *cp;
   
         if (0 == ((MPARSE_MDOC | MPARSE_QUICK) & r->options))          if ((r->options & (MPARSE_MDOC | MPARSE_QUICK)) == 0)
                 for (cp = __mdoc_reserved; *cp; cp++)                  for (cp = __mdoc_reserved; *cp; cp++)
                         roff_setstr(r, *cp, NULL, 0);                          roff_setstr(r, *cp, NULL, 0);
   
           if (r->format == 0)
                   r->format = MPARSE_MDOC;
   
         return(ROFF_CONT);          return(ROFF_CONT);
 }  }
   
Line 1788  roff_TH(ROFF_ARGS)
Line 1803  roff_TH(ROFF_ARGS)
 {  {
         const char *const       *cp;          const char *const       *cp;
   
         if (0 == (MPARSE_QUICK & r->options))          if ((r->options & MPARSE_QUICK) == 0)
                 for (cp = __man_reserved; *cp; cp++)                  for (cp = __man_reserved; *cp; cp++)
                         roff_setstr(r, *cp, NULL, 0);                          roff_setstr(r, *cp, NULL, 0);
   
           if (r->format == 0)
                   r->format = MPARSE_MAN;
   
         return(ROFF_CONT);          return(ROFF_CONT);
 }  }
   
Line 2305  roff_strdup(const struct roff *r, const char *p)
Line 2323  roff_strdup(const struct roff *r, const char *p)
   
         res[(int)ssz] = '\0';          res[(int)ssz] = '\0';
         return(res);          return(res);
   }
   
   int
   roff_getformat(const struct roff *r)
   {
   
           return(r->format);
 }  }
   
 /*  /*

Legend:
Removed from v.1.226  
changed lines
  Added in v.1.228

CVSweb