/************************************************** * rtrim.c - trim trailing spaces from text files * * and add / remove carriage returns * * * * usage: rtrim [+r|-r] file * * * * +r adds carriage returns, -r removes them * **************************************************/ #include #include #include void main(int argc, char *argv[]) { void usage(); FILE *fp; char *cp, buf[200]; int len = 200, i, killcr = 0, putcr = 0, file_arg = 1, end; if (argc < 2) { usage(); return; } if (argc > 2) { file_arg = 2; if (strcmp(argv[1], "-r") == 0) { killcr = 1; } else if (strcmp(argv[1], "+r") == 0) putcr = 1; } if ((fp = fopen(argv[file_arg], "r")) == NULL) { printf("file not found %s\n", argv[1]); return; } while ((cp = fgets(buf, len, fp)) != NULL) { end = strlen(cp); while (1) { end--; if ((killcr == 1) && (cp[end] == '\r')) { cp[end] = '\0'; } else if (isspace(cp[end])) { cp[end] = '\0'; } else { if (putcr == 1) { cp[end+1] = '\r'; cp[end+2] = '\0'; } break; } } printf("%s\n", cp); } fclose(fp); } void usage() { printf("usage: rtrim [-r|+r] file\n"); }