|
From: Olivier D. <del...@ir...> - 2005-02-12 02:18:34
|
Je ne sais pas exactement partout où les y trema apparaissaient, mais j'ai
éradiqué une de ses origines.
Le problème était le suivant: j'ai mis des PStream à pas mal d'endroits,
et la méthode unget() n'existant pas, j'ai suivi les conseils en
commentaire disant d'utiliser putback(c) à la place (c étant le dernier
caractère lu).
Hic: si le dernier get() a renvoyé -1 (EOF), en faisant un putback(-1)
on remet le PStream dans un état valide et le prochain caractère lu est
-1, c.à.dire le y trema.
Fix (committé): ne pas rajouter un EOF dans putback:
void PStreamBuf::putback(char c)
{
if (c == EOF)
return;
...
Ça me semble logique, mais peut-être un PStreaMaster aura-t-il une
objection...
Je n'ai pas touché pour l'instant à la dernière modif' de Pascal, au cas
où mon fix ne suffirait pas.
Olivier
On 11 Feb 2005, Pascal Vincent wrote:
> J'ai fait un commit pour revenir à une version qui ne fait plus de y trema.
>
> Sans pour l'intant comprendre ce qui se passait.
>
> J'entrerai plus en détails là dedans la semaine prochaine.
>
> En attendant vous pouvez faire un update, et i ne devrait plus y avoir
> de y trema...
>
> -- Pascal
>
|