#!/usr/bin/wish
-pkg_mkIndex .
-set auto_path [concat . $auto_path]
+source yarrglib.tcl
+source panner.tcl
-package require panner
+set pirate { }
-set us Aristarchus
+proc badusage {m} {
+ puts stderr "where-vessels: bad usage: $m"
+ exit 1
+}
-proc manyset {list args} {
- foreach val $list var $args {
- upvar 1 $var my
- set my $val
+set ai 0
+proc nextarg {} {
+ global ai argv
+ if {$ai >= [llength $argv]} {
+ badusage "option [lindex $argv [expr {$ai-1}]] needs a value"
}
+ set v [lindex $argv $ai]
+ incr ai
+ return $v
}
+while {[regexp {^\-} [set arg [lindex $argv $ai]]]} {
+ incr ai
+ switch -exact -- $arg {
+ -- { break }
+ --pirate { set pirate [string totitle [nextarg]] }
+ --ocean { set ocean [string totitle [nextarg]] }
+ --clipboard-file { set clipboard_file [nextarg] }
+ --notes { set notes_loc [nextarg] }
+ default { badusage "unknown option $arg" }
+ }
+}
+set argv [lrange $argv $ai end]
+if {[llength $argv]} { badusage "non-option args not allowed" }
+
set itemre { (\w+) = ([^=]*) }
set manyitemre "^\\\[ $itemre ( (?: ,\\ $itemre)* ) \\]\$"
puts $manyitemre
close $vn
proc vessel {vin} {
- global us
+ global pirate
upvar #0 $vin vi
switch -exact $vi(vesselClass) {
smsloop { set sz 00sl }
upvar #0 notes($nk) note
if {[info exists note]} {
manyset $note owner xabbrev
- if {![string compare $owner $us]} {
+ if {![string compare $owner $pirate]} {
append abbrev =
} else {
append abbrev -