diff options
author | eliel <eliel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-05-15 13:42:39 +0000 |
---|---|---|
committer | eliel <eliel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-05-15 13:42:39 +0000 |
commit | 726c0fdefa9f14a0203d94090ba7e6705049efeb (patch) | |
tree | e5ef98c2de4390773aad9f620a6dc8d667998700 /main/xmldoc.c | |
parent | c915fd2580c73e4804ebd6337c9c3258c8f91746 (diff) |
Merged revisions 194635 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
........
r194635 | eliel | 2009-05-15 09:23:37 -0400 (Fri, 15 May 2009) | 16 lines
Allow to specify an enumlist inside an enum.
It was not possible to use an enumlist inside an enum:
<enumlist>
<enum name="aa">
<enumlist>
...
</enumlist>
</enum>
</enumlist>
Now we will be able to insert as many levels as we want.
(closes issue #15112)
Reported by: lmadsen
........
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@194648 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/xmldoc.c')
-rw-r--r-- | main/xmldoc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/main/xmldoc.c b/main/xmldoc.c index 230b8a4c8..f483f8b0a 100644 --- a/main/xmldoc.c +++ b/main/xmldoc.c @@ -58,6 +58,7 @@ struct documentation_tree { }; static char *xmldoc_get_syntax_cmd(struct ast_xml_node *fixnode, const char *name, int printname); +static int xmldoc_parse_enumlist(struct ast_xml_node *fixnode, const char *tabs, struct ast_str **buffer); /*! * \brief Container of documentation trees @@ -1398,6 +1399,9 @@ static int xmldoc_parse_enum(struct ast_xml_node *fixnode, const char *tabs, str { struct ast_xml_node *node = fixnode; int ret = 0; + char *optiontabs; + + ast_asprintf(&optiontabs, "%s ", tabs); for (node = ast_xml_node_get_children(node); node; node = ast_xml_node_get_next(node)) { if ((xmldoc_parse_para(node, (ret ? tabs : " - "), "\n", buffer))) { @@ -1405,7 +1409,12 @@ static int xmldoc_parse_enum(struct ast_xml_node *fixnode, const char *tabs, str } else if ((xmldoc_parse_specialtags(node, (ret ? tabs : " - "), "\n", buffer))) { ret = 1; } + + xmldoc_parse_enumlist(node, optiontabs, buffer); } + + ast_free(optiontabs); + return ret; } |