¿ Qué quieres decir con "me salta la condición"? Yo lo que veo dentro del bloque de
if (ret==0) es:
En el primer if pones la condición
(path_[cont1] != slash. Si esta condición no se cumple, es que path_[cont1] es igual a slash, con lo que la condición que has puesto en el if del primer else es siempre cierta. Además, el bloque del segundo else no se ejecutará jamás, ya que, tal como lo has puesto, path_[cont1] solo puede ser distinto de slash (se ejecuta el bloque del if) ó igual a slash (bloque if del primer else).
Lo que tienes que hacer es comprobar si el carácter es igual a slash
Ó igual a contraslash, o bien, si es distinto de slash
Y distinto de contraslash (que es el caso que te pongo como ejemplo):
Código C:
Ver originalif (ret==0)
{
if ( (path_[cont1]!=slash) && (path_[cont1]!=contraslash) )
{
(*newPath_)[cont2]=path_[cont1];
cont2++;
}
else
{
(*newPath_)[cont2]=slash;
cont2++;
(*newPath_)[cont2]=slash;
cont2++;
}
else
{
// A lo que has puesto aquí como tratamiento de errores no llegaría
//tratamiento errores
ret=1;
}
}
Saludos,