aboutsummaryrefslogtreecommitdiff
path: root/jim.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-12-14 10:41:40 +1000
committerSteve Bennett <steveb@workware.net.au>2010-12-14 11:01:28 +1000
commit7e50b8cbb20c3cee9193249d0150aa6f5cc778ee (patch)
treee61058463b8b2b320e09b01b48c581c245047829 /jim.c
parent66a081898ffe0ebc643284160b4e937872274c5f (diff)
downloadjimtcl-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.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/jim.c b/jim.c
index fcb6d2d..573656f 100644
--- a/jim.c
+++ b/jim.c
@@ -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 == '_'))