Posted to tcl by dgood` at Mon Nov 25 21:02:19 GMT 2013view raw

  1. namespace eval n1 {proc pn1 {} {puts "ns = [namespace current]"}}
  2. namespace eval n2 {proc pn2 {procName} {set ns [uplevel 1 {namespace current}]; puts "my ns = [namespace current], uplevel ns = $ns"}}

Comments

Posted by dgood` at Mon Nov 25 21:03:15 GMT 2013 [text] [code]

What I want is ::ns1, and what this gives is ::

Posted by dgood` at Mon Nov 25 21:26:50 GMT 2013 [text] [code]

This works as expected, thanks! namespace eval n1 {proc pn1 {} {puts "[info level 0] calling ::n2::pn2"; puts "[::n2::pn2]"}} namespace eval n2 {proc pn2 {} {return "my ns = [namespace current], uplevel ns = [uplevel 1 {namespace current}]"}} n1::pn1 Output: n1::pn1 calling ::n2::pn2 my ns = ::n2, uplevel ns = ::n1

Posted by dgood` at Mon Nov 25 21:40:26 GMT 2013 [text] [code]

This works as expected, thanks! namespace eval n1 {proc pn1 {} {puts "[info level 0] calling ::n2::pn2"; puts "[::n2::pn2]"}} namespace eval n2 {proc pn2 {} {return "my ns = [namespace current], uplevel ns = [uplevel 1 {namespace current}]"}} n1::pn1 Output: n1::pn1 calling ::n2::pn2 my ns = ::n2, uplevel ns = ::n1