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

Diff for /texi2mdoc/main.c between version 1.30 and 1.33

version 1.30, 2015/02/23 11:44:30 version 1.33, 2015/02/23 12:39:59
Line 74  static void dotab(struct texi *, enum texicmd, const c
Line 74  static void dotab(struct texi *, enum texicmd, const c
 static  void dotitle(struct texi *, enum texicmd, const char *, size_t, size_t *);  static  void dotitle(struct texi *, enum texicmd, const char *, size_t, size_t *);
 static  void dovalue(struct texi *, enum texicmd, const char *, size_t, size_t *);  static  void dovalue(struct texi *, enum texicmd, const char *, size_t, size_t *);
 static  void doverb(struct texi *, enum texicmd, const char *, size_t, size_t *);  static  void doverb(struct texi *, enum texicmd, const char *, size_t, size_t *);
   static  void doverbatim(struct texi *, enum texicmd, const char *, size_t, size_t *);
 static  void doverbinclude(struct texi *, enum texicmd, const char *, size_t, size_t *);  static  void doverbinclude(struct texi *, enum texicmd, const char *, size_t, size_t *);
   
 static  const struct texitok __texitoks[TEXICMD__MAX] = {  static  const struct texitok __texitoks[TEXICMD__MAX] = {
Line 151  static const struct texitok __texitoks[TEXICMD__MAX] =
Line 152  static const struct texitok __texitoks[TEXICMD__MAX] =
         { doinline, "file", 4 }, /* TEXICMD_FILE */          { doinline, "file", 4 }, /* TEXICMD_FILE */
         { doignline, "finalout", 8 }, /* TEXICMD_FINALOUT */          { doignline, "finalout", 8 }, /* TEXICMD_FINALOUT */
         { doignline, "findex", 6 }, /* TEXICMD_FINDEX */          { doignline, "findex", 6 }, /* TEXICMD_FINDEX */
           { doignbracket, "footnote", 8 }, /* TEXICMD_FOOTNOTE */
         { dotable, "ftable", 6 }, /* TEXICMD_FTABLE */          { dotable, "ftable", 6 }, /* TEXICMD_FTABLE */
         { dodisplay, "format", 6 }, /* TEXICMD_FORMAT */          { dodisplay, "format", 6 }, /* TEXICMD_FORMAT */
         { doaccent, "`", 1 }, /* TEXICMD_GRAVE */          { doaccent, "`", 1 }, /* TEXICMD_GRAVE */
Line 261  static const struct texitok __texitoks[TEXICMD__MAX] =
Line 263  static const struct texitok __texitoks[TEXICMD__MAX] =
         { dolink, "url", 3 }, /* TEXICMD_URL */          { dolink, "url", 3 }, /* TEXICMD_URL */
         { dovalue, "value", 5 }, /* TEXICMD_VALUE */          { dovalue, "value", 5 }, /* TEXICMD_VALUE */
         { doinline, "var", 3 }, /* TEXICMD_VAR */          { doinline, "var", 3 }, /* TEXICMD_VAR */
         { doverb, "verbatim", 8 }, /* TEXICMD_VERBATIM */          { doverb, "verb", 4 }, /* TEXICMD_VERB */
           { doverbatim, "verbatim", 8 }, /* TEXICMD_VERBATIM */
         { doverbinclude, "verbatiminclude", 15 }, /* TEXICMD_VERBATIMINCLUDE */          { doverbinclude, "verbatiminclude", 15 }, /* TEXICMD_VERBATIMINCLUDE */
         { doignline, "vindex", 6 }, /* TEXICMD_VINDEX */          { doignline, "vindex", 6 }, /* TEXICMD_VINDEX */
         { dosp, "vskip", 5 }, /* TEXICMD_VSKIP */          { dosp, "vskip", 5 }, /* TEXICMD_VSKIP */
Line 455  domacro(struct texi *p, enum texicmd cmd, 
Line 458  domacro(struct texi *p, enum texicmd cmd, 
         memcpy(m.key, &buf[start], end - start);          memcpy(m.key, &buf[start], end - start);
         m.key[end - start] = '\0';          m.key[end - start] = '\0';
   
         m.args = argparse(p, buf, sz, pos, &m.argsz);          m.args = argparse(p, buf, sz, pos, &m.argsz, 0);
         advanceeoln(p, buf, sz, pos, 0);          advanceeoln(p, buf, sz, pos, 0);
   
         start = *pos;          start = *pos;
Line 587  static void
Line 590  static void
 doverb(struct texi *p, enum texicmd cmd,  doverb(struct texi *p, enum texicmd cmd,
         const char *buf, size_t sz, size_t *pos)          const char *buf, size_t sz, size_t *pos)
 {  {
           char     delim;
   
           while (*pos < sz && isws(buf[*pos]))
                   advance(p, buf, pos);
           if (*pos == sz || '{' != buf[*pos])
                   return;
           advance(p, buf, pos);
           if (*pos == sz)
                   return;
   
           delim = buf[*pos];
           advance(p, buf, pos);
           /* Make sure we flush out our initial whitespace... */
           if (p->seenws && p->outcol && 0 == p->literal)
                   texiputchar(p, ' ');
           p->seenws = 0;
           /* Read until we see the delimiter then end-brace. */
           while (*pos < sz - 1) {
                   if (buf[*pos] == delim && buf[*pos + 1] == '}')
                           break;
                   texiputchar(p, buf[*pos]);
                   advance(p, buf, pos);
           }
           if (*pos == sz - 1)
                   return;
           /* Make sure we read after the end-brace. */
           assert(delim == buf[*pos]);
           advance(p, buf, pos);
           assert('}' == buf[*pos]);
           advance(p, buf, pos);
   }
   
   static void
   doverbatim(struct texi *p, enum texicmd cmd,
           const char *buf, size_t sz, size_t *pos)
   {
         const char      *end, *term;          const char      *end, *term;
         size_t           endsz, endpos;          size_t           endsz, endpos;
   
Line 1077  dovalue(struct texi *p, enum texicmd cmd, 
Line 1116  dovalue(struct texi *p, enum texicmd cmd, 
                         if (64 == p->valstackpos)                          if (64 == p->valstackpos)
                                 texierr(p, "too many nested values");                                  texierr(p, "too many nested values");
                         p->valstack[p->valstackpos++] = cp;                          p->valstack[p->valstackpos++] = cp;
                         parseeof(p, cp, strlen(cp));                          parsemembuf(p, cp, strlen(cp));
                         p->valstackpos--;                          p->valstackpos--;
                 } else                  } else
                         texiputchars(p, "{No value}");                          texiputchars(p, "{No value}");
Line 1351  domultitable(struct texi *p, enum texicmd cmd, 
Line 1390  domultitable(struct texi *p, enum texicmd cmd, 
         const char *buf, size_t sz, size_t *pos)          const char *buf, size_t sz, size_t *pos)
 {  {
         enum texilist   sv = p->list;          enum texilist   sv = p->list;
           int             svliteral = p->literal;
         enum texicmd    type;          enum texicmd    type;
         size_t          i, end, columns;          size_t          i, end, columns;
   
         p->list = TEXILIST_TABLE;          p->list = TEXILIST_TABLE;
           /*
            * TS/TE blocks aren't "in mdoc(7)", so we can disregard the
            * fact that we're in literal mode right now.
            */
           p->literal = 0;
         teximacro(p, "TS");          teximacro(p, "TS");
         columns = 0;          columns = 0;
   
Line 1407  domultitable(struct texi *p, enum texicmd cmd, 
Line 1452  domultitable(struct texi *p, enum texicmd cmd, 
         parseto(p, buf, sz, pos, texitoks[cmd].tok);          parseto(p, buf, sz, pos, texitoks[cmd].tok);
         p->outmacro--;          p->outmacro--;
         teximacro(p, "TE");          teximacro(p, "TE");
           p->literal = svliteral;
         p->list = sv;          p->list = sv;
 }  }
   

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.33

CVSweb