/* * small.c * * This program deletes trailing blanks from a source file * input - stdin * output - stdout */ #include #include int getloi(); int putloi(); int main(argc, argv) int argc; char *argv[]; { char s[BUFSIZ]; while(1) { if (getloi(s, BUFSIZ) == 0) exit(0); putloi(s); } } /* get a line of input. */ int getloi(s, lim) /* right from the book. */ char s[]; int lim; { int c, i; for (i = 0; --lim > 0 && (c = getchar()) != EOF && (s[i++] = c) != '\n'; ) { ; } #define STRIP_LINE #ifdef STRIP_LINE if (i > 73) i = 73; s[72] = '\n'; s[73] = '\0'; #endif if ((s[i-1] == '\n') && (i > 1)) { while (((s[i-2] == ' ') || (s[i-2] == '\r')) && (i > 1)) --i; s[i-1] = '\n'; } s[i] = '\0'; return (i); } /* ** output line of text from the source */ int putloi(s) char *s; { printf("%s", s); }