head 1.2; access; symbols; locks mys:1.2; strict; comment @# @; 1.2 date 2000.04.11.21.41.24; author mys; state Exp; branches; next 1.1; 1.1 date 99.11.09.21.32.05; author mys; state Exp; branches; next ; desc @@ 1.2 log @*** empty log message *** @ text @# Copyright (C) 1999 - Martin Strauss - under terms of GPL ############################################################## proc spell {E mode spell_start spell_end} { global T spell_not spell_array spell_yes spell_flag if $spell_flag { set spell_flag 0 switch $mode add { if {[lsearch -exact [$E tag names insert] spell] != -1} { set ksp1 [$E search -backwards -regexp -- $spell_yes insert {insert linestart}] if {$ksp1 == ""} {set ksp1 "insert linestart"} else {append ksp1 +1c} set ksp2 [$E search -forwards -regexp -- $spell_yes insert {insert lineend}] if {$ksp2 == ""} {set ksp2 "insert lineend"} set I [$E get $ksp1 $ksp2] switch [tk_messageBox -parent $E -type okcancel -icon question -message $T(spell-1)$I$T(spell-2)] ok { if ![info exists spell_array($I)] { set spell_array($I) O set I_s "spell + [string length $I] chars" set I_s1 "spell + [expr [string length $I] +1 ] chars" set nowindex [$E search -- $I $spell_start $spell_end] while {$nowindex != ""} { $E mark set spell $nowindex set ksp1 [$E get spell-1c spell] set ksp2 [$E get $I_s $I_s1] if {[regexp -- $spell_yes $ksp1] != 0} { if {[regexp -- $spell_yes $ksp2] != 0} { $E tag remove spell spell $I_s } } set nowindex [$E search -- $I spell+1c $spell_end] } } } cancel { switch [tk_messageBox -parent $E -type okcancel -icon question -message $T(spell-3)] ok { $E mark set insert "insert wordstart" InitSearch .wsearch.text1 delete 0 end .wsearch.text1 insert 0 $I .wsearch.text2 delete 0 end .wsearch.text2 insert 0 $I } } } } show { $E tag remove spell $spell_start $spell_end set last "" set LISTE [lsort [split [$E get $spell_start $spell_end] $spell_yes]] foreach I $LISTE { if {[string compare $last $I]!=0} { if {[regexp -- $spell_not $I] == 0} { if {![info exists spell_array($I)]} { if {$I != ""} { set I_s "spell + [string length $I] chars" set I_s1 "spell + [expr [string length $I] +1 ] chars" set nowindex [$E search -- $I $spell_start $spell_end] while {$nowindex != ""} { $E mark set spell $nowindex set ksp1 [$E get spell-1c spell] set ksp2 [$E get $I_s $I_s1] if {[regexp -- $spell_yes $ksp1] != 0} { if {[regexp -- $spell_yes $ksp2] != 0} { $E tag add spell spell $I_s } } set nowindex [$E search -- $I spell+1c $spell_end] } }}}} set last $I } } set spell_flag 1 }} proc spell_load {} { global spellfile spellfileown language I_befehl spell_array if [file exists $spellfileown$language] then { set f [open $spellfileown$language r] set LISTE [gets $f] close $f foreach I $LISTE {set spell_array($I) O} } if [file exists $spellfile$language] then { set f [open $spellfile$language r] set LISTE [gets $f] close $f foreach I $LISTE {set spell_array($I) G} } } proc spell_save {} { global spellfileown language spell_array set LISTE "" set L [array get spell_array] foreach {I V} $L {if {$V == "O"} {lappend LISTE $I}} set f [open $spellfileown$language w] puts $f [lsort $LISTE] close $f } @ 1.1 log @Initial revision @ text @d1 95 a95 95 # Copyright (C) 1999 - Martin Strauss - under terms of GPL ############################################################## proc spell {E mode spell_start spell_end} { global T spell_not spell_array spell_yes spell_flag if $spell_flag { set spell_flag 0 switch $mode add { if {[lsearch -exact [$E tag names insert] spell] != -1} { set ksp1 [$E search -backwards -regexp -- $spell_yes insert {insert linestart}] if {$ksp1 == ""} {set ksp1 "insert linestart"} else {append ksp1 +1c} set ksp2 [$E search -forwards -regexp -- $spell_yes insert {insert lineend}] if {$ksp2 == ""} {set ksp2 "insert lineend"} set I [$E get $ksp1 $ksp2] switch [tk_messageBox -parent $E -type okcancel -icon question -message $T(spell-1)$I$T(spell-2)] ok { if ![info exists spell_array($I)] { set spell_array($I) O set I_s "spell + [string length $I] chars" set I_s1 "spell + [expr [string length $I] +1 ] chars" set nowindex [$E search -- $I $spell_start $spell_end] while {$nowindex != ""} { $E mark set spell $nowindex set ksp1 [$E get spell-1c spell] set ksp2 [$E get $I_s $I_s1] if {[regexp -- $spell_yes $ksp1] != 0} { if {[regexp -- $spell_yes $ksp2] != 0} { $E tag remove spell spell $I_s } } set nowindex [$E search -- $I spell+1c $spell_end] } } } cancel { switch [tk_messageBox -parent $E -type okcancel -icon question -message $T(spell-3)] ok { $E mark set insert "insert wordstart" InitSearch .wsearch.text1 delete 0 end .wsearch.text1 insert 0 $I .wsearch.text2 delete 0 end .wsearch.text2 insert 0 $I } } } } show { $E tag remove spell $spell_start $spell_end set last "" set LISTE [lsort [split [$E get $spell_start $spell_end] $spell_yes]] foreach I $LISTE { if {[string compare $last $I]!=0} { if {[regexp -- $spell_not $I] == 0} { if {![info exists spell_array($I)]} { if {$I != ""} { set I_s "spell + [string length $I] chars" set I_s1 "spell + [expr [string length $I] +1 ] chars" set nowindex [$E search -- $I $spell_start $spell_end] while {$nowindex != ""} { $E mark set spell $nowindex set ksp1 [$E get spell-1c spell] set ksp2 [$E get $I_s $I_s1] if {[regexp -- $spell_yes $ksp1] != 0} { if {[regexp -- $spell_yes $ksp2] != 0} { $E tag add spell spell $I_s } } set nowindex [$E search -- $I spell+1c $spell_end] } }}}} set last $I } } set spell_flag 1 }} proc spell_load {} { global spellfile spellfileown language I_befehl spell_array if [file exists $spellfileown$language] then { set f [open $spellfileown$language r] set LISTE [gets $f] close $f foreach I $LISTE {set spell_array($I) O} } if [file exists $spellfile$language] then { set f [open $spellfile$language r] set LISTE [gets $f] close $f foreach I $LISTE {set spell_array($I) G} } } proc spell_save {} { global spellfileown language spell_array set LISTE "" set L [array get spell_array] foreach {I V} $L {if {$V == "O"} {lappend LISTE $I}} set f [open $spellfileown$language w] puts $f [lsort $LISTE] close $f } @