home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
progm
/
cpgms.zip
/
TRIMIT.C
< prev
next >
Wrap
C/C++ Source or Header
|
1985-11-25
|
2KB
|
110 lines
#include "stdio.h"
#define END 0xff
#define ERROR 0
#define CPMEOF 0X1A
#define NULL 0
#define EOS 0
#define DeSmet 1
char *documentation[] = {
"trimit deletes any trailing blanks from input lines.",
" trimit [flags] [file] [<file] [>file]",
"",
"Flags are single characters preceeded by '-':",
" none are currently defined",
"",
"Input is from the given file or stdin, if none given.",
"Output is to stdout. To print add >PRN: to your command.",
0 };
int tflg = 0;
main(argc, argv)
char *argv[];
{
register char *p;
register int c, i;
int nfile;
char tolower();
FILE *f;
if (argc == 2 && argv[1][0] == '?' && argv[1][1] == 0) {
help(documentation);
return;
}
nfile = argc-1;
for (i=1; i < argc; ++i) {
p = argv[i];
if (*p == '-') {
++p;
while (c = *p++) {
switch(tolower(c)) {
case '?':
help(documentation);
break;
default:
usage("Unknown flag");
}
}
argv[i] = 0;
--nfile;
}
}
if (nfile == 0)
trimit(stdin, 0);
else if (nfile > 1)
usage("Too many filenames");
else
if ((f=fopen(p, "r")) == NULL)
cant(p);
else {
trimit(f, p);
fclose(f);
}
}
/*******************************************************/
usage(s)
char *s;
{
puts("?TRIMIT-E-");
puts(s);
puts("\n");
puts("Usage: trimit [file] [<file] [>file]. \n");
puts(" trimit ? for help\n");
exit(1);
}
/*******************************************************/
char tbuf[512];
trimit(fp, fn)
FILE *fp; /* File to process */
char *fn; /* File name (for -f option) */
/*
* change the case of the input file to upper, lower, or words.
*/
{
char *trim(), *fgets(), *crptr;
int puts();
while (fgets(tbuf, sizeof(tbuf), fp) != ERROR) {
crptr = index(tbuf, '\n'); /* remove new line */
if (crptr)
*crptr = NULL;
crptr = index(tbuf, '\r'); /* remove carriage return */
if (crptr)
*crptr = NULL;
puts(trim(tbuf)); /* trim trailing blanks */
puts("\n"); /* and add CR/LF back in */
}
}