diff options
author | oharboe <oharboe> | 2009-08-16 11:15:52 +0000 |
---|---|---|
committer | oharboe <oharboe> | 2009-08-16 11:15:52 +0000 |
commit | 49bad8e52dd1dcd0b9fb921e13c29560f14911a3 (patch) | |
tree | 626b323980d359136980ee6a4881fd7cbcf6c3a0 /jim.c | |
parent | 5b422b2d2f08d10f38bf14cdecb59d49ab21eccc (diff) | |
download | jimtcl-49bad8e52dd1dcd0b9fb921e13c29560f14911a3.zip jimtcl-49bad8e52dd1dcd0b9fb921e13c29560f14911a3.tar.gz jimtcl-49bad8e52dd1dcd0b9fb921e13c29560f14911a3.tar.bz2 |
2009-08-16 Steve Bennett <steveb@workware.net.au>
* jim.c: 'unset ::var' to unset a global var.
It was doing nothing.
Diffstat (limited to 'jim.c')
-rw-r--r-- | jim.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -3,7 +3,7 @@ * Copyright 2005 Salvatore Sanfilippo <antirez@invece.org> * Copyright 2005 Clemens Hintze <c.hintze@gmx.net> * Copyright 2005 patthoyts - Pat Thoyts <patthoyts@users.sf.net> - * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com + * Copyright 2008 oharboe - �yvind Harboe - oyvind.harboe@zylin.com * Copyright 2008 Andrew Lunn <andrew@lunn.ch> * Copyright 2008 Duane Ellis <openocd@duaneellis.com> * Copyright 2008 Uwe Klein <uklein@klein-messgeraete.de> @@ -3759,8 +3759,14 @@ int Jim_UnsetVariable(Jim_Interp *interp, Jim_Obj *nameObjPtr, int flags) return retval; } else { name = Jim_GetString(nameObjPtr, NULL); - if (Jim_DeleteHashEntry(&interp->framePtr->vars, name) - != JIM_OK) return JIM_ERR; + if (name[0] == ':' && name[1] == ':') { + if (Jim_DeleteHashEntry(&interp->topFramePtr->vars, name + 2) != JIM_OK) { + return JIM_ERR; + } + } + else if (Jim_DeleteHashEntry(&interp->framePtr->vars, name) != JIM_OK) { + return JIM_ERR; + } /* Change the callframe id, invalidating var lookup caching */ JimChangeCallFrameId(interp, interp->framePtr); return JIM_OK; |