110560Sdlw /* 2*23041Skre * Copyright (c) 1980 Regents of the University of California. 3*23041Skre * All rights reserved. The Berkeley software License Agreement 4*23041Skre * specifies the terms and conditions for redistribution. 5*23041Skre */ 6*23041Skre 7*23041Skre char id_mkvers[] = "@(#)mkvers.c 5.1 06/07/85"; 8*23041Skre /* 910560Sdlw * extract sccs id strings from source files 1010560Sdlw * first arg is lib name. 1110560Sdlw * Put them in Version.c 1210560Sdlw */ 1310560Sdlw 1410560Sdlw #include <stdio.h> 1510560Sdlw 1610560Sdlw #define SCCS_ID "@(#)" 1710560Sdlw #define VERSION "Version.c" 1810560Sdlw 1910560Sdlw main(argc, argv) 2010560Sdlw int argc; char **argv; 2110560Sdlw { 2210560Sdlw char buf[256]; 2310560Sdlw char *s, *e; 2410560Sdlw char *index(), *ctime(); 2510560Sdlw long t; 2610560Sdlw FILE *V, *fdopen(); 2710560Sdlw 2810560Sdlw V = stdout; /* fdopen(creat(VERSION, 0644), "w"); */ 2910560Sdlw if (!V) 3010560Sdlw { 3110560Sdlw perror("mkvers"); 3210560Sdlw exit(1); 3310560Sdlw } 3412001Sdlw if (argc > 1 && argv[1][0] != '.') 3512001Sdlw { 3612001Sdlw fprintf(V, "char *"); 3712001Sdlw for (s = argv[1]; *s && *s != '.'; s++) 3812001Sdlw fputc(*s, V); 3912001Sdlw fprintf(V, "_id[] = {\n"); 4012001Sdlw } 4112001Sdlw else 4212001Sdlw fprintf(V, "char *sccs_id[] = {\n"); 4310560Sdlw if (argc-- > 1) 4410560Sdlw { 4510560Sdlw time(&t); 4610560Sdlw s = ctime(&t) + 4; 4710560Sdlw s[20] = '\0'; 4810560Sdlw fprintf(V, "\t\"%s%s\t%s\",\n", SCCS_ID, *++argv, s); 4910560Sdlw } 5010560Sdlw while (--argc) 5110560Sdlw { 5210560Sdlw if (freopen(*++argv, "r", stdin) == NULL) 5310560Sdlw { 5410560Sdlw perror(*argv); 5510560Sdlw continue; 5610560Sdlw } 5710560Sdlw while(gets(buf)) 5810560Sdlw { 5910560Sdlw s = buf; 6010560Sdlw while(s = index(s, '@')) 6110560Sdlw if (strncmp(s, SCCS_ID, 4) == 0) 6210560Sdlw break; 6310560Sdlw if (s) 6410560Sdlw { 6510560Sdlw e = index(s, '"'); 6610560Sdlw if (e) 6710560Sdlw *e = '\0'; 6810560Sdlw fprintf(V, "\t\"%s\",\n", s); 6910560Sdlw break; 7010560Sdlw } 7110560Sdlw } 7210560Sdlw if (feof(stdin)) 7310560Sdlw fprintf(stderr, "%s: no sccs id string\n", *argv); 7410560Sdlw } 7510560Sdlw fprintf(V, "};\n"); 7610560Sdlw fclose(V); 7710560Sdlw fflush(stdout); 7810560Sdlw fflush(stderr); 7910560Sdlw } 80