rcxml: convert dotted properties into nested nodes before processing

For example, the following node:

  <keybind name.action="ShowMenu" menu.action="root-menu"
            x.position.action="1" y.position.action="2" />

is converted to:

 <keybind>
   <action>
     <name>ShowMenu</name>
     <menu>root-menu</menu>
     <position>
       <x>1</x>
       <y>2</y>
     </position>
   </action>
 </keybind>

...before processing the entire xml tree. This is a preparation to prevent
breaking changes when we refactor rcxml.c to use recursion instead of
encoding nodes into dotted strings.
This commit is contained in:
tokyo4j 2025-04-10 00:43:21 +09:00 committed by Johan Malm
parent 330c55e1b2
commit 503af10505
6 changed files with 302 additions and 3 deletions

View file

@ -3,15 +3,21 @@ test_lib = static_library(
sources: files(
'../src/common/buf.c',
'../src/common/mem.c',
'../src/common/string-helpers.c'
'../src/common/string-helpers.c',
'../src/common/xml.c',
),
include_directories: [labwc_inc],
dependencies: [dep_cmocka],
dependencies: [
dep_cmocka,
glib,
xml2,
],
)
tests = [
'buf-simple',
'str',
'xml',
]
foreach t : tests
@ -22,6 +28,7 @@ foreach t : tests
sources: '@0@.c'.format(t),
include_directories: [labwc_inc],
link_with: [test_lib],
dependencies: [xml2],
),
is_parallel: false,
)