Fix Red lua move constants out of binary image
didn't consider sims might have reserved enums
Change-Id: Ic404972f0836bc81ba149f4ecdd3ec61bd8bd4b3
diff --git a/apps/plugins/lua/rbdefines_helper.pl b/apps/plugins/lua/rbdefines_helper.pl
index 6719369..f15cc71 100755
--- a/apps/plugins/lua/rbdefines_helper.pl
+++ b/apps/plugins/lua/rbdefines_helper.pl
@@ -47,7 +47,10 @@
my $def_regex = qr/#define\s+([^\s\r\n]+)\s+([^\r\n]+)/;
my $quot_regex = qr/.*([\"\']).*/;
my $num_regex = qr/.*([\+\-\*\\|&\d]).*/;
-
+my $configh_regex = qr/^\s*#define\s*__CONFIG_H__\s*$/;
+my $config_h = "?";
+my $exclude_regex = qr/^#define\s*_?POSIX.*/;
+my $exclude_enum_regex = qr/^#define\s*(_SC_|_PC_|_CS_).*/;
print <<EOF
#include <stdio.h>
#include <stdbool.h>
@@ -62,7 +65,10 @@
while(my $line = <STDIN>)
{
-
+ if($config_h eq "?" && $line =~ $configh_regex) { $config_h = $line; }
+ next if($config_h eq "?"); #don't capture till we get to the config file
+ next if($line =~ $exclude_regex);
+
if($line =~ $def_regex) #does it begin with #define?
{
push(@all_defines, $line); #save all defines for possible ambiguous macros
@@ -85,12 +91,14 @@
}
elsif($line =~ /^(?!.*;)enum.*{/) #enum {
{
+ next if($line =~ /enum\s*__.*/); #don't add reserved
print $line;
next if($line =~ /.*};.*/);
do_enum($line)
}
elsif($line =~ /^(?!.*[;\(\)])enum.*/) #enum
{
+ next if($line =~ /enum\s*__.*/); #don't add reserved
#need to be careful might be a function returning enum
my $lastline = $line;
next if($line =~ /.*};.*/);
@@ -105,7 +113,8 @@
}
}
-
+#warn "total defines: ".scalar @all_defines;
+#warn "captured defines: ".scalar @captured_defines;
#Sort the functions
my @sorted_defines = sort { @$a{'name'} cmp @$b{'name'} } @captured_defines;
@@ -176,7 +185,7 @@
while($line = <STDIN>)
{
-
+ next if($line =~ $exclude_enum_regex);
if($line =~ /.*};.*/)
{
print $line;