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

Diff for /docbook2mdoc/docbook2mdoc.c between version 1.58 and 1.59

version 1.58, 2019/03/22 16:50:54 version 1.59, 2019/03/22 16:55:44
Line 491  pnode_unlinksub(struct pnode *pn)
Line 491  pnode_unlinksub(struct pnode *pn)
 }  }
   
 /*  /*
    * Retrieve an attribute string from a node.
    * Return defval if the node has no such attribute.
    */
   const char *
   pnode_getattr_raw(struct pnode *pn, enum attrkey key, const char *defval)
   {
           struct pattr    *ap;
   
           TAILQ_FOREACH(ap, &pn->attrq, child)
                   if (ap->key == key)
                           return ATTRVAL__MAX == ap->val ? ap->rawval :
                               attrvals[ap->val];
           return(defval);
   }
   
   /*
  * Reset the lookaside buffer.   * Reset the lookaside buffer.
  */   */
 static void  static void
Line 911  static void
Line 927  static void
 pnode_printmathfenced(struct parse *p, struct pnode *pn)  pnode_printmathfenced(struct parse *p, struct pnode *pn)
 {  {
         struct pnode    *pp;          struct pnode    *pp;
         struct pattr    *ap;  
   
         TAILQ_FOREACH(ap, &pn->attrq, child)          printf("left %s ", pnode_getattr_raw(pn, ATTRKEY_OPEN, "("));
                 if (ATTRKEY_OPEN == ap->key) {  
                         printf("left %s ", ap->rawval);  
                         break;  
                 }  
         if (NULL == ap)  
                 printf("left ( ");  
   
         pp = TAILQ_FIRST(&pn->childq);          pp = TAILQ_FIRST(&pn->childq);
         pnode_print(p, pp);          pnode_print(p, pp);
Line 929  pnode_printmathfenced(struct parse *p, struct pnode *p
Line 938  pnode_printmathfenced(struct parse *p, struct pnode *p
                 pnode_print(p, pp);                  pnode_print(p, pp);
         }          }
   
         TAILQ_FOREACH(ap, &pn->attrq, child)          printf("right %s ", pnode_getattr_raw(pn, ATTRKEY_CLOSE, ")"));
                 if (ATTRKEY_CLOSE == ap->key) {  
                         printf("right %s ", ap->rawval);  
                         break;  
                 }  
         if (NULL == ap)  
                 printf("right ) ");  
 }  }
   
 /*  /*
Line 1090  static void
Line 1093  static void
 pnode_printprologue(struct parse *p, struct pnode *pn)  pnode_printprologue(struct parse *p, struct pnode *pn)
 {  {
         struct pnode    *pp;          struct pnode    *pp;
         struct pattr    *ap;  
         const char      *name;  
   
         pp = NULL == p->root ? NULL :          pp = NULL == p->root ? NULL :
                 pnode_findfirst(p->root, NODE_REFMETA);                  pnode_findfirst(p->root, NODE_REFMETA);
Line 1100  pnode_printprologue(struct parse *p, struct pnode *pn)
Line 1101  pnode_printprologue(struct parse *p, struct pnode *pn)
         if (NULL != pp) {          if (NULL != pp) {
                 pnode_printrefmeta(p, pp);                  pnode_printrefmeta(p, pp);
                 pnode_unlink(pp);                  pnode_unlink(pp);
         } else {          } else
                 name = "UNKNOWN";                  printf(".Dt %s 1\n",
                 TAILQ_FOREACH(ap, &p->root->attrq, child) {                      pnode_getattr_raw(p->root, ATTRKEY_ID, "UNKNOWN"));
                         if (ATTRKEY_ID == ap->key) {  
                                 name = ap->rawval;  
                                 break;  
                         }  
                 }  
                 printf(".Dt %s 1\n", name);  
         }  
         puts(".Os");          puts(".Os");
   
         if (PARSE_EQN & p->flags) {          if (PARSE_EQN & p->flags) {
Line 1255  static void
Line 1249  static void
 pnode_print(struct parse *p, struct pnode *pn)  pnode_print(struct parse *p, struct pnode *pn)
 {  {
         struct pnode    *pp;          struct pnode    *pp;
         struct pattr    *ap;          const char      *ccp;
         char            *cp;          char            *cp;
         int              last, sv;          int              last, sv;
   
Line 1364  pnode_print(struct parse *p, struct pnode *pn)
Line 1358  pnode_print(struct parse *p, struct pnode *pn)
                 puts(".Sh LEGAL NOTICE");                  puts(".Sh LEGAL NOTICE");
                 break;                  break;
         case (NODE_LINK):          case (NODE_LINK):
                 TAILQ_FOREACH(ap, &pn->attrq, child)                  ccp = pnode_getattr_raw(pn, ATTRKEY_LINKEND, NULL);
                         if (ATTRKEY_LINKEND == ap->key)                  if (NULL == ccp)
                                 break;  
                 if (ap == NULL)  
                         break;                          break;
                 pnode_printmopen(p);                  pnode_printmopen(p);
                 printf("Sx %s\n", ap->rawval);                  printf("Sx %s\n", ccp);
                 p->newln = 1;                  p->newln = 1;
                 return;                  return;
         case (NODE_LITERAL):          case (NODE_LITERAL):

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.59

CVSweb