[gs-cvs] rev 7688 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Thu Feb 8 13:07:23 PST 2007


Author: leonardo
Date: 2007-02-08 13:07:22 -0800 (Thu, 08 Feb 2007)
New Revision: 7688

Modified:
   trunk/gs/src/gstext.c
   trunk/gs/src/gxchar.c
Log:
Fix (interpreter) : Early check for degenerate CTM in 'kshow'.

DETAILS :

Debugged with CET 13-12-4.
Note here we don't fix all *show operators,
but provide a minimal change for CPSI compatibility against CET tests
(gstext.c).

Minor change : a misspelled comment in gxchar.c .

EXPECTED DIFFERENCES :

comparefiles: None.
CET tests :  13-12-4 (a partial fix).


Modified: trunk/gs/src/gstext.c
===================================================================
--- trunk/gs/src/gstext.c	2007-02-08 13:33:56 UTC (rev 7687)
+++ trunk/gs/src/gstext.c	2007-02-08 21:07:22 UTC (rev 7688)
@@ -236,7 +236,7 @@
 	if (!pgs->current_point_valid)
 	    return_error(gs_error_nocurrentpoint);
     }
-    /* Detect zero FintNatrix now for Adobe compatibility with CET tests.
+    /* Detect zero FontNatrix now for Adobe compatibility with CET tests.
        Note that matrixe\\ces like [1 0 0 0 0 0] are used in comparefiles
        to compute a text width. 
        Note : FontType 3 throws error in setcachedevice. */
@@ -352,6 +352,9 @@
 {
     gs_text_params_t text;
 
+    /* Detect degenerate CTM now for Adobe compatibility with CET 13-12-4. */
+    if (pgs->ctm.xx * pgs->ctm.yy - pgs->ctm.yx * pgs->ctm.xy == 0)
+	return_error(gs_error_undefinedresult); /* sic! : CPSI compatibility */
     text.operation = TEXT_FROM_STRING | text_do_draw(pgs) | TEXT_INTERVENE |
 	TEXT_RETURN_WIDTH;
     text.data.bytes = str, text.size = size;

Modified: trunk/gs/src/gxchar.c
===================================================================
--- trunk/gs/src/gxchar.c	2007-02-08 13:33:56 UTC (rev 7687)
+++ trunk/gs/src/gxchar.c	2007-02-08 21:07:22 UTC (rev 7688)
@@ -293,7 +293,7 @@
     gs_state *pgs = penum->pgs;
     gs_font *pfont = gs_rootfont(pgs);
 
-    /* Detect zero FintNatrix now for Adobe compatibility with CET tests.
+    /* Detect zero FontMatrix now for Adobe compatibility with CET tests.
        Note that matrixe\\ces like [1 0 0 0 0 0] are used in comparefiles
        to compute a text width. See also gs_text_begin. */
     if (pfont->FontMatrix.xx == 0 && pfont->FontMatrix.xy == 0 &&



More information about the gs-cvs mailing list