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

Diff for /docbook2mdoc/docbook2mdoc.c between version 1.131 and 1.135

version 1.131, 2019/04/16 21:21:27 version 1.135, 2019/04/24 14:03:21
Line 315  pnode_printciterefentry(struct format *f, struct pnode
Line 315  pnode_printciterefentry(struct format *f, struct pnode
         pnode_unlinksub(n);          pnode_unlinksub(n);
 }  }
   
 static void  
 pnode_printfuncdef(struct format *f, struct pnode *n)  
 {  
         struct pnode    *nc;  
   
         nc = TAILQ_FIRST(&n->childq);  
         if (nc != NULL && nc->node == NODE_TEXT) {  
                 macro_argline(f, "Ft", nc->b);  
                 pnode_unlink(nc);  
         }  
         macro_nodeline(f, "Fo", n, ARG_SINGLE);  
         pnode_unlinksub(n);  
 }  
   
 /*  /*
  * The <mml:mfenced> node is a little peculiar.   * The <mml:mfenced> node is a little peculiar.
  * First, it can have arbitrary open and closing tokens, which default   * First, it can have arbitrary open and closing tokens, which default
Line 389  pnode_printmath(struct format *f, struct pnode *n)
Line 375  pnode_printmath(struct format *f, struct pnode *n)
 static void  static void
 pnode_printfuncprototype(struct format *f, struct pnode *n)  pnode_printfuncprototype(struct format *f, struct pnode *n)
 {  {
         struct pnode    *nc, *fdef;          struct pnode    *fdef, *ftype, *nc, *nn;
   
         TAILQ_FOREACH(fdef, &n->childq, child)          /*
                 if (fdef->node == NODE_FUNCDEF)           * Extract <funcdef> child and ignore <void> child.
            * Leave other children in place, to be treated as parameters.
            */
   
           fdef = NULL;
           TAILQ_FOREACH_SAFE(nc, &n->childq, child, nn) {
                   switch (nc->node) {
                   case NODE_FUNCDEF:
                           if (fdef == NULL) {
                                   fdef = nc;
                                   TAILQ_REMOVE(&n->childq, nc, child);
                                   nc->parent = NULL;
                           }
                         break;                          break;
                   case NODE_VOID:
                           pnode_unlink(nc);
                           break;
                   default:
                           break;
                   }
           }
   
           /*
            * If no children are left, the function is void; use .Fn.
            * Otherwise, use .Fo.
            */
   
           nc = TAILQ_FIRST(&n->childq);
         if (fdef != NULL) {          if (fdef != NULL) {
                 pnode_printfuncdef(f, fdef);                  ftype = TAILQ_FIRST(&fdef->childq);
                   if (ftype != NULL && ftype->node == NODE_TEXT) {
                           macro_argline(f, "Ft", ftype->b);
                           pnode_unlink(ftype);
                   }
                   if (nc == NULL) {
                           macro_open(f, "Fn");
                           macro_addnode(f, fdef, ARG_SPACE | ARG_SINGLE);
                           macro_addarg(f, "void", ARG_SPACE);
                           macro_close(f);
                   } else
                           macro_nodeline(f, "Fo", fdef, ARG_SINGLE);
                 pnode_unlink(fdef);                  pnode_unlink(fdef);
         } else          } else if (nc == NULL)
                   macro_line(f, "Fn UNKNOWN void");
           else
                 macro_line(f, "Fo UNKNOWN");                  macro_line(f, "Fo UNKNOWN");
   
         TAILQ_FOREACH(nc, &n->childq, child)          if (nc == NULL)
                 macro_nodeline(f, "Fa", nc, ARG_SINGLE);                  return;
   
           while (nc != NULL) {
                   macro_nodeline(f, "Fa", nc, ARG_SINGLE);
                   pnode_unlink(nc);
                   nc = TAILQ_FIRST(&n->childq);
           }
         macro_line(f, "Fc");          macro_line(f, "Fc");
         pnode_unlinksub(n);  
 }  }
   
 /*  /*
Line 784  pnode_printrefentry(struct format *f, struct pnode *n)
Line 812  pnode_printrefentry(struct format *f, struct pnode *n)
                         pnode_unlink(info);                          pnode_unlink(info);
                         info = NULL;                          info = NULL;
                 }                  }
                   if (info == NULL)
                           info = pnode_takefirst(n, NODE_INFO);
                 meta = pnode_takefirst(n, NODE_REFMETA);                  meta = pnode_takefirst(n, NODE_REFMETA);
                 if (meta != NULL && TAILQ_FIRST(&meta->childq) == NULL) {                  if (meta != NULL && TAILQ_FIRST(&meta->childq) == NULL) {
                         pnode_unlink(meta);                          pnode_unlink(meta);
Line 901  pnode_printrefentry(struct format *f, struct pnode *n)
Line 931  pnode_printrefentry(struct format *f, struct pnode *n)
 static void  static void
 pnode_printvarlistentry(struct format *f, struct pnode *n)  pnode_printvarlistentry(struct format *f, struct pnode *n)
 {  {
         struct pnode    *nc, *nn;          struct pnode    *nc, *nn, *ncc;
         int              first = 1;          int              comma;
   
         macro_open(f, "It");          macro_open(f, "It");
         f->parastate = PARA_HAVE;          f->parastate = PARA_HAVE;
         f->flags |= FMT_IMPL;          f->flags |= FMT_IMPL;
           comma = -1;
         TAILQ_FOREACH_SAFE(nc, &n->childq, child, nn) {          TAILQ_FOREACH_SAFE(nc, &n->childq, child, nn) {
                 if (nc->node != NODE_TERM && nc->node != NODE_GLOSSTERM)                  if (nc->node != NODE_TERM && nc->node != NODE_GLOSSTERM)
                         continue;                          continue;
                 if (first == 0) {                  if (comma != -1) {
                         switch (f->linestate) {                          switch (f->linestate) {
                         case LINE_NEW:                          case LINE_NEW:
                                 break;                                  break;
Line 918  pnode_printvarlistentry(struct format *f, struct pnode
Line 949  pnode_printvarlistentry(struct format *f, struct pnode
                                 print_text(f, ",", 0);                                  print_text(f, ",", 0);
                                 break;                                  break;
                         case LINE_MACRO:                          case LINE_MACRO:
                                 macro_addarg(f, ",", 0);                                  macro_addarg(f, ",", comma);
                                 break;                                  break;
                         }                          }
                 }                  }
                 f->parastate = PARA_HAVE;                  f->parastate = PARA_HAVE;
                   comma = (ncc = TAILQ_FIRST(&nc->childq)) == NULL ||
                       pnode_class(ncc->node) == CLASS_TEXT ? 0 : ARG_SPACE;
                 pnode_print(f, nc);                  pnode_print(f, nc);
                 pnode_unlink(nc);                  pnode_unlink(nc);
                 first = 0;  
         }          }
         macro_close(f);          macro_close(f);
         f->parastate = PARA_HAVE;          f->parastate = PARA_HAVE;
Line 1005  pnode_printtgroup2(struct format *f, struct pnode *n)
Line 1037  pnode_printtgroup2(struct format *f, struct pnode *n)
                 pnode_unlink(nr);                  pnode_unlink(nr);
         }          }
         macro_line(f, "El");          macro_line(f, "El");
           f->parastate = PARA_WANT;
         pnode_unlinksub(n);          pnode_unlinksub(n);
 }  }
   
Line 1031  pnode_printtgroup(struct format *f, struct pnode *n)
Line 1064  pnode_printtgroup(struct format *f, struct pnode *n)
                 pnode_printrow(f, nc);                  pnode_printrow(f, nc);
         }          }
         macro_line(f, "El");          macro_line(f, "El");
           f->parastate = PARA_WANT;
         pnode_unlinksub(n);          pnode_unlinksub(n);
 }  }
   
Line 1050  pnode_printlist(struct format *f, struct pnode *n)
Line 1084  pnode_printlist(struct format *f, struct pnode *n)
                 f->parastate = PARA_HAVE;                  f->parastate = PARA_HAVE;
         }          }
         macro_line(f, "El");          macro_line(f, "El");
           f->parastate = PARA_WANT;
         pnode_unlinksub(n);          pnode_unlinksub(n);
 }  }
   
Line 1068  pnode_printvariablelist(struct format *f, struct pnode
Line 1103  pnode_printvariablelist(struct format *f, struct pnode
                         macro_nodeline(f, "It", nc, 0);                          macro_nodeline(f, "It", nc, 0);
         }          }
         macro_line(f, "El");          macro_line(f, "El");
           f->parastate = PARA_WANT;
         pnode_unlinksub(n);          pnode_unlinksub(n);
 }  }
   
Line 1341  pnode_print(struct format *f, struct pnode *n)
Line 1377  pnode_print(struct format *f, struct pnode *n)
         case NODE_VARNAME:          case NODE_VARNAME:
                 macro_open(f, "Va");                  macro_open(f, "Va");
                 break;                  break;
           case NODE_VOID:
                   print_text(f, "void", ARG_SPACE);
                   break;
         case NODE_XREF:          case NODE_XREF:
                 pnode_printxref(f, n);                  pnode_printxref(f, n);
                 break;                  break;
Line 1445  pnode_print(struct format *f, struct pnode *n)
Line 1484  pnode_print(struct format *f, struct pnode *n)
         case NODE_SYNOPSIS:          case NODE_SYNOPSIS:
                 f->parastate = PARA_HAVE;                  f->parastate = PARA_HAVE;
                 macro_line(f, "Ed");                  macro_line(f, "Ed");
                   f->parastate = PARA_WANT;
                 break;                  break;
         case NODE_TITLE:          case NODE_TITLE:
         case NODE_SUBTITLE:          case NODE_SUBTITLE:

Legend:
Removed from v.1.131  
changed lines
  Added in v.1.135

CVSweb