summaryrefslogtreecommitdiffstats
path: root/src/bltVecCmd.C
diff options
context:
space:
mode:
authorjoye <joye>2014-04-24 17:39:29 (GMT)
committerjoye <joye>2014-04-24 17:39:29 (GMT)
commit5e5fcf5eda29bc13f3826ca392a9965f7019b610 (patch)
treeba6b22356d420c4ce28bc980e20e950965674e66 /src/bltVecCmd.C
parentd295622d7d281348dda27d2bd6bda7e6b45db273 (diff)
downloadblt-5e5fcf5eda29bc13f3826ca392a9965f7019b610.zip
blt-5e5fcf5eda29bc13f3826ca392a9965f7019b610.tar.gz
blt-5e5fcf5eda29bc13f3826ca392a9965f7019b610.tar.bz2
*** empty log message ***
Diffstat (limited to 'src/bltVecCmd.C')
-rw-r--r--src/bltVecCmd.C28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/bltVecCmd.C b/src/bltVecCmd.C
index 3579e2e..bfecd7c 100644
--- a/src/bltVecCmd.C
+++ b/src/bltVecCmd.C
@@ -135,6 +135,34 @@ static Blt_SwitchSpec fftSwitches[] = {
{BLT_SWITCH_END}
};
+static int Blt_ExprIntFromObj(Tcl_Interp* interp, Tcl_Obj *objPtr, int *valuePtr)
+{
+ // First try to extract the value as a simple integer.
+ if (Tcl_GetIntFromObj((Tcl_Interp *)NULL, objPtr, valuePtr) == TCL_OK)
+ return TCL_OK;
+
+ // Otherwise try to parse it as an expression.
+ long lvalue;
+ if (Tcl_ExprLong(interp, Tcl_GetString(objPtr), &lvalue) == TCL_OK) {
+ *valuePtr = lvalue;
+ return TCL_OK;
+ }
+ return TCL_ERROR;
+}
+
+static int Blt_ExprDoubleFromObj(Tcl_Interp* interp, Tcl_Obj *objPtr, double *valuePtr)
+{
+ // First try to extract the value as a double precision number.
+ if (Tcl_GetDoubleFromObj((Tcl_Interp *)NULL, objPtr, valuePtr) == TCL_OK)
+ return TCL_OK;
+
+ // Then try to parse it as an expression.
+ if (Tcl_ExprDouble(interp, Tcl_GetString(objPtr), valuePtr) == TCL_OK)
+ return TCL_OK;
+
+ return TCL_ERROR;
+}
+
/*
*---------------------------------------------------------------------------
*