Communauté Eggdrop
Comparaison de version de l'eggdrop - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Bouts de Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=17)
+--- Sujet : Comparaison de version de l'eggdrop (/showthread.php?tid=1752)



Comparaison de version de l'eggdrop - CrazyCat - 25/10/2023

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.