diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | generic/tkCanvPoly.c | 9 | ||||
-rw-r--r-- | tests/canvPs.test | 9 |
3 files changed, 20 insertions, 4 deletions
@@ -1,3 +1,9 @@ +2003-05-10 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tkCanvPoly.c (PolygonToPostscript): + * tests/canvPs.test: correct crash when generating postscript for + a single-line polygon (point) with no color. [Bug #734498] (wilm) + 2003-05-10 Jim Ingham <jingham@apple.com> * macosx/tkMacOSXClipboard.c (TkSelGetSelection): Convert diff --git a/generic/tkCanvPoly.c b/generic/tkCanvPoly.c index 5058b9f..124c8d1 100644 --- a/generic/tkCanvPoly.c +++ b/generic/tkCanvPoly.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkCanvPoly.c,v 1.10 2003/02/09 07:48:22 hobbs Exp $ + * RCS: @(#) $Id: tkCanvPoly.c,v 1.11 2003/05/11 00:52:41 hobbs Exp $ */ #include <stdio.h> @@ -1852,13 +1852,16 @@ PolygonToPostscript(interp, canvas, itemPtr, prepass) } if (polyPtr->numPoints==2) { char string[128]; + if (color == NULL) { + return TCL_OK; + } + sprintf(string, "%.15g %.15g translate %.15g %.15g", polyPtr->coordPtr[0], Tk_CanvasPsY(canvas, polyPtr->coordPtr[1]), width/2.0, width/2.0); Tcl_AppendResult(interp, "matrix currentmatrix\n",string, " scale 1 0 moveto 0 0 1 0 360 arc\nsetmatrix\n", (char *) NULL); - if (Tk_CanvasPsColor(interp, canvas, color) - != TCL_OK) { + if (Tk_CanvasPsColor(interp, canvas, color) != TCL_OK) { return TCL_ERROR; } if (stipple != None) { diff --git a/tests/canvPs.test b/tests/canvPs.test index 0b8392c..d065d53 100644 --- a/tests/canvPs.test +++ b/tests/canvPs.test @@ -6,7 +6,7 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: canvPs.test,v 1.6 2003/04/01 21:06:18 dgp Exp $ +# RCS: @(#) $Id: canvPs.test,v 1.7 2003/05/11 00:52:41 hobbs Exp $ package require tcltest 2.1 eval tcltest::configure $argv @@ -118,6 +118,13 @@ test canvPs-3.2 {test ps generation with an embedded window not mapped} {} { file exists bar.ps } 1 +test canvPs-4.1 {test ps generation with single-point uncolored poly, bug 734498} {} { + destroy .c + pack [canvas .c] + .c create poly 10 20 10 20 + catch {.c postscript} +} 0 + # cleanup removeFile foo.ps removeFile bar.ps |