This file is indexed.

/usr/bin/movaMTK is in mova 4.0-4.2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
#! /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/
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 "/etc/mova/Movarc_${DIC_ARG}" "r"]}  Error] &&
[catch {set rcfile [open "~/.movarc" "r"]} Error] &&
[catch {set rcfile [open "/etc/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} {
#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 <Return> ".entry selection range 0 end; Mova {-W}"
bind .entry <Shift-Return> ".entry selection range 0 end; Mova {-B}"
bind .entry <Control-Return> ".entry selection range 0 end; Mova {-S}"
bind .entry <Alt-Return> ".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 <Escape> {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 <Escape> {destroy .}}
#End