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

Diff for /pod2mdoc/pod2mdoc.c between version 1.57 and 1.59

version 1.57, 2015/02/21 21:15:41 version 1.59, 2015/02/23 15:12:06
Line 75  struct state {
Line 75  struct state {
         char            *outbuf; /* text buffered for output */          char            *outbuf; /* text buffered for output */
         size_t           outbufsz; /* allocated size of outbuf */          size_t           outbufsz; /* allocated size of outbuf */
         size_t           outbuflen; /* current length of outbuf */          size_t           outbuflen; /* current length of outbuf */
           size_t           outlnlen; /* chars so far on this output line */
 };  };
   
 enum    fmt {  enum    fmt {
Line 208  outbuf_flush(struct state *st)
Line 209  outbuf_flush(struct state *st)
         if (0 == st->outbuflen)          if (0 == st->outbuflen)
                 return;                  return;
   
           st->outlnlen += st->outbuflen;
           if (OUST_TXT == st->oust && st->wantws) {
                   if (++st->outlnlen > 72) {
                           putchar('\n');
                           st->oust = OUST_NL;
                           st->outlnlen = st->outbuflen;
                   }
           }
         if (OUST_NL != st->oust && st->wantws)          if (OUST_NL != st->oust && st->wantws)
                 putchar(' ');                  putchar(' ');
   
Line 233  mdoc_newln(struct state *st)
Line 242  mdoc_newln(struct state *st)
         putchar('\n');          putchar('\n');
         last = '\n';          last = '\n';
         st->oust = OUST_NL;          st->oust = OUST_NL;
           st->outlnlen = 0;
         st->wantws = 1;          st->wantws = 1;
 }  }
   
Line 637  formatcode(struct state *st, const char *buf, size_t *
Line 647  formatcode(struct state *st, const char *buf, size_t *
                  */                   */
   
                 switch (fmt) {                  switch (fmt) {
                 case (FMT_ITALIC):  
                         fputs("Em", stdout);  
                         break;  
                 case (FMT_BOLD):                  case (FMT_BOLD):
                         if (SECT_SYNOPSIS == st->sect) {                          if (SECT_SYNOPSIS == st->sect) {
                                 if (1 == dsz && '-' == buf[*start])                                  if (1 == dsz && '-' == buf[*start])
Line 650  formatcode(struct state *st, const char *buf, size_t *
Line 657  formatcode(struct state *st, const char *buf, size_t *
                                         fputs("Ar", stdout);                                          fputs("Ar", stdout);
                                 break;                                  break;
                         }                          }
                           /* FALLTHROUGH */
                   case (FMT_ITALIC):
                         i = 0;                          i = 0;
                         uc = buf[*start];                          uc = buf[*start];
                         while (isalnum(uc) || '_' == uc || ' ' == uc)                          while (isalnum(uc) || '_' == uc || ' ' == uc)
Line 668  formatcode(struct state *st, const char *buf, size_t *
Line 677  formatcode(struct state *st, const char *buf, size_t *
                                 fputs("Vt", stdout);                                  fputs("Vt", stdout);
                                 break;                                  break;
                         default:                          default:
                                 fputs("Sy", stdout);                                  fputs(FMT_BOLD == fmt ? "Sy" : "Em", stdout);
                                 break;                                  break;
                         }                          }
                         break;                          break;
Line 1632  ordinary(struct state *st, const char *buf, size_t sta
Line 1641  ordinary(struct state *st, const char *buf, size_t sta
                         }                          }
                 } else if (start < end && '\n' == buf[start]) {                  } else if (start < end && '\n' == buf[start]) {
                         outbuf_flush(st);                          outbuf_flush(st);
                         mdoc_newln(st);                          st->wantws = 1;
                         if (++start >= end)                          if (++start >= end)
                                 continue;                                  continue;
                         /*                          /*
Line 1643  ordinary(struct state *st, const char *buf, size_t sta
Line 1652  ordinary(struct state *st, const char *buf, size_t sta
                          * have a macro subsequent it, which may be                           * have a macro subsequent it, which may be
                          * possible if we have an escape next.                           * possible if we have an escape next.
                          */                           */
                         if (' ' == buf[start] || '\t' == buf[start])                          if (' ' == buf[start] || '\t' == buf[start]) {
                                   mdoc_newln(st);
                                 puts(".br");                                  puts(".br");
                           }
                         for ( ; start < end; start++)                          for ( ; start < end; start++)
                                 if (' ' != buf[start] && '\t' != buf[start])                                  if (' ' != buf[start] && '\t' != buf[start])
                                         break;                                          break;

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

CVSweb