diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2012-10-11 14:06:32 -0400 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2012-10-11 14:06:32 -0400 |
commit | 07ea7b64b6f85e5798a8068453ed9fd2b97396db (patch) | |
tree | 644496a1690d84d82a396bbc1e39160788beb2cd /jam-files/engine/mkjambase.c | |
parent | 37b9e45e5cb29d708f7249dbe0b0fb27685282a0 (diff) | |
parent | a36fcc5d55c1de84ae68c1091ebff2b1c32dc3b7 (diff) |
Merge branch 'master' of https://github.com/redpony/cdec
Diffstat (limited to 'jam-files/engine/mkjambase.c')
-rw-r--r-- | jam-files/engine/mkjambase.c | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/jam-files/engine/mkjambase.c b/jam-files/engine/mkjambase.c deleted file mode 100644 index cdf59982..00000000 --- a/jam-files/engine/mkjambase.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 1993, 1995 Christopher Seiwald. - * - * This file is part of Jam - see jam.c for Copyright information. - */ - -/* This file is ALSO: - * Copyright 2001-2004 David Abrahams. - * Distributed under the Boost Software License, Version 1.0. - * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - */ - -/* - * mkjambase.c - turn Jambase into a big C structure - * - * Usage: mkjambase jambase.c Jambase ... - * - * Results look like this: - * - * char *jambase[] = { - * "...\n", - * ... - * 0 }; - * - * Handles \'s and "'s specially; knows to delete blank and comment lines. - * - */ - -#include <stdio.h> -#include <string.h> - - -int main( int argc, char * * argv, char * * envp ) -{ - char buf[ 1024 ]; - FILE * fin; - FILE * fout; - char * p; - int doDotC = 0; - - if ( argc < 3 ) - { - fprintf( stderr, "usage: %s jambase.c Jambase ...\n", argv[ 0 ] ); - return -1; - } - - if ( !( fout = fopen( argv[1], "w" ) ) ) - { - perror( argv[ 1 ] ); - return -1; - } - - /* If the file ends in .c generate a C source file. */ - if ( ( p = strrchr( argv[1], '.' ) ) && !strcmp( p, ".c" ) ) - doDotC++; - - /* Now process the files. */ - - argc -= 2; - argv += 2; - - if ( doDotC ) - { - fprintf( fout, "/* Generated by mkjambase from Jambase */\n" ); - fprintf( fout, "char *jambase[] = {\n" ); - } - - for ( ; argc--; ++argv ) - { - if ( !( fin = fopen( *argv, "r" ) ) ) - { - perror( *argv ); - return -1; - } - - if ( doDotC ) - fprintf( fout, "/* %s */\n", *argv ); - else - fprintf( fout, "### %s ###\n", *argv ); - - while ( fgets( buf, sizeof( buf ), fin ) ) - { - if ( doDotC ) - { - char * p = buf; - - /* Strip leading whitespace. */ - while ( ( *p == ' ' ) || ( *p == '\t' ) || ( *p == '\n' ) ) - ++p; - - /* Drop comments and empty lines. */ - if ( ( *p == '#' ) || !*p ) - continue; - - /* Copy. */ - putc( '"', fout ); - for ( ; *p && ( *p != '\n' ); ++p ) - switch ( *p ) - { - case '\\': putc( '\\', fout ); putc( '\\', fout ); break; - case '"' : putc( '\\', fout ); putc( '"' , fout ); break; - case '\r': break; - default: putc( *p, fout ); break; - } - - fprintf( fout, "\\n\",\n" ); - } - else - { - fprintf( fout, "%s", buf ); - } - } - - fclose( fin ); - } - - if ( doDotC ) - fprintf( fout, "0 };\n" ); - - fclose( fout ); - - return 0; -} |