chiark / gitweb /
disable OK button while approving
[ypp-sc-tools.db-live.git] / pctb / dictionary-manager
index 9cbdb78f4984cb003c2d79e288b190521f1cf57e..24e1aa28d306ed74bad41b7406998deca965427b 100755 (executable)
 # sponsored by Three Rings.
 
 
-# ./dictionary-manager --approve-updates ijackson@login.chiark.greenend.org.uk /home/ijackson/things/ypp-sc-tools.pctb-dict-test/pctb /home/ftp/users/ijackson/pctb/test
 # ./dictionary-manager --approve-updates ijackson@login.chiark.greenend.org.uk /home/ijackson/things/ypp-sc-tools.pctb-dict/pctb /home/ftp/users/ijackson/pctb
 
+# ./dictionary-manager --approve-updates ijackson@login.chiark.greenend.org.uk /home/ijackson/things/ypp-sc-tools.pctb-dict-test/pctb /home/ftp/users/ijackson/pctb/test
+
 # ./dictionary-manager --approve-updates '' . .
 
 
@@ -41,6 +42,9 @@
 #  if it wrote a byte to fd 4, it can take another question
 
 
+set aadepth 2
+
+
 #---------- library routines ----------
 
 proc manyset {list args} {
@@ -225,7 +229,7 @@ proc write_database {} {
     global reqkind database_fn database
     upvar #0 database_magic/$reqkind magic
     
-    set f [open $database_fn.new w]
+    set f [open $database_fn.tmp w]
     puts $f $magic
 
     write_database_header/$reqkind $f
@@ -239,7 +243,7 @@ proc write_database {} {
     }
     puts $f "."
     close $f
-    file rename -force $database_fn.new $database_fn
+    file rename -force $database_fn.tmp $database_fn
 }
 
 proc select_database {dbname_spec} {
@@ -284,7 +288,7 @@ proc required/char {} {
     label .selctx.title -text \
        {Select match context for altering dictionary:}
     pack .selctx.title -side left
-    set new_context [lindex $unk_contexts 0]
+    set new_context {}
 
     set ci 0; foreach ctx [lsort [array names all_contexts]] {
        set all_contexts($ctx) $ci
@@ -513,7 +517,7 @@ proc upload_status {} {
 }
 
 proc maybe_upload_entry {im def} {
-    global reqkind privacy_setting env dbname quiet
+    global reqkind privacy_setting env dbname quiet aadepth
 
     debug "DB-UPDATE PRIVACY $privacy_setting"
     if {!$privacy_setting} return
@@ -522,6 +526,8 @@ proc maybe_upload_entry {im def} {
 
     set pl {}
     lappend pl dict $dbname
+    lappend pl version 3
+    lappend pl depth $aadepth
 
     if {$privacy_setting>=2} {
        set pirate [string totitle $env(YPPSC_PIRATE)]
@@ -689,9 +695,11 @@ proc char_read_pgm {f} {
        append o $ointerl
     }
 
-#    debug "DATA $o"
-    set data [exec pnmscale 1 << $o]
-    image create photo image/main -data $data
+    debug "DATA1 $o"
+    set tmpfile ./#dictimage#.tmp
+    exec pnmscale 1 << $o >$tmpfile
+    image create photo image/main -file $tmpfile
+    file delete $tmpfile
 }
 
 #---------- character set editor display ----------
@@ -764,7 +772,7 @@ proc recursor//01 {z1} {
        if {[lsearch -exact $okctxts $ctx] >= 0} {
            bind_key [string tolower $key] "
                [list set new_context $ctx]
-                recursor
+               char_start_define_text
             "
        } else {
            bind_key [string tolower $key] {}
@@ -772,7 +780,7 @@ proc recursor//01 {z1} {
        lappend context_help $key
     }
     set context_help [list [join $context_help " "] \
-                         {Set match context for new glyph.}]
+      {Set match context for new glyph, confirm location, and start entry.}]
 
     bind_key space { othercursor }
     bind_leftright_q cur_$z1 0 [expr {$cols-1}]
@@ -897,7 +905,7 @@ proc recursor {} {
 
 # $database($context 0x<bits> 0x<bits>...) = $hex
 
-set database_magic/char {# ypp-sc-tools pctb font v2}
+set database_magic/char "# ypp-sc-tools pctb font v3 depth=$aadepth"
     
 proc read_database_header/char {f} {
     global rows
@@ -1133,10 +1141,10 @@ proc chop_counted {var} {
 }
 
 proc approve_decompose_data {specdata} {
-    global data
+    global data aadepth
     set data $specdata
     
-    regsub-data {^ypp-sc-tools dictionary update v2\n} {}
+    regsub-data "^ypp-sc-tools dictionary update v3 depth=$aadepth\\n" {}
     uplevel 1 chop_counted pirate
     uplevel 1 chop_counted caller
     uplevel 1 chop_counted dict
@@ -1146,7 +1154,7 @@ proc approve_decompose_data {specdata} {
     uplevel 1 chop_counted key
     uplevel 1 chop_counted val
 
-    return [uplevel 1 {list $dict $def $image}]
+    return [uplevel 1 {list $dict $ctx $def $image}]
 }
 
 proc approve_compare {fd1 fd2} {
@@ -1241,6 +1249,8 @@ proc approve_check_server {} {
 
 proc approve_confirm {} {
     global approve_ixes approve_entryhow
+    .ok configure -state disabled
+    update idletasks
     approve_check_server
     foreach ix $approve_ixes {
        set how $approve_entryhow($ix)
@@ -1275,6 +1285,7 @@ proc approve_fetch_list {} {
 
     set approve_list [lsort -command approve_compare $approve_list]
     approve_show_page 0
+    .ok configure -state normal
 }
 
 proc main/approve {} {