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

Diff for /mandoc/mdoc_man.c between version 1.100 and 1.104

version 1.100, 2017/01/10 23:36:34 version 1.104, 2017/02/17 19:15:41
Line 102  static int   pre_no(DECL_ARGS);
Line 102  static int   pre_no(DECL_ARGS);
 static  int       pre_ns(DECL_ARGS);  static  int       pre_ns(DECL_ARGS);
 static  int       pre_pp(DECL_ARGS);  static  int       pre_pp(DECL_ARGS);
 static  int       pre_rs(DECL_ARGS);  static  int       pre_rs(DECL_ARGS);
 static  int       pre_rv(DECL_ARGS);  
 static  int       pre_sm(DECL_ARGS);  static  int       pre_sm(DECL_ARGS);
 static  int       pre_sp(DECL_ARGS);  static  int       pre_sp(DECL_ARGS);
 static  int       pre_sect(DECL_ARGS);  static  int       pre_sect(DECL_ARGS);
 static  int       pre_sy(DECL_ARGS);  static  int       pre_sy(DECL_ARGS);
 static  void      pre_syn(const struct roff_node *);  static  void      pre_syn(const struct roff_node *);
 static  int       pre_vt(DECL_ARGS);  static  int       pre_vt(DECL_ARGS);
 static  int       pre_ux(DECL_ARGS);  
 static  int       pre_xr(DECL_ARGS);  static  int       pre_xr(DECL_ARGS);
 static  void      print_word(const char *);  static  void      print_word(const char *);
 static  void      print_line(const char *, int);  static  void      print_line(const char *, int);
Line 157  static const struct manact manacts[MDOC_MAX + 1] = {
Line 155  static const struct manact manacts[MDOC_MAX + 1] = {
         { cond_body, pre_enc, post_enc, "[", "]" }, /* Op */          { cond_body, pre_enc, post_enc, "[", "]" }, /* Op */
         { NULL, pre_ft, post_font, NULL, NULL }, /* Ot */          { NULL, pre_ft, post_font, NULL, NULL }, /* Ot */
         { NULL, pre_em, post_font, NULL, NULL }, /* Pa */          { NULL, pre_em, post_font, NULL, NULL }, /* Pa */
         { NULL, pre_rv, NULL, NULL, NULL }, /* Rv */          { NULL, pre_ex, NULL, NULL, NULL }, /* Rv */
         { NULL, NULL, NULL, NULL, NULL }, /* St */          { NULL, NULL, NULL, NULL, NULL }, /* St */
         { NULL, pre_em, post_font, NULL, NULL }, /* Va */          { NULL, pre_em, post_font, NULL, NULL }, /* Va */
         { NULL, pre_vt, post_vt, NULL, NULL }, /* Vt */          { NULL, pre_vt, post_vt, NULL, NULL }, /* Vt */
Line 223  static const struct manact manacts[MDOC_MAX + 1] = {
Line 221  static const struct manact manacts[MDOC_MAX + 1] = {
         { NULL, NULL, NULL, NULL, NULL }, /* Oc */          { NULL, NULL, NULL, NULL, NULL }, /* Oc */
         { NULL, pre_bk, post_bk, NULL, NULL }, /* Bk */          { NULL, pre_bk, post_bk, NULL, NULL }, /* Bk */
         { NULL, NULL, NULL, NULL, NULL }, /* Ek */          { NULL, NULL, NULL, NULL, NULL }, /* Ek */
         { NULL, pre_ux, NULL, "is currently in beta test.", NULL }, /* Bt */          { NULL, NULL, NULL, NULL, NULL }, /* Bt */
         { NULL, NULL, NULL, NULL, NULL }, /* Hf */          { NULL, NULL, NULL, NULL, NULL }, /* Hf */
         { NULL, pre_em, post_font, NULL, NULL }, /* Fr */          { NULL, pre_em, post_font, NULL, NULL }, /* Fr */
         { NULL, pre_ux, NULL, "currently under development.", NULL }, /* Ud */          { NULL, NULL, NULL, NULL, NULL }, /* Ud */
         { NULL, NULL, post_lb, NULL, NULL }, /* Lb */          { NULL, NULL, post_lb, NULL, NULL }, /* Lb */
         { NULL, pre_pp, NULL, NULL, NULL }, /* Lp */          { NULL, pre_pp, NULL, NULL, NULL }, /* Lp */
         { NULL, pre_lk, NULL, NULL, NULL }, /* Lk */          { NULL, pre_lk, NULL, NULL, NULL }, /* Lk */
Line 600  print_node(DECL_ARGS)
Line 598  print_node(DECL_ARGS)
                         printf("\\&");                          printf("\\&");
                         outflags &= ~MMAN_spc;                          outflags &= ~MMAN_spc;
                 }                  }
                 if (outflags & MMAN_Sm && ! (n->flags & NODE_DELIMC))                  if (n->flags & NODE_DELIMC)
                           outflags &= ~(MMAN_spc | MMAN_spc_force);
                   else if (outflags & MMAN_Sm)
                         outflags |= MMAN_spc_force;                          outflags |= MMAN_spc_force;
                 print_word(n->string);                  print_word(n->string);
                 if (outflags & MMAN_Sm && ! (n->flags & NODE_DELIMO))                  if (n->flags & NODE_DELIMO)
                           outflags &= ~(MMAN_spc | MMAN_spc_force);
                   else if (outflags & MMAN_Sm)
                         outflags |= MMAN_spc;                          outflags |= MMAN_spc;
         } else {          } else {
                 /*                  /*
Line 637  print_node(DECL_ARGS)
Line 639  print_node(DECL_ARGS)
   
         if (ENDBODY_NOT != n->end)          if (ENDBODY_NOT != n->end)
                 n->body->flags |= NODE_ENDED;                  n->body->flags |= NODE_ENDED;
   
         if (ENDBODY_NOSPACE == n->end)  
                 outflags &= ~(MMAN_spc | MMAN_nl);  
 }  }
   
 static int  static int
Line 684  post_enc(DECL_ARGS)
Line 683  post_enc(DECL_ARGS)
 static int  static int
 pre_ex(DECL_ARGS)  pre_ex(DECL_ARGS)
 {  {
         struct roff_node *nch;  
   
         outflags |= MMAN_br | MMAN_nl;          outflags |= MMAN_br | MMAN_nl;
           return 1;
         print_word("The");  
   
         for (nch = n->child; nch != NULL; nch = nch->next) {  
                 font_push('B');  
                 print_word(nch->string);  
                 font_pop();  
   
                 if (nch->next == NULL)  
                         continue;  
   
                 if (nch->prev != NULL || nch->next->next != NULL) {  
                         outflags &= ~MMAN_spc;  
                         print_word(",");  
                 }  
                 if (nch->next->next == NULL)  
                         print_word("and");  
         }  
   
         if (n->child != NULL && n->child->next != NULL)  
                 print_word("utilities exit\\~0");  
         else  
                 print_word("utility exits\\~0");  
   
         print_word("on success, and\\~>0 if an error occurs.");  
         outflags |= MMAN_nl;  
         return 0;  
 }  }
   
 static void  static void
Line 746  pre__t(DECL_ARGS)
Line 717  pre__t(DECL_ARGS)
   
         if (n->parent && MDOC_Rs == n->parent->tok &&          if (n->parent && MDOC_Rs == n->parent->tok &&
             n->parent->norm->Rs.quote_T) {              n->parent->norm->Rs.quote_T) {
                 print_word("");                  print_word("\\(lq");
                 putchar('\"');  
                 outflags &= ~MMAN_spc;                  outflags &= ~MMAN_spc;
         } else          } else
                 font_push('I');                  font_push('I');
Line 761  post__t(DECL_ARGS)
Line 731  post__t(DECL_ARGS)
         if (n->parent && MDOC_Rs == n->parent->tok &&          if (n->parent && MDOC_Rs == n->parent->tok &&
             n->parent->norm->Rs.quote_T) {              n->parent->norm->Rs.quote_T) {
                 outflags &= ~MMAN_spc;                  outflags &= ~MMAN_spc;
                 print_word("");                  print_word("\\(rq");
                 putchar('\"');  
         } else          } else
                 font_pop();                  font_pop();
         post_percent(meta, n);          post_percent(meta, n);
Line 1544  pre_nm(DECL_ARGS)
Line 1513  pre_nm(DECL_ARGS)
         }          }
         if (n->type != ROFFT_ELEM && n->type != ROFFT_HEAD)          if (n->type != ROFFT_ELEM && n->type != ROFFT_HEAD)
                 return 1;                  return 1;
         name = n->child ? n->child->string : meta->name;          name = n->child == NULL ? NULL : n->child->string;
         if (NULL == name)          if (NULL == name)
                 return 0;                  return 0;
         if (n->type == ROFFT_HEAD) {          if (n->type == ROFFT_HEAD) {
Line 1555  pre_nm(DECL_ARGS)
Line 1524  pre_nm(DECL_ARGS)
                 outflags |= MMAN_nl;                  outflags |= MMAN_nl;
         }          }
         font_push('B');          font_push('B');
         if (NULL == n->child)  
                 print_word(meta->name);  
         return 1;          return 1;
 }  }
   
Line 1570  post_nm(DECL_ARGS)
Line 1537  post_nm(DECL_ARGS)
                 break;                  break;
         case ROFFT_HEAD:          case ROFFT_HEAD:
         case ROFFT_ELEM:          case ROFFT_ELEM:
                 if (n->child != NULL || meta->name != NULL)                  if (n->child != NULL && n->child->string != NULL)
                         font_pop();                          font_pop();
                 break;                  break;
         default:          default:
Line 1625  pre_rs(DECL_ARGS)
Line 1592  pre_rs(DECL_ARGS)
 }  }
   
 static int  static int
 pre_rv(DECL_ARGS)  
 {  
         struct roff_node *nch;  
   
         outflags |= MMAN_br | MMAN_nl;  
   
         if (n->child != NULL) {  
                 print_word("The");  
   
                 for (nch = n->child; nch != NULL; nch = nch->next) {  
                         font_push('B');  
                         print_word(nch->string);  
                         font_pop();  
   
                         outflags &= ~MMAN_spc;  
                         print_word("()");  
   
                         if (nch->next == NULL)  
                                 continue;  
   
                         if (nch->prev != NULL || nch->next->next != NULL) {  
                                 outflags &= ~MMAN_spc;  
                                 print_word(",");  
                         }  
                         if (nch->next->next == NULL)  
                                 print_word("and");  
                 }  
   
                 if (n->child != NULL && n->child->next != NULL)  
                         print_word("functions return");  
                 else  
                         print_word("function returns");  
   
                 print_word("the value\\~0 if successful;");  
         } else  
                 print_word("Upon successful completion, "  
                     "the value\\~0 is returned;");  
   
         print_word("otherwise the value\\~\\-1 is returned"  
             " and the global variable");  
   
         font_push('I');  
         print_word("errno");  
         font_pop();  
   
         print_word("is set to indicate the error.");  
         outflags |= MMAN_nl;  
         return 0;  
 }  
   
 static int  
 pre_skip(DECL_ARGS)  pre_skip(DECL_ARGS)
 {  {
   
Line 1770  pre_xr(DECL_ARGS)
Line 1686  pre_xr(DECL_ARGS)
         print_node(meta, n);          print_node(meta, n);
         print_word(")");          print_word(")");
         return 0;          return 0;
 }  
   
 static int  
 pre_ux(DECL_ARGS)  
 {  
   
         print_word(manacts[n->tok].prefix);  
         if (NULL == n->child)  
                 return 0;  
         outflags &= ~MMAN_spc;  
         print_word("\\ ");  
         outflags &= ~MMAN_spc;  
         return 1;  
 }  }

Legend:
Removed from v.1.100  
changed lines
  Added in v.1.104

CVSweb