ycl

Artifact [43c4f94afb]
Login

Artifact [43c4f94afb]

Artifact 43c4f94afb337442e450031f56178bd56eff4359:


#! /bin/env tclsh

package require ycl
package require ycl::context::etc
variable etc [yclprefix]::context::etc

namespace upvar $etc META META
namespace upvar $etc VAR_DEFAULT VAR_DEFAULT

package require {ycl list}
variable list [yclprefix]::list
namespace import ${list}::rlindex

proc var {ns args} {
	set argl [llength $args]
	if {$argl == 0} {
		return [VarDefaultGet $ns {*}$args]
	} elseif {$argl == 1} {
		return [VarDefaultSet $ns {*}$args] 
	} else {
		return -code error "wrong # args: should be 0 or 1 arg"
	}
}

proc VarDefaultGet {ns} {
	variable META
	variable VAR_DEFAULT
	return [set ${ns}::${META}::$VAR_DEFAULT]
}

proc VarDefaultSet {ns args} {
	variable META
	variable VAR_DEFAULT
	set val [rlindex $args 0]
	set ${ns}::${META}::$VAR_DEFAULT $val
	return $val
}