aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrion <krion@FreeBSD.org>2004-03-26 22:43:45 +0800
committerkrion <krion@FreeBSD.org>2004-03-26 22:43:45 +0800
commit5e58f832a00d78f885039c4abde909f691fd4f0e (patch)
treea8353654de3a70b147a0f7d1f57e55c27297b6bf
parentad39541fafc35e0cb004e77a683e4305011f8875 (diff)
downloadfreebsd-ports-gnome-5e58f832a00d78f885039c4abde909f691fd4f0e.tar.gz
freebsd-ports-gnome-5e58f832a00d78f885039c4abde909f691fd4f0e.tar.zst
freebsd-ports-gnome-5e58f832a00d78f885039c4abde909f691fd4f0e.zip
- Improve papersize handling of LIPS driver
PR: ports/64766 Submitted by: Ports Fury
-rw-r--r--print/ghostscript-gnu/files/patch-lips:gdevl4r.c64
-rw-r--r--print/ghostscript-gnu/files/patch-lips:gdevl4v.c46
-rw-r--r--print/ghostscript-gnu/files/patch-lips:gdevlips.c18
-rw-r--r--print/ghostscript-gnu/files/patch-lips:gdevlips.h17
-rw-r--r--print/ghostscript7/files/patch-lips:gdevl4r.c64
-rw-r--r--print/ghostscript7/files/patch-lips:gdevl4v.c46
-rw-r--r--print/ghostscript7/files/patch-lips:gdevlips.c18
-rw-r--r--print/ghostscript7/files/patch-lips:gdevlips.h17
8 files changed, 262 insertions, 28 deletions
diff --git a/print/ghostscript-gnu/files/patch-lips:gdevl4r.c b/print/ghostscript-gnu/files/patch-lips:gdevl4r.c
index 267f26ac8a13..353ec2399a84 100644
--- a/print/ghostscript-gnu/files/patch-lips:gdevl4r.c
+++ b/print/ghostscript-gnu/files/patch-lips:gdevl4r.c
@@ -1,5 +1,27 @@
--- lips/gdevl4r.c.orig Thu Nov 2 12:09:18 2000
-+++ lips/gdevl4r.c Fri Sep 12 09:22:08 2003
++++ lips/gdevl4r.c Tue Jan 13 01:28:40 2004
+@@ -53,8 +53,8 @@
+ #define lips_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
+ print_page_copies, image_out, cassetFeed, username)\
+ { std_device_std_color_full_body(dtype, &procs, dname,\
+- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
+- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
++ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
++ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
+ xdpi, ydpi, color_bits,\
+ -(lm) * (xdpi), -(tm) * (ydpi),\
+ (lm) * 72.0, (bm) * 72.0,\
+@@ -68,8 +68,8 @@
+ #define lips4_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
+ print_page_copies, image_out, cassetFeed, username)\
+ { std_device_std_color_full_body(dtype, &procs, dname,\
+- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
+- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
++ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
++ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
+ xdpi, ydpi, color_bits,\
+ -(lm) * (xdpi), -(tm) * (ydpi),\
+ (lm) * 72.0, (bm) * 72.0,\
@@ -178,8 +178,13 @@
private int lips4c_output_page(gx_device_printer * pdev, FILE * prn_stream);
private int lips_delta_encode(byte * inBuff, byte * prevBuff, byte * outBuff, byte * diffBuff, int Length);
@@ -14,26 +36,47 @@
private int lips4type_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, int num_copies, int ptype);
private int
-@@ -1065,11 +1070,11 @@
+@@ -1065,11 +1070,25 @@
if (paper_size == USER_SIZE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
-+ height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ height * 10, width * 10); */
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
} else if (paper_size == USER_SIZE + LANDSCAPE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
-+ width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ width * 10, height * 10); */
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
} else {
fprintf(prn_stream, "%c%dp", LIPS_CSI, paper_size);
}
-@@ -1078,14 +1083,14 @@
+@@ -1078,14 +1097,28 @@
prev_paper_height != height) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
-+ height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ height * 10, width * 10); */
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
}
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (prev_paper_width != width ||
@@ -41,7 +84,14 @@
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
-+ width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ width * 10, height * 10); */
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
}
}
/* desired number of copies */
diff --git a/print/ghostscript-gnu/files/patch-lips:gdevl4v.c b/print/ghostscript-gnu/files/patch-lips:gdevl4v.c
index 93e0be613626..0d48309837d9 100644
--- a/print/ghostscript-gnu/files/patch-lips:gdevl4v.c
+++ b/print/ghostscript-gnu/files/patch-lips:gdevl4v.c
@@ -1,5 +1,5 @@
--- lips/gdevl4v.c.orig Thu Nov 2 12:09:18 2000
-+++ lips/gdevl4v.c Wed Dec 10 19:42:42 2003
++++ lips/gdevl4v.c Tue Jan 13 01:30:38 2004
@@ -230,41 +230,66 @@
};
@@ -92,31 +92,63 @@
private int lips4v_setlinewidth(gx_device_vector * vdev, floatp width);
private int lips4v_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
private int lips4v_setlinejoin(gx_device_vector * vdev, gs_line_join join);
-@@ -758,10 +783,10 @@
+@@ -758,10 +783,26 @@
/* 用紙サイズ */
if (pdev->prev_paper_size != paper_size) {
if (paper_size == USER_SIZE) {
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
-+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
-+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
} else {
sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
-@@ -770,12 +795,12 @@
+@@ -770,12 +811,28 @@
} else if (paper_size == USER_SIZE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
-+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
-+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
}
pdev->prev_paper_size = paper_size;
diff --git a/print/ghostscript-gnu/files/patch-lips:gdevlips.c b/print/ghostscript-gnu/files/patch-lips:gdevlips.c
new file mode 100644
index 000000000000..143fed14f0a1
--- /dev/null
+++ b/print/ghostscript-gnu/files/patch-lips:gdevlips.c
@@ -0,0 +1,18 @@
+--- lips/gdevlips.c.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlips.c Tue Jan 13 01:23:47 2004
+@@ -62,7 +62,15 @@
+ height = tmp;
+ }
+ for (pt = lips_paper_table; pt->num_unit < 80; pt++)
++/* add by shige 11/06 2003 */
++#ifdef USE_LIPS_SIZE_ERROR
++ if(pt->width+LIPS_SIZE_ERROR_VALUE>=width
++ && pt->width-LIPS_SIZE_ERROR_VALUE<=width
++ && pt->height+LIPS_SIZE_ERROR_VALUE>=height
++ && pt->height-LIPS_SIZE_ERROR_VALUE<=height)
++#else
+ if (pt->width == width && pt->height == height)
++#endif
+ break;
+
+ return pt->num_unit + landscape;
diff --git a/print/ghostscript-gnu/files/patch-lips:gdevlips.h b/print/ghostscript-gnu/files/patch-lips:gdevlips.h
new file mode 100644
index 000000000000..eebce89cc054
--- /dev/null
+++ b/print/ghostscript-gnu/files/patch-lips:gdevlips.h
@@ -0,0 +1,17 @@
+--- lips/gdevlips.h.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlips.h Tue Jan 13 01:23:47 2004
+@@ -188,6 +188,14 @@
+ bool faceup;\
+ char mediaType[LIPS_MEDIACHAR_MAX];
+
++/* added by shige 11/06 2003 */
++#define USE_LIPS_SIZE_ERROR
++#define LIPS_SIZE_ERROR_VALUE 2
++
++/* added by shige 11/09 2003 */
++#define LIPS_HEIGHT_MAX_720 11906
++#define LIPS_WIDTH_MAX_720 8419
++
+ int lips_media_selection(int width, int height);
+ int lips_packbits_encode(byte * inBuff, byte * outBuff, int Length);
+ int lips_mode3format_encode(byte * inBuff, byte * outBuff, int Length);
diff --git a/print/ghostscript7/files/patch-lips:gdevl4r.c b/print/ghostscript7/files/patch-lips:gdevl4r.c
index 267f26ac8a13..353ec2399a84 100644
--- a/print/ghostscript7/files/patch-lips:gdevl4r.c
+++ b/print/ghostscript7/files/patch-lips:gdevl4r.c
@@ -1,5 +1,27 @@
--- lips/gdevl4r.c.orig Thu Nov 2 12:09:18 2000
-+++ lips/gdevl4r.c Fri Sep 12 09:22:08 2003
++++ lips/gdevl4r.c Tue Jan 13 01:28:40 2004
+@@ -53,8 +53,8 @@
+ #define lips_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
+ print_page_copies, image_out, cassetFeed, username)\
+ { std_device_std_color_full_body(dtype, &procs, dname,\
+- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
+- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
++ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
++ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
+ xdpi, ydpi, color_bits,\
+ -(lm) * (xdpi), -(tm) * (ydpi),\
+ (lm) * 72.0, (bm) * 72.0,\
+@@ -68,8 +68,8 @@
+ #define lips4_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
+ print_page_copies, image_out, cassetFeed, username)\
+ { std_device_std_color_full_body(dtype, &procs, dname,\
+- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
+- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
++ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
++ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
+ xdpi, ydpi, color_bits,\
+ -(lm) * (xdpi), -(tm) * (ydpi),\
+ (lm) * 72.0, (bm) * 72.0,\
@@ -178,8 +178,13 @@
private int lips4c_output_page(gx_device_printer * pdev, FILE * prn_stream);
private int lips_delta_encode(byte * inBuff, byte * prevBuff, byte * outBuff, byte * diffBuff, int Length);
@@ -14,26 +36,47 @@
private int lips4type_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, int num_copies, int ptype);
private int
-@@ -1065,11 +1070,11 @@
+@@ -1065,11 +1070,25 @@
if (paper_size == USER_SIZE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
-+ height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ height * 10, width * 10); */
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
} else if (paper_size == USER_SIZE + LANDSCAPE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
-+ width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ width * 10, height * 10); */
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
} else {
fprintf(prn_stream, "%c%dp", LIPS_CSI, paper_size);
}
-@@ -1078,14 +1083,14 @@
+@@ -1078,14 +1097,28 @@
prev_paper_height != height) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
-+ height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ height * 10, width * 10); */
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
}
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (prev_paper_width != width ||
@@ -41,7 +84,14 @@
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
-+ width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ width * 10, height * 10); */
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
}
}
/* desired number of copies */
diff --git a/print/ghostscript7/files/patch-lips:gdevl4v.c b/print/ghostscript7/files/patch-lips:gdevl4v.c
index 93e0be613626..0d48309837d9 100644
--- a/print/ghostscript7/files/patch-lips:gdevl4v.c
+++ b/print/ghostscript7/files/patch-lips:gdevl4v.c
@@ -1,5 +1,5 @@
--- lips/gdevl4v.c.orig Thu Nov 2 12:09:18 2000
-+++ lips/gdevl4v.c Wed Dec 10 19:42:42 2003
++++ lips/gdevl4v.c Tue Jan 13 01:30:38 2004
@@ -230,41 +230,66 @@
};
@@ -92,31 +92,63 @@
private int lips4v_setlinewidth(gx_device_vector * vdev, floatp width);
private int lips4v_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
private int lips4v_setlinejoin(gx_device_vector * vdev, gs_line_join join);
-@@ -758,10 +783,10 @@
+@@ -758,10 +783,26 @@
/* 用紙サイズ */
if (pdev->prev_paper_size != paper_size) {
if (paper_size == USER_SIZE) {
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
-+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
-+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
} else {
sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
-@@ -770,12 +795,12 @@
+@@ -770,12 +811,28 @@
} else if (paper_size == USER_SIZE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
-+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (height * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (height * 10),
++ (width * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
-+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
++ /* modified by shige 06/27 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ /* modified by shige 11/09 2003
++ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ (width * 10 > LIPS_HEIGHT_MAX_720)?
++ LIPS_HEIGHT_MAX_720 : (width * 10),
++ (height * 10 > LIPS_WIDTH_MAX_720)?
++ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
}
pdev->prev_paper_size = paper_size;
diff --git a/print/ghostscript7/files/patch-lips:gdevlips.c b/print/ghostscript7/files/patch-lips:gdevlips.c
new file mode 100644
index 000000000000..143fed14f0a1
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevlips.c
@@ -0,0 +1,18 @@
+--- lips/gdevlips.c.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlips.c Tue Jan 13 01:23:47 2004
+@@ -62,7 +62,15 @@
+ height = tmp;
+ }
+ for (pt = lips_paper_table; pt->num_unit < 80; pt++)
++/* add by shige 11/06 2003 */
++#ifdef USE_LIPS_SIZE_ERROR
++ if(pt->width+LIPS_SIZE_ERROR_VALUE>=width
++ && pt->width-LIPS_SIZE_ERROR_VALUE<=width
++ && pt->height+LIPS_SIZE_ERROR_VALUE>=height
++ && pt->height-LIPS_SIZE_ERROR_VALUE<=height)
++#else
+ if (pt->width == width && pt->height == height)
++#endif
+ break;
+
+ return pt->num_unit + landscape;
diff --git a/print/ghostscript7/files/patch-lips:gdevlips.h b/print/ghostscript7/files/patch-lips:gdevlips.h
new file mode 100644
index 000000000000..eebce89cc054
--- /dev/null
+++ b/print/ghostscript7/files/patch-lips:gdevlips.h
@@ -0,0 +1,17 @@
+--- lips/gdevlips.h.orig Thu Nov 2 12:09:18 2000
++++ lips/gdevlips.h Tue Jan 13 01:23:47 2004
+@@ -188,6 +188,14 @@
+ bool faceup;\
+ char mediaType[LIPS_MEDIACHAR_MAX];
+
++/* added by shige 11/06 2003 */
++#define USE_LIPS_SIZE_ERROR
++#define LIPS_SIZE_ERROR_VALUE 2
++
++/* added by shige 11/09 2003 */
++#define LIPS_HEIGHT_MAX_720 11906
++#define LIPS_WIDTH_MAX_720 8419
++
+ int lips_media_selection(int width, int height);
+ int lips_packbits_encode(byte * inBuff, byte * outBuff, int Length);
+ int lips_mode3format_encode(byte * inBuff, byte * outBuff, int Length);