xref: /csrg-svn/usr.bin/f77/libU77/mkvers.c (revision 10560)
1*10560Sdlw char id_mkvers[] = "@(#)mkvers.c	1.1";
2*10560Sdlw /*
3*10560Sdlw  * extract sccs id strings from source files
4*10560Sdlw  * first arg is lib name.
5*10560Sdlw  * Put them in Version.c
6*10560Sdlw  */
7*10560Sdlw 
8*10560Sdlw #include	<stdio.h>
9*10560Sdlw 
10*10560Sdlw #define SCCS_ID		"@(#)"
11*10560Sdlw #define VERSION		"Version.c"
12*10560Sdlw 
13*10560Sdlw main(argc, argv)
14*10560Sdlw int argc; char **argv;
15*10560Sdlw {
16*10560Sdlw 	char buf[256];
17*10560Sdlw 	char *s, *e;
18*10560Sdlw 	char *index(), *ctime();
19*10560Sdlw 	long t;
20*10560Sdlw 	FILE *V, *fdopen();
21*10560Sdlw 
22*10560Sdlw 	V = stdout; /* fdopen(creat(VERSION, 0644), "w"); */
23*10560Sdlw 	if (!V)
24*10560Sdlw 	{
25*10560Sdlw 		perror("mkvers");
26*10560Sdlw 		exit(1);
27*10560Sdlw 	}
28*10560Sdlw 	fprintf(V, "char *sccs_id[] = {\n");
29*10560Sdlw 	if (argc-- > 1)
30*10560Sdlw 	{
31*10560Sdlw 		time(&t);
32*10560Sdlw 		s = ctime(&t) + 4;
33*10560Sdlw 		s[20] = '\0';
34*10560Sdlw 		fprintf(V, "\t\"%s%s\t%s\",\n", SCCS_ID, *++argv, s);
35*10560Sdlw 	}
36*10560Sdlw 	while (--argc)
37*10560Sdlw 	{
38*10560Sdlw 		if (freopen(*++argv, "r", stdin) == NULL)
39*10560Sdlw 		{
40*10560Sdlw 			perror(*argv);
41*10560Sdlw 			continue;
42*10560Sdlw 		}
43*10560Sdlw 		while(gets(buf))
44*10560Sdlw 		{
45*10560Sdlw 			s = buf;
46*10560Sdlw 			while(s = index(s, '@'))
47*10560Sdlw 				if (strncmp(s, SCCS_ID, 4) == 0)
48*10560Sdlw 					break;
49*10560Sdlw 			if (s)
50*10560Sdlw 			{
51*10560Sdlw 				e = index(s, '"');
52*10560Sdlw 				if (e)
53*10560Sdlw 					*e = '\0';
54*10560Sdlw 				fprintf(V, "\t\"%s\",\n", s);
55*10560Sdlw 				break;
56*10560Sdlw 			}
57*10560Sdlw 		}
58*10560Sdlw 		if (feof(stdin))
59*10560Sdlw 			fprintf(stderr, "%s: no sccs id string\n", *argv);
60*10560Sdlw 	}
61*10560Sdlw 	fprintf(V, "};\n");
62*10560Sdlw 	fclose(V);
63*10560Sdlw 	fflush(stdout);
64*10560Sdlw 	fflush(stderr);
65*10560Sdlw }
66