# 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 '' . .
# if it wrote a byte to fd 4, it can take another question
+set aadepth 2
+
+
#---------- library routines ----------
proc manyset {list args} {
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
}
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} {
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
}
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
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)]
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 ----------
# $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
}
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
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} {
label $wb-def.def -text $def
pack $wb-def.scope $wb-def.def -side bottom
- set ppm [exec pnmscale 2 << $image]
- image create photo approve/$ix -data $ppm
- label $wb-image -image approve/$ix -bd 2 -relief sunken
+ if {[regexp {^P2} $image]} {
+ set image [exec pgmtoppm {#008-white} << $image | pnmnoraw]
+ append image "\n"
+ }
+ set image [exec pnmscale 2 << $image]
+
+ image create photo approve/$ix -data $image
+ label $wb-image -image approve/$ix -bd 2 -relief flat -bg black
manyset [dict2_reqkind_rows $dict] reqkind
approve_showentry_xinfo/$reqkind $wb-xinfo $def