ALT Linux Bugzilla
– Attachment 2454 Details for
Bug 4363
FR: add flipping patch
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
psutils-flip.diff
psutils-flip.diff (text/plain), 3.69 KB, created by
Michael Shigorin
on 2008-02-27 12:14:09 MSK
(
hide
)
Description:
psutils-flip.diff
Filename:
MIME Type:
Creator:
Michael Shigorin
Created:
2008-02-27 12:14:09 MSK
Size:
3.69 KB
patch
obsolete
>Patch for pstops from psutils to allow page flipping (i. e. mirroring). >Useful for creating of print matrices on transparent films. > >http://www.penguin.cz/~utx >ftp://ftp.penguin.cz/pub/users/utx/psutils/psutils-flip.diff > >--- psutils/pstops.c.orig 1997-03-11 23:53:04.000000000 +0100 >+++ psutils/pstops.c 2002-07-26 19:14:49.000000000 +0200 >@@ -35,7 +35,7 @@ > { > fprintf(stderr, "%s: page specification error:\n", program); > fprintf(stderr, " <pagespecs> = [modulo:]<spec>\n"); >- fprintf(stderr, " <spec> = [-]pageno[@scale][L|R|U][(xoff,yoff)][,spec|+spec]\n"); >+ fprintf(stderr, " <spec> = [-]pageno[@scale][L|R|U|H|V][(xoff,yoff)][,spec|+spec]\n"); > fprintf(stderr, " modulo>=1, 0<=pageno<modulo\n"); > fflush(stderr); > exit(1); >@@ -81,6 +81,14 @@ > tail->rotate += 180; > tail->flags |= ROTATE; > break; >+ case 'h': case 'H': >+ tail->hflip += 1; >+ tail->flags |= HFLIP; >+ break; >+ case 'v': case 'V': >+ tail->vflip += 1; >+ tail->flags |= VFLIP; >+ break; > case '(': > tail->xoff += parsedimen(&str, argerror); > if (*str++ != ',') argerror(); >--- psutils/psspec.h.orig 1997-03-11 23:53:04.000000000 +0100 >+++ psutils/psspec.h 2002-07-26 17:41:41.000000000 +0200 >@@ -8,12 +8,14 @@ > /* pagespec flags */ > #define ADD_NEXT (0x01) > #define ROTATE (0x02) >-#define SCALE (0x04) >-#define OFFSET (0x08) >-#define GSAVE (ROTATE|SCALE|OFFSET) >+#define HFLIP (0x04) >+#define VFLIP (0x08) >+#define SCALE (0x10) >+#define OFFSET (0x20) >+#define GSAVE (ROTATE|HFLIP|VFLIP|SCALE|OFFSET) > > typedef struct pagespec { >- int reversed, pageno, flags, rotate; >+ int reversed, pageno, flags, rotate, hflip, vflip; > double xoff, yoff, scale; > struct pagespec *next; > } PageSpec ; >--- psutils/psspec.c.orig 1997-03-11 23:53:04.000000000 +0100 >+++ psutils/psspec.c 2002-07-26 19:21:10.000000000 +0200 >@@ -22,6 +22,8 @@ > if (temp == NULL) > message(FATAL, "out of memory\n"); > temp->reversed = temp->pageno = temp->flags = temp->rotate = 0; >+ temp->hflip = 0; >+ temp->vflip = 0; > temp->scale = 1; > temp->xoff = temp->yoff = 0; > temp->next = NULL; >@@ -208,6 +210,14 @@ > sprintf(buffer, "%d rotate\n", ps->rotate); > writestring(buffer); > } >+ if ((ps->flags & HFLIP) && (ps->hflip%2)) { >+ sprintf(buffer, "[ -1 0 0 1 %f 0 ] concat\n", width*ps->scale); >+ writestring(buffer); >+ } >+ if ((ps->flags & VFLIP) && (ps->vflip%2)) { >+ sprintf(buffer, "[ 1 0 0 -1 0 %f ] concat\n", height*ps->scale); >+ writestring(buffer); >+ } > if (ps->flags & SCALE) { > sprintf(buffer, "%f dup scale\n", ps->scale); > writestring(buffer); >--- psutils/pstops.man.orig 1997-03-11 23:53:04.000000000 +0100 >+++ psutils/pstops.man 2002-07-26 19:25:37.000000000 +0200 >@@ -43,7 +43,7 @@ > .I = spec[+specs][,specs] > .TP > .I spec >-.I = [-]pageno[L][R][U][@scale][(xoff,yoff)] >+.I = [-]pageno[L][R][U][H][V][@scale][(xoff,yoff)] > .RE > .sp > .I modulo >@@ -74,8 +74,9 @@ > or > .B "h" > to specify as a multiple of the width or height. >-The optional parameters \fIL\fR, \fIR\fR, and \fIU\fR rotate the page left, >-right, or upside-down. >+The optional parameters \fIL\fR, \fIR\fR, \fIU\fR, \fIH\fR and \fIV\fR >+rotate the page left, right, or upside-down, and flip (mirror) page >+horizontally or vertically. > The optional > .I scale > parameter scales the page by the fraction specified. >--- psutils/README.orig 1997-03-11 23:53:05.000000000 +0100 >+++ psutils/README 2002-07-26 19:36:58.000000000 +0200 >@@ -181,6 +181,7 @@ > Mike Coleman > Dale Scheetz dwarf@polaris.net > Yves Arrouye arrouye@marin.fdn.fr >+ Stanislav Brabec utx@penguin.cz > > (Apologies to anyone who I have left out, it was not intentional.) >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 4363
: 2454