spc2tab
Borland C++ Compiler 5.5
spc2tab.c
#include
int main(int argc, char **argv) { int iTabstop; int iFlag; int iChar; int iSpace; if (argc != 2) { fprintf(stderr, "Usage: spc2tab tabstop < file-in > file-out\n"); return 1; } if (sscanf(argv[1], "%d", &iTabstop) != 1) { fprintf(stderr, "Error: tabstop\n"); return 1; } iFlag = 0; while ((iChar = getchar()) != EOF) { if (iFlag == 0) { if (iChar == ' ') { iSpace = 1; while ((iChar = getchar()) == ' ') { iSpace++; if (iTabstop <= iSpace) { putchar('\t'); iSpace = 0; } } while (0 < iSpace) { putchar(' '); iSpace--; } if (iChar == EOF) { break; } } iFlag = 1; } putchar(iChar); if (iChar == '\n') { iFlag = 0; } } return 0; }