/**************************************************************************** * Ficher Filtab.c. Contient un petit programme qui remplace les tabulations * * lues sur StdIn par un nombre entier de spaces sur StdOut. * ****************************************************************************/ #define Tabul 0x09 #define RetChar 0x0D #define LineFide 0x0A #define InPut 0 #define OutPut 1 char Blanc=0x20; char cc; int Positligne=0; int TailTab=0; main(int NbParam,char **Param) { if (NbParam <2 || !(TailTab=atoi (Param[1]))) { usage(Param[0]); return;} while (read(InPut,&cc,1)>0) { switch (cc) { case Tabul: do write(OutPut,&Blanc,1); while (++Positligne % TailTab); break; case LineFide: case RetChar:Positligne=-1; default: Positligne++; write(OutPut,&cc,1); } } } usage(char *KiSuiJe) { printf("\n%s",KiSuiJe); printf("\nSyntaxe: FilTab N (N:taille désirée pour la Tabulation.)"); printf("\nFonction: Remplace les Tabulations par le nb.de space "); printf("\n necessaires.(de StdIn vers StdOut). "); printf("\n Options: Pas d'option. "); printf("\n"); }