--- rpl/src/depassements.c 2012/01/05 10:18:58 1.30 +++ rpl/src/depassements.c 2012/01/06 16:04:51 1.31 @@ -198,7 +198,7 @@ depassement_puissance(integer8 *a, integ return(d_erreur); } - if ((*a) <= 1) + if ((r = abs(*a)) <= 1) { if ((*a) == 0) { @@ -206,14 +206,20 @@ depassement_puissance(integer8 *a, integ } else { - (*resultat) = 1; + if ((*a) > 0) + { + (*resultat) = 1; + } + else + { + (*resultat) = (((*b) % 2) == 0) ? 1 : -1; + } } return(d_absence_erreur); } depassement = d_faux; - r = abs(*a); for(i = 0; i < (*b); i++) {