[PATCH 1/5] uqmi: support C reserved keywords in upstream JSON files

Jean Thomas jean.thomas at wifirst.fr
Wed Apr 10 03:25:05 PDT 2024


Add a dummy prefix in case a name in the upstream JSON files is a
C reserved keyword.

This is the case with the "Register" element of the new "Configure
Profile Event List" message.

Signed-off-by: Jean Thomas <jean.thomas at wifirst.fr>
---
 data/gen-common.pm | 52 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/data/gen-common.pm b/data/gen-common.pm
index 278afce..31d43a0 100644
--- a/data/gen-common.pm
+++ b/data/gen-common.pm
@@ -19,6 +19,54 @@ our %tlv_types = (
 );
 our %common_ref = ();
 
+my @c_reserved_keywords = (
+	"alignas",
+	"alignof",
+	"auto",
+	"bool",
+	"break",
+	"case",
+	"char",
+	"const",
+	"constexpr",
+	"continue",
+	"default",
+	"do",
+	"double",
+	"else",
+	"enum",
+	"extern",
+	"false",
+	"float",
+	"for",
+	"goto",
+	"if",
+	"inline",
+	"int",
+	"long",
+	"nullptr",
+	"register",
+	"restrict",
+	"return",
+	"short",
+	"signed",
+	"sizeof",
+	"static",
+	"static_assert",
+	"struct",
+	"switch",
+	"thread_local",
+	"true",
+	"typedef",
+	"typeof",
+	"typeof_unqual",
+	"union",
+	"unsigned",
+	"void",
+	"volatile",
+	"while"
+);
+
 $prefix eq 'ctl_' and $ctl = 1;
 
 sub get_json() {
@@ -33,7 +81,9 @@ sub gen_cname($) {
 
 	$name =~ s/[^a-zA-Z0-9_]/_/g;
 	$name = "_${name}" if $name =~ /^\d/;
-	return lc($name);
+	$name = lc($name);
+	$name = "_${name}" if (grep {$_ eq $name} @c_reserved_keywords);
+	return $name;
 }
 
 sub gen_has_types($) {
-- 
2.39.2




More information about the openwrt-devel mailing list