summaryrefslogtreecommitdiffstats
path: root/generic/tk3d.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tk3d.c')
-rw-r--r--generic/tk3d.c41
1 files changed, 24 insertions, 17 deletions
diff --git a/generic/tk3d.c b/generic/tk3d.c
index f1cc8f1..65980e6 100644
--- a/generic/tk3d.c
+++ b/generic/tk3d.c
@@ -637,8 +637,7 @@ Tk_GetReliefFromObj(
*
* Results:
* A standard Tcl return value. If all goes well then *reliefPtr is
- * filled in with one of the values TK_RELIEF_RAISED, TK_RELIEF_FLAT, or
- * TK_RELIEF_SUNKEN.
+ * filled in with one of the values TK_RELIEF_*
*
* Side effects:
* None.
@@ -654,30 +653,38 @@ Tk_GetRelief(
{
char c;
size_t length;
+ int relief;
c = name[0];
length = strlen(name);
if ((c == 'f') && (strncmp(name, "flat", length) == 0)) {
- *reliefPtr = TK_RELIEF_FLAT;
- } else if ((c == 'g') && (strncmp(name, "groove", length) == 0)
- && (length >= 2)) {
- *reliefPtr = TK_RELIEF_GROOVE;
+ relief = TK_RELIEF_FLAT;
+ } else if ((c == 'g') && (strncmp(name, "groove", length) == 0)) {
+ relief = TK_RELIEF_GROOVE;
} else if ((c == 'r') && (strncmp(name, "raised", length) == 0)
&& (length >= 2)) {
- *reliefPtr = TK_RELIEF_RAISED;
- } else if ((c == 'r') && (strncmp(name, "ridge", length) == 0)) {
- *reliefPtr = TK_RELIEF_RIDGE;
- } else if ((c == 's') && (strncmp(name, "solid", length) == 0)) {
- *reliefPtr = TK_RELIEF_SOLID;
- } else if ((c == 's') && (strncmp(name, "sunken", length) == 0)) {
- *reliefPtr = TK_RELIEF_SUNKEN;
+ relief = TK_RELIEF_RAISED;
+ } else if ((c == 'r') && (strncmp(name, "ridge", length) == 0)
+ && (length >= 2)) {
+ relief = TK_RELIEF_RIDGE;
+ } else if ((c == 's') && (strncmp(name, "solid", length) == 0)
+ && (length >= 2)) {
+ relief = TK_RELIEF_SOLID;
+ } else if ((c == 's') && (strncmp(name, "sunken", length) == 0)
+ && (length >= 2)) {
+ relief = TK_RELIEF_SUNKEN;
} else {
- Tcl_SetObjResult(interp,
- Tcl_ObjPrintf("bad relief \"%.50s\": must be %s",
- name, "flat, groove, raised, ridge, solid, or sunken"));
- Tcl_SetErrorCode(interp, "TK", "VALUE", "RELIEF", NULL);
+ if (interp) {
+ Tcl_SetObjResult(interp,
+ Tcl_ObjPrintf("bad relief \"%.50s\": must be %s",
+ name, "flat, groove, raised, ridge, solid, or sunken"));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "RELIEF", NULL);
+ }
return TCL_ERROR;
}
+ if (reliefPtr) {
+ *reliefPtr = relief;
+ }
return TCL_OK;
}