[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.264 and 1.267

version 1.264, 2014/04/20 16:46:05 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
Line 620  static int
Line 620  static int
 termp_it_pre(DECL_ARGS)  termp_it_pre(DECL_ARGS)
 {  {
         const struct mdoc_node *bl, *nn;          const struct mdoc_node *bl, *nn;
         char                    buf[7];          char                    buf[24];
         int                     i;          int                     i;
         size_t                  width, offset, ncols, dcol;          size_t                  width, offset, ncols, dcol;
         enum mdoc_list          type;          enum mdoc_list          type;
Line 916  termp_it_pre(DECL_ARGS)
Line 916  termp_it_pre(DECL_ARGS)
                         break;                          break;
                 case LIST_enum:                  case LIST_enum:
                         (pair->ppair->ppair->count)++;                          (pair->ppair->ppair->count)++;
                         snprintf(buf, sizeof(buf), "%d.",                          (void)snprintf(buf, sizeof(buf), "%d.",
                             pair->ppair->ppair->count);                              pair->ppair->ppair->count);
                         term_word(p, buf);                          term_word(p, buf);
                         break;                          break;

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

CVSweb