xref: /nrf52832-nimble/rt-thread/components/net/uip/apps/webclient/makestrings (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero#!/usr/bin/perl
2*10465441SEvalZero
3*10465441SEvalZero
4*10465441SEvalZerosub stringify {
5*10465441SEvalZero  my $name = shift(@_);
6*10465441SEvalZero  open(OUTPUTC, "> $name.c");
7*10465441SEvalZero  open(OUTPUTH, "> $name.h");
8*10465441SEvalZero
9*10465441SEvalZero  open(FILE, "$name");
10*10465441SEvalZero
11*10465441SEvalZero  while(<FILE>) {
12*10465441SEvalZero    if(/(.+) "(.+)"/) {
13*10465441SEvalZero      $var = $1;
14*10465441SEvalZero      $data = $2;
15*10465441SEvalZero
16*10465441SEvalZero      $datan = $data;
17*10465441SEvalZero      $datan =~ s/\\r/\r/g;
18*10465441SEvalZero      $datan =~ s/\\n/\n/g;
19*10465441SEvalZero      $datan =~ s/\\01/\01/g;
20*10465441SEvalZero      $datan =~ s/\\0/\0/g;
21*10465441SEvalZero
22*10465441SEvalZero      printf(OUTPUTC "const char $var\[%d] = \n", length($datan) + 1);
23*10465441SEvalZero      printf(OUTPUTC "/* \"$data\" */\n");
24*10465441SEvalZero      printf(OUTPUTC "{");
25*10465441SEvalZero      for($j = 0; $j < length($datan); $j++) {
26*10465441SEvalZero	printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1)));
27*10465441SEvalZero      }
28*10465441SEvalZero      printf(OUTPUTC "0 };\n");
29*10465441SEvalZero
30*10465441SEvalZero      printf(OUTPUTH "extern const char $var\[%d];\n", length($datan) + 1);
31*10465441SEvalZero
32*10465441SEvalZero    }
33*10465441SEvalZero  }
34*10465441SEvalZero  close(OUTPUTC);
35*10465441SEvalZero  close(OUTPUTH);
36*10465441SEvalZero}
37*10465441SEvalZerostringify("webclient-strings");
38*10465441SEvalZero
39*10465441SEvalZeroexit 0;
40*10465441SEvalZero
41