#rR pour comparer deux versions de gscope proc DismissVS w { global PagePropre if {[info exists PagePropre($w)]} { unset PagePropre($w) } if {[PourWscope]} { return "'" } catch {after 10 destroy $w} return $w } proc SameBody {A B} { regsub -all {[ \t\n]} $A "" A regsub -all {[ \t\n]} $B "" B return [string equal $A $B] } proc GscopeVersusGscope {} { #rR On essayez de comparer une version du Pipe avec [HomeRipp]/gscope #rR Pour cela on fait tourner PIpe et on interroge qds Zero #rR On ne compare que le corps des proc pas les arguments (a faire) source [HomeRipp]/gscope/wscope/cafedessciences/cafe_des_sciences_proc.tcl source [HomeRipp]/gscope/wscope/cafedessciences/question_de_science_proc.tcl package require Tk set FichierBestUnknown "[HomeRipp]/vs/BestUnknown" set FichierBestGscope "[HomeRipp]/vs/BestGscope" set FichierBestPipe "[HomeRipp]/vs/BestPipe" set FichierDejaVu "[HomeRipp]/vs/DejaVu" set LesDejaVu {} if {[file exists $FichierDejaVu]} { set LesDejaVu [LesLignesDuFichier $FichierDejaVu] } foreach P $LesDejaVu { set DejaVu($P) 1 } #rR On compare les deux versions. set LesManquants {} set LesDifferents {} foreach P [LesProceduresExistantes] { if {[info exists DejaVu($P)]} { continue } if { [info procs $P]=={} } { continue } set Autre [QuestionDeScience Zero "ret info procs $P"] if { $Autre==""} { Espionne "manque $P"; lappend LesManquants $P; continue } set MonBody [info body $P] if {[regexp {winfo|grid|bind|button|raise|focus|frame|AfficheBouton|biotext} $MonBody]} { AppendAuFichier $FichierDejaVu $P lappend MesTk $P continue } if {[regexp {/genomics/g} $MonBody]} { lappend MesG $P continue } regsub -all {^[ \n]+} $MonBody "" MonBody regsub -all {\n[ ]+(\n|$)} $MonBody "\n" MonBody regsub -all {\n+} $MonBody "\n" MonBody set SonBody [QuestionDeScience Zero "ret info body $P"] regsub -all {^[ \n]+} $SonBody "" SonBody regsub -all {\n[ ]+(\n|$)} $SonBody "\n" SonBody regsub -all {\n+} $SonBody "\n" SonBody if {[regexp {winfo|grid|bind|button|raise|focus|frame|AfficheBouton} $SonBody]} { AppendAuFichier $FichierDejaVu $P lappend SesTk $P continue } if {[SameBody $MonBody $SonBody]} {AppendAuFichier $FichierDejaVu $P; continue } Espionne "$P diff" lappend LesDifferents $P set R [Affiche $SonBody "" "Gscope $P"] set M [Affiche $MonBody "AvecRetour" "Pipepack $P"] if {$M==""} { set FM [Sauve $MonBody dans "[HomeRipp]/vs/Pipepack_$P.tcl"] set FS [Sauve $SonBody dans "[HomeRipp]/vs/Gscope_$P.tcl"] catch {exec meld $FS $FM} if {[OuiOuNon "Gscope est meilleur"]} { AppendAuFichier $FichierBestGscope $P } else { if {[OuiOuNon "Pipe est meilleur"]} { AppendAuFichier $FichierBestPipe $P } else { AppendAuFichier $FichierBestUnknown $P } } } elseif {[llength $M]==1} { AppendAuFichier $FichierBestGscope $P } DismissVS $R AppendAuFichier $FichierDejaVu $P } AfficheListe $LesManquants AfficheListe $LesDifferents return }