[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.31 and 1.34

version 1.31, 2010/07/04 20:06:59 version 1.34, 2010/07/13 23:53:20
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 642  ps_begin(struct termp *p)
Line 642  ps_begin(struct termp *p)
                 printf(" %s", fonts[i].name);                  printf(" %s", fonts[i].name);
         printf("\n%%%%EndComments\n");          printf("\n%%%%EndComments\n");
   
         printf("%%%%Page: %zu %zu\n",  
                         p->engine.ps.pages + 1,  
                         p->engine.ps.pages + 1);  
   
         ps_setfont(p, TERMFONT_NONE);  
         p->engine.ps.pscol = p->engine.ps.left;          p->engine.ps.pscol = p->engine.ps.left;
         p->engine.ps.psrow = p->engine.ps.top;          p->engine.ps.psrow = p->engine.ps.top;
         p->engine.ps.flags |= PS_NEWPAGE;          p->engine.ps.flags |= PS_NEWPAGE;
           ps_setfont(p, TERMFONT_NONE);
 }  }
   
   
Line 657  static void
Line 653  static void
 ps_pletter(struct termp *p, int c)  ps_pletter(struct termp *p, int c)
 {  {
         int              f;          int              f;
   
         /*          /*
          * If we're not in a PostScript "word" context, then open one           * If we haven't opened a page context, then output that we're
          * now at the current cursor.           * in a new page and make sure the font is correctly set.
          */           */
   
         if (PS_NEWPAGE & p->engine.ps.flags)          if (PS_NEWPAGE & p->engine.ps.flags) {
                 printf("%%%%Page: %zu %zu\n",                  printf("%%%%Page: %zu %zu\n",
                                 p->engine.ps.pages + 1,                                  p->engine.ps.pages + 1,
                                 p->engine.ps.pages + 1);                                  p->engine.ps.pages + 1);
                   ps_printf(p, "/%s %zu selectfont\n",
                                   fonts[(int)p->engine.ps.lastf].name,
                                   p->engine.ps.scale);
                   p->engine.ps.flags &= ~PS_NEWPAGE;
           }
   
           /*
            * If we're not in a PostScript "word" context, then open one
            * now at the current cursor.
            */
   
         if ( ! (PS_INLINE & p->engine.ps.flags)) {          if ( ! (PS_INLINE & p->engine.ps.flags)) {
                 ps_printf(p, "%zu %zu moveto\n(",                  ps_printf(p, "%zu %zu 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;
                 p->engine.ps.flags &= ~PS_NEWPAGE;  
         }          }
   
         assert( ! (PS_NEWPAGE & p->engine.ps.flags));          assert( ! (PS_NEWPAGE & p->engine.ps.flags));
Line 875  ps_setfont(struct termp *p, enum termfont f)
Line 880  ps_setfont(struct termp *p, enum termfont f)
 {  {
   
         assert(f < TERMFONT__MAX);          assert(f < TERMFONT__MAX);
           p->engine.ps.lastf = f;
   
           /*
            * If we're still at the top of the page, let the font-setting
            * be delayed until we actually have stuff to print.
            */
   
           if (PS_NEWPAGE & p->engine.ps.flags)
                   return;
   
         ps_printf(p, "/%s %zu selectfont\n",          ps_printf(p, "/%s %zu selectfont\n",
                         fonts[(int)f].name, p->engine.ps.scale);                          fonts[(int)f].name, p->engine.ps.scale);
         p->engine.ps.lastf = f;  
 }  }
   
   

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

CVSweb