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

Diff for /pod2mdoc/pod2mdoc.c between version 1.20 and 1.22

version 1.20, 2014/04/03 11:34:30 version 1.22, 2014/04/03 16:50:32
Line 179  formatescape(const char *buf, size_t *start, size_t en
Line 179  formatescape(const char *buf, size_t *start, size_t en
 static int  static int
 trylink(const char *buf, size_t *start, size_t end, size_t dsz)  trylink(const char *buf, size_t *start, size_t end, size_t dsz)
 {  {
         size_t           linkstart, realend, linkend, i, j, textsz;          size_t           linkstart, realend, linkend,
                            i, j, textsz, stack;
         const char      *text;          const char      *text;
   
         /*          /*
Line 187  trylink(const char *buf, size_t *start, size_t end, si
Line 188  trylink(const char *buf, size_t *start, size_t end, si
          * This function is more or less replicated in the formatcode()           * This function is more or less replicated in the formatcode()
          * for null or index formatting codes.           * for null or index formatting codes.
          */           */
           stack = 0;
         for (linkstart = realend = *start; realend < end; realend++) {          for (linkstart = realend = *start; realend < end; realend++) {
                 if ('>' != buf[realend])                  if ('>' != buf[realend])
                         continue;                          continue;
Line 848  static void
Line 850  static void
 verbatim(struct state *st, const char *buf, size_t start, size_t end)  verbatim(struct state *st, const char *buf, size_t start, size_t end)
 {  {
         int              last;          int              last;
           size_t           i;
   
         if ( ! st->parsing || st->paused)          if ( ! st->parsing || st->paused)
                 return;                  return;
   again:
           /*
            * If we're in the SYNOPSIS, see if we're an #include block.
            * If we are, then print the "In" macro and re-loop.
            * This handles any number of inclusions, but only when they
            * come before the remaining parts...
            */
           if (SECT_SYNOPSIS == st->sect) {
                   i = start;
                   for (i = start; i < end && ' ' == buf[i]; i++)
                           /* Spin. */ ;
                   if (i == end)
                           return;
                   /* We're an include block! */
                   if (end - i > 10 &&
                           0 == memcmp(&buf[i], "#include <", 10)) {
                           start = i + 10;
                           while (start < end && ' ' == buf[start])
                                   start++;
                           fputs(".In ", stdout);
                           /* Stop til the '>' marker or we hit eoln. */
                           while (start < end &&
                                   '>' != buf[start] && '\n' != buf[start])
                                   putchar(buf[start++]);
                           putchar('\n');
                           if (start < end && '>' == buf[start])
                                   start++;
                           if (start < end && '\n' == buf[start])
                                   start++;
                           if (start < end)
                                   goto again;
                           return;
                   }
           }
   
           if (start == end)
                   return;
         puts(".Bd -literal");          puts(".Bd -literal");
         for (last = ' '; start < end; start++) {          for (last = ' '; start < end; start++) {
                 /*                  /*

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.22

CVSweb