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

Diff for /docbook2mdoc/reorg.c between version 1.1 and 1.2

version 1.1, 2019/04/28 17:11:53 version 1.2, 2019/04/28 19:05:11
Line 22 
Line 22 
  * The implementation of the tree reorganizer.   * The implementation of the tree reorganizer.
  */   */
   
 void  static void
 ptree_reorg(struct ptree *tree)  reorg_root(struct pnode *root)
 {  {
         struct pnode    *date, *descr, *name, *root, *vol, *nc;          struct pnode    *date, *descr, *name, *vol, *nc;
   
         if ((root = tree->root) == NULL)          if (root == NULL)
                 return;                  return;
   
         /* Collect prologue information. */          /* Collect prologue information. */
Line 69  ptree_reorg(struct ptree *tree)
Line 69  ptree_reorg(struct ptree *tree)
         TAILQ_INSERT_HEAD(&root->childq, vol, child);          TAILQ_INSERT_HEAD(&root->childq, vol, child);
         TAILQ_INSERT_HEAD(&root->childq, name, child);          TAILQ_INSERT_HEAD(&root->childq, name, child);
         TAILQ_INSERT_HEAD(&root->childq, date, child);          TAILQ_INSERT_HEAD(&root->childq, date, child);
   }
   
   static void
   default_title(struct pnode *n, const char *title)
   {
           struct pnode    *nc;
   
           if (n->parent == NULL)
                   return;
   
           TAILQ_FOREACH(nc, &n->childq, child)
                   if (nc->node == NODE_TITLE)
                           return;
   
           nc = pnode_alloc(NULL);
           nc->node = NODE_TITLE;
           nc->parent = n;
           TAILQ_INSERT_HEAD(&n->childq, nc, child);
           pnode_alloc_text(nc, title);
   }
   
   static void
   reorg_recurse(struct pnode *n)
   {
           struct pnode    *nc;
   
           if (n == NULL)
                   return;
   
           switch (n->node) {
           case NODE_APPENDIX:
                   default_title(n, "Appendix");
                   break;
           case NODE_CAUTION:
                   default_title(n, "Caution");
                   n->node = NODE_NOTE;
                   break;
           case NODE_LEGALNOTICE:
                   default_title(n, "Legal Notice");
                   n->node = NODE_SIMPLESECT;
                   break;
           case NODE_NOTE:
                   default_title(n, "Note");
                   break;
           case NODE_PREFACE:
                   default_title(n, "Preface");
                   n->node = NODE_SECTION;
                   break;
           case NODE_SECTION:
           case NODE_SIMPLESECT:
                   default_title(n, "Untitled");
                   break;
           case NODE_TIP:
                   default_title(n, "Tip");
                   n->node = NODE_NOTE;
                   break;
           case NODE_WARNING:
                   default_title(n, "Warning");
                   n->node = NODE_NOTE;
                   break;
           default:
                   break;
           }
   
           TAILQ_FOREACH(nc, &n->childq, child)
                   reorg_recurse(nc);
   }
   
   void
   ptree_reorg(struct ptree *tree)
   {
           reorg_recurse(tree->root);
           reorg_root(tree->root);
 }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

CVSweb