[BACK]Return to mdoc_term.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/mdoc_term.c between version 1.62 and 1.63

version 1.62, 2009/10/27 21:40:07 version 1.63, 2009/12/22 23:58:00
Line 18 
Line 18 
   
 #include <assert.h>  #include <assert.h>
 #include <ctype.h>  #include <ctype.h>
 #include <err.h>  
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
Line 310 
Line 309 
         bold = p->bold;          bold = p->bold;
         under = p->under;          under = p->under;
   
         bzero(&npair, sizeof(struct termpair));          memset(&npair, 0, sizeof(struct termpair));
         npair.ppair = pair;          npair.ppair = pair;
   
         if (MDOC_TEXT != n->type) {          if (MDOC_TEXT != n->type) {
Line 343 
Line 342 
 static void  static void
 print_foot(DECL_ARGS)  print_foot(DECL_ARGS)
 {  {
         char             buf[DATESIZ];          char            buf[DATESIZ], os[BUFSIZ];
         char            *os;  
   
         /*          /*
          * Output the footer in new-groff style, that is, three columns           * Output the footer in new-groff style, that is, three columns
Line 354 
Line 352 
          * SYSTEM                  DATE                    SYSTEM           * SYSTEM                  DATE                    SYSTEM
          */           */
   
         if (NULL == (os = malloc(p->rmargin)))  
                 err(EXIT_FAILURE, "malloc");  
   
         time2a(m->date, buf, DATESIZ);          time2a(m->date, buf, DATESIZ);
           strlcpy(os, m->os, BUFSIZ);
   
         (void)strlcpy(os, m->os, p->rmargin);  
   
         term_vspace(p);          term_vspace(p);
   
         p->offset = 0;          p->offset = 0;
Line 388 
Line 382 
         p->offset = 0;          p->offset = 0;
         p->rmargin = p->maxrmargin;          p->rmargin = p->maxrmargin;
         p->flags = 0;          p->flags = 0;
   
         free(os);  
 }  }
   
   
Line 398 
Line 390 
 static void  static void
 print_head(DECL_ARGS)  print_head(DECL_ARGS)
 {  {
         char            *buf, *title;          char            buf[BUFSIZ], title[BUFSIZ];
   
         p->rmargin = p->maxrmargin;          p->rmargin = p->maxrmargin;
         p->offset = 0;          p->offset = 0;
   
         if (NULL == (buf = malloc(p->rmargin)))  
                 err(EXIT_FAILURE, "malloc");  
         if (NULL == (title = malloc(p->rmargin)))  
                 err(EXIT_FAILURE, "malloc");  
   
         /*          /*
          * The header is strange.  It has three components, which are           * The header is strange.  It has three components, which are
          * really two with the first duplicated.  It goes like this:           * really two with the first duplicated.  It goes like this:
Line 422 
Line 409 
          */           */
   
         assert(m->vol);          assert(m->vol);
         (void)strlcpy(buf, m->vol, p->rmargin);          strlcpy(buf, m->vol, BUFSIZ);
   
         if (m->arch) {          if (m->arch) {
                 (void)strlcat(buf, " (", p->rmargin);                  strlcat(buf, " (", BUFSIZ);
                 (void)strlcat(buf, m->arch, p->rmargin);                  strlcat(buf, m->arch, BUFSIZ);
                 (void)strlcat(buf, ")", p->rmargin);                  strlcat(buf, ")", BUFSIZ);
         }          }
   
         snprintf(title, p->rmargin, "%s(%d)", m->title, m->msec);          snprintf(title, BUFSIZ, "%s(%d)", m->title, m->msec);
   
         p->offset = 0;          p->offset = 0;
         p->rmargin = (p->maxrmargin - strlen(buf) + 1) / 2;          p->rmargin = (p->maxrmargin - strlen(buf) + 1) / 2;
Line 457 
Line 444 
         p->offset = 0;          p->offset = 0;
         p->rmargin = p->maxrmargin;          p->rmargin = p->maxrmargin;
         p->flags &= ~TERMP_NOSPACE;          p->flags &= ~TERMP_NOSPACE;
   
         free(title);  
         free(buf);  
 }  }
   
   

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.63