diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-12-14 10:41:40 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-12-14 11:01:28 +1000 |
commit | 7e50b8cbb20c3cee9193249d0150aa6f5cc778ee (patch) | |
tree | e61058463b8b2b320e09b01b48c581c245047829 /jim.c | |
parent | 66a081898ffe0ebc643284160b4e937872274c5f (diff) | |
download | jimtcl-7e50b8cbb20c3cee9193249d0150aa6f5cc778ee.zip jimtcl-7e50b8cbb20c3cee9193249d0150aa6f5cc778ee.tar.gz jimtcl-7e50b8cbb20c3cee9193249d0150aa6f5cc778ee.tar.bz2 |
Include all double colons as part of the var name
e.g. $::a::b is considered as ${::a::b}
This helps be more Tcl compatible by allowing fake namespace variables
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r-- | jim.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -1309,12 +1309,13 @@ static int JimParseVar(struct JimParserCtx *pc) } } else { - /* Include leading colons */ - while (*pc->p == ':') { - pc->p++; - pc->len--; - } while (!stop) { + /* Skip double colon, but not single colon! */ + if (pc->p[0] == ':' && pc->len > 1 && pc->p[1] == ':') { + pc->p += 2; + pc->len -= 2; + continue; + } if (!((*pc->p >= 'a' && *pc->p <= 'z') || (*pc->p >= 'A' && *pc->p <= 'Z') || (*pc->p >= '0' && *pc->p <= '9') || *pc->p == '_')) |