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

Diff for /docbook2mdoc/docbook2mdoc.c between version 1.105 and 1.108

version 1.105, 2019/04/12 04:17:11 version 1.108, 2019/04/12 09:39:21
Line 38  pnode_printtext(struct format *f, struct pnode *n)
Line 38  pnode_printtext(struct format *f, struct pnode *n)
         struct pnode    *nn;          struct pnode    *nn;
         char            *cp;          char            *cp;
         int              accept_arg;          int              accept_arg;
         char             last;  
   
         cp = n->b;          cp = n->b;
         accept_arg = f->flags & FMT_ARG;          accept_arg = f->flags & FMT_ARG;
         if (f->linestate == LINE_MACRO && n->spc == 0 && !accept_arg) {          if (f->linestate == LINE_MACRO && !n->spc && !accept_arg) {
                 for (;;) {                  for (;;) {
                         if (*cp == '\0')                          if (*cp == '\0')
                                 return;                                  return;
Line 80  pnode_printtext(struct format *f, struct pnode *n)
Line 79  pnode_printtext(struct format *f, struct pnode *n)
         }          }
   
         switch (f->linestate) {          switch (f->linestate) {
           case LINE_NEW:
                   break;
         case LINE_TEXT:          case LINE_TEXT:
                 if (n->spc) {                  if (n->spc) {
                         if (n->node == NODE_TEXT) {                          if (n->node == NODE_TEXT)
                                 putchar('\n');                                  macro_close(f);
                                 last = '\n';                          else
                                 break;                                  putchar(' ');
                         }  
                         putchar(' ');  
                 }                  }
                 last = ' ';  
                 break;                  break;
         case LINE_MACRO:          case LINE_MACRO:
                 if (accept_arg) {                  if (accept_arg)
                         putchar(' ');                          putchar(' ');
                         last = ' ';                  else
                         break;                          macro_close(f);
                 }  
                 macro_close(f);  
                 /* FALLTHROUGH */  
         case LINE_NEW:  
                 f->linestate = LINE_TEXT;  
                 last = '\n';  
                 break;                  break;
         }          }
   
         if (n->node == NODE_ESCAPE) {          if (n->node == NODE_ESCAPE) {
                 fputs(n->b, stdout);                  fputs(n->b, stdout);
                   if (f->linestate == LINE_NEW)
                           f->linestate = LINE_TEXT;
                 return;                  return;
         }          }
   
Line 118  pnode_printtext(struct format *f, struct pnode *n)
Line 112  pnode_printtext(struct format *f, struct pnode *n)
         if (n->parent != NULL && n->parent->node == NODE_OPTION && *cp == '-')          if (n->parent != NULL && n->parent->node == NODE_OPTION && *cp == '-')
                 cp++;                  cp++;
   
         /*          if (f->linestate == LINE_MACRO)
          * Print the text, skipping whitespace on new lines,                  macro_addarg(f, cp, 0);
          * escaping control characters on new lines,          else
          * and escaping backslashes.                  print_text(f, cp, 0);
          */  
   
         for (; *cp != '\0'; cp++) {  
                 if (last == '\n') {  
                         if (isspace((unsigned char)*cp))  
                                 continue;  
                         if (*cp == '\'' || *cp == '.')  
                                 fputs("\\&", stdout);  
                 }  
                 putchar(last = *cp);  
                 if (last == '\\')  
                         putchar('e');  
         }  
 }  }
   
 static void  static void
Line 660  pnode_printprologue(struct format *f, struct ptree *tr
Line 641  pnode_printprologue(struct format *f, struct ptree *tr
 static void  static void
 pnode_printvarlistentry(struct format *f, struct pnode *n)  pnode_printvarlistentry(struct format *f, struct pnode *n)
 {  {
         struct pnode    *nc;          struct pnode    *nc, *nn;
         int              first = 1;          int              first = 1;
   
         macro_close(f);  
         macro_open(f, "It");          macro_open(f, "It");
         f->flags |= FMT_IMPL;          f->flags |= FMT_IMPL;
         TAILQ_FOREACH(nc, &n->childq, child) {          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)                  if (first == 0) {
                         macro_addarg(f, ",", 0);                          switch (f->linestate) {
                           case LINE_NEW:
                                   break;
                           case LINE_TEXT:
                                   print_text(f, ",", 0);
                                   break;
                           case LINE_MACRO:
                                   macro_addarg(f, ",", 0);
                                   break;
                           }
                   }
                 pnode_print(f, nc);                  pnode_print(f, nc);
                   pnode_unlink(nc);
                 first = 0;                  first = 0;
         }          }
         macro_close(f);          macro_close(f);
         TAILQ_FOREACH(nc, &n->childq, child)          while ((nc = TAILQ_FIRST(&n->childq)) != NULL) {
                 if (nc->node != NODE_TERM && nc->node != NODE_GLOSSTERM)                  pnode_print(f, nc);
                         pnode_print(f, nc);                  pnode_unlink(nc);
         pnode_unlinksub(n);          }
           macro_close(f);
 }  }
   
 static void  static void
Line 914  pnode_print(struct format *f, struct pnode *n)
Line 906  pnode_print(struct format *f, struct pnode *n)
                 macro_argline(f, "Bd", pnode_getattr(n, ATTRKEY_CLASS) ==                  macro_argline(f, "Bd", pnode_getattr(n, ATTRKEY_CLASS) ==
                     ATTRVAL_MONOSPACED ? "-literal" : "-unfilled");                      ATTRVAL_MONOSPACED ? "-literal" : "-unfilled");
                 break;                  break;
           case NODE_MARKUP:
                   macro_open(f, "Ic");
                   break;
         case NODE_MML_MFENCED:          case NODE_MML_MFENCED:
                 pnode_printmathfenced(f, n);                  pnode_printmathfenced(f, n);
                 break;                  break;
Line 988  pnode_print(struct format *f, struct pnode *n)
Line 983  pnode_print(struct format *f, struct pnode *n)
                 break;                  break;
         case NODE_SBR:          case NODE_SBR:
                 macro_line(f, "br");                  macro_line(f, "br");
                 break;  
         case NODE_SGMLTAG:  
                 macro_open(f, "Ic");  
                 break;                  break;
         case NODE_TEXT:          case NODE_TEXT:
         case NODE_ESCAPE:          case NODE_ESCAPE:

Legend:
Removed from v.1.105  
changed lines
  Added in v.1.108

CVSweb