[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.34 and 1.36

version 1.34, 2010/07/13 23:53:20 version 1.36, 2010/07/21 08:24:39
Line 39 
Line 39 
   
 /* Convert an AFM unit "x" to a PostScript points */  /* Convert an AFM unit "x" to a PostScript points */
 #define AFM2PNT(p, x) /* LINTED */ \  #define AFM2PNT(p, x) /* LINTED */ \
         (size_t)((double)(x) / (1000.0 / (double)(p)->engine.ps.scale))          ((double)(x) / (1000.0 / (double)(p)->engine.ps.scale))
   
 struct  glyph {  struct  glyph {
         size_t            wx; /* WX in AFM */          unsigned short    wx; /* WX in AFM */
 };  };
   
 struct  font {  struct  font {
Line 635  ps_begin(struct termp *p)
Line 635  ps_begin(struct termp *p)
         printf("%%%%Pages: (atend)\n");          printf("%%%%Pages: (atend)\n");
         printf("%%%%PageOrder: Ascend\n");          printf("%%%%PageOrder: Ascend\n");
         printf("%%%%DocumentMedia: Default %zu %zu 0 () ()\n",          printf("%%%%DocumentMedia: Default %zu %zu 0 () ()\n",
                         AFM2PNT(p, p->engine.ps.width),                          (size_t)AFM2PNT(p, p->engine.ps.width),
                         AFM2PNT(p, p->engine.ps.height));                          (size_t)AFM2PNT(p, p->engine.ps.height));
         printf("%%%%DocumentNeededResources: font");          printf("%%%%DocumentNeededResources: font");
         for (i = 0; i < (int)TERMFONT__MAX; i++)          for (i = 0; i < (int)TERMFONT__MAX; i++)
                 printf(" %s", fonts[i].name);                  printf(" %s", fonts[i].name);
Line 675  ps_pletter(struct termp *p, int c)
Line 675  ps_pletter(struct termp *p, int c)
          */           */
   
         if ( ! (PS_INLINE & p->engine.ps.flags)) {          if ( ! (PS_INLINE & p->engine.ps.flags)) {
                 ps_printf(p, "%zu %zu moveto\n(",                  ps_printf(p, "%.3f %.3f moveto\n(",
                                 AFM2PNT(p, p->engine.ps.pscol),                                  AFM2PNT(p, p->engine.ps.pscol),
                                 AFM2PNT(p, p->engine.ps.psrow));                                  AFM2PNT(p, p->engine.ps.psrow));
                 p->engine.ps.flags |= PS_INLINE;                  p->engine.ps.flags |= PS_INLINE;
Line 708  ps_pletter(struct termp *p, int c)
Line 708  ps_pletter(struct termp *p, int c)
   
         if (c <= 32 || (c - 32 > MAXCHAR)) {          if (c <= 32 || (c - 32 > MAXCHAR)) {
                 ps_putchar(p, ' ');                  ps_putchar(p, ' ');
                 p->engine.ps.pscol += fonts[f].gly[0].wx;                  p->engine.ps.pscol += (size_t)fonts[f].gly[0].wx;
                 return;                  return;
         }          }
   
         ps_putchar(p, (char)c);          ps_putchar(p, (char)c);
         c -= 32;          c -= 32;
         p->engine.ps.pscol += fonts[f].gly[c].wx;          p->engine.ps.pscol += (size_t)fonts[f].gly[c].wx;
 }  }
   
   
Line 901  ps_width(const struct termp *p, char c)
Line 901  ps_width(const struct termp *p, char c)
 {  {
   
         if (c <= 32 || c - 32 >= MAXCHAR)          if (c <= 32 || c - 32 >= MAXCHAR)
                 return(fonts[(int)TERMFONT_NONE].gly[0].wx);                  return((size_t)fonts[(int)TERMFONT_NONE].gly[0].wx);
   
         c -= 32;          c -= 32;
         return(fonts[(int)TERMFONT_NONE].gly[(int)c].wx);          return((size_t)fonts[(int)TERMFONT_NONE].gly[(int)c].wx);
 }  }
   
   
Line 932  ps_hspan(const struct termp *p, const struct roffsu *s
Line 932  ps_hspan(const struct termp *p, const struct roffsu *s
                 r = PNT2AFM(p, su->scale * 100);                  r = PNT2AFM(p, su->scale * 100);
                 break;                  break;
         case (SCALE_EM):          case (SCALE_EM):
                 r = su->scale *                  r = su->scale *
                         fonts[(int)TERMFONT_NONE].gly[109 - 32].wx;                          fonts[(int)TERMFONT_NONE].gly[109 - 32].wx;
                 break;                  break;
         case (SCALE_MM):          case (SCALE_MM):
                 r = PNT2AFM(p, su->scale * 2.834);                  r = PNT2AFM(p, su->scale * 2.834);
                 break;                  break;
         case (SCALE_EN):          case (SCALE_EN):
                 r = su->scale *                  r = su->scale *
                         fonts[(int)TERMFONT_NONE].gly[110 - 32].wx;                          fonts[(int)TERMFONT_NONE].gly[110 - 32].wx;
                 break;                  break;
         case (SCALE_VS):          case (SCALE_VS):

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.36

CVSweb