chiark / gitweb /
Merge branch 'master' of ../ypp-sc-tools
[ypp-sc-tools.db-test.git] / yarrg / where-vessels
index f9f6879e37f42760aef411a9b5efc283b0fb6e5c..af77cbab45221214c58b5d6296ec42c192bd82f0 100755 (executable)
@@ -133,6 +133,9 @@ proc argdefaults {} {
        if {[info exists ocean]} { lappend cmd --ocean $ocean }
        if {[info exists pirate]} { lappend cmd --pirate $pirate }
        manyset [split [eval exec $cmd] " "] ocean pirate
+       if {![llength $ocean] || ![llength $pirate]} {
+           error "$ocean $pirate ?"
+       }
     }
     lappend scraper $ocean
 }
@@ -251,6 +254,7 @@ proc vesselclasses-init {} {
        dhow            cm      dh      Dhow
        longship        dm      ls      Longship
        baghlah         em      bg      Baghlah
+       junk            eo      jk      Junk
        merchbrig       fm      mb      {Merchant Brig}
        warbrig         gm      wb      {War Brig}
        xebec           hm      xe      Xebec
@@ -376,7 +380,11 @@ proc show-report-decode {code} {
 
     switch -exact $subclass {
        {} { report-set subclass {Ordinary} }
-       F { report-set subclass {"Frost class"} }
+       E { report-set subclass {Emerald class} }
+       F { report-set subclass {Frost class} }
+       R { report-set subclass {Rogue class} }
+       V { report-set subclass {Verdant class} }
+       I { report-set subclass {Inferno class} }
        default { report-set subclass "Subclass \"$subclass\"" }
     }
 
@@ -579,7 +587,11 @@ proc vessel {vin} {
     set subclass [errexpect-arrayget vi vesselSubclass]
     switch -exact $subclass {
        null            { lappend codel {} }
+       celtic          { lappend codel E }
        icy             { lappend codel F }
+       rogue           { lappend codel R }
+       verdant         { lappend codel V }
+       inferno         { lappend codel I }
        default         { lappend codel ($subclass) }
     }
 
@@ -625,7 +637,7 @@ proc vessel {vin} {
     lappend newnotes [list $vid $realname $owner $xabbrev]
     set kk "$island [join $codel _]"
     upvar #0 found($kk) k
-    lappend k [list $vid $realname]
+    lappend k [list $vid $realname $owner]
  
     debug "CODED $kk $vid $realname"
 }
@@ -805,6 +817,7 @@ proc parser-control-create {w base invokebuttontext etl_title} {
     toplevel $eb
     wm withdraw $eb
     wm title $eb "where-vessels - $etl_title"
+    wm protocol $eb WM_DELETE_WINDOW [list wm withdraw $eb]
 
     label $eb.title -text $etl_title
     pack $eb.title -side top
@@ -813,17 +826,17 @@ proc parser-control-create {w base invokebuttontext etl_title} {
     pack $eb.close -side bottom
 
     frame $eb.emsg -bd 2 -relief groove
-    label $eb.emsg.lab -text "Error:"
+    label $eb.emsg.lab -anchor nw -text "Error:"
     text $eb.emsg.text -height 1
-    pack $eb.emsg.text -side bottom
+    pack $eb.emsg.text -side bottom -fill x
     pack $eb.emsg.lab -side left
 
-    pack $eb.emsg -side top -pady 2
+    pack $eb.emsg -side top -pady 2 -fill x
 
     frame $eb.text -bd 2 -relief groove
-    pack $eb.text -side bottom -pady 2
+    pack $eb.text -side bottom -pady 2 -fill both -expand y
     
-    label $eb.text.lab
+    label $eb.text.lab -anchor nw
 
     text $eb.text.text -width 85 \
        -xscrollcommand [list $eb.text.xscroll set] \
@@ -836,10 +849,15 @@ proc parser-control-create {w base invokebuttontext etl_title} {
     scrollbar $eb.text.yscroll -orient vertical \
        -command [list $eb.text.text yview]
 
-    grid configure $eb.text.lab -row 0 -column 0 -sticky w
-    grid configure $eb.text.text -row 1 -column 0
+    grid configure $eb.text.lab -row 0 -column 0 -sticky w -columnspan 2
+    grid configure $eb.text.text -row 1 -column 0 -sticky news
     grid configure $eb.text.yscroll -sticky ns -row 1 -column 1
     grid configure $eb.text.xscroll -sticky ew -row 2 -column 0
+    grid rowconfigure $eb.text 0 -weight 0
+    grid rowconfigure $eb.text 1 -weight 1
+    grid rowconfigure $eb.text 2 -weight 0
+    grid columnconfigure $eb.text 0 -weight 1
+    grid columnconfigure $eb.text 1 -weight 0
 }
 
 proc parser-control-ok-core {w base background show} {
@@ -1073,8 +1091,20 @@ proc show-report {islandname code} {
     .cp.report.list delete 0 end
 
     foreach entry $k {
-       manyset $entry vid name
-       .cp.report.list insert end $name
+       manyset $entry vid name owner
+       lappend owned($owner) $name
+    }
+
+    foreach owner [lsort [array names owned]] {
+       if {[string length $owner]} {
+           set owndesc "$owner's"
+       } else {
+           set owndesc "Owner unknown"
+       }
+       .cp.report.list insert end "$owndesc:"
+       foreach name $owned($owner) {
+           .cp.report.list insert end " $name"
+       }
     }
 }