|
Packit |
b40e2e |
/*
|
|
Packit |
b40e2e |
* rm_once.c 2002/08, 2004/11 kmatsui
|
|
Packit |
b40e2e |
* to remove '#pragma once' line from the top of header files
|
|
Packit |
b40e2e |
*/
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
#include "stdio.h"
|
|
Packit |
b40e2e |
#include "stdlib.h"
|
|
Packit |
b40e2e |
#include "string.h"
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
main( int argc, char ** argv)
|
|
Packit |
b40e2e |
{
|
|
Packit |
b40e2e |
char buf[ BUFSIZ];
|
|
Packit |
b40e2e |
char *once = "\n#pragma once\n\n";
|
|
Packit |
b40e2e |
char *tmp = "tmp.once";
|
|
Packit |
b40e2e |
char *fname;
|
|
Packit |
b40e2e |
FILE *fp_in, *fp_out;
|
|
Packit |
b40e2e |
int i;
|
|
Packit |
b40e2e |
char *cp;
|
|
Packit |
b40e2e |
|
|
Packit |
b40e2e |
while (*++argv) {
|
|
Packit |
b40e2e |
if ((fp_in = fopen( *argv, "r")) != NULL) {
|
|
Packit |
b40e2e |
for (cp = buf, i = 0; i < 3; i++, cp += strlen( cp))
|
|
Packit |
b40e2e |
fgets( cp, BUFSIZ, fp_in);
|
|
Packit |
b40e2e |
if (strcmp( buf, once) != 0) {
|
|
Packit |
b40e2e |
fprintf( stderr, "Skipped %s\n", *argv);
|
|
Packit |
b40e2e |
fclose( fp_in);
|
|
Packit |
b40e2e |
continue;
|
|
Packit |
b40e2e |
}
|
|
Packit |
b40e2e |
fprintf( stderr, "Converted %s\n", *argv);
|
|
Packit |
b40e2e |
fp_out = fopen( tmp, "w");
|
|
Packit |
b40e2e |
while (fgets( buf, BUFSIZ, fp_in) != NULL)
|
|
Packit |
b40e2e |
fputs( buf, fp_out);
|
|
Packit |
b40e2e |
fclose( fp_in);
|
|
Packit |
b40e2e |
fclose( fp_out);
|
|
Packit |
b40e2e |
remove( *argv);
|
|
Packit |
b40e2e |
rename( tmp, *argv);
|
|
Packit |
b40e2e |
}
|
|
Packit |
b40e2e |
}
|
|
Packit |
b40e2e |
return 0;
|
|
Packit |
b40e2e |
}
|