summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhobbs <hobbs>2003-05-11 00:52:41 (GMT)
committerhobbs <hobbs>2003-05-11 00:52:41 (GMT)
commit49335abfd1e4246bddd164bd71142661af9d42da (patch)
treed7b1b2f0d22d1a6effe4300b261b62b8f03ccfe9
parentb9210133fb852362ce50e736dce33755ab8eb921 (diff)
downloadtk-49335abfd1e4246bddd164bd71142661af9d42da.zip
tk-49335abfd1e4246bddd164bd71142661af9d42da.tar.gz
tk-49335abfd1e4246bddd164bd71142661af9d42da.tar.bz2
* generic/tkCanvPoly.c (PolygonToPostscript):
* tests/canvPs.test: correct crash when generating postscript for a single-line polygon (point) with no color. [Bug #734498] (wilm)
-rw-r--r--ChangeLog6
-rw-r--r--generic/tkCanvPoly.c9
-rw-r--r--tests/canvPs.test9
3 files changed, 20 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 0bb43be..365651d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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