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