mova-4.0/0040755000176200017620000000000007234407432010754 5ustar niddniddmova-4.0/usr/0040755000176200017620000000000007234407367011574 5ustar niddniddmova-4.0/usr/local/0040755000176200017620000000000007234345416012662 5ustar niddniddmova-4.0/usr/local/bin/0040755000176200017620000000000007234407361013430 5ustar niddniddmova-4.0/usr/local/bin/mova0100555000176200017620000000621607213266135014317 0ustar niddnidd#!/bin/bash case $# in 0) echo "\"mova\" is a bash script to search for a word, or a collocation, or the tandem of symbols in a dictionary. ver. 4.0, (C) E.S.Cymbalyuk 1999. Under GNU GPL. No Warranty. The latest version see on www.chat.ru/~mueller_dic or www.geocities.com/mueller_dic" echo "mova (OPTION) word1 (word2) (word3) ... (-d DICTIONARI)" echo "Possible OPTION is -w or -b or -s or -t or -W or -B or -S or -T" echo "-w search for a word1 from beginning of each entry of DICTIONARI. Default option." echo "-b search for the tandem of symbols from beginning of each entry of DICTIONARI" echo "-s search for the string of word1+word2+word3+... in DICTIONARI" echo "-t search for tandem of symbols in DICTIONARI" echo "-W, -B, -S, -T - analogous options for using with GUI scripts." echo "DICTIONARI - name of dictionary file. Without DICTIONARY it will be used default one from \".movarc\"." exit;; esac #Default Directory for .movarc, if absent ~/.movarc MD=/usr/local/share/mova/ XW () { sed 's/$/\ /g; s/; \([A-Za-z(]\)/;\ \1/g; s/; \([0-9][0-9]*[^)>.]\)/;\ \1/g; s/: \([A-Za-z(]\)/:\ \1/g; s/: \([0-9][0-9]*[^)>.]\)/:\ \1/g; s/_[IVX][IVX]* /_\ &/g; s/ [1-9]\. / _\ &/g; s/[1-9][0-9]*>/_\ &/g; s/[абвгдежзиклмнопрстуфчцчшхщъьэюя]>/\ &/g; s/_[AISE][a-z]*:/_\ &/g'|fmt -s -w 46;} CON () { sed 's/$/\ /g; s/; \([A-Za-z(]\)/;\ \1/g; s/; \([0-9][0-9]*[^)>.]\)/;\ \1/g; s/: \([A-Za-z(]\)/:\ \1/g; s/: \([0-9][0-9]*[^)>.]\)/:\ \1/g; s/_[IVX][IVX]* /_\ &/g; s/ [1-9]\. / _\ &/g; s/[1-9][0-9]*>/_\ &/g; s/[абвгдежзиклмнопрстуфчцчшхщъьэюя]>/\ &/g; s/_[AISE][a-z]*:/_\ &/g; s/_[^ ][^ ]*[.:]/\\fI&\\fP/g; s/_//g; s/╚/э/g; s/█/O/g; s/\( \[[^]]*\)х/\1`/g; s/\( \[[^]]*\)г/\1,/g; s/\( \[[^]]*\)х/\1`/g; s/\( \[[^]]*\)г/\1,/g' | fmt -s -w 46 |groff -Tlatin1 | less;} DEF () { test -f ${MD}.movarc && DIRD=`cat ${MD}.movarc | sed -n '6,6p'`share/dict/ && DEFD=`cat ${MD}.movarc | sed -n '8,8p'` test -f ~/.movarc && DIRD=`cat ~/.movarc | sed -n '6,6p'`share/dict/ && DEFD=`cat ~/.movarc | sed -n '8,8p'` if [ "$DIC" = "-d" ]; then DIC=$DIRD$DEFD; else DIC=$DIRD$DIC; fi;} for i do if ( [ "$i" = "-w" ] || [ "$i" = "-b" ] || [ "$i" = "-s" ] || [ "$i" = "-t" ] || [ "$i" = "-W" ] || [ "$i" = "-B" ] || [ "$i" = "-S" ] || [ "$i" = "-T" ] || [ "$i" = "-h" ] || [ "$i" = "--h" ] ); then OPTION=$i; continue; fi if ( [ "$i" = "-d" ] || [ "$DIC" = "-d" ] ); then DIC=$i; continue; else ST=${ST-$i}; fi if [ "$STR" = "" ]; then STR=$i; else STR=$STR\ $i; fi done DIC=${DIC-"-d"} test -f $DIC || DEF case $OPTION in "-W") grep -h -i -w -e "^$ST" "$DIC" | XW ;; "-B") grep -h -i -e "^$ST" "$DIC" | XW ;; "-S") grep -h -i -w -e "$STR" "$DIC" | XW ;; "-T") grep -h -i -e "$STR" "$DIC" | XW ;; "-h") exec mova ;; "--help") exec mova ;; "-w") grep -h -i -w -e "^$ST" "$DIC" | sed "s/$ST/\\\fB&\\\fP/g" | CON ;; "-b") grep -h -i -e "^$ST" "$DIC" | sed "s/$ST/\\\fB&\\\fP/g" | CON ;; "-s") grep -h -i -w -e "$STR" "$DIC" | sed "s/$STR/\\\fB&\\\fP/g" | CON ;; "-t") grep -h -i -e "$STR" "$DIC" | sed "s/$STR/\\\fB&\\\fP/g" | CON ;; "") grep -h -i -w -e "^$ST" "$DIC" | sed "s/$ST/\\\fB&\\\fP/g" | CON esac mova-4.0/usr/local/bin/movaTK0100555000176200017620000002642707220765217014567 0ustar niddnidd#! /bin/sh #This is script for management of dictionary. It works with bash script "mova". #ver. 4.0 (C) E.S.Cymbalyuk 1999. Under GNU GPL. No Warranty. #The latest versions see on www.chat.ru/~mueller_dic or www.geocities.org/mueller_dic\ exec wish "$0" "$@" #Default Directory for "share/mova/.movarc", if absent "~/.movarc" set DIR /usr/local/ set OPT -W set DIARY .mova switch $argc 0 {} 1 {set OPT_ARG [lindex $argv 0]} 2 { set OPT_ARG [lindex $argv 0]; set DIC_ARG [lindex $argv 1]} default { puts "You used excrescent parameters with movaTK."} catch {set OPT $OPT_ARG} #catch {encoding system identity} #catch {encoding system iso8859-1} catch {encoding system koi8-r} proc GetOptions {} { global DIR DIC DIR_TMP DIC_ARG FONT_FIND FONT_TEXT FONT_D FONT_DG FONT_IPA if {([catch {set rcfile [open "~/.movarc_${DIC_ARG}" "r"]} Error] && [catch {set rcfile [open "${DIR}share/mova/.movarc_${DIC_ARG}" "r"]} Error] && [catch {set rcfile [open "~/.movarc" "r"]} Error] && [catch {set rcfile [open "${DIR}share/mova/.movarc" "r"]} Error] ) != 0} { set FONT_FIND -*-*-bold-r-*-*-17-*-*-*-*-*-koi8-r set FONT_TEXT -*-*-medium-r-*-*-17-*-*-*-*-*-koi8-r set FONT_D -*-*-medium-o-*-*-17-*-*-*-*-*-koi8-r set FONT_DG -*-*-bold-o-*-*-17-*-*-*-*-*-koi8-r set FONT_IPA -*-silsophiaipa-*-r-*-17-*-*-*-*-*-*-* set DIR /usr/local/ set DIC Mueller7GPL.koi set DIR_TMP /tmp/ } else { gets $rcfile FONT_FIND gets $rcfile FONT_TEXT gets $rcfile FONT_D gets $rcfile FONT_DG gets $rcfile FONT_IPA gets $rcfile DIR gets $rcfile DIR_TMP gets $rcfile DIC close $rcfile} catch {set DIC $DIC_ARG} wm title . "$DIC MOVA-4.0 (C) E.S.Cymbalyuk 1999; GPL" wm focusmodel . passive tk appname tk$DIC} proc WordLight {} { global word if {$word==""} {return} set a 1.0 set b 1.0 set c 1.0 set d 1.0 set e 1.0 set f 1.0 set g 1.0 set w 1.0 while {[set a [.text search -count len -regexp {[a-zA-Z]+} $a end]]!=""} { .text tag add english_word $a "$a + $len char" set a [.text index "$a +$len char"]} while {[set g [.text search -count len -regexp {^.+ } $g end]]!=""} { .text tag add entry_word $g "$g + $len char" set g [.text index "$g +$len char"]} while {[set b [.text search -count len -nocase -- $word $b end]]!=""} { .text tag add searched_word $b "$b + $len char" set b [.text index "$b +$len char"]} while {[set d [.text search -count len -regexp {\_[^ ]+[\.:]} $d end]]!=""} { .text tag add duty_word $d "$d + $len char" set d [.text index "$d +$len char"]} while {[set e [.text search -count len -regexp {\_[a-zA-Z-]+[\.:]} $e end]]!=""} { .text tag add duty_grammar $e "$e + $len char" set e [.text index "$e +$len char"]} while {[set f [.text search {_} $f end]]!=""} { .text tag add underscore $f "$f +1 char" set f [.text index "$f +1 char"]} while {[set w [.word search -count len -nocase -- $word $w end]]!=""} { .word tag add searched_word $w "$w + $len char" set w [.word index "$w +$len char"]} while {[set c [.text search -count len -regexp {\[[^\ ]+\]} $c end]]!=""} { .text tag add phonetic $c "$c + $len char" set c [.text index "$c +$len char"]} focus .scroll.scroll} proc Fresh {} { global u word FONT_FIND FONT_TEXT FONT_D FONT_DG FONT_IPA destroy .text destroy .scroll set u 1.0 text .text -background white -state normal -width 50 -height 15 -font $FONT_TEXT -yscrollcommand ".scroll.scroll set" frame .scroll button .scroll.bottom -relief raised -text "" -command { if {[catch {set wo [selection get]} error] != 0} {bell -displayof . } else {set word $wo} .text tag delete find_word if { [set u [.text search -count len -nocase -- $word $u ]]!="" } { .text tag add find_word $u "$u + $len char" set u [.text index "$u +$len char"] .text tag configure find_word -background yellow .text see $u}} button .scroll.top -relief raised -text "" -command { if {[catch {set wo [selection get]} error] != 0} { bell -displayof . } else {set word $wo} .text tag delete find_word if {[set u [.text search -backwards -count len -nocase -- $word $u ]]!=""} { .text tag add find_word $u "$u + $len char" .text tag configure find_word -background yellow .text see $u}} scrollbar .scroll.scroll -command ".text yview" pack .text -side left -fill x -expand yes pack .scroll -side left -fill y -expand no pack .scroll.top -side top -fill y -expand no pack .scroll.scroll -side top -fill both -expand yes pack .scroll.bottom -side top -fill y -expand no .text tag configure english_word -foreground blue .text tag configure entry_word -font $FONT_FIND -foreground blue .text tag configure duty_word -font $FONT_D -foreground darkgreen .text tag configure duty_grammar -font $FONT_DG .text tag configure searched_word -foreground brown .text tag configure phonetic -font $FONT_IPA -foreground red .text tag configure underscore -foreground white} proc Call_hash_dic {arg hash_word} { global word index_length index_dic DIR DIC DIR_TMP set in [open "${DIR}share/dict/$DIC" "r"] set out [open "$DIR_TMP${DIC}.tmp" "w"] seek $in $index_dic($hash_word) start fcopy $in $out -size $index_length($hash_word) close $in close $out if {[catch {set fd [open "|${DIR}bin/mova $arg $word -d $DIR_TMP${DIC}.tmp" "r"]} error] != 0} { puts "Can't run ${DIR}bin/mova" .text insert 0.0 "Can't run ${DIR}bin/mova\n" } else { .word insert 0.0 "$word\n\n" .word tag delete searched_word .word tag configure searched_word -foreground brown .text insert end "[read $fd]" close $fd} catch {file delete "$DIR_TMP${DIC}.tmp"}} proc Call_dic {arg} { global word searched_word DIR DIC if {[catch {set fd [open "|${DIR}bin/mova $arg $word -d ${DIR}share/dict/$DIC" "r"]} error] != 0} { puts "Can't run ${DIR}bin/mova" .text insert 0.0 "Can't run ${DIR}bin/mova\n" } else {.word insert 0.0 "$word\n\n" .word tag delete searched_word .word tag configure searched_word -foreground brown .text insert end "[read $fd]" close $fd}} proc Mova {arg} { global word argv0 index_dic if {[catch {set word [selection get]} error] != 0} {set word " " bell -displayof . puts "Let us mark a word by the mouse and then run:\n$argv0 OPT DICTIONARY\nWhere OPT is \"-W\" or \"-B\" or \"-S\" or \"-T\". DICTIONARY - name of dictionary file (if the one was't set, you will use default dictionary from \"~/.movarc\"). Let us run \"mova\" for explanation of OPT.\n"} set word [string tolower [string trimleft $word " \"\(\{"]] set hash_word [string index $word 0][string index $word 1] Fresh if {([catch {set offset_dic $index_dic($hash_word)} error] != 0) || [string match $arg "-S"] || [string match $arg "-T"]} {Call_dic $arg} if {([catch {set offset_dic $index_dic($hash_word)} error] == 0) && ([string match $arg "-W"] || [string match $arg "-B"])} { Call_hash_dic $arg $hash_word}} proc Read_hash {} { global index_length index_dic DIR DIC if {[catch {set hash_file [open "${DIR}share/dict/${DIC}.hash" "r"]} error] == 0} { set old_offset 0 while {[eof $hash_file]==0} { gets $hash_file line set hash_dic [string index $line 0][string index $line 1] set offset [string trimleft $line $hash_dic] set index_dic($hash_dic) $old_offset set index_length($hash_dic) [expr $offset - $old_offset] set old_offset $offset} close $hash_file}} proc Change_dic {} { global index_length index_dic FONT_FIND GetOptions .entry configure -font $FONT_FIND .word configure -font $FONT_FIND catch {unset index_dic} catch {unset index_length} Read_hash} proc PutDiary {} { global word DIARY if {[catch {set fd [open "~/$DIARY" "r"]} Error] != 0} { .text insert end "no ~/$DIARY" } else { .text delete 0.0 end .text insert end "[read $fd]" set word " " WordLight .button_upper.save configure -text "Rewrite \"$DIARY\"" .button_upper.add configure -text "Add to \"$DIARY\""}} GetOptions if {[catch {set fd [open "|/bin/ls -1 ${DIR}share/dict/" "r"]} error] != 0} { puts "Can't run /bin/ls" } else { set Files "[read $fd]" close $fd foreach files $Files {if {[ string match *.hash $files ] == 0} {lappend Dictionaries $files}}} set Diaries {.mova} if {[catch {set fd [open "|/bin/ls -a -1 " "r"]} error] != 0} { puts "Can't run /bin/ls" } else { set Files "[read $fd]" close $fd foreach files $Files {if {[ string match .mova_* $files ] != 0} {lappend Diaries $files}}} entry .entry -background #fafa33 -state normal -width 52 -textvariable word -font $FONT_FIND bind .entry ".entry selection range 0 end; Mova {-W}; WordLight" bind .entry ".entry selection range 0 end; Mova {-B}; WordLight" bind .entry ".entry selection range 0 end; Mova {-S}; WordLight" bind .entry ".entry selection range 0 end; Mova {-T}; WordLight" text .word -state normal -width 15 -height 15 -wrap word -font $FONT_FIND frame .button_upper set m .button_upper.dic.m menubutton .button_upper.dic -relief flat -background #22fafa -text Dictionary -underline 0 -menu $m menu $m foreach dic $Dictionaries {$m add radiobutton -indicator 0 -label "$dic" -variable DIC_ARG -value $dic -command {Change_dic}} button .button_upper.help -relief flat -background #22fafa -text Help -command {Fresh if {[catch {set fd [open "${DIR}share/mova/Usage_koi.txt" "r"]} Error] != 0} { .text insert end "no ${DIR}share/mova/Usage_koi.txt" } else { .text insert end "[read $fd]" set word " "}} button .button_upper.new -relief flat -background #22fafa -text "New Diary" -command { if { [catch {set DIARY [selection get]} error] != 0} { set word " " bell -displayof . .text insert 0.0 "Let us mark a name of diary by the mouse and then press this button.\n\n" } else { set DIARY .mova_$DIARY .button_upper.save configure -text "Rewrite \"$DIARY\"" .button_upper.add configure -text "Add to \"$DIARY\""}} button .button_upper.save -relief flat -background #22fafa -text "Rewrite \"$DIARY\"" -command { set fd [open "~/$DIARY" "w"] puts $fd [.text get 0.0 end] close $fd set a 0 foreach fil $Diaries {if {[string match $DIARY $fil] != 0} {set a 1}} if {$a == 0} { lappend Diaries $DIARY .button_upper.read.r add radiobutton -indicator 0 -label "$DIARY" -variable DIARY -value $DIARY -command {Fresh; PutDiary}}} button .button_upper.add -relief flat -background #22fafa -text "Add to \"$DIARY\"" -command { set fd [open "~/$DIARY" "a"] puts $fd [.text get 0.0 end] close $fd set a 0 foreach fil $Diaries {if {[string match $DIARY $fil] != 0} {set a 1}} if {$a == 0} { lappend Diaries $DIARY .button_upper.read.r add radiobutton -indicator 0 -label "$DIARY" -variable DIARY -value $DIARY -command {Fresh; PutDiary}}} set r .button_upper.read.r menubutton .button_upper.read -relief flat -background #22fafa -text "Read Diary" -underline 0 -menu $r menu $r foreach dia $Diaries {$r add radiobutton -indicator 0 -label "$dia" -variable DIARY -value $dia -command {Fresh; PutDiary}} frame .button_bottom button .button_bottom.mova -text " ^Word " -command {Mova {-W}; WordLight} button .button_bottom.mova_part -text " ^Symbols " -command {Mova {-B}; WordLight} button .button_bottom.mova_in_string -text " Tandem of Words " -command {Mova {-S}; WordLight} button .button_bottom.mova_part_in_string -text "Tandem of Symbols" -command {Mova {-T}; WordLight} pack .button_bottom -side bottom -fill x pack .button_upper -side top -fill x pack .entry -side top -fill x pack .button_upper.help .button_upper.dic .button_upper.new .button_upper.add .button_upper.save .button_upper.read -side left -expand yes -fill both pack .button_bottom.mova .button_bottom.mova_part .button_bottom.mova_in_string .button_bottom.mova_part_in_string -side left -expand yes -fill both pack .word -side left -expand yes -fill both Read_hash Mova $OPT WordLight bind all {destroy .} #End mova-4.0/usr/local/bin/mova_sendTK0100555000176200017620000000413507221425474015567 0ustar niddnidd#! /bin/sh #"mova_sendTK" - Tcl/TK script to send request for #open windows of Tcl/TK "MOVA" scripts. #ver. 4.0 (C) E.S.Cymbalyuk 1999. Under GNU GPL. No Warranty.\ exec wish "$0" "$@" #catch {encoding system identity} #catch {encoding system iso8859-1} catch {encoding system koi8-r} if {$argc <1 || [catch {set word [selection get]} error] != 0 } {puts "Let us mark a word by the mouse and then run:\n$argv0 OPTION\nWhere OPTION is \"-W\" or \"-B\" or \"-S\" or \"-T\". Let us run \"mova\" for explanation of OPTION.\n"} wm withdraw . proc SendToOpen {MOVA} { global argv if {[string first $MOVA [winfo interp]] != -1 } then {switch -- $argv -W {send -async $MOVA {Mova {-W}; WordLight} } -B {send -async $MOVA {Mova {-B}; WordLight} } -S {send -async $MOVA {Mova {-S}; WordLight} } -T {send -async $MOVA {Mova {-T}; WordLight} }}} #Muller Dictionary 7 Edition with transcription, GNU GPL; www.chat.ru/~mueller_dic or www.geocities.org/mueller_dic SendToOpen {tkMueller7GPL.koi} if {[string first tkMueller7GPL.koi [winfo interp]] == -1 } {exec movaTK $argv &} #Muller Dictionary 7 Edition with transcription and accent; www.chat.ru/~mueller_dic or www.geocities.org/mueller_dic SendToOpen {tkMueller7accentGPL.koi} #Muller Dictionary 24 Edition; www.chat.ru/~mueller_dic or www.geocities.org/mueller_dic SendToOpen {tkMueller24.koi} #Magus Dictionary; www.chat.ru/~transmagus_dic or www.geocities.org/magus_dic SendToOpen {tkApresyan.koi} #Computer Dictionary; www.chat.ru/~transmagus_dic or www.geocities.org/magus_dic SendToOpen {tkcomputer.koi} #Economy Dictionary; www.chat.ru/~transmagus_dic or www.geocities.org/magus_dic SendToOpen {tkeconomy.koi} #Muller Dictionary 7 Edition with transcription, GNU GPL; MultiTK SendToOpen {mtkMueller7GPL.koi} #Muller Dictionary 7 Edition with transcriptioni and accents, GNU GPL; MultiTK SendToOpen {mtkMueller7accentGPL.koi} #Muller Dictionary 24 Edition; MultiTK SendToOpen {mtkMueller24.koi} #Magus Dictionary; MultiTK SendToOpen {mtkApresyan.koi} #Computer Dictionary; MultiTK SendToOpen {mtkcomputer.koi} #Economy Dictionary; MultiTK SendToOpen {mtkeconomy.koi} exit mova-4.0/usr/local/bin/movaMTK0100555000176200017620000002657407221425440014677 0ustar niddnidd#! /bin/sh #This is script for management of dictionary. It works with bash script "mova". #ver. 4.0 (C) E.S.Cymbalyuk 1999. Under GNU GPL. No Warranty. #The latest versions see on www.chat.ru/~mueller_dic or www.geocities.org/mueller_dic\ exec wish "$0" "$@" #Default Directory for "share/mova/.movarc", if absent "~/.movarc" set DIR /usr/local/ set OPT -W set DIARY .mova global u set u 1.0 #catch {encoding system identity} #catch {encoding system iso8859-1} catch {encoding system koi8-r} switch $argc 0 {} 1 {set OPT_ARG [lindex $argv 0]} 2 { set OPT_ARG [lindex $argv 0] set DIC_ARG [lindex $argv 1] tk appname tk$DIC_ARG} 3 { set OPT_ARG [lindex $argv 0] set DIC_ARG [lindex $argv 1] set word [lindex $argv 2]} default { set argc 0 puts "You used excrescent parameters with movaTK."} catch {set OPT $OPT_ARG} proc GetOptions {} { global DIR DIC DIR_TMP DIC_ARG FONT_FIND FONT_TEXT FONT_D FONT_DG FONT_IPA if {([catch {set rcfile [open "~/.movarc_${DIC_ARG}" "r"]} Error] && [catch {set rcfile [open "${DIR}share/mova/.movarc_${DIC_ARG}" "r"]} Error] && [catch {set rcfile [open "~/.movarc" "r"]} Error] && [catch {set rcfile [open "${DIR}share/mova/.movarc" "r"]} Error]) != 0} { set FONT_FIND -*-*-bold-r-*-*-17-*-*-*-*-*-koi8-r set FONT_TEXT -*-*-medium-r-*-*-17-*-*-*-*-*-koi8-r set FONT_D -*-*-medium-o-*-*-17-*-*-*-*-*-koi8-r set FONT_DG -*-*-bold-o-*-*-17-*-*-*-*-*-koi8-r set FONT_IPA -*-silsophiaipa-*-r-*-17-*-*-*-*-*-*-* set DIR /usr/local/ set DIR_TMP /tmp/ set DIC Mueller7GPL.koi } else { gets $rcfile FONT_FIND gets $rcfile FONT_TEXT gets $rcfile FONT_D gets $rcfile FONT_DG gets $rcfile FONT_IPA gets $rcfile DIR gets $rcfile DIR_TMP gets $rcfile DIC close $rcfile} catch {set DIC $DIC_ARG} wm title . "$DIC MOVA-4.0 E.S.Cymbalyuk GPL" wm focusmodel . passive} proc WordLight_base {} { global word if {$word==""} {return} set w 1.0 while {[set w [.word search -count len -nocase -- $word $w end]]!=""} { .word tag add searched_word $w "$w + $len char" set w [.word index "$w +$len char"]}} proc WordLight {} { global word if {$word==""} {return} set a 1.0 set b 1.0 set c 1.0 set d 1.0 set e 1.0 set f 1.0 set g 1.0 while {[set a [.text search -count len -regexp {[a-zA-Z]+} $a end]]!=""} { .text tag add english_word $a "$a + $len char" set a [.text index "$a +$len char"]} while {[set g [.text search -count len -regexp {^.+ } $g end]]!=""} { .text tag add entry_word $g "$g + $len char" set g [.text index "$g +$len char"]} while {[set b [.text search -count len -nocase -- $word $b end]]!=""} { .text tag add searched_word $b "$b + $len char" set b [.text index "$b +$len char"]} while {[set d [.text search -count len -regexp {\_[^ ]+[\.:]} $d end]]!=""} { .text tag add duty_word $d "$d + $len char" set d [.text index "$d +$len char"]} while {[set e [.text search -count len -regexp {\_[a-zA-Z-]+[\.:]} $e end]]!=""} { .text tag add duty_grammar $e "$e + $len char" set e [.text index "$e +$len char"]} while {[set f [.text search {_} $f end]]!=""} { .text tag add underscore $f "$f +1 char" set f [.text index "$f +1 char"]} while {[set c [.text search -count len -regexp {\[[^\ ]+\]} $c end]]!=""} { .text tag add phonetic $c "$c + $len char" set c [.text index "$c +$len char"]}} proc Mova {arg} { global word argv0 DIC DIR if {[catch {set word [selection get]} error] != 0} { bell -displayof . puts "Let us mark a word by the mouse and then run:\n$argv0 OPT DICTIONARY\nWhere OPT is \"-W\" or \"-B\" or \"-S\" or \"-T\". DICTIONARY - name of dictionary (if the one was't set, you will use default dictionary from \"~/.movarc\"). Let us run \"mova\" for explanation of OPT.\n" } else { set word [string tolower [string trimleft $word " \"\(\{"]] .word insert 0.0 "$word\n\n" .word tag delete searched_word .word tag configure searched_word -foreground brown WordLight_base if {$word != ""} {exec ${DIR}bin/movaMTK $arg $DIC $word &}}} proc Call_hash_dic {arg hash_word} { global word index_length index_dic DIR DIC DIR_TMP set in [open "${DIR}share/dict/$DIC" "r"] set out [open "$DIR_TMP${DIC}M.tmp" "w"] seek $in $index_dic($hash_word) start fcopy $in $out -size $index_length($hash_word) if {[catch {set fd [open "|${DIR}bin/mova $arg $word -d $DIR_TMP${DIC}M.tmp" "r"]} error] != 0} { puts "Can't run ${DIR}bin/mova" .text insert 0.0 "Can't run ${DIR}bin/mova\n" } else { .text insert end "[read $fd]" close $fd} close $in close $out catch {file delete "$DIR_TMP${DIC}M.tmp"}} proc Call_dic {arg} { global word DIR DIC if {[catch {set fd [open "|${DIR}bin/mova $arg $word -d ${DIR}share/dict/$DIC" "r"]} error] != 0} { puts "Can't run ${DIR}bin/mova" .text insert 0.0 "Can't run ${DIR}bin/mova\n" } else { .text insert end "[read $fd]" close $fd}} proc Read_hash {} { global index_length index_dic DIC DIR if {[catch {set hash_file [open "${DIR}share/dict/$DIC.hash" "r"]} error] == 0} { set old_offset 0 while {[eof $hash_file]==0} { gets $hash_file line set hash_dic [string index $line 0][string index $line 1] set offset [string trimleft $line $hash_dic] set index_dic($hash_dic) $old_offset set index_length($hash_dic) [expr $offset - $old_offset] set old_offset $offset} close $hash_file}} proc Change_dic {} { global index_length index_dic FONT_FIND GetOptions .entry configure -font $FONT_FIND .word configure -font $FONT_FIND catch {unset index_dic} catch {unset index_length} Read_hash} proc PutDiary {} { global word DIARY if {[catch {set fd [open "~/$DIARY" "r"]} Error] != 0} { .text insert end "no ~/$DIARY" } else { .text delete 0.0 end .text insert end "[read $fd]" set word " " WordLight .button_upper.save configure -text "Rewrite \"$DIARY\"" .button_upper.add configure -text "Add to \"$DIARY\""}} GetOptions switch $argc 0 - 1 - 2 { entry .entry -background #fafa33 -state normal -width 30 -textvariable word -font $FONT_FIND bind .entry ".entry selection range 0 end; Mova {-W}" bind .entry ".entry selection range 0 end; Mova {-B}" bind .entry ".entry selection range 0 end; Mova {-S}" bind .entry ".entry selection range 0 end; Mova {-T}" text .word -state normal -width 30 -height 15 -wrap word -font $FONT_FIND .word tag delete searched_word .word tag configure searched_word -foreground brown WordLight_base frame .button button .button.mova -text "First Word" -command {Mova {-W}} button .button.mova_part -text "Beginning of First Word" -command {Mova {-B}} button .button.mova_in_string -text "Tandem of Words" -command {Mova {-S}} button .button.mova_part_in_string -text "Tandem of Symbols" -command {Mova {-T}} if {[catch {set fd [open "|/bin/ls -1 ${DIR}share/dict/" "r"]} error] != 0} { puts "Can't run /bin/ls" } else { set Files "[read $fd]" close $fd foreach files $Files {if {[ string match *.hash $files ] == 0} {lappend Dictionaries $files}}} frame .button_upper set m .button_upper.dic.m menubutton .button_upper.dic -relief flat -background #22fafa -text "Choose Dictionary" -underline 7 -menu $m menu $m foreach dic $Dictionaries {$m add radiobutton -indicator 0 -label "$dic" -variable DIC_ARG -value $dic -command {Change_dic}} pack .button_upper -side top -fill x pack .button_upper.dic -side left -expand yes -fill both pack .entry -side top -fill x pack .word -side left -fill y pack .button -side right -expand yes -fill both pack .button.mova .button.mova_part .button.mova_in_string .button.mova_part_in_string -side top -expand yes -fill both Read_hash Mova $OPT bind all {destroy .} } 3 { set Diaries {.mova} if {[catch {set fd [open "|/bin/ls -a -1 " "r"]} error] != 0} { puts "Can't run /bin/ls" } else { set Files "[read $fd]" close $fd foreach files $Files {if {[ string match .mova_* $files ] != 0} {lappend Diaries $files}}} text .text -background #fafafa -state normal -width 50 -height 20 -font $FONT_TEXT -yscrollcommand ".scroll.scroll set" frame .scroll scrollbar .scroll.scroll -width .4c -command ".text yview" button .scroll.bottom -relief raised -text "" -command { if {[catch {set wo [selection get]} error] != 0} {bell -displayof . } else {set word $wo} .text tag delete find_word if {[set u [.text search -count len -nocase -- $word $u ]]!=""} { .text tag add find_word $u "$u + $len char" set u [.text index "$u +$len char"] .text tag configure find_word -background yellow .text see $u}} button .scroll.top -relief raised -text "" -command { if {[catch {set wo [selection get]} error] != 0} {bell -displayof . } else {set word $wo} .text tag delete find_word if {[set u [.text search -backwards -count len -nocase -- $word $u ]]!=""} { .text tag add find_word $u "$u + $len char" .text tag configure find_word -background yellow .text see $u}} frame .button_upper button .button_upper.help -relief flat -background #22fafa -text "Help" -command { .text delete 0.0 end if {[catch {set fd [open "${DIR}share/mova/Usage_koi.txt" "r"]} Error] != 0} { .text insert end "no ${DIR}share/mova/Usage_koi.txt" } else { .text insert end "[read $fd]" set word " "}} button .button_upper.new -relief flat -background #22fafa -text "New Diary" -command { if {[catch {set DIARY [selection get]} error] != 0} {set word " " bell -displayof . .text insert 0.0 "Let us mark a name of diary by the mouse and then press this button.\n\n" } else { set DIARY .mova_$DIARY .button_upper.save configure -text "Rewrite \"$DIARY\"" .button_upper.add configure -text "Add to \"$DIARY\""}} button .button_upper.save -relief flat -background #22fafa -text "Rewrite \"$DIARY\"" -command { set fd [open "~/$DIARY" "w"] puts $fd [.text get 0.0 end] close $fd set a 0 foreach fil $Diaries {if {[string match $DIARY $fil] != 0} {set a 1}} if {$a == 0} { lappend Diaries $DIARY .button_upper.read.r add radiobutton -indicator 0 -label "$DIARY" -variable DIARY -value $DIARY -command {PutDiary}}} button .button_upper.add -relief flat -background #22fafa -text "Add to \"$DIARY\"" -command { set fd [open "~/$DIARY" "a"] puts $fd [.text get 0.0 end] close $fd set a 0 foreach fil $Diaries {if {[string match $DIARY $fil] != 0} {set a 1}} if {$a == 0} { lappend Diaries $DIARY .button_upper.read.r add radiobutton -indicator 0 -label "$DIARY" -variable DIARY -value $DIARY -command {PutDiary}}} set r .button_upper.read.r menubutton .button_upper.read -relief flat -background #22fafa -text "Read Diary" -underline 0 -menu $r menu $r foreach dia $Diaries {$r add radiobutton -indicator 0 -label "$dia" -variable DIARY -value $dia -command {PutDiary}} pack .button_upper -side top -fill x pack .button_upper.help .button_upper.new .button_upper.add .button_upper.save .button_upper.read -side left -expand yes -fill both pack .scroll.top -side top -fill y -expand no pack .scroll.scroll -side top -fill both -expand yes pack .scroll.bottom -side top -fill y -expand no pack .text -side left -fill x -expand yes pack .scroll -side left -fill y -expand no .text tag configure english_word -foreground blue .text tag configure entry_word -font $FONT_FIND -foreground blue .text tag configure duty_word -font $FONT_D -foreground darkgreen .text tag configure duty_grammar -font $FONT_DG .text tag configure searched_word -foreground brown .text tag configure phonetic -font $FONT_IPA -foreground red .text tag configure underscore -foreground white set hash_word [string index $word 0][string index $word 1] if {([catch {set offset_dic $index_dic($hash_word)} error] != 0) || [string match $arg "-S"] || [string match $arg "-T"]} { Call_dic $OPT} if {([catch {set offset_dic $index_dic($hash_word)} error] == 0) && ([string match $arg "-W"] || [string match $arg "-B"])} { Call_hash_dic $OPT $hash_word} WordLight focus .scroll.scroll bind all {destroy .}} #End mova-4.0/usr/local/share/0040755000176200017620000000000007234345416013764 5ustar niddniddmova-4.0/usr/local/share/mova/0040755000176200017620000000000007234407361014724 5ustar niddniddmova-4.0/usr/local/share/mova/Usage_koi.txt0100644000176200017620000000371707210457636017404 0ustar niddniddВыйти из программы можно нажав "Esc" Отметьте мышкой часть слова, слово или словосочетание в любом месте десктопа. После этого нажмите клавишу в нижнем ряду: "^Word" - будет искать в словаре словарную статью начинающуюся на отмеченное слово (или первое слово из выделенной последовательности) "^Symbols" - будет искать статью начинающуюся на выделенные символы "Tandem of Words" - будет искать в словаре статью содержащую выделенное сочетание слов "Tandem of Symbols" - будет искать в словаре статью содержащую выделенные символы Для поиска в словаре без мышки: Введите строчку для поиска в верхней желтой строчке ввода. При нажатии Enter запустится поиск - как при нажатии "^Word"; Shift-Enter как для "^Symbols" Ctrl-Enter как для "Tandem of Words" Alt-Enter как для "Tandem of Symbols" Переключение между окнами производится нажатием Ctrl-Tab Над и под скролбаром находятся квадратные кнопочки - с их помощью можно искать выделенное мышкой слово в уже выведенной словарной статье Кнопки в верхней голубой полоске: "Help" - выводит этот Help "Dictionary" - выбор активного словаря. Открыть меню можно щелчком мышки или нажатием Alt-d "New Diary" - при нажатии на эту клавишу слово отмеченное мышкой становится именем текущего Diary файла "Add to Diary" - добавляет содержимое окна вывода словарной статьи в конец текущего файла Diary "Rewrite Diary" - сохраняет текст в окне вывода словарной статьи в текущем файле Diary (по умолчанию это ".mova") в домашнем каталоге пользователя. Предыдущее содержимое этого файла будет уничтожено "Read Diary" - можно выбрать Diary для вывода в окно. Открыть меню можно щелчком мышки или нажатием Alt-r Дополнительные инструкции смотрите в файле Readme_mova.txt или Readme_mova_koi.txt или man(1) страницах для mova, movaTK, movaMTK Последнии версии MOVA и словарей можно найти на www.chat.ru/~mueller_dic или www.geocities.com/mueller_dic Замечания, предложения и найденные в словарях ошибки посылайте Евгению Цымбалюку на mueller_dic@koi.chat.ru mova-4.0/usr/local/share/mova/Readme_mova.txt0100444000176200017620000002452107221533322017674 0ustar niddnidd "MOVA" - Scripts for Work with Dictionary in "MOVA" format "MOVA" scripts are under the GNU GPL. "MOVA" scripts use standard UNIX utilities: grep, sed, fmt. Also groff, less are used for console work. These utilities search the plain-text file of the dictionary and place output lines in GUI. Some advantages of this approach are: 1) the ability to search for collocations in the dictionary, ignoring case distinctions in both the dictionary and the input pattern 2) simple updating and debugging of program 3) fast operation. The only major time consumiption results from slow loading of the dictionary file from hard disk into memory and slow graphic interfacing. Important remarks. Pay attention to the size of your RAM: if there is enough memory (for example, 64 MB under the fvwm2), repeated calls of the dictionary are much faster than the first. It's possible for remaining dictionary text in the disk cash memory to become accessible for use if needed (excluding slow copying of the dictionary from the hard disk into memory). If RAM is 32 MB (without hashing), work is impossible (RAM pages are quickly superseded on disk by other programs - thus each new start of a search includes reading the dictionary from the hard disk, resulting in a 1-2 second delay. Moreover, if swapping begins to work waiting time becomes much more)., Now MOVA uses hashing (or indexing) for the first two letters of word entries. This mechanism works for searching with "-W"/"-B" options. The name of the hashing file consists of the name of the dictionary used, and ".hash" at the end. The advantage of these trick comes from more rapid loading in RAM of a file or of part of a file. Searching and formatting of lines is mainly performed by bash script mova. To the command line of the script may be added options for searching for a word or sequence of words. Depending on the options given in the command line it will search for a word from the beginning of the dictionary entries (option "-W"), the first part of the word from the beginning of the dictionary entries (option "-B"), the sequence of words inside the dictionary entries (option "-S", it is possible to use as in a Russian-English dictionary), the sequence of symbols (including blanks) in the dictionary (option "-T"). Then, the found lines are passed through the sed filter, which adds to each entry an empty line and formats variants of the meaning of the word. You may use mova in consol with analogous options (-w, -b, -s, -t). In this case it will be added groff and less filters to the script output. See screenshot [screen0.jpeg] . Usually, mova isn't used independently, and is called in XWindows from Tcl/Tk scripts - movaTK, see screenshot [screen1.jpeg] movaMTK uses another method of output of information on GUI (it's more convenient if necessary to leave translated earlier words on the screen, though usually search works more slowly). See screenshot [screen2.jpeg] Tcl/Tk scripts paint in red the phonetic transcription symbols and substitute the IPA font in square brackets. All English words appear in blue. Searched words or symbols are marked in blue. The functional label is marked by italic font and green colour (and bold font for grammatic designation). A word entry before two blank symbols is substituted with FONT_FIND font (besides, this font is used in the text entry in the upper yellow strip and for marking words in the grey window of your searching history). Exit from movaTK and movaMTK is "Esc"-button. There are square buttons upper and under scrollbar for searching in output entry. For work with "MOVA" scripts, a word or text blocked out with the "mouse" (the space symbols do not interfere with the scripts). Then from xterm or by built-in button (for "fvwm2" edit the file .fvwm2rc in home directory) is started the respective Tcl/Tk script. For example: DestroyMenu "Utilities" AddToMenu "Utilities@utilities-menu.xpm@^white^" + "Mueller7%mova_32x22.xpm%" Exec movaTK -W Mueller7GPL.koi & + "Mueller7 M%mova_32x32.xpm%" Exec movaMTK -W Mueller7GPL.koi & You may use scripts without a mouse. Input a word/string by hand in the yellow field. Searching with option "-W" will start with the "Enter" key; "-B" - "Shift-Enter"; "-S" - "Ctrl-Enter"; and "-T" - "Alt-Enter". One more important manager script is: mova_sendTK. By using this script it is possible to send request for a translation in already open windows of "MOVA" (with various dictionaries). If an open window movaTK with Mueller7GPL.koi is not present, a new movaTK with Mueller7GPL.koi will be started. It is necessary to use command line options similar to movaTK and mova. If you want to have an opportunity for starting a search in the dictionary from any program on your desktop with keyboard shortcuts, add in yours .fvwm2rc lines: #Keys for Mueller's dictionary Key z A M Exec mova_sendTK -W & Key ÷ A M Exec mova_sendTK -W & Key x A M Exec mova_sendTK -B & Key y A M Exec mova_sendTK -B & Key a A M Exec mova_sendTK -S & Key o A M Exec mova_sendTK -S & Key s A M Exec mova_sendTK -T & Key u A M Exec mova_sendTK -T & After restarting the X-server you have an opportunity to search for blocked-out words in movaTK by pressing Alt-a (for search with an option -S), Alt-s (for search with an option -T), Alt-z (for search with an option -W), Alt-x (for search with an option -B). If the keyboard is in the koi8-r keyboard map, the appropriate keys will work also. Besides, these keys with Alt will work someplace in the GUI and from windows of the majority of programs. Sometimes, "wish" does not want to send data into an already open program on the GUI and says, that you have problems with privacy. Try to execute: xauth add :0 . `mcookie` And then add in ".xserverrc" exec X :0 -bpp 16 -auth ~/.Xauthority and restart X-server Dictionaries, scripts, tuning files and README placed according to FHS (File Hierarchy Standard) - in /share/dict/, /share/mova/, /share/doc/mova/. There is point of bind these directories (it is DIR=/usr/local/ in script body). You may change this "point of bind" in tuning files - .movarc EIE .movarc_DICTIONARY in home directory or in DIR/share/mova/ or in body of script (in absence of tuning files). For installation of "MOVA", copy the compressed file in the root directory "/" and execute the commands: tar -xzf Mueller7GPL.tgz tar -xzf script_mova.tgz If you want to see a phonetic transcription, it is necessary to register Sil-IPA fonts in XF86Config: FontPath "/usr/X11R6/lib/fonts/sil_ipa/" FontPath "/usr/X11R6/lib/fonts/misc/" FontPath "/usr/X11R6/lib/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/fonts/100dpi/:unscaled" The original site (http://www.sil.org/computing/fonts/encore-ipa.html) Sil-IPA fonts has a set of TrueType fonts. These fonts are distributed under special Free license and it's necessary to contact authors for commercial usage. Setups of fonts and current dictionaries set in the beginning of Tcl/Tk scripts: in "movaTK" and "movaMTK": set FONT_FIND -*-*-bold-r-*-*-17-*-*-*-*-*-koi8-r set FONT_TEXT -*-*-medium-r-*-*-17-*-*-*-*-*-koi8-r set FONT_D -*-*-medium-o-*-*-17-*-*-*-*-*-koi8-r set FONT_DG -*-*-bold-o-*-*-17-*-*-*-*-*-koi8-r set FONT_IPA -*-silsophiaipa-*-r-*-17-*-*-*-*-*-*-* set DIR /usr/local/ set DIR_TMP /tmp/ set DIC Mueller7GPL.koi You may use ".movarc" in user's home directory for total dictionary setup. If you run mova or movaMTK/movaTK without the dictionary name in the command line, the default dictionary --- from DIC will be used . For example, such ".movarc": -*-*-bold-r-*-*-20-*-*-*-*-*-*-koi8-r -*-*-medium-r-*-*-20-*-*-*-*-*-koi8-r -*-*-medium-o-*-*-20-*-*-*-*-*-koi8-r -*-*-bold-o-*-*-21-*-*-*-*-*-koi8-r -*-silsophiaipa-*-r-*-20-*-*-*-p-*-*-* /usr/local/ /tmp/ Mueller7GPL.koi You may use ".movarc_DICTIONARY" (where DICTIONARY is the file name of the dictionary) for individual dictionary setup. For using simple European dictionaries (without comment and example, only some word and its translation to Russian) substitute appropriate fonts for FONT_FIND and FONT_TEXT. For example, such ".movarc_DICT": -*-*-bold-r-*-*-20-*-*-*-*-*-*-1 -*-*-medium-r-*-*-20-*-*-*-*-*-koi8-r -*-*-medium-o-*-*-20-*-*-*-*-*-koi8-r -*-*-bold-o-*-*-21-*-*-*-*-*-koi8-r -*-silsophiaipa-*-r-*-20-*-*-*-p-*-*-* /usr/local/ /tmp/ You can see some buttons in the upper blue line: Help - flashes short Russian help. Dictionary - choose work dictionary from menu. Open the menu with mouse or Alt-d from keyboard. New Diary - a word blocked out by mouse becomes the name of a current Diary file. Add to Diary - adds the content of the text window to the end of the current Diary file. Rewrite Diary - save content of the text window to current Diary file in home catalog (this is .mova by default). Preceding content of Diary file will be lost. Read Diary - choose work Diary from menu. Open the menu with mouse or Alt-r from keyboard. You can see icons for MOVA in DIR/share/mova/icons/. Put them in the corresponded directory for you windows manager. mova_22x15.xpm; mova_32_22.xpm; mova_48x32 - for one-windowed MOVA, and mova_22x22.xpm; mova_32_32.xpm; mova_48x48 - for multi-windowed MOVA. See screenshot [screen3.jpeg] You may download last version (ver. 4.0) of scripts from www.chat.ru/~mueller_dic/script_mova.tgz or www.geocities.com/mueller_dic/script_mova.tgz. 20.7.99 Dmitry Mishchenko warns of FreeBSD users, that "fmt" has different options. You must change into "mova" file: "fmt -s -w 45" on "fmt 45". 6.10.99 Igor Gots offers to save to some special log file all translated words in any given day. To that end, change in mova file the follow line: &/g'|fmt -s -w 45;} on &/g'|fmt -s -w 45|tee -a /tmp/Mueller.`date|sed 's/[ ].*//g'`.log;} Don't forget to delete old logs every week :-) Please, send notes and suggestions to Eugene Cymbalyuk by e-mail: mueller_dic@koi.chat.ru. mova-4.0/usr/local/share/mova/Readme_mova_koi.txt0100444000176200017620000002710507221533701020540 0ustar niddnidd "MOVA" --- скрипты для работы со словарями в формате "MOVA" Предлагаемые скрипты используйте на условиях GNU GPL. Скрипты используют стандартные утилиты UNIX - grep, sed, fmt, а для работы в консоли еще и groff, less. Они проводят поиск в текстовом файле и выводят найденные строчки в графическую оболочку. Плюсы такого механизма работы: 1) возможность поиска в словаре по словосочетаниям и без учета регистра (и не только по первому слову) 2) простота программы, легкость ее модификации и отладки 3) большая скорость работы (основные задержки приходятся на загрузку словарного файла в оперативную память с жесткого диска и при работе графического интерфейса) Обратите внимание на размер оперативной памяти: если памяти достаточно (например, 64 Mb при использовании fvwm2), то повторные вызовы словаря намного быстрее первого, так как текст словаря остается в дисковом кэше и сразу становится доступными по мере надобности (исключается медленное копирование словаря с жесткого диска в оперативную память). Но работа при 32 Mb (при поиске без хеширования) практически невозможна (так как страницы со словарем быстро вытесняются на диск из оперативной памяти - при этом каждый новый запуск поиска включает чтение словаря с жесткого диска, что приводит к 1-2 с ожидания результата, но если начинает работать swap (при работе поиска), то время ожидания становится намного больше). Сейчас movaTK и movaMTK использует хеширование при поиске слов сначала словарной статьи (опции -W и -B), это позволяет пользоваться словарем (с данными опциями) при меньших размерах ОЗУ. Словари отхешированы по первым двум буквам словарной статьи и хранятся в файле с названием словаря и добавлением к его названию слова ".hash". Цифра идущая за двухбуквенным сочетанием в строчке из файла хеша означает порядковый номер байта на котором кончается блок в котором все словарные статьи начинаются с данного двубуквенного сочетания. Если запросить поиск слова для которого нет хешированного двубуквенного начала, то включается обычный поиск (без использования хеша). К сожалению, маленький (а иначе индексирование не дает выигрыша) индексный файл получается при индексировании по ограниченному числу слов. Если же нужно иметь возможность поиска по всем словам словарной статьи (и, особенно, словосочетаниям), то хеширование не дает никакого выигрыша IMHO. Основная работа по поиску строк и форматированию выполняется bash скриптом - mova . В коммандной строке скрипту можно задать опции поиска, слово или последовательность слов для поиска и, в конце, полный путь к файлу словаря, в котором производится поиск. При этом, он будет искать слово сначала словарной строки (опция "-W"), первую часть слова сначала словарной строки (опция "-B"), последовательность слов внутри словарной строки (опция "-S", можно использовать как русско-английский словарь), последовательность символов (включая пробелы) внутри словарной строки (опция "-T"). Затем найденные строки пропускаются через sed фильтр, который добавляет к каждой словарной статье пустую строчку и форматирование по вариантам значения слова. В консоли лучше использовать аналогичные опции со строчными буквами (при этом подключается groff и less фильтры, а невидимые в koi8-r символы транскрипции перекодируются в видимые) см. screenshot [screen0.jpeg] . Обычно, mova в X-ах не используется самостоятельно, а вызывается из Tcl/Tk скриптов - movaTK, см. screenshot [screen1.jpeg] movaMTK использует другой способ вывода информации в окна (он удобнее, если нужно оставить на экране перевод ранее найденых слов, хотя работает медленнее). См. screenshot [screen2.jpeg] movaTK и movaMTK раскрашивают в красный цвет транскрипцию и подставляют соответствующий фонт для символов между квадратными скобками. Голубым отмечаются английские слова, зеленым и наклонным шрифтом - служебные (грамматические еще выделяется жирным шрифтом). Слово или буквы поиска выделяются коричневым цветом. Часть словарной статьи до двух пробелов выделяется шрифтом FONT_FIND (этот же шрифт используется в желтой строчке ввода и для выделения слова в сером окне истории поиска). Выйти из movaTK и movaMTK можно нажав "Esc" Над и под скролбаром находятся квадратные кнопочки - с их помощью можно искать выделенное мышкой слово в уже выведенной словарной статье. Напомню, как работают с этими оболочками. Слово или слова выделяются мышкой (при этом лишние пробелы не мешают). Затем из xterm или встроенной кнопкой (для fvwm2 отредактируйте файл .fvwm2rc в своей директории) запускается соответственный Tcl/Tk скрипт. Например, так DestroyMenu "Utilities" AddToMenu "Utilities@utilities-menu.xpm@^white^" + "Mueller7%mova_32x22.xpm%" Exec movaTK -W Mueller7GPL.koi& + "Mueller7 M%mova_32x32.xpm%" Exec movaMTK -W Mueller7GPL.koi& Оболочками можно пользоваться и без мышки. Для этого введите слово для перевода вручную в верхней (желтой) строке. При этом поиск с опцией "-W" запускается нажатием клавиши "Enter"; "-B" - "Shift-Enter"; "-S" - "Ctrl-Enter"; а "-T" - "Alt-Enter". Еще один важный управляющий скрипт: mova_sendTK. С его помощью можно послать выделенную мышкой строчку на перевод в первое открытое окно movaTK для каждого словаря. Если открытого окна movaTK для Mueller7GPL.koi нет, то будет запущена новая movaTK для этого словаря. Запускать mova_sendTK нужно с опциями для поиска, аналогичными для movaTK и mova. Если Вы хотите иметь возможность запускать поиск в словаре из любой программы на десктопе нажатием клавиш на клавиатуре, то добавьте в Ваш .fvwm2rc следующие строчки: # Now some keyboard shortcuts. #Keys for Mueller's dictionary Key z A M Exec mova_sendTK -W & Key В A M Exec mova_sendTK -W & Key x A M Exec mova_sendTK -B & Key Ъ A M Exec mova_sendTK -B & Key a A M Exec mova_sendTK -S & Key Т A M Exec mova_sendTK -S & Key s A M Exec mova_sendTK -T & Key Ш A M Exec mova_sendTK -T & После перезапуска X-ов Вы получите возможность вызывать поиск выделенного мышкой слова в movaTK нажатием Alt-a (для поиска с опцией -S), Alt-s (для поиска с опцией -T), Alt-z (для поиска с опцией -W), Alt-x (для поиска с опцией -B). Если клавиатура будет в koi8-r кодировке, то соответствующие клавиши будут работать также. Причем клавиши с Alt будут работать в любом месте десктопа и из окон большинства программ. Если запущенного movaTK нет, то нажатие этих клавиш запустит новый movaTK. Сечас mova_sendTK посылает указание переводить выделенное слово/слова извесным мне словарям (доступным в Интернете в формате "MOVA"). Список словарей для запуска находится в теле скрипта. Иногда, wish не хочет посылать данные в уже открытую программу и говорит, что у него проблемы с секретностью. Попробуйте выполнить xauth add :0 . `mcookie` и затем добавьте в персональный .xserverrc exec X :0 -auth ~/.Xauthority и перезапустите X-ы Словари, скрипты, настроечные файлы и описания размещаются согласно FHS (File Hierarchy Standard) - в /share/dict/, /share/mova/, /share/doc/mova/. При этом существует точка привязки всех используемых директорий (внутри скриптов это переменная DIR=/usr/local/). Точку привязки можно изменить в настроечных файлах - .movarc" или .movarc_СЛОВАРЬ помещенных в домашнем каталоге или в DIR/share/mova/ или теле скрипта (при отсутствии настроечных файлов). Для инсталяции пакета скопируйте запакованный файл в корневую директорию "/" и выполните команды: tar -xzf Mueller7GPL.tgz tar -xzf script_mova.tgz Для словарей с транскрипцией нужно добавить Sil-IPA шрифты в XF86Config: FontPath "/usr/X11R6/lib/fonts/sil_ipa/" Родной сайт (http://www.sil.org/computing/fonts/encore-ipa.html) Sil-IPA шрифтов имеет еще и набор TrueType фонтов. Данные фонты распространяются под особой Free лицензией и для коммерческого использования нужно договариваться с авторами фонтов отдельно. Все установки шрифтов и используемый по умолчанию словарь меняются в начале файла Tcl/Tk скриптов: в movaTK и movaMTK: set FONT_FIND -*-*-bold-r-*-*-17-*-*-*-*-*-koi8-r set FONT_TEXT -*-*-medium-r-*-*-17-*-*-*-*-*-koi8-r set FONT_D -*-*-medium-o-*-*-17-*-*-*-*-*-koi8-r set FONT_DG -*-*-bold-o-*-*-17-*-*-*-*-*-koi8-r set FONT_IPA -*-silsophiaipa-*-r-*-17-*-*-*-*-*-*-* set DIR /usr/local/ set DIR_TMP /tmp/ set DIC Mueller7GPL.koi Можно также сделать отдельный файл настроек в домашнем каталоге с названием ".movarc", тогда будут считываться установки из этого файла. Если при запуске mova или movaTK/movaMTK в коммандной строке не указано название словаря, то по умолчанию будет запускаться поиск в словаре с именем DIC. Пример соответствующего ".movarc", -*-*-bold-r-*-*-20-*-*-*-*-*-*-koi8-r -*-*-medium-r-*-*-20-*-*-*-*-*-koi8-r -*-*-medium-o-*-*-20-*-*-*-*-*-koi8-r -*-*-bold-o-*-*-21-*-*-*-*-*-koi8-r -*-silsophiaipa-*-r-*-20-*-*-*-p-*-*-* /usr/local/ /tmp/ Mueller7GPL.koi Для индивидуальной настройки словарей, скажем для словарей европейских языков в ".movarc_СЛОВАРЬ" (где СЛОВАРЬ - имя файла словаря) нужно выставить подходящие фонты для FONT_FIND. Пример соответствующего ".movarc__СЛОВАРЬ", -*-*-bold-r-*-*-20-*-*-*-*-*-*-1 -*-*-medium-r-*-*-20-*-*-*-*-*-koi8-r -*-*-medium-o-*-*-20-*-*-*-*-*-koi8-r -*-*-bold-o-*-*-21-*-*-*-*-*-koi8-r -*-silsophiaipa-*-r-*-20-*-*-*-p-*-*-* /usr/local/ /tmp/ И ".movarc" и ".movarc__СЛОВАРЬ" можно положить в директорию с настройками всего пакета - DIR/share/mova/. Они будут использоваться при отсутствии соответствующих файлов в домашней директории. В самой верхней голубой строчке находятся кнопки: Help - при нажатии выведится русский текст с краткой инструкцией по использованию оболочек. Dictionary - выбор активного словаря. Открыть меню можно щелчком мышки или нажатием Alt-d New Diary - при нажатии на эту клавишу слово отмеченное мышкой становится именем текущего Diary файла. Add to Diary - добавляет содержимое окна вывода словарной статьи в конец текущего файла Diary. Rewrite Diary - сохраняет текст в окне вывода словарной статьи в текущем файле Diary (по умолчанию это .mova) в домашнем каталоге пользователя. Предыдущее содержимое этого файла будет уничтожено. Read Diary - можно выбрать Diary для вывода в окно. Открыть меню можно щелчком мышки или нажатием Alt-r В директории DIR/share/mova/icons/ находятся иконки, специально сделанные для данного пакета, поместите их в директорию используемую windows manager для хранения иконок. mova_22x15.xpm; mova_32_22.xpm; mova_48x32 - для movaTK, а mova_22x22.xpm; mova_32_32.xpm; mova_48x48 - для movaMTK. См. screenshot [screen3.jpeg] Вы можете скачать последнию версию (версия 4.0) скриптов на www.chat.ru/~mueller_dic/script_mova.tgz или www.geocities.com/mueller_dic/script_mova.tgz. 20.7.99 Дмитрий Мищенко предупреждает пользователей FreeBSD, что команда fmt имеет в ней другие ключи (изменения должны быть внесены в mova: "fmt -s -w 45" нужно заменить на "fmt 45". 6.10.99 Игорь Готс предлагает возможность сохранения всех переведенных за день слов в специальном log файле. Для этого в файле mova замените: &/g'|fmt -s -w 45;} на &/g'|fmt -s -w 45|tee -a /tmp/Mueller.`date|sed 's/[ ].*//g'`.log;} Не забудьте вычищать старые логи каждую неделю :-) Все вопросы, замечания и предложения присылайте Евгению Цымбалюку на mueller_dic@koi.chat.ru mova-4.0/usr/local/share/mova/.movarc0100644000176200017620000000154407211303642016205 0ustar niddnidd-*-*-bold-r-*-*-20-*-*-*-*-*-koi8-r -*-*-medium-r-*-*-20-*-*-*-*-*-koi8-r -*-*-medium-o-*-*-20-*-*-*-*-*-koi8-r -*-*-bold-o-*-*-20-*-*-*-*-*-koi8-r -*-silsophiaipa-*-r-*-21-*-*-*-*-*-*-* /usr/local/ /tmp/ Mueller7GPL.koi Настроечный файл для MOVA скриптов. Важна последовательность строк. В первой строке указан фонт для желтой строчки ввода и серого окна истории поисков, им также показаны слова до двух пробелов в словарной статье. Во второй - фонт для окна вывода словарной статьи. В третей - фонт для русских служебных слов. В четвертой - фонт для английских (грамматика) служебных слов. В пятой - фонетический фонт. В шестой - путь от которого начинаются директории используемые пакетом ("bin/"; "share/mova/" и "share/dict"). В седьмой - директория для записи tmp файлов. В восьмой - имя словаря используемого по умолчанию. Используется только в файле .movarc mova-4.0/usr/local/share/mova/GPL_License0100444000176200017620000004253207041656112016730 0ustar niddniddGNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: * a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. * b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. * c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: * a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. mova-4.0/usr/local/share/mova/icons/0040755000176200017620000000000007234407361016037 5ustar niddniddmova-4.0/usr/local/share/mova/icons/mova_22x15.xpm0100444000176200017620000000100407115772053020357 0ustar niddnidd/* XPM */ static char*mova_22x15[]={ "22 15 5 1", ". c #808000", "c c #000000", "a c #ffff00", "# c #0000ff", "b c #ff0000", "......................", ".####################.", ".##a###a#aaa#a#a##a##.", ".##aa#aa#a#a#a#a#aaa#.", ".##aaaaa#a#a#a#a#a#a#.", ".##a#a#a#a#a#aaa#aaa#.", ".##a###a#aaa##a##a#a#.", ".####################.", ".aaaaaaaaaaaaaaaaaaaa.", ".aa#aaaabbbbaaaacccaa.", ".aa#aaaaaaaabaaacacaa.", ".aa#aaaaabbbbaaaaccaa.", ".aa###aaabaabaaccacaa.", ".aaaaaaaaabbaaaaaaaaa.", "......................"}; mova-4.0/usr/local/share/mova/icons/mova_22x22.xpm0100444000176200017620000000130607115772023020357 0ustar niddnidd/* XPM */ static char*mova_22x22[]={ "22 22 6 1", "# c #808000", "d c #000000", "b c #ffff00", "a c #0000ff", ". c None", "c c #ff0000", "..###################a", "..#aaaaaaaaaaaaaaaaaaa", "..#abaaababbbababaabaa", "..#abbabbabababababbba", "..#abbbbbababababababa", "..#ababababababbbabbba", "..#abaaababbbaabaababa", "..#aaaaaaaaaaaaaaaaaaa", "..#bbbbbbbbbbbbbbbbbb#", "###bbabbbccccbbbdddbb#", "#b#bbabbbbbbbcbbdbdbb#", "#b#bbabbbbccccbbbddbb#", "#b#bbaaabbcbbcbddbdbb#", "#b#bbbbbbbbccbbbbbbbb#", "#b####################", "#bbbbbbbbbbbbbbbbb#...", "#bbabbbabaaabababb#...", "#bbaabaabbabbababb#...", "#bbabababbabbaabbb#...", "#bbabbbabbabbababb#...", "#bbbbbbbbbbbbbbbbb#...", "###################..."}; mova-4.0/usr/local/share/mova/icons/mova_32x22.xpm0100444000176200017620000000162607115725555020375 0ustar niddnidd/* XPM */ static char*mova_32x22[]={ "32 22 5 1", "a c #808000", "b c #000000", "# c #ffff00", ". c #0000ff", "c c #ff0000", "................................", "................................", ".#.......#..####..##..##...##...", ".##.....##.##..##.##..##..####..", ".###...###.##..##.##..##..#..#..", ".##.#.#.##.##..##.##..##.##..##.", ".##.###.##.##..##..#..#..######.", ".##..#..##.##..##..####..##..##.", ".##.....##..####....##...##..##.", "................................", "................................", "a##############################a", "a##############################a", "a####.#################bbbb####a", "a####.########cccc#####b##b####a", "a####.#######c####c####b##b####a", "a####.############c####bbbb####a", "a####.#######cccccc######bb####a", "a####.##.####c####c#####b#b####a", "a####....#####cccc####bb##b####a", "a##############################a", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}; mova-4.0/usr/local/share/mova/icons/mova_32x32.xpm0100444000176200017620000000241207115771562020367 0ustar niddnidd/* XPM */ static char*mova_32x32[]={ "32 32 6 1", "# c #808000", "c c #000000", "b c #ffff00", "a c #0000ff", ". c None", "d c #ff0000", "...#############################", "...#aaaaaaaaaaaaaaaaaaaaaaaaaaa#", "...#abaaaaabaabbbaabaaabaaabaaa#", "...#abbaaabbabbabbabbabbaabbbaa#", "...#abbbabbbabbabbabbabbaababaa#", "...#abbababbabaaababbabbabbabba#", "...#abbaaabbabbabbabbabbabaaaba#", "...#abbaaabbabbabbaabbbaabbbbba#", "...#abbaaabbaabbbaaaabaaabbabba#", "...#aaaaaaaaaaaaaaaaaaaaaaaaaaa#", "...#bbbbbbbbbbbbbbbbbbbbbbbbbbb#", "...#bbbabbbbbbbbbbbbbbbbccccbbb#", "####bbbabbbbbbbddddbbbbbcbbcbbb#", "#bb#bbbabbbbbbdbbbbdbbbbcbbcbbb#", "#bb#bbbabbbbbbbbbbbdbbbbccccbbb#", "#bb#bbbabbbbbbddddddbbbbbbccbbb#", "#bb#bbbabbabbbdbbbbdbbbbbcbcbbb#", "#bb#bbbaaaabbbbddddbbbbccbbcbbb#", "#bb#bbbbbbbbbbbbbbbbbbbbbbbbbbb#", "#bb#############################", "#bbbbbbbbbbbbbbbbbbbbbbbbbb#....", "#bbbbbbbbbbbbbbbbbbbbbbbbbb#....", "#bbbabbbbbabbaaaaabbabbabbb#....", "#bbbaabbbaabbbbabbbbabbabbb#....", "#bbbababababbbbabbbbababbbb#....", "#bbbabbabbabbbbabbbbaabbbbb#....", "#bbbabbbbbabbbbabbbbababbbb#....", "#bbbabbbbbabbbbabbbbabbabbb#....", "#bbbabbbbbabbbbabbbbabbabbb#....", "#bbbbbbbbbbbbbbbbbbbbbbbbbb#....", "#bbbbbbbbbbbbbbbbbbbbbbbbbb#....", "############################...."}; mova-4.0/usr/local/share/mova/icons/mova_48x32.xpm0100444000176200017620000000337607115771423020404 0ustar niddnidd/* XPM */ static char*mova_48x32[]={ "48 32 5 1", ". c #808000", "b c #000000", "a c #ffff00", "# c #0000ff", "c c #ff0000", "................................................", ".##############################################.", ".##############################################.", ".##aa########aa####aaaa####aa####aa#####aa#####.", ".##aaa######aaa###aa##aa###aa####aa####aaaa####.", ".##aaaa####aaaa###aa##aa###aa####aa###aa##aa###.", ".##aa#a####a#aa##aa####aa##aa####aa###a####a###.", ".##aa#a####a#aa##aa####aa##aa####aa##aa####aa##.", ".##aa#aa##aa#aa##aa####aa##aa####aa##aa####aa##.", ".##aa##a##a##aa##aa####aa###a####a###aa####aa##.", ".##aa##a##a##aa###aa##aa####aa##aa###aaaaaaaa##.", ".##aa##aaaa##aa###aa##aa#####aaaa####aa####aa##.", ".##aa###aa###aa####aaaa#######aa#####aa####aa##.", ".##############################################.", ".##############################################.", ".##############################################.", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.", ".aaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaa.", ".aaaaaa##aaaaaaaaaaaaaccccaaaaaaaabbaaabbaaaaaa.", ".aaaaaa##aaaaaaaaaaaaccaaccaaaaaaabbaaabbaaaaaa.", ".aaaaaa##aaaaaaaaaaaccaaaaccaaaaaabbaaabbaaaaaa.", ".aaaaaa##aaaaaaaaaaaaaaaaaacaaaaaabbaaabbaaaaaa.", ".aaaaaa##aaaaaaaaaaaccccccccaaaaaaabbbbbbaaaaaa.", ".aaaaaa##aaaaaaaaaaacaaaaaacaaaaaaaaaabbbaaaaaa.", ".aaaaaa##aaaa#aaaaaaccaaaaccaaaaaaaabbabbaaaaaa.", ".aaaaaa##aaa##aaaaaaaccaaccaaaaaaabbbaabbaaaaaa.", ".aaaaaa#######aaaaaaaaccccaaaaaabbbaaaabbaaaaaa.", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.", "................................................"}; mova-4.0/usr/local/share/mova/icons/mova_48x48.xpm0100444000176200017620000000511207115772207020402 0ustar niddnidd/* XPM */ static char*mova_48x48[]={ "48 48 6 1", "# c #808000", "c c #000000", "b c #ffff00", "a c #0000ff", ". c None", "d c #ff0000", ".....###########################################", ".....#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#", ".....#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#", ".....#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#", ".....#aaabbaaaaabbaaaabbbbaaaabbaabbaaaaabbaaaa#", ".....#aaabbbaaabbbaaabbaabbaaabbaabbaaaabbbbaaa#", ".....#aaabbbbabbbbaaabbaabbaaabbaabbaaaabaabaaa#", ".....#aaabbabababbaaabbaabbaaabbaabbaaabbaabbaa#", ".....#aaabbabbbabbaaabbaabbaaabbaabbaaabbaabbaa#", ".....#aaabbaabaabbaaabbaabbaaabbaabbaaabbbbbbaa#", ".....#aaabbaaaaabbaaabbaabbaaaabaabaaaabbaabbaa#", ".....#aaabbaaaaabbaaabbaabbaaaabbbbaaaabbaabbaa#", ".....#aaabbaaaaabbaaaabbbbaaaaaabbaaaaabbaabbaa#", ".....#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#", ".....#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#", ".....#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#", ".....#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#", ".....#bbbbbaabbbbbbbbbbbbbbbbbbbbbbbccccccbbbbb#", ".....#bbbbbaabbbbbbbbbbbddddbbbbbbbccbbbccbbbbb#", ".....#bbbbbaabbbbbbbbbbddbbddbbbbbbccbbbccbbbbb#", "######bbbbbaabbbbbbbbbddbbbbddbbbbbccbbbccbbbbb#", "#bbbb#bbbbbaabbbbbbbbbbbbbbbbdbbbbbccbbbccbbbbb#", "#bbbb#bbbbbaabbbbbbbbbddddddddbbbbbbccccccbbbbb#", "#bbbb#bbbbbaabbbbbbbbbdbbbbbbdbbbbbbbbbcccbbbbb#", "#bbbb#bbbbbaabbbbabbbbddbbbbddbbbbbbbccbccbbbbb#", "#bbbb#bbbbbaabbbaabbbbbddbbddbbbbbbcccbbccbbbbb#", "#bbbb#bbbbbaaaaaaabbbbbbddddbbbbbcccbbbbccbbbbb#", "#bbbb#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#", "#bbbb###########################################", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbabbbbbbbabbbaaaaaaabbbabbbbabbbbbb#......", "#bbbbbbaabbbbbaabbbabbabbabbbabbbabbbbbbb#......", "#bbbbbbababbbababbbbbbabbbbbbabbabbbbbbbb#......", "#bbbbbbabbababbabbbbbbabbbbbbababbbbbbbbb#......", "#bbbbbbabbbabbbabbbbbbabbbbbbaabbbbbbbbbb#......", "#bbbbbbabbbbbbbabbbbbbabbbbbbababbbbbbbbb#......", "#bbbbbbabbbbbbbabbbbbbabbbbbbabbabbbbbbbb#......", "#bbbbbbabbbbbbbabbbbbbabbbbbbabbbabbbbbbb#......", "#bbbbbbabbbbbbbabbbbbbabbbbbbabbbbabbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#......", "##########################################......"};