At DVB, we have, at some structs, things like (see
struct dvb_demux_feed, at dvb_demux.h):
union {
struct dmx_ts_feed ts;
struct dmx_section_feed sec;
} feed;
union {
dmx_ts_cb ts;
dmx_section_cb sec;
} cb;
Fix the nested parser to avoid it to eat the first union.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
v2: handle embedded structs/unions from inner to outer
When we have multiple levels of embedded structs, like
(see v4l2-async.h):
struct v4l2_async_subdev {
enum v4l2_async_match_type match_type;
union {
struct {
struct fwnode_handle *fwnode;
} fwnode;
struct {
const char *name;
} device_name;
struct {
int adapter_id;
unsigned short address;
} i2c;
struct {
bool (*match)(struct device *,
struct v4l2_async_subdev *);
void *priv;
} custom;
} match;
...
}
we need a smarter rule that will be removing nested structs
from the inner to the outer ones. So, changed the parsing rule to
remove nested structs/unions from the inner ones to the outer
ones, while it matches.
scripts/kernel-doc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 9d3eafea58f0..443e1bcc78db 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -2173,7 +2173,7 @@ sub dump_struct($$) {
my $members = $3;
# ignore embedded structs or unions
- $members =~ s/({.*})//g;
+ while ($members =~ s/({[^\{\}]*})//g) {};
$nested = $1;
# ignore members marked private:
--
2.13.5
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html