[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.73 and 1.77

version 1.73, 2015/03/27 21:33:20 version 1.77, 2015/10/12 00:08:16
Line 20 
Line 20 
 #include <sys/types.h>  #include <sys/types.h>
   
 #include <assert.h>  #include <assert.h>
   #include <err.h>
 #include <stdarg.h>  #include <stdarg.h>
 #include <stdint.h>  #include <stdint.h>
 #include <stdio.h>  #include <stdio.h>
Line 87  struct termp_ps {
Line 88  struct termp_ps {
         size_t            pdfobjsz;     /* size of pdfobjs */          size_t            pdfobjsz;     /* size of pdfobjs */
 };  };
   
 static  double            ps_hspan(const struct termp *,  static  int               ps_hspan(const struct termp *,
                                 const struct roffsu *);                                  const struct roffsu *);
 static  size_t            ps_width(const struct termp *, int);  static  size_t            ps_width(const struct termp *, int);
 static  void              ps_advance(struct termp *, size_t);  static  void              ps_advance(struct termp *, size_t);
Line 106  __attribute__((__format__ (__printf__, 2, 3)))
Line 107  __attribute__((__format__ (__printf__, 2, 3)))
 static  void              ps_printf(struct termp *, const char *, ...);  static  void              ps_printf(struct termp *, const char *, ...);
 static  void              ps_putchar(struct termp *, char);  static  void              ps_putchar(struct termp *, char);
 static  void              ps_setfont(struct termp *, enum termfont);  static  void              ps_setfont(struct termp *, enum termfont);
 static  void              ps_setwidth(struct termp *, int, size_t);  static  void              ps_setwidth(struct termp *, int, int);
 static  struct termp     *pspdf_alloc(const struct mchars *,  static  struct termp     *pspdf_alloc(const struct mchars *,
                                 const struct manoutput *);                                  const struct manoutput *);
 static  void              pdf_obj(struct termp *, size_t);  static  void              pdf_obj(struct termp *, size_t);
Line 516  pdf_alloc(const struct mchars *mchars, const struct ma
Line 517  pdf_alloc(const struct mchars *mchars, const struct ma
         if (NULL != (p = pspdf_alloc(mchars, outopts)))          if (NULL != (p = pspdf_alloc(mchars, outopts)))
                 p->type = TERMTYPE_PDF;                  p->type = TERMTYPE_PDF;
   
         return(p);          return p;
 }  }
   
 void *  void *
Line 527  ps_alloc(const struct mchars *mchars, const struct man
Line 528  ps_alloc(const struct mchars *mchars, const struct man
         if (NULL != (p = pspdf_alloc(mchars, outopts)))          if (NULL != (p = pspdf_alloc(mchars, outopts)))
                 p->type = TERMTYPE_PS;                  p->type = TERMTYPE_PS;
   
         return(p);          return p;
 }  }
   
 static struct termp *  static struct termp *
Line 582  pspdf_alloc(const struct mchars *mchars, const struct 
Line 583  pspdf_alloc(const struct mchars *mchars, const struct 
                         pagex = 216;                          pagex = 216;
                         pagey = 356;                          pagey = 356;
                 } else if (2 != sscanf(pp, "%ux%u", &pagex, &pagey))                  } else if (2 != sscanf(pp, "%ux%u", &pagex, &pagey))
                         fprintf(stderr, "%s: Unknown paper\n", pp);                          warnx("%s: Unknown paper", pp);
         }          }
   
         /*          /*
Line 616  pspdf_alloc(const struct mchars *mchars, const struct 
Line 617  pspdf_alloc(const struct mchars *mchars, const struct 
         p->ps->lineheight = lineheight;          p->ps->lineheight = lineheight;
   
         p->defrmargin = pagex - (marginx * 2);          p->defrmargin = pagex - (marginx * 2);
         return(p);          return p;
 }  }
   
 static void  static void
 ps_setwidth(struct termp *p, int iop, size_t width)  ps_setwidth(struct termp *p, int iop, int width)
 {  {
         size_t   lastwidth;          size_t   lastwidth;
   
Line 628  ps_setwidth(struct termp *p, int iop, size_t width)
Line 629  ps_setwidth(struct termp *p, int iop, size_t width)
         if (iop > 0)          if (iop > 0)
                 p->ps->width += width;                  p->ps->width += width;
         else if (iop == 0)          else if (iop == 0)
                 p->ps->width = width ? width : p->ps->lastwidth;                  p->ps->width = width ? (size_t)width : p->ps->lastwidth;
         else if (p->ps->width > width)          else if (p->ps->width > (size_t)width)
                 p->ps->width -= width;                  p->ps->width -= width;
         else          else
                 p->ps->width = 0;                  p->ps->width = 0;
Line 985  ps_pletter(struct termp *p, int c)
Line 986  ps_pletter(struct termp *p, int c)
   
         switch (c) {          switch (c) {
         case '(':          case '(':
                 /* FALLTHROUGH */  
         case ')':          case ')':
                 /* FALLTHROUGH */  
         case '\\':          case '\\':
                 ps_putchar(p, '\\');                  ps_putchar(p, '\\');
                 break;                  break;
Line 1270  ps_width(const struct termp *p, int c)
Line 1269  ps_width(const struct termp *p, int c)
         else          else
                 c -= 32;                  c -= 32;
   
         return((size_t)fonts[(int)TERMFONT_NONE].gly[c].wx);          return (size_t)fonts[(int)TERMFONT_NONE].gly[c].wx;
 }  }
   
 static double  static int
 ps_hspan(const struct termp *p, const struct roffsu *su)  ps_hspan(const struct termp *p, const struct roffsu *su)
 {  {
         double           r;          double           r;
Line 1325  ps_hspan(const struct termp *p, const struct roffsu *s
Line 1324  ps_hspan(const struct termp *p, const struct roffsu *s
                 break;                  break;
         }          }
   
         return(r);          return r * 24.0;
 }  }
   
 static void  static void

Legend:
Removed from v.1.73  
changed lines
  Added in v.1.77

CVSweb