[gs-cvs] gs/src

Igor Melichev igor at ghostscript.com
Wed Jun 29 11:21:46 PDT 2005


Update of /cvs/ghostscript/gs/src
In directory casper2:/tmp/cvs-serv15930/gs/src

Modified Files:
	gdevpdfb.c 
Log Message:
Fix (ps2write) : Imagemask incorrectly synchronized color in the !HaveStrokeColor mode.

DETAILS :

Bug 688171 "ps2write : wrong frame color".
The !HaveStrokeColor mode was underimplemented.

EXPECTED DIFFERENCES :

None.


Index: gdevpdfb.c
===================================================================
RCS file: /cvs/ghostscript/gs/src/gdevpdfb.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- gdevpdfb.c	20 Jun 2005 08:59:23 -0000	1.30
+++ gdevpdfb.c	29 Jun 2005 18:21:44 -0000	1.31
@@ -103,6 +103,18 @@
     return pdf_end_write_image(pdev, piw);
 }
 
+private void 
+set_image_color(gx_device_pdf *pdev, gx_color_index c)
+{
+    pdf_set_pure_color(pdev, c, &pdev->saved_fill_color,
+			&pdev->fill_used_process_color,
+			&psdf_set_fill_color_commands);
+    if (!pdev->HaveStrokeColor)
+	pdf_set_pure_color(pdev, c, &pdev->saved_stroke_color,
+			    &pdev->stroke_used_process_color,
+			    &psdf_set_stroke_color_commands);
+}
+
 /* Copy a monochrome bitmap or mask. */
 private int
 pdf_copy_mono(gx_device_pdf *pdev,
@@ -168,22 +180,16 @@
 	    } else if (pdev->pte) {
 		/* We're under pdf_text_process. It set a high level color. */
 	    } else
-		pdf_set_pure_color(pdev, one, &pdev->saved_fill_color,
-				   &pdev->fill_used_process_color,
-				   &psdf_set_fill_color_commands);
+		set_image_color(pdev, one);
 	    pdf_make_bitmap_matrix(&image.ImageMatrix, x, y, w, h, h);
 	    goto rx;
 	}
-	pdf_set_pure_color(pdev, one, &pdev->saved_fill_color,
-			   &pdev->fill_used_process_color,
-			   &psdf_set_fill_color_commands);
+	set_image_color(pdev, one);
 	gs_image_t_init_mask(&image, false);
 	invert = 0xff;
     } else if (one == gx_no_color_index) {
 	gs_image_t_init_mask(&image, false);
-	pdf_set_pure_color(pdev, zero, &pdev->saved_fill_color,
-			   &pdev->fill_used_process_color,
-			   &psdf_set_fill_color_commands);
+	set_image_color(pdev, zero);
     } else if (zero == pdev->black && one == pdev->white) {
 	gs_cspace_init_DeviceGray(pdev->memory, &cs);
 	gs_image_t_init(&image, &cs);



More information about the gs-cvs mailing list