1*47943Sbostic /*-
2*47943Sbostic * Copyright (c) 1980 The Regents of the University of California.
3*47943Sbostic * All rights reserved.
4*47943Sbostic *
5*47943Sbostic * %sccs.include.proprietary.c%
623082Skre */
723082Skre
8*47943Sbostic #ifndef lint
9*47943Sbostic char copyright[] =
10*47943Sbostic "@(#) Copyright (c) 1980 The Regents of the University of California.\n\
11*47943Sbostic All rights reserved.\n";
12*47943Sbostic #endif /* not lint */
13*47943Sbostic
14*47943Sbostic #ifndef lint
15*47943Sbostic static char sccsid[] = "@(#)mkvers.c 5.2 (Berkeley) 04/12/91";
16*47943Sbostic #endif /* not lint */
17*47943Sbostic
18*47943Sbostic char id_mkvers[] = "@(#)mkvers.c 5.2 04/12/91";
19*47943Sbostic
2023082Skre /*
2121019Slibs * extract sccs id strings from source files
2221019Slibs * first arg is lib name.
2321019Slibs * Put them in Version.c
2421019Slibs */
2521019Slibs
2621019Slibs #include <stdio.h>
2721019Slibs
2821019Slibs #define SCCS_ID "@(#)"
2921019Slibs #define VERSION "Version.c"
3021019Slibs
main(argc,argv)3121019Slibs main(argc, argv)
3221019Slibs int argc; char **argv;
3321019Slibs {
3421019Slibs char buf[256];
3521019Slibs char *s, *e;
3621019Slibs char *index(), *ctime();
3721019Slibs long t;
3821019Slibs FILE *V, *fdopen();
3921019Slibs
4021019Slibs V = stdout; /* fdopen(creat(VERSION, 0644), "w"); */
4121019Slibs if (!V)
4221019Slibs {
4321019Slibs perror("mkvers");
4421019Slibs exit(1);
4521019Slibs }
4621019Slibs if (argc > 1 && argv[1][0] != '.')
4721019Slibs {
4821019Slibs fprintf(V, "char *");
4921019Slibs for (s = argv[1]; *s && *s != '.'; s++)
5021019Slibs fputc(*s, V);
5121019Slibs fprintf(V, "_id[] = {\n");
5221019Slibs }
5321019Slibs else
5421019Slibs fprintf(V, "char *sccs_id[] = {\n");
5521019Slibs if (argc-- > 1)
5621019Slibs {
5721019Slibs time(&t);
5821019Slibs s = ctime(&t) + 4;
5921019Slibs s[20] = '\0';
6021019Slibs fprintf(V, "\t\"%s%s\t%s\",\n", SCCS_ID, *++argv, s);
6121019Slibs }
6221019Slibs while (--argc)
6321019Slibs {
6421019Slibs if (freopen(*++argv, "r", stdin) == NULL)
6521019Slibs {
6621019Slibs perror(*argv);
6721019Slibs continue;
6821019Slibs }
6921019Slibs while(gets(buf))
7021019Slibs {
7121019Slibs s = buf;
7221019Slibs while(s = index(s, '@'))
7321019Slibs if (strncmp(s, SCCS_ID, 4) == 0)
7421019Slibs break;
7521019Slibs if (s)
7621019Slibs {
7721019Slibs e = index(s, '"');
7821019Slibs if (e)
7921019Slibs *e = '\0';
8021019Slibs fprintf(V, "\t\"%s\",\n", s);
8121019Slibs break;
8221019Slibs }
8321019Slibs }
8421019Slibs if (feof(stdin))
8521019Slibs fprintf(stderr, "%s: no sccs id string\n", *argv);
8621019Slibs }
8721019Slibs fprintf(V, "};\n");
8821019Slibs fclose(V);
8921019Slibs fflush(stdout);
9021019Slibs fflush(stderr);
9121019Slibs }
92