File: gic2c.c

package info (click to toggle)
libgiigic 1.1.1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,992 kB
  • ctags: 856
  • sloc: sh: 9,151; ansic: 7,438; makefile: 284
file content (47 lines) | stat: -rw-r--r-- 1,056 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* $Id: gic2c.c,v 1.3 2004/09/18 12:06:58 cegger Exp $ */
#include <stdio.h>

static void str2c(FILE *ostream,char *buffer) 
{
	while(*buffer) {
		switch(*buffer) {
			case '\a': fputs("\\a",ostream);break;
			case '\n': fputs("\\n",ostream);break;
			case '\r': fputs("\\r",ostream);break;
			case '\t': fputs("\\t",ostream);break;
			case '"' : fputs("\\\"",ostream);break;
			default:
				fputc(*buffer,ostream);
				break;
		}
		buffer++;
	}
}

int main(int argc,char **argv)
{
	FILE *input,*output;
	char buffer[1024];
	
	input=stdin;
	output=stdout;
	
	fputs("#include <stdio.h>\n\n",output);

	fputs("static char gic_default_config[]= {\n",output);
	while(!feof(input)) {
		if (NULL==fgets(buffer,sizeof(buffer),input)) break;
		fputs("\t\"",output);
		str2c  (output,buffer);
		fputs("\"\n",output);
	}

	fputs("};\n\n",output);

	fputs("size_t gicWriteDefaultConfig(FILE *outfile)\n",output);
	fputs("{\n",output);
	fputs("\treturn fwrite(gic_default_config,sizeof(gic_default_config)-1,1,outfile);\n",output);
	fputs("}\n",output);

	return 0;
}