From 938fdc3dfb42b86041bfc8b76b7c827c862319e4 Mon Sep 17 00:00:00 2001 From: Dee Date: Mon, 6 Jan 2025 16:29:48 +0800 Subject: [PATCH 1/2] add regex for bool parsing & test struct w/ bool parsing --- lib/fiddle/cparser.rb | 2 +- test/fiddle/test_cparser.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/fiddle/cparser.rb b/lib/fiddle/cparser.rb index 264ca166..cdd139d5 100644 --- a/lib/fiddle/cparser.rb +++ b/lib/fiddle/cparser.rb @@ -247,7 +247,7 @@ def parse_ctype(ty, tymap=nil) return TYPE_INTPTR_T when /\Auintptr_t(?:\s+\w+)?\z/ return TYPE_UINTPTR_T - when "bool" + when /\Abool(?:\s+\w+)?\z/ return TYPE_BOOL when /\*/, /\[[\s\d]*\]/ return TYPE_VOIDP diff --git a/test/fiddle/test_cparser.rb b/test/fiddle/test_cparser.rb index f1b67476..0fa26d55 100644 --- a/test/fiddle/test_cparser.rb +++ b/test/fiddle/test_cparser.rb @@ -277,6 +277,10 @@ def test_struct_string assert_equal [[TYPE_INT,TYPE_VOIDP,TYPE_VOIDP], ['x', 'cb', 'name']], parse_struct_signature('int x; void (*cb)(); const char* name') end + def test_struct_bool + assert_equal [[TYPE_INT, TYPE_BOOL], ['x', 'toggle']], parse_struct_signature('int x; bool toggle') + end + def test_struct_undefined assert_raise(DLError) { parse_struct_signature(['int i', 'DWORD cb']) } end From 6a3c2b4424c23eef501185440e2906c6c0ed8323 Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Fri, 10 Jan 2025 12:29:21 +0800 Subject: [PATCH 2/2] add parenthesis to avoid ruby warning Co-authored-by: Sutou Kouhei --- test/fiddle/test_cparser.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/fiddle/test_cparser.rb b/test/fiddle/test_cparser.rb index 0fa26d55..20529115 100644 --- a/test/fiddle/test_cparser.rb +++ b/test/fiddle/test_cparser.rb @@ -278,7 +278,8 @@ def test_struct_string end def test_struct_bool - assert_equal [[TYPE_INT, TYPE_BOOL], ['x', 'toggle']], parse_struct_signature('int x; bool toggle') + assert_equal([[TYPE_INT, TYPE_BOOL], ['x', 'toggle']], + parse_struct_signature('int x; bool toggle')) end def test_struct_undefined