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

Diff for /mandoc/mdoc_term.c between version 1.265 and 1.267

version 1.265, 2014/04/20 19:40:13 version 1.267, 2014/04/23 16:08:33
Line 30 
Line 30 
 #include <string.h>  #include <string.h>
   
 #include "mandoc.h"  #include "mandoc.h"
   #include "mandoc_aux.h"
 #include "out.h"  #include "out.h"
 #include "term.h"  #include "term.h"
 #include "mdoc.h"  #include "mdoc.h"
Line 441  print_mdoc_foot(struct termp *p, const void *arg)
Line 442  print_mdoc_foot(struct termp *p, const void *arg)
 static void  static void
 print_mdoc_head(struct termp *p, const void *arg)  print_mdoc_head(struct termp *p, const void *arg)
 {  {
         char            buf[BUFSIZ], title[BUFSIZ];          const struct mdoc_meta  *meta;
         size_t          buflen, titlen;          char                    *volume, *title;
         const struct mdoc_meta *meta;          size_t                   vollen, titlen;
   
         meta = (const struct mdoc_meta *)arg;          meta = (const struct mdoc_meta *)arg;
   
Line 464  print_mdoc_head(struct termp *p, const void *arg)
Line 465  print_mdoc_head(struct termp *p, const void *arg)
         p->rmargin = p->maxrmargin;          p->rmargin = p->maxrmargin;
   
         assert(meta->vol);          assert(meta->vol);
         strlcpy(buf, meta->vol, BUFSIZ);          if (NULL == meta->arch)
         buflen = term_strlen(p, buf);                  volume = mandoc_strdup(meta->vol);
           else
                   mandoc_asprintf(&volume, "%s (%s)",
                       meta->vol, meta->arch);
           vollen = term_strlen(p, volume);
   
         if (meta->arch) {          mandoc_asprintf(&title, "%s(%s)", meta->title, meta->msec);
                 strlcat(buf, " (", BUFSIZ);  
                 strlcat(buf, meta->arch, BUFSIZ);  
                 strlcat(buf, ")", BUFSIZ);  
         }  
   
         snprintf(title, BUFSIZ, "%s(%s)", meta->title, meta->msec);  
         titlen = term_strlen(p, title);          titlen = term_strlen(p, title);
   
         p->flags |= TERMP_NOBREAK | TERMP_NOSPACE;          p->flags |= TERMP_NOBREAK | TERMP_NOSPACE;
         p->trailspace = 1;          p->trailspace = 1;
         p->offset = 0;          p->offset = 0;
         p->rmargin = 2 * (titlen+1) + buflen < p->maxrmargin ?          p->rmargin = 2 * (titlen+1) + vollen < p->maxrmargin ?
             (p->maxrmargin -              (p->maxrmargin - vollen + term_len(p, 1)) / 2 :
              term_strlen(p, buf) + term_len(p, 1)) / 2 :              p->maxrmargin - vollen;
             p->maxrmargin - buflen;  
   
         term_word(p, title);          term_word(p, title);
         term_flushln(p);          term_flushln(p);
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
         p->offset = p->rmargin;          p->offset = p->rmargin;
         p->rmargin = p->offset + buflen + titlen < p->maxrmargin ?          p->rmargin = p->offset + vollen + titlen < p->maxrmargin ?
             p->maxrmargin - titlen : p->maxrmargin;              p->maxrmargin - titlen : p->maxrmargin;
   
         term_word(p, buf);          term_word(p, volume);
         term_flushln(p);          term_flushln(p);
   
         p->flags &= ~TERMP_NOBREAK;          p->flags &= ~TERMP_NOBREAK;
Line 508  print_mdoc_head(struct termp *p, const void *arg)
Line 506  print_mdoc_head(struct termp *p, const void *arg)
         p->flags &= ~TERMP_NOSPACE;          p->flags &= ~TERMP_NOSPACE;
         p->offset = 0;          p->offset = 0;
         p->rmargin = p->maxrmargin;          p->rmargin = p->maxrmargin;
           free(title);
           free(volume);
 }  }
   
 static size_t  static size_t

Legend:
Removed from v.1.265  
changed lines
  Added in v.1.267

CVSweb