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

Diff for /mandoc/mdoc_markdown.c between version 1.14 and 1.15

version 1.14, 2017/03/08 19:23:43 version 1.15, 2017/03/11 12:35:45
Line 43  static void  md_rawword(const char *);
Line 43  static void  md_rawword(const char *);
 static  void     md_word(const char *);  static  void     md_word(const char *);
 static  void     md_named(const char *);  static  void     md_named(const char *);
 static  void     md_char(unsigned char);  static  void     md_char(unsigned char);
   static  void     md_uri(const char *);
   
 static  int      md_cond_head(struct roff_node *);  static  int      md_cond_head(struct roff_node *);
 static  int      md_cond_body(struct roff_node *);  static  int      md_cond_body(struct roff_node *);
Line 67  static int  md_pre_Fo(struct roff_node *);
Line 68  static int  md_pre_Fo(struct roff_node *);
 static  int      md_pre_In(struct roff_node *);  static  int      md_pre_In(struct roff_node *);
 static  int      md_pre_It(struct roff_node *);  static  int      md_pre_It(struct roff_node *);
 static  int      md_pre_Lk(struct roff_node *);  static  int      md_pre_Lk(struct roff_node *);
   static  int      md_pre_Mt(struct roff_node *);
 static  int      md_pre_Nd(struct roff_node *);  static  int      md_pre_Nd(struct roff_node *);
 static  int      md_pre_Nm(struct roff_node *);  static  int      md_pre_Nm(struct roff_node *);
 static  int      md_pre_No(struct roff_node *);  static  int      md_pre_No(struct roff_node *);
Line 211  static const struct md_act md_acts[MDOC_MAX + 1] = {
Line 213  static const struct md_act md_acts[MDOC_MAX + 1] = {
         { NULL, NULL, md_post_Lb, NULL, NULL }, /* Lb */          { NULL, NULL, md_post_Lb, NULL, NULL }, /* Lb */
         { NULL, md_pre_Pp, NULL, NULL, NULL }, /* Lp */          { NULL, md_pre_Pp, NULL, NULL, NULL }, /* Lp */
         { NULL, md_pre_Lk, NULL, NULL, NULL }, /* Lk */          { NULL, md_pre_Lk, NULL, NULL, NULL }, /* Lk */
         { NULL, md_pre_raw, md_post_raw, "<", ">" }, /* Mt */          { NULL, md_pre_Mt, NULL, NULL, NULL }, /* Mt */
         { md_cond_body, md_pre_word, md_post_word, "{", "}" }, /* Brq */          { md_cond_body, md_pre_word, md_post_word, "{", "}" }, /* Brq */
         { md_cond_body, md_pre_word, md_post_word, "{", "}" }, /* Bro */          { md_cond_body, md_pre_word, md_post_word, "{", "}" }, /* Bro */
         { NULL, NULL, NULL, NULL, NULL }, /* Brc */          { NULL, NULL, NULL, NULL, NULL }, /* Brc */
Line 1279  md_post_Lb(struct roff_node *n)
Line 1281  md_post_Lb(struct roff_node *n)
                 outflags |= MD_br;                  outflags |= MD_br;
 }  }
   
   static void
   md_uri(const char *s)
   {
           while (*s != '\0') {
                   if (strchr("%()<>", *s) != NULL) {
                           printf("%%%2.2hhX", *s);
                           outcount += 3;
                   } else {
                           putchar(*s);
                           outcount++;
                   }
                   s++;
           }
   }
   
 static int  static int
 md_pre_Lk(struct roff_node *n)  md_pre_Lk(struct roff_node *n)
 {  {
         const struct roff_node *link, *descr;          const struct roff_node *link, *descr;
         const unsigned char *s;  
   
         if ((link = n->child) == NULL)          if ((link = n->child) == NULL)
                 return 0;                  return 0;
   
         if ((descr = link->next) != NULL) {          descr = link->next == NULL ? link : link->next;
                 md_rawword("[");          md_rawword("[");
                 outflags &= ~MD_spc;          outflags &= ~MD_spc;
                 while (descr != NULL) {          do {
                         md_word(descr->string);                  md_word(descr->string);
                         descr = descr->next;                  descr = link->next == NULL ? NULL : descr->next;
                 }          } while (descr != NULL);
                 outflags &= ~MD_spc;          outflags &= ~MD_spc;
                 md_rawword("](");          md_rawword("](");
         } else          md_uri(link->string);
                 md_rawword("<");          outflags &= ~MD_spc;
           md_rawword(")");
           return 0;
   }
   
         for (s = link->string; *s != '\0'; s++) {  static int
                 if (strchr("%()<>", *s) != NULL) {  md_pre_Mt(struct roff_node *n)
                         printf("%%%2.2hhX", *s);  {
                         outcount += 3;          const struct roff_node *nch;
                 } else {  
                         putchar(*s);          md_rawword("[");
           outflags &= ~MD_spc;
           for (nch = n->child; nch != NULL; nch = nch->next)
                   md_word(nch->string);
           outflags &= ~MD_spc;
           md_rawword("](mailto:");
           for (nch = n->child; nch != NULL; nch = nch->next) {
                   md_uri(nch->string);
                   if (nch->next != NULL) {
                           putchar(' ');
                         outcount++;                          outcount++;
                 }                  }
         }          }
   
         outflags &= ~MD_spc;          outflags &= ~MD_spc;
         md_rawword(link->next == NULL ? ">" : ")");          md_rawword(")");
         return 0;          return 0;
 }  }
   

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

CVSweb