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

Diff for /mandoc/Attic/mdocterm.c between version 1.12 and 1.13

version 1.12, 2009/02/25 15:12:26 version 1.13, 2009/02/25 17:02:47
Line 345  pescape(struct termp *p, const char *word, size_t *i, 
Line 345  pescape(struct termp *p, const char *word, size_t *i, 
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case ('-'):                  case ('-'):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                   case (' '):
                           /* FALLTHROUGH */
                 case ('.'):                  case ('.'):
                         chara(p, word[*i]);                          chara(p, word[*i]);
                 default:                  default:
Line 372  pword(struct termp *p, const char *word, size_t len)
Line 374  pword(struct termp *p, const char *word, size_t len)
                         ! (p->flags & TERMP_LITERAL))                          ! (p->flags & TERMP_LITERAL))
                 chara(p, ' ');                  chara(p, ' ');
   
         p->flags &= ~TERMP_NOSPACE;          if ( ! (p->flags & TERMP_NONOSPACE))
                   p->flags &= ~TERMP_NOSPACE;
   
         if (p->flags & TERMP_BOLD)          if (p->flags & TERMP_BOLD)
                 style(p, STYLE_BOLD);                  style(p, STYLE_BOLD);
Line 530  static void
Line 533  static void
 header(struct termp *p, const struct mdoc_meta *meta)  header(struct termp *p, const struct mdoc_meta *meta)
 {  {
         char            *buf, *title;          char            *buf, *title;
         const char      *pp, *msec;          const char      *pp;
         size_t           ssz, tsz, ttsz, i;;  
   
         if (NULL == (buf = malloc(p->rmargin)))          if (NULL == (buf = malloc(p->rmargin)))
                 err(1, "malloc");                  err(1, "malloc");
Line 568  header(struct termp *p, const struct mdoc_meta *meta)
Line 570  header(struct termp *p, const struct mdoc_meta *meta)
                                 pp = mdoc_msec2a(MSEC_local);                                  pp = mdoc_msec2a(MSEC_local);
                         break;                          break;
                 }                  }
         assert(pp);  
   
         tsz = strlcpy(buf, pp, p->rmargin);          if (mdoc_arch2a(meta->arch))
         assert(tsz < p->rmargin);                  (void)snprintf(buf, p->rmargin, "%s(%s)",
                                   pp, mdoc_arch2a(meta->arch));
           else
                   (void)strlcpy(buf, pp, p->rmargin);
   
         if ((pp = mdoc_arch2a(meta->arch))) {          pp = mdoc_msec2a(meta->msec);
                 tsz = strlcat(buf, " (", p->rmargin);  
                 assert(tsz < p->rmargin);  
                 tsz = strlcat(buf, pp, p->rmargin);  
                 assert(tsz < p->rmargin);  
                 tsz = strlcat(buf, ")", p->rmargin);  
                 assert(tsz < p->rmargin);  
         }  
   
         ttsz = strlcpy(title, meta->title, p->rmargin);          (void)snprintf(title, p->rmargin, "%s(%s)",
                           meta->title, pp ? pp : "");
   
         if (NULL == (msec = mdoc_msec2a(meta->msec)))          p->offset = 0;
                 msec = "";          p->rmargin = (p->maxrmargin - strlen(buf)) / 2;
           p->flags |= TERMP_NOBREAK;
           p->flags |= TERMP_NOSPACE;
   
         ssz = (2 * (ttsz + 2 + strlen(msec))) + tsz + 2;          word(p, title);
           flushln(p);
   
         if (ssz > p->rmargin) {          p->offset = p->rmargin;
                 if ((ssz -= p->rmargin) % 2)          p->rmargin += strlen(buf);
                         ssz++;  
                 ssz /= 2;  
   
                 assert(ssz <= ttsz);  
                 title[ttsz - ssz] = 0;  
                 ssz = 1;  
         } else  
                 ssz = ((p->rmargin - ssz) / 2) + 1;  
   
         printf("%s(%s)", title, msec);          word(p, buf);
           flushln(p);
   
         for (i = 0; i < ssz; i++)          exit(1);
                 printf(" ");  
   
         printf("%s", buf);          p->offset = p->rmargin;
           p->rmargin = p->maxrmargin;
           p->flags &= ~TERMP_NOBREAK;
   
         for (i = 0; i < ssz; i++)          word(p, title);
                 printf(" ");          flushln(p);
   
         printf("%s(%s)\n", title, msec);          p->rmargin = p->maxrmargin;
         fflush(stdout);          p->offset = 0;
           p->flags &= ~TERMP_NOSPACE;
   
         free(title);          free(title);
         free(buf);          free(buf);

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

CVSweb