Comparaison de version de l'eggdrop
#1
Plusieurs scripts sont fait pour fonctionner avec une version minimale d'eggdrop, en s'appuyant sur la variable $::version

Cette variable a changé depuis eggdrop 1.8, précédement elle ne contenait que le N° de version d'eggdrop, désormais elle contient la version au format texte suivi du numéro de version:
Code :
.tcl putlog $version
1.9.2+stdin 1090204
Pour n'utiliser que le numéro de version, une variable a été introduite: $::numversion
Code :
.tcl putlog $numversion
1090204
$::numversion est sous la forme MNNRRPP, avec comme éléments:
  • M : numéro de release Majeure sur 1 digit (donc 1 actuellement)
  • NN : numéro de release miNeure sur 2 digits (donc 09)
  • RR : numéro de sous-Release sur 2 digits (donc 02)
  • PP : numéro de Patch sur 2 digits (donc 04)

Un eggdrop 1.6.21-4 aurait donc le numversion 1062104, un eggdrop 1.8.3-2 serait 1080302 et la version actuelle d'eggdrop est 1090203

Comment corriger les scripts ?
Trouvez la ligne qui commence (souvent) par:
tcl
if { [regsub -all {\.} [lindex $::version 0] ""] < 1620 } {



Remplacez cette portion par (au choix):

1. l'utilisation de la bonne partie de $version
tcl
if { [regsub -all {\.} [lindex $::version 1] ""] < 1620 } {



2. la comparaison par l'utilitaire de package
tcl
if { [package vcompare [regexp -inline {^[[:digit:]\.]+} $::version] 1.6.20] == -1 } {



3. l'utilisation de $numversion
tcl
if {[info exists ::numversion] && $::numversion > 1080000 } {


Notez que cette dernière méthode ne sert qu'à tester que votre eggdrop est au moins en version 1.8. Si votre script est applicable aux eggdrops 1.6, préférez les méthodes précédentes.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté