adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 1 | #!/usr/bin/perl |
| 2 | |
| 3 | |
| 4 | sub stringify { |
| 5 | my $name = shift(@_); |
| 6 | open(OUTPUTC, "> $name.c"); |
| 7 | open(OUTPUTH, "> $name.h"); |
| 8 | |
| 9 | open(FILE, "$name"); |
| 10 | |
| 11 | while(<FILE>) { |
| 12 | if(/(.+) "(.+)"/) { |
| 13 | $var = $1; |
| 14 | $data = $2; |
| 15 | |
| 16 | $datan = $data; |
| 17 | $datan =~ s/\\r/\r/g; |
| 18 | $datan =~ s/\\n/\n/g; |
adamdunkels | 051cf87 | 2004-09-09 21:15:34 +0000 | [diff] [blame] | 19 | $datan =~ s/\\01/\01/g; |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 20 | $datan =~ s/\\0/\0/g; |
| 21 | |
adamdunkels | 2c48882 | 2003-09-04 19:32:13 +0000 | [diff] [blame] | 22 | printf(OUTPUTC "const char $var\[%d] = \n", length($datan) + 1); |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 23 | printf(OUTPUTC "/* \"$data\" */\n"); |
| 24 | printf(OUTPUTC "{"); |
| 25 | for($j = 0; $j < length($datan); $j++) { |
| 26 | printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1))); |
| 27 | } |
| 28 | printf(OUTPUTC "};\n"); |
| 29 | |
adamdunkels | 2c48882 | 2003-09-04 19:32:13 +0000 | [diff] [blame] | 30 | printf(OUTPUTH "extern const char $var\[%d];\n", length($datan) + 1); |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 31 | |
| 32 | } |
| 33 | } |
| 34 | close(OUTPUTC); |
| 35 | close(OUTPUTH); |
| 36 | } |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 37 | stringify("http-strings"); |
adamdunkels | ece2177 | 2003-06-30 23:23:12 +0000 | [diff] [blame] | 38 | stringify("http-user-agent-string"); |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 39 | stringify("smtp-strings"); |
| 40 | stringify("html-strings"); |
adamdunkels | d3d4ec6 | 2004-09-05 07:12:12 +0000 | [diff] [blame] | 41 | stringify("ircc-strings"); |
adamdunkels | 051cf87 | 2004-09-09 21:15:34 +0000 | [diff] [blame] | 42 | stringify("popc-strings"); |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 43 | |
| 44 | exit 0; |
| 45 | |