25/10/2023, 10:48
Plusieurs scripts sont fait pour fonctionner avec une version minimale d'eggdrop, en s'appuyant sur la variable
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:
Pour n'utiliser que le numéro de version, une variable a été introduite:
$::numversion est sous la forme MNNRRPP, avec comme éléments:
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:
Remplacez cette portion par (au choix):
1. l'utilisation de la bonne partie de $version
2. la comparaison par l'utilitaire de package
3. l'utilisation de $numversion
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.
$::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
$::numversion
Code :
.tcl putlog $numversion
1090204
- 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.