[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.58

version 1.57, 2015/02/21 21:15:41 version 1.58, 2015/02/23 14:30:29
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 1632  ordinary(struct state *st, const char *buf, size_t sta
Line 1642  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 1653  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.58

CVSweb