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