Posted to tcl by mr_calvin at Tue Aug 01 13:17:16 GMT 2017view raw
- proc spunk {l} {
- set flds [dict create]
- foreach {f v} $l {
- if {![string is list $v] || [llength $v]==1} {
- dict lappend flds $f $v
- } else {
- dict lappend flds $f {*}$v
- }
- }
- return $flds
- }
- set x1 "-a {\{}c} -x 1 -z 3"
- set x2 "-a {\{}c} -x 1 -z 3 -a {2 3}"
- dict get [spunk $x2] -a; # {\{}c} 2 3; ok
- dict get [spunk $x1] -a; # {{}c}
- dict get $x1 -a; # {}c