1: proc import_keyvalue_pairs {arrayName argsList} { 2: upvar 1 $arrayName data 3: 4: if {[string index $argsList 0] != "-"} { 5: set data(args) $argsList 6: return 7: } 8: 9: set index 0 10: set looking 0 11: set data(args) "" 12: foreach arg $argsList { 13: if {$looking} { 14: set data($varName) $arg 15: set looking 0 16: } elseif {[string index $arg 0] == "-"} { 17: if {$arg == "--"} { 18: set data(args) [lrange $argsList [expr $index + 1] end] 19: break 20: } 21: if {$arg == "-args"} { 22: return -code error "-args is a reserved value." 23: } 24: set varName [string range $arg 1 end] 25: set looking 1 26: } else { 27: set data(args) [lrange $argsList $index end] 28: break 29: } 30: incr index 31: } 32: } |