Index by: file name | procedure name | procedure call | annotation
gscope_vs.tcl (annotations | original source)

#rR pour comparer deux versions de gscope

proc DismissVS w {
    global PagePropre
    if {[info exists PagePropre($w)]} { unset PagePropre($w) }
    if {[PourWscope]} { return "<script language='javascript'>window.close()</script>'" }
    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
}


Index by: file name | procedure name | procedure call | annotation
File generated 2022-04-05 at 12:55.