Bell 32V development
[unix-history] / usr / src / cmd / rev.c
CommitLineData
3b600ead
TL
1#include <stdio.h>
2
3/* reverse lines of a file */
4
5#define N 256
6char line[N];
7FILE *input;
8
9main(argc,argv)
10char **argv;
11{
12 register i,c;
13 input = stdin;
14 do {
15 if(argc>1) {
16 if((input=fopen(argv[1],"r"))==NULL) {
17 fprintf(stderr,"rev: cannot open %s\n",
18 argv[1]);
19 exit(1);
20 }
21 }
22 for(;;){
23 for(i=0;i<N;i++) {
24 line[i] = c = getc(input);
25 switch(c) {
26 case EOF:
27 goto eof;
28 default:
29 continue;
30 case '\n':
31 break;
32 }
33 break;
34 }
35 while(--i>=0)
36 putc(line[i],stdout);
37 putc('\n',stdout);
38 }
39eof:
40 fclose(input);
41 argc--;
42 argv++;
43 } while(argc>1);
44}