docs: kdoc: rework the rewrite_struct_members() main loop

Adopt a more Pythonic form for the main loop of this function, getting rid
of the "while True:" construction and making the actual loop invariant
explicit.

Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20250807211639.47286-8-corbet@lwn.net
This commit is contained in:
Jonathan Corbet
2025-08-07 15:16:34 -06:00
parent 77e3c875f0
commit f8208676c1

View File

@@ -663,11 +663,8 @@ class KernelDoc:
# re limitation.
struct_members = KernRe(r'(struct|union)([^\{\};]+)(\{)([^\{\}]*)(\})([^\{\};]*)(;)')
while True:
tuples = struct_members.findall(members)
if not tuples:
break
tuples = struct_members.findall(members)
while tuples:
for t in tuples:
newmember = ""
maintype = t[0]
@@ -738,6 +735,7 @@ class KernelDoc:
newmember += f"{dtype} {s_id}.{name}; "
members = members.replace(oldmember, newmember)
tuples = struct_members.findall(members)
return members
def dump_struct(self, ln, proto):