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

Diff for /mandoc/term_ps.c between version 1.39 and 1.40

version 1.39, 2010/07/25 22:15:07 version 1.40, 2010/08/01 15:46:18
Line 353  static const struct font fonts[TERMFONT__MAX] = {
Line 353  static const struct font fonts[TERMFONT__MAX] = {
   
 /* These work the buffer used by the header and footer. */  /* These work the buffer used by the header and footer. */
 #define PS_BUFSLOP        128  #define PS_BUFSLOP        128
 #define PS_GROWBUF(p, sz) \  
         do if ((p)->engine.ps.psmargcur + (sz) > \  
                         (p)->engine.ps.psmargsz) { \  
                 (p)->engine.ps.psmargsz += /* CONSTCOND */ \  
                         MAX(PS_BUFSLOP, (sz)); \  
                 (p)->engine.ps.psmarg = realloc \  
                         ((p)->engine.ps.psmarg,  \  
                          (p)->engine.ps.psmargsz); \  
                 if (NULL == (p)->engine.ps.psmarg) { \  
                         perror(NULL); \  
                         exit(EXIT_FAILURE); \  
                 } \  
         } while (/* CONSTCOND */ 0)  
   
   static void
   ps_growbuf(struct termp *p, size_t sz)
   {
           if (p->engine.ps.psmargcur + sz <= p->engine.ps.psmargsz)
                   return;
   
           if (sz < PS_BUFSLOP)
                   sz = PS_BUFSLOP;
           p->engine.ps.psmargsz += sz;
   
           p->engine.ps.psmarg = realloc(p->engine.ps.psmarg,
               p->engine.ps.psmargsz);
           if (NULL == p->engine.ps.psmarg)
                   perror(NULL);
                   exit(EXIT_FAILURE);
   }
   
 static  double            ps_hspan(const struct termp *,  static  double            ps_hspan(const struct termp *,
                                 const struct roffsu *);                                  const struct roffsu *);
 static  size_t            ps_width(const struct termp *, char);  static  size_t            ps_width(const struct termp *, char);
Line 556  ps_printf(struct termp *p, const char *fmt, ...)
Line 559  ps_printf(struct termp *p, const char *fmt, ...)
          * assumption that will cause pukeage if it's not the case.           * assumption that will cause pukeage if it's not the case.
          */           */
   
         PS_GROWBUF(p, PS_BUFSLOP);          ps_growbuf(p, PS_BUFSLOP);
   
         pos = (int)p->engine.ps.psmargcur;          pos = (int)p->engine.ps.psmargcur;
         len = vsnprintf(&p->engine.ps.psmarg[pos], PS_BUFSLOP, fmt, ap);          len = vsnprintf(&p->engine.ps.psmarg[pos], PS_BUFSLOP, fmt, ap);
Line 580  ps_putchar(struct termp *p, char c)
Line 583  ps_putchar(struct termp *p, char c)
                 return;                  return;
         }          }
   
         PS_GROWBUF(p, 2);          ps_growbuf(p, 2);
   
         pos = (int)p->engine.ps.psmargcur++;          pos = (int)p->engine.ps.psmargcur++;
         p->engine.ps.psmarg[pos++] = c;          p->engine.ps.psmarg[pos++] = c;

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40

CVSweb