⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkjambase.c

📁 jam源码
💻 C
字号:
/* * Copyright 1993, 1995 Christopher Seiwald. * * This file is part of Jam - see jam.c for Copyright information. *//* * 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. * * 11/04/02 (seiwald) - const-ing for string literals */# include <stdio.h># include <string.h>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, "const 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;		    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;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -