diff options
author | lecoanet | 2002-09-02 12:25:41 +0000 |
---|---|---|
committer | lecoanet | 2002-09-02 12:25:41 +0000 |
commit | 3ad99990074951564b3de53e0401514d15147ba2 (patch) | |
tree | 0b478785fa89fb80ed2986e279dd6b8e2e477139 /generic/Item.c | |
parent | b20c8618ad7156ffc71236dbf5e6f7135837e962 (diff) | |
download | tkzinc-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.c | 17 |
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 = ""; |