Por que en las condiciones estas utilizando el descriptor del archivo en lugar del caracter que leiste?
if (pf=='n')
...
if (!separador(pf) && separador(prev))
No deberias comparar la variable
actual?
Hace mucho que no programo en C, pero creo que para obtener un caracter del archivo debes utilizar
fgetc