aboutsummaryrefslogtreecommitdiff
path: root/generic/Color.c
diff options
context:
space:
mode:
authorlecoanet2001-10-24 13:07:47 +0000
committerlecoanet2001-10-24 13:07:47 +0000
commit615729a337312d54e20b88624c88c0c02707b4c7 (patch)
treeb9f5b4c779458097e9fc38565d0a1da3b342f465 /generic/Color.c
parente6e76fcd4302556a94bfa5721b4f06850ffd424a (diff)
downloadtkzinc-615729a337312d54e20b88624c88c0c02707b4c7.zip
tkzinc-615729a337312d54e20b88624c88c0c02707b4c7.tar.gz
tkzinc-615729a337312d54e20b88624c88c0c02707b4c7.tar.bz2
tkzinc-615729a337312d54e20b88624c88c0c02707b4c7.tar.xz
Correction de bugs dans le d�codage d'un gradient
Diffstat (limited to 'generic/Color.c')
-rw-r--r--generic/Color.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/generic/Color.c b/generic/Color.c
index c853808..450580c 100644
--- a/generic/Color.c
+++ b/generic/Color.c
@@ -1119,7 +1119,7 @@ ZnGetGradient(Tcl_Interp *interp,
ZnGradient *grad;
int i, j, new, num_colors, num_shades;
char type, *scan_ptr;
- int num_tok, angle;
+ int num_tok, angle, position, control;
double x, y;
char *color_ptr, color_name[COLOR_NAME_SIZE];
char buffer[GRADIENT_NAME_SIZE];
@@ -1236,9 +1236,13 @@ ZnGetGradient(Tcl_Interp *interp,
grad->colors[i]->position = 0;
grad->colors[i]->control = 50;
grad->colors[i]->alpha = 100;
- num_tok = sscanf(scan_ptr, "%s %d %d", color_name,
- &grad->colors[i]->position,
- &grad->colors[i]->control);
+ num_tok = sscanf(scan_ptr, "%s %d %d", color_name, &position, &control);
+ if (num_tok > 1) {
+ grad->colors[i]->position = position;
+ }
+ if (num_tok > 2) {
+ grad->colors[i]->control = control;
+ }
if (num_tok == 0) {
Tcl_AppendResult(interp, "incorrect gradient format \"",
name, "\",", NULL);
@@ -1278,22 +1282,15 @@ ZnGetGradient(Tcl_Interp *interp,
}
if ((num_tok > 2) && (i > 0)) {
if ((grad->colors[i]->position > 100) ||
- (grad->colors[i]->position < 0) ||
(grad->colors[i]->position < grad->colors[i-1]->position)) {
Tcl_AppendResult(interp, "incorrect color position in gradient \"",
name, "\",", NULL);
goto grad_err;
}
}
- if (grad->colors[i]->control < 0) {
- grad->colors[i]->control = 0;
- }
if (grad->colors[i]->control > 100) {
grad->colors[i]->control = 100;
}
- if (grad->colors[i]->alpha < 0) {
- grad->colors[i]->alpha = 0;
- }
if (grad->colors[i]->alpha > 100) {
grad->colors[i]->alpha = 100;
}