/****************************************************************************
* 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");
}