| ||
| 2001-03-27 | © 2001-2003 Harry M. Hardjono ramstrong@earthlink.net | |
|
Home Page |
/* Tab remover
** Harry M. Hardjono
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BUFSIZE 30000
main (int argc, char *argv[]) {
int i,j;
int tc,tabalign = 8,spacer;
FILE *infile;
char buffer[BUFSIZE];
char *bptr;
if (argc<2) {
printf ("Usage: rmtab [-dn] file1 file2 ...\n");
printf ("where n is tab alignment number (default 8)\n");
goto PROGRAM_END;
}
for (i=1;i<argc;i++) {
if (!strncmp("-d",argv[i],2)) {
tabalign = atoi(&argv[i][2]);
continue;
}
if ((infile=fopen(argv[i],"r")) == NULL) {
fprintf (stderr, "unable to open file: %s\n", argv[i]);
continue;
}
while (fgets(buffer, BUFSIZE, infile)) {
for (tc=0,bptr=buffer;*bptr;tc%=tabalign,bptr++) {
if (*bptr!='\t') {
putchar(*bptr);
tc++;
} else {
tc += spacer = tabalign-tc;
for (j=spacer;j;j--) putchar(' ');
}
}
}
fclose(infile);
}
PROGRAM_END:
return (0);
}
|