chiark / gitweb /
where-vessels: break out info-toplevel-create
[ypp-sc-tools.db-live.git] / yarrg / where-vessels
index 99929dbfc4e6794209c89f1c0c334673b4072b40..6b1b0e2de61213b2f565458e32e6bac85ce83956 100755 (executable)
@@ -136,6 +136,7 @@ proc have-notes {} {
     return [string length $notes_loc]
 }
 proc have-ownership {} {
+    global pirate
     return [expr {[have-notes] && [string length $pirate]}]
 }
 
@@ -146,7 +147,13 @@ proc argdefaults {} {
        set cmd {./yarrg --find-window-only --quiet}
        if {[info exists ocean]} { lappend cmd --ocean $ocean }
        if {[info exists pirate]} { lappend cmd --pirate $pirate }
-       manyset [split [eval exec $cmd] " "] ocean pirate
+       if {[catch {
+           manyset [split [eval exec $cmd] " "] ocean pirate
+       } emsg]} {
+           puts stderr "yarrg: [string trim $emsg]"
+           puts stderr "Alternatively pass, --ocean and perhaps --pirate options to where-vessels"
+           exit 1
+       }
        if {![llength $ocean] || ![llength $pirate]} {
            error "$ocean $pirate ?"
        }
@@ -473,7 +480,7 @@ proc show-report-decode {code} {
            1 { report-set own "Other pirate's" }
            2 { report-set own "Owner unknown" }
            3 { report-set own "(All ownerships)" }
-           4 - 5 { report-set own "(Yours/unknown)" }
+           4 - 5 { report-set own "(Not yours / unknown)" }
            default { report-set own "?? $notown" }
        }
     }
@@ -623,7 +630,7 @@ proc smash-code {code} {
 proc smash-prepare {} {
     global vc_codes smash_sizemap smash_size smash_sizeinexact
     set mapto {}
-    catch { unset smash_sizeplus }
+    catch { unset smash_sizeinexact }
     foreach size $vc_codes {
        if {!$smash_size($size)} {
            set mapto $size
@@ -1148,6 +1155,18 @@ proc draw {} {
 }
 
 
+#---------- info toplevel ----------
+
+proc info-toplevel-create {info title} {
+    toplevel $info
+    wm withdraw $info
+    wm title $info "where-vessels - $title"
+    wm protocol $info WM_DELETE_WINDOW [list wm withdraw $info]
+
+    button $info.close -text Close -command [list wm withdraw $info]
+    pack $info.close -side bottom
+}
+
 #---------- parser error reporting ----------
 
 proc parser-control-create {w base invokebuttontext etl_title} {
@@ -1164,17 +1183,11 @@ proc parser-control-create {w base invokebuttontext etl_title} {
     pack $w.resframe -side top -expand y -fill both
 
     set eb .err_$base
-    toplevel $eb
-    wm withdraw $eb
-    wm title $eb "where-vessels - $etl_title"
-    wm protocol $eb WM_DELETE_WINDOW [list wm withdraw $eb]
+    info-toplevel-create $eb $etl_title
 
     label $eb.title -text $etl_title
     pack $eb.title -side top
 
-    button $eb.close -text Close -command [list wm withdraw $eb]
-    pack $eb.close -side bottom
-
     frame $eb.emsg -bd 2 -relief groove
     label $eb.emsg.lab -anchor nw -text "Error:"
     text $eb.emsg.text -height 1