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