[svn-commits] eliel: trunk r194635 - in /trunk: doc/appdocsxml.dtd main/xmldoc.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri May 15 08:23:45 CDT 2009


Author: eliel
Date: Fri May 15 08:23:37 2009
New Revision: 194635

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=194635
Log:
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


Modified:
    trunk/doc/appdocsxml.dtd
    trunk/main/xmldoc.c

Modified: trunk/doc/appdocsxml.dtd
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/doc/appdocsxml.dtd?view=diff&rev=194635&r1=194634&r2=194635
==============================================================================
--- trunk/doc/appdocsxml.dtd (original)
+++ trunk/doc/appdocsxml.dtd Fri May 15 08:23:37 2009
@@ -41,7 +41,7 @@
   <!ATTLIST option hasparams CDATA "">
 
   <!ELEMENT enumlist (enum+)>
-  <!ELEMENT enum (para|note|warning|parameter)*>
+  <!ELEMENT enum (para|note|warning|parameter|enumlist)*>
   <!ATTLIST enum name CDATA "">
 
   <!ELEMENT argument (para|note|warning|variablelist|argument)*>

Modified: trunk/main/xmldoc.c
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/main/xmldoc.c?view=diff&rev=194635&r1=194634&r2=194635
==============================================================================
--- trunk/main/xmldoc.c (original)
+++ trunk/main/xmldoc.c Fri May 15 08:23:37 2009
@@ -60,6 +60,7 @@
 };
 
 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
@@ -1400,6 +1401,9 @@
 {
 	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))) {
@@ -1407,7 +1411,12 @@
 		} else if ((xmldoc_parse_specialtags(node, (ret ? tabs : " - "), "\n", buffer))) {
 			ret = 1;
 		}
-	}
+
+		xmldoc_parse_enumlist(node, optiontabs, buffer);
+	}
+
+	ast_free(optiontabs);
+
 	return ret;
 }
 




More information about the svn-commits mailing list