Research V7 development
[unix-history] / usr / src / cmd / split.c
CommitLineData
2747e989
KT
1#include <stdio.h>
2
3unsigned count = 1000;
4int fnumber;
5char fname[100];
6char *ifil;
7char *ofil;
8FILE *is;
9FILE *os;
10
11main(argc, argv)
12char *argv[];
13{
14 register i, c, f;
15 int iflg = 0;
16
17 for(i=1; i<argc; i++)
18 if(argv[i][0] == '-')
19 switch(argv[i][1]) {
20
21 case '\0':
22 iflg = 1;
23 continue;
24
25 case '0':
26 case '1':
27 case '2':
28 case '3':
29 case '4':
30 case '5':
31 case '6':
32 case '7':
33 case '8':
34 case '9':
35 count = atoi(argv[i]+1);
36 continue;
37 }
38 else if(iflg)
39 ofil = argv[i];
40 else {
41 ifil = argv[i];
42 iflg = 2;
43 }
44 if(iflg != 2)
45 is = stdin;
46 else
47 if((is=fopen(ifil,"r")) == NULL) {
48 fprintf(stderr,"cannot open input\n");
49 exit(1);
50 }
51 if(ofil == 0)
52 ofil = "x";
53
54loop:
55 f = 1;
56 for(i=0; i<count; i++)
57 do {
58 c = getc(is);
59 if(c == EOF) {
60 if(f == 0)
61 fclose(os);
62 exit(0);
63 }
64 if(f) {
65 for(f=0; ofil[f]; f++)
66 fname[f] = ofil[f];
67 fname[f++] = fnumber/26 + 'a';
68 fname[f++] = fnumber%26 + 'a';
69 fname[f] = '\0';
70 fnumber++;
71 if((os=fopen(fname,"w")) == NULL) {
72 fprintf(stderr,"Cannot create output\n");
73 exit(1);
74 }
75 f = 0;
76 }
77 putc(c, os);
78 } while(c != '\n');
79 fclose(os);
80 goto loop;
81}