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

Diff for /mandoc/mdoc.c between version 1.4 and 1.12

version 1.4, 2008/12/23 05:30:49 version 1.12, 2008/12/30 19:06:03
Line 89  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 89  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { macro_prologue_os, 0 }, /* Os */          { macro_prologue_os, 0 }, /* Os */
         { macro_scoped_implicit, 0 }, /* Sh */          { macro_scoped_implicit, 0 }, /* Sh */
         { macro_scoped_implicit, 0 }, /* Ss */          { macro_scoped_implicit, 0 }, /* Ss */
         { NULL, 0 }, /* Pp */          { macro_text, 0 }, /* Pp */
         { NULL, 0 }, /* D1 */          { macro_scoped_line, 0 }, /* D1 */
         { NULL, 0 }, /* Dl */          { macro_scoped_line, 0 }, /* Dl */
         { NULL, 0 }, /* Bd */          { macro_scoped_explicit, MDOC_EXPLICIT }, /* Bd */
         { NULL, 0 }, /* Ed */          { macro_scoped_explicit, 0 }, /* Ed */
         { macro_scoped_explicit, MDOC_EXPLICIT }, /* Bl */          { macro_scoped_explicit, MDOC_EXPLICIT }, /* Bl */
         { macro_scoped_explicit, 0 }, /* El */          { macro_scoped_explicit, 0 }, /* El */
         { NULL, 0 }, /* It */          { NULL, 0 }, /* It */
         { macro_text, MDOC_CALLABLE }, /* Ad */          { macro_text, MDOC_CALLABLE }, /* Ad */
         { NULL, 0 }, /* An */          { NULL, 0 }, /* An */
         { macro_text, MDOC_CALLABLE }, /* Ar */          { macro_text, MDOC_CALLABLE }, /* Ar */
         { NULL, 0 }, /* Cd */          { macro_constant, MDOC_QUOTABLE }, /* Cd */
         { macro_text, MDOC_CALLABLE }, /* Cm */          { macro_text, MDOC_CALLABLE }, /* Cm */
         { macro_text, MDOC_CALLABLE }, /* Dv */          { macro_text, MDOC_CALLABLE }, /* Dv */
         { macro_text, MDOC_CALLABLE }, /* Er */          { macro_text, MDOC_CALLABLE }, /* Er */
         { macro_text, MDOC_CALLABLE }, /* Ev */          { macro_text, MDOC_CALLABLE }, /* Ev */
         { NULL, 0 }, /* Ex */          { macro_constant_argv, 0 }, /* Ex */
         { macro_text, MDOC_CALLABLE }, /* Fa */          { macro_text, MDOC_CALLABLE }, /* Fa */
         { NULL, 0 }, /* Fd */          { NULL, 0 }, /* Fd */
         { macro_text, MDOC_CALLABLE }, /* Fl */          { macro_text, MDOC_CALLABLE }, /* Fl */
         { NULL, 0 }, /* Fn */          { macro_text, MDOC_CALLABLE | MDOC_QUOTABLE }, /* Fn */
         { macro_text, 0 }, /* Ft */          { macro_text, 0 }, /* Ft */
         { macro_text, MDOC_CALLABLE }, /* Ic */          { macro_text, MDOC_CALLABLE }, /* Ic */
         { NULL, 0 }, /* In */          { NULL, 0 }, /* In */
         { macro_text, MDOC_CALLABLE }, /* Li */          { macro_text, MDOC_CALLABLE }, /* Li */
         { NULL, 0 }, /* Nd */          { macro_constant, 0 }, /* Nd */
         { NULL, 0 }, /* Nm */          { NULL, 0 }, /* Nm */
         { NULL, 0 }, /* Op */          { NULL, 0 }, /* Op */
         { NULL, 0 }, /* Ot */          { NULL, 0 }, /* Ot */
         { macro_text, MDOC_CALLABLE }, /* Pa */          { macro_text, MDOC_CALLABLE }, /* Pa */
         { NULL, 0 }, /* Rv */          { macro_constant_argv, 0 }, /* Rv */
         { NULL, 0 }, /* St */          { NULL, 0 }, /* St */
         { macro_text, MDOC_CALLABLE }, /* Va */          { macro_text, MDOC_CALLABLE }, /* Va */
         { macro_text, MDOC_CALLABLE }, /* Vt */          { macro_text, MDOC_CALLABLE }, /* Vt */
Line 137  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 137  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { NULL, 0 }, /* %V */          { NULL, 0 }, /* %V */
         { NULL, 0 }, /* Ac */          { NULL, 0 }, /* Ac */
         { NULL, 0 }, /* Ao */          { NULL, 0 }, /* Ao */
         { NULL, 0 }, /* Aq */          { macro_scoped_pline, MDOC_CALLABLE }, /* Aq */
         { NULL, 0 }, /* At */          { macro_constant, 0 }, /* At */
         { NULL, 0 }, /* Bc */          { NULL, 0 }, /* Bc */
         { NULL, 0 }, /* Bf */          { NULL, 0 }, /* Bf */
         { NULL, 0 }, /* Bo */          { NULL, 0 }, /* Bo */
         { NULL, 0 }, /* Bq */          { macro_scoped_pline, MDOC_CALLABLE }, /* Bq */
         { NULL, 0 }, /* Bsx */          { macro_constant_delimited, 0 }, /* Bsx */
         { NULL, 0 }, /* Bx */          { macro_constant_delimited, 0 }, /* Bx */
         { NULL, 0 }, /* Db */          { NULL, 0 }, /* Db */
         { NULL, 0 }, /* Dc */          { NULL, 0 }, /* Dc */
         { NULL, 0 }, /* Do */          { NULL, 0 }, /* Do */
         { NULL, 0 }, /* Dq */          { macro_scoped_pline, MDOC_CALLABLE }, /* Dq */
         { NULL, 0 }, /* Ec */          { NULL, 0 }, /* Ec */
         { NULL, 0 }, /* Ef */          { NULL, 0 }, /* Ef */
         { macro_text, MDOC_CALLABLE }, /* Em */          { macro_text, MDOC_CALLABLE }, /* Em */
         { NULL, 0 }, /* Eo */          { NULL, 0 }, /* Eo */
         { NULL, 0 }, /* Fx */          { macro_constant_delimited, 0 }, /* Fx */
         { macro_text, 0 }, /* Ms */          { macro_text, 0 }, /* Ms */
         { NULL, 0 }, /* No */          { NULL, 0 }, /* No */
         { NULL, 0 }, /* Ns */          { NULL, 0 }, /* Ns */
         { NULL, 0 }, /* Nx */          { macro_constant_delimited, 0 }, /* Nx */
         { NULL, 0 }, /* Ox */          { macro_constant_delimited, 0 }, /* Ox */
         { NULL, 0 }, /* Pc */          { NULL, 0 }, /* Pc */
         { NULL, 0 }, /* Pf */          { NULL, 0 }, /* Pf */
         { NULL, 0 }, /* Po */          { NULL, 0 }, /* Po */
         { NULL, 0 }, /* Pq */          { macro_scoped_pline, MDOC_CALLABLE }, /* Pq */
         { NULL, 0 }, /* Qc */          { NULL, 0 }, /* Qc */
         { NULL, 0 }, /* Ql */          { macro_scoped_pline, MDOC_CALLABLE }, /* Ql */
         { NULL, 0 }, /* Qo */          { NULL, 0 }, /* Qo */
         { NULL, 0 }, /* Qq */          { macro_scoped_pline, MDOC_CALLABLE }, /* Qq */
         { NULL, 0 }, /* Re */          { NULL, 0 }, /* Re */
         { NULL, 0 }, /* Rs */          { NULL, 0 }, /* Rs */
         { NULL, 0 }, /* Sc */          { NULL, 0 }, /* Sc */
         { NULL, 0 }, /* So */          { NULL, 0 }, /* So */
         { NULL, 0 }, /* Sq */          { macro_scoped_pline, MDOC_CALLABLE }, /* Sq */
         { NULL, 0 }, /* Sm */          { NULL, 0 }, /* Sm */
         { NULL, 0 }, /* Sx */          { macro_text, MDOC_CALLABLE }, /* Sx */
         { NULL, 0 }, /* Sy */          { macro_text, MDOC_CALLABLE }, /* Sy */
         { macro_text, MDOC_CALLABLE }, /* Tn */          { macro_text, MDOC_CALLABLE }, /* Tn */
         { NULL, 0 }, /* Ux */          { macro_constant_delimited, 0 }, /* Ux */
         { NULL, 0 }, /* Xc */          { NULL, 0 }, /* Xc */
         { NULL, 0 }, /* Xo */          { NULL, 0 }, /* Xo */
         { NULL, 0 }, /* Fo */          { NULL, 0 }, /* Fo */
Line 185  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 185  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { NULL, 0 }, /* Oc */          { NULL, 0 }, /* Oc */
         { NULL, 0 }, /* Bk */          { NULL, 0 }, /* Bk */
         { NULL, 0 }, /* Ek */          { NULL, 0 }, /* Ek */
         { NULL, 0 }, /* Bt */          { macro_constant, 0 }, /* Bt */
         { NULL, 0 }, /* Hf */          { macro_constant, 0 }, /* Hf */
         { NULL, 0 }, /* Fr */          { macro_obsolete, 0 }, /* Fr */
         { NULL, 0 }, /* Ud */          { macro_constant, 0 }, /* Ud */
 };  };
   
 const   char * const *mdoc_macronames = __mdoc_macronames;  const   char * const *mdoc_macronames = __mdoc_macronames;
Line 252  mdoc_parseln(struct mdoc *mdoc, char *buf)
Line 252  mdoc_parseln(struct mdoc *mdoc, char *buf)
         int               c, i;          int               c, i;
         char              tmp[5];          char              tmp[5];
   
         if ('.' != *buf)  {          if ('.' != *buf) {
                 /* TODO. */                  mdoc_word_alloc(mdoc, 0, buf);
                 return(1);                  return(1);
         }          }
   
         if (buf[1] && '\\' == buf[1])          if (buf[1] && '\\' == buf[1])
Line 336  mdoc_macro(struct mdoc *mdoc, int tok, int ppos, int *
Line 336  mdoc_macro(struct mdoc *mdoc, int tok, int ppos, int *
                 return(0);                  return(0);
         }          }
   
           /*mdoc_msg(mdoc, ppos, "calling `%s'", mdoc_macronames[tok]);*/
   
         return((*mdoc_macros[tok].fp)(mdoc, tok, ppos, pos, buf));          return((*mdoc_macros[tok].fp)(mdoc, tok, ppos, pos, buf));
 }  }
   
Line 347  mdoc_node_append(struct mdoc *mdoc, int pos, struct md
Line 349  mdoc_node_append(struct mdoc *mdoc, int pos, struct md
   
         switch (p->type) {          switch (p->type) {
         case (MDOC_TEXT):          case (MDOC_TEXT):
                 nn = "<text>";                  nn = p->data.text.string;
                 nt = "text";                  nt = "text";
                 break;                  break;
         case (MDOC_BODY):          case (MDOC_BODY):
Line 407  mdoc_node_append(struct mdoc *mdoc, int pos, struct md
Line 409  mdoc_node_append(struct mdoc *mdoc, int pos, struct md
   
         switch (p->type) {          switch (p->type) {
         case (MDOC_BODY):          case (MDOC_BODY):
                 switch (mdoc->last->type) {                  p->parent = mdoc->last->parent;
                 case (MDOC_BLOCK):                  mdoc->last->next = p;
                         p->parent = mdoc->last;                  p->prev = mdoc->last;
                         mdoc->last->child = p;                  act = "sibling";
                         act = "child";  
                         break;  
                 case (MDOC_HEAD):  
                         p->parent = mdoc->last->parent;  
                         mdoc->last->next = p;  
                         act = "sibling";  
                         break;  
                 default:  
                         abort();  
                         /* NOTREACHED */  
                 }  
                 break;                  break;
   
         case (MDOC_HEAD):          case (MDOC_HEAD):
                 assert(mdoc->last->type == MDOC_BLOCK);                  assert(mdoc->last->type == MDOC_BLOCK);
                 p->parent = mdoc->last;                  p->parent = mdoc->last;
                 mdoc->last->child = p;                  mdoc->last->child = p;
                 act = "child";                  act = "child";
                 break;                  break;
   
         default:          default:
                 switch (mdoc->last->type) {                  switch (mdoc->last->type) {
                 case (MDOC_BODY):                  case (MDOC_BODY):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_HEAD):                  case (MDOC_HEAD):
                         p->parent = mdoc->last->parent;                          p->parent = mdoc->last;
                         mdoc->last->child = p;                          mdoc->last->child = p;
                         act = "child";                          act = "child";
                         break;                          break;
                 default:                  default:
                         p->parent = mdoc->last->parent;                          p->parent = mdoc->last->parent;
                           p->prev = mdoc->last;
                         mdoc->last->next = p;                          mdoc->last->next = p;
                         act = "sibling";                          act = "sibling";
                         break;                          break;
Line 453  mdoc_node_append(struct mdoc *mdoc, int pos, struct md
Line 447  mdoc_node_append(struct mdoc *mdoc, int pos, struct md
 }  }
   
   
   /* FIXME: deprecate paramsz, params. */
 void  void
 mdoc_head_alloc(struct mdoc *mdoc, int pos, int tok,  mdoc_head_alloc(struct mdoc *mdoc, int pos, int tok,
                 size_t paramsz, const char **params)                  size_t paramsz, const char **params)

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.12

CVSweb