[BACK]Return to mdoc_markdown.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/mdoc_markdown.c between version 1.7 and 1.8

version 1.7, 2017/03/07 14:03:56 version 1.8, 2017/03/07 15:31:18
Line 247 
Line 247 
 #define ESC_PAR  (1 << 3)  /* ")" when "(" is open. */  #define ESC_PAR  (1 << 3)  /* ")" when "(" is open. */
 #define ESC_SQU  (1 << 4)  /* "]" when "[" is open. */  #define ESC_SQU  (1 << 4)  /* "]" when "[" is open. */
 #define ESC_FON  (1 << 5)  /* "*" immediately after unrelated "*". */  #define ESC_FON  (1 << 5)  /* "*" immediately after unrelated "*". */
   #define ESC_EOL  (1 << 6)  /* " " at the and of a line. */
   
 static  int      code_blocks, quote_blocks, list_blocks;  static  int      code_blocks, quote_blocks, list_blocks;
 static  int      outcount;  static  int      outcount;
Line 380 
Line 381 
          * they terminate the list.  Work around this markdown issue           * they terminate the list.  Work around this markdown issue
          * by using mere line breaks instead.           * by using mere line breaks instead.
          */           */
   
         if (list_blocks && outflags & MD_sp) {          if (list_blocks && outflags & MD_sp) {
                 outflags &= ~MD_sp;                  outflags &= ~MD_sp;
                 outflags |= MD_br;                  outflags |= MD_br;
         }          }
   
         /* End the old line if requested. */          /*
            * End the old line if requested.
            * Escape whitespace at the end of the markdown line
            * such that it won't look like an output line break.
            */
   
         if (outflags & MD_sp)          if (outflags & MD_sp)
                 putchar('\n');                  putchar('\n');
         else if (outflags & MD_br) {          else if (outflags & MD_br) {
                 putchar(' ');                  putchar(' ');
                 putchar(' ');                  putchar(' ');
 #ifdef DEBUG          } else if (outflags & MD_nl && escflags & ESC_EOL)
                 putchar(':');                  md_named("zwnj");
                 putchar(':');  
                 putchar(' ');  
                 putchar(' ');  
 #endif  
         }  
   
         /* Start a new line if necessary. */          /* Start a new line if necessary. */
   
Line 437 
Line 438 
 {  {
         md_preword();          md_preword();
   
         if (*s == 0)          if (*s == '\0')
                 return;                  return;
   
         if (escflags & ESC_FON) {          if (escflags & ESC_FON) {
Line 470 
Line 471 
                 }                  }
                 md_char(*s++);                  md_char(*s++);
         }          }
           if (s[-1] == ' ')
                   escflags |= ESC_EOL;
           else
                   escflags &= ~ESC_EOL;
 }  }
   
 /*  /*
Line 490 
Line 495 
   
         md_preword();          md_preword();
   
           if (*s == '\0')
                   return;
   
         /* No spacing after opening delimiters. */          /* No spacing after opening delimiters. */
         if ((s[0] == '(' || s[0] == '[') && s[1] == '\0')          if ((s[0] == '(' || s[0] == '[') && s[1] == '\0')
                 outflags &= ~MD_spc;                  outflags &= ~MD_spc;
Line 630 
Line 638 
         if (*currfont != '\0') {          if (*currfont != '\0') {
                 outflags &= ~MD_spc;                  outflags &= ~MD_spc;
                 md_rawword(currfont);                  md_rawword(currfont);
         }          } else if (s[-2] == ' ')
                   escflags |= ESC_EOL;
           else
                   escflags &= ~ESC_EOL;
 }  }
   
 /*  /*
Line 640 
Line 651 
 md_named(const char *s)  md_named(const char *s)
 {  {
         printf("&%s;", s);          printf("&%s;", s);
         escflags &= ~ESC_FON;          escflags &= ~(ESC_FON | ESC_EOL);
         outcount++;          outcount++;
 }  }
   

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8