aboutsummaryrefslogtreecommitdiff
path: root/uip/apps/smtp/makestrings
blob: bea18a6c3489bc8b74fc9b309dbbf58325416074 (plain)
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
#!/usr/bin/perl


sub stringify {
  my $name = shift(@_);
  open(OUTPUTC, "> $name.c");
  open(OUTPUTH, "> $name.h");
  
  open(FILE, "$name");
  
  while(<FILE>) {
    if(/(.+) "(.+)"/) {
      $var = $1;
      $data = $2;
      
      $datan = $data;
      $datan =~ s/\\r/\r/g;
      $datan =~ s/\\n/\n/g;
      $datan =~ s/\\01/\01/g;      
      $datan =~ s/\\0/\0/g;
      
      printf(OUTPUTC "const char $var\[%d] = \n", length($datan) + 1);
      printf(OUTPUTC "/* \"$data\" */\n");
      printf(OUTPUTC "{");
      for($j = 0; $j < length($datan); $j++) {
	printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1)));
      }
      printf(OUTPUTC "};\n");
      
      printf(OUTPUTH "extern const char $var\[%d];\n", length($datan) + 1);
      
    }
  }
  close(OUTPUTC);
  close(OUTPUTH);
}
stringify("smtp-strings");

exit 0;