diff options
Diffstat (limited to 'usr.sbin/config/main.c')
-rw-r--r-- | usr.sbin/config/main.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/usr.sbin/config/main.c b/usr.sbin/config/main.c index 2ea5c3d7ec32..93c089b18dde 100644 --- a/usr.sbin/config/main.c +++ b/usr.sbin/config/main.c @@ -146,6 +146,7 @@ usage: fputs("usage: config [-gp] sysname\n", stderr); makefile(); /* build Makefile */ headers(); /* make a lot of .h files */ swapconf(); /* swap config files */ + configfile(); /* add config file into kernel */ printf("Don't forget to run \"make depend\"\n"); exit(0); } @@ -256,3 +257,39 @@ path(file) } return (cp); } + + +configfile() +{ + FILE *fi, *fo; + char *p; + int i; + + fi = fopen(PREFIX,"r"); + if(!fi) { + perror(PREFIX); + exit(2); + } + fo = fopen(p=path("config.c"),"w"); + if(!fo) { + perror(p); + exit(2); + } + fprintf(fo,"static char *config = \"\n"); + fprintf(fo,"START CONFIG FILE %s\n___",PREFIX); + while (EOF != (i=getc(fi))) { + if(i == '\n') { + fprintf(fo,"\n___"); + } else if(i == '\"') { + fprintf(fo,"\\\""); + } else if(i == '\\') { + fprintf(fo,"\\\\"); + } else { + putc(i,fo); + } + } + fprintf(fo,"\nEND CONFIG FILE %s\n",PREFIX); + fprintf(fo,"\";\n"); + fclose(fi); + fclose(fo); +} |