Menu

#2968 Tcl_GetCurrentNamespace doesn't work properly

obsolete: 8.4.6
closed-invalid
5
2004-11-21
2004-11-17
Anonymous
No

I'm using Tcl 8.4.6 but it seems to exists also in later versions.
My system is Linux 2.6.8.1, Slackware Current, Duron 800.

I'm maintaining TCL module for Polish Instant Messager called
Kadu. I want to use namespaces to separate loaded scripts from
each other. I define [on] command at C++ level and I need to
know what is the current namespace, while executing this
command, so I use Tcl_GetCurrentNamespace() to get it, but it
always returns "::".

Now, you'll propably ask - why I'm sure that it SHOULD be different
namespace than "::"? Well, I load script which is only one line and
looks like:

on connected some_proc

and my module loads it by code:

int status = Tcl_VarEval(interp,
"namespace eval ", last, " {",
data,
"}", NULL);

where 'last' is char* type and contains namespace for this script,
'data' is also char* type and contains script code data, which is the
above line in this case. So, when I call [on] in this one line, I
should get 'last' value by calling Tcl_GetCurrentNamespace inside
of [on], am I right? It returns to me "::". That's the point.

Googie, my e-mail is boogie (at) scripts.one.pl

Discussion

  • Don Porter

    Don Porter - 2004-11-18

    Logged In: YES
    user_id=80530

    please attach a test program
    that demonstrates the problem.

     
  • Nobody/Anonymous

    Logged In: NO

    Whole module? It would be difficult, couse Kadu (the IM) takes 700kb and
    TCL module for it takes about 250 kb :)

     
  • Don Porter

    Don Porter - 2004-11-19

    Logged In: YES
    user_id=80530

    no. just a small example program
    that demonstrates the problem.

     
  • Nobody/Anonymous

    Logged In: NO

    Ok, I'll do it but I don't promis that it will be done for a moment... I think I'll
    upload it in few (1-3) days.

     
  • Nobody/Anonymous

    Logged In: NO

    Deam >:[ It seems to be my foult. I've wrote very simple application and
    here it works correctly. But I don't understeand... The way of using
    namespaces in my module is quiet simple too and it doesn't work there ;(
    Anyway, I'm so sorry for littering this place :/

     
  • Don Porter

    Don Porter - 2004-11-21

    Logged In: YES
    user_id=80530

    Many pathways to script evaluation
    force evaluation in the global namespace
    (script bound tk Tk events come to mind).
    Perhaps in your module things are passing
    through one of them.

    Closing this report.

     
  • Don Porter

    Don Porter - 2004-11-21
    • status: open --> closed-invalid
     
MongoDB Logo MongoDB