File: asc2c

package info (click to toggle)
iselect 1.0.4-3
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 404 kB
  • ctags: 199
  • sloc: ansic: 1,641; perl: 479; sh: 455; makefile: 155
file content (46 lines) | stat: -rwxr-xr-x 883 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
#!/sw/bin/perl
##
##  asc2c -- convert an ASCII file into a statically initialised
##           C array of characters
##
##  Copyright (c) Ralf S. Engelschall, All Rights Reserved.
##

$filein  = $ARGV[0];
$fileout = $ARGV[1];
$name    = $ARGV[2];
$version = $ARGV[3];

if ($#ARGV ne 3) {
    printf(STDERR "Usage: $0 ascii-file c-file buffer-name version\n");
    exit(1);
}

open(IN,   "<$filein");
open(OUTC, ">$fileout.c");

print OUTC "/* $fileout.c -- automatically generated by asc2c */\n";
print OUTC "\n";
print OUTC "#include <stdio.h>\n";
print OUTC "\n";
print OUTC "char *$name\[\] = {\\\n";

while (<IN>) {
    s|\n$||;
    s|\\|\\\\|g;
    s|\"|\\\"|g;
    s|\@V\@|$version|g;
    printf(OUTC "\"%s\",\n", $_);
}

print OUTC "NULL };\n";
print OUTC "\n";
print OUTC "/*EOF*/\n";

$filename = "$fileout.h";
$filename =~ tr|a-z.|A-Z_|;

close(IN);
close(OUTC);

##EOF##