diff options
author | joye <joye> | 2014-04-24 17:39:29 (GMT) |
---|---|---|
committer | joye <joye> | 2014-04-24 17:39:29 (GMT) |
commit | 5e5fcf5eda29bc13f3826ca392a9965f7019b610 (patch) | |
tree | ba6b22356d420c4ce28bc980e20e950965674e66 /src/bltVecCmd.C | |
parent | d295622d7d281348dda27d2bd6bda7e6b45db273 (diff) | |
download | blt-5e5fcf5eda29bc13f3826ca392a9965f7019b610.zip blt-5e5fcf5eda29bc13f3826ca392a9965f7019b610.tar.gz blt-5e5fcf5eda29bc13f3826ca392a9965f7019b610.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src/bltVecCmd.C')
-rw-r--r-- | src/bltVecCmd.C | 28 |
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; +} + /* *--------------------------------------------------------------------------- * |