Blame tool/rm_once.c

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
}