aboutsummaryrefslogtreecommitdiff
path: root/generic/Item.c
diff options
context:
space:
mode:
authorlecoanet2002-09-02 12:25:41 +0000
committerlecoanet2002-09-02 12:25:41 +0000
commit3ad99990074951564b3de53e0401514d15147ba2 (patch)
tree0b478785fa89fb80ed2986e279dd6b8e2e477139 /generic/Item.c
parentb20c8618ad7156ffc71236dbf5e6f7135837e962 (diff)
downloadtkzinc-3ad99990074951564b3de53e0401514d15147ba2.zip
tkzinc-3ad99990074951564b3de53e0401514d15147ba2.tar.gz
tkzinc-3ad99990074951564b3de53e0401514d15147ba2.tar.bz2
tkzinc-3ad99990074951564b3de53e0401514d15147ba2.tar.xz
Traitement d'un texte vide sous forme de pointeur NULL et non
de chaine vide. S'applique aux attributs (suite de la modif d�j� effectu�e dans Field et Text).
Diffstat (limited to 'generic/Item.c')
-rw-r--r--generic/Item.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/generic/Item.c b/generic/Item.c
index 2668f1a..494e069 100644
--- a/generic/Item.c
+++ b/generic/Item.c
@@ -450,12 +450,10 @@ ZnConfigureAttributes(WidgetInfo *wi,
{
char *text = "";
str = Tcl_GetString(args[i+1]);
- if (strcmp(str, *((char **) valp)) != 0) {
- if (strlen(str) != 0) {
- text = (char *) ZnMalloc(strlen(str)+1);
- strcpy(text, str);
- }
- if (strlen(*((char **) valp)) != 0) {
+ if (!*((char **) valp) || strcmp(str, *((char **) valp)) != 0) {
+ text = (char *) ZnMalloc(strlen(str)+1);
+ strcpy(text, str);
+ if (*((char **) valp)) {
ZnFree(*((char **) valp));
}
*((char **) valp) = text;
@@ -1139,7 +1137,12 @@ AttributeToObj(WidgetInfo *wi,
case ZN_CONFIG_STRING:
case ZN_CONFIG_MAP_INFO:
str = *((char **) valp);
- Tcl_SetStringObj(result, str, strlen(str));
+ if (str) {
+ Tcl_SetStringObj(result, str, strlen(str));
+ }
+ else {
+ Tcl_SetStringObj(result, "", 0);
+ }
break;
case ZN_CONFIG_FONT:
str = "";