chiark / gitweb /
doxygen: more flexible function argument array parsing.
authorVladimír Vondruš <mosra@centrum.cz>
Mon, 29 Jan 2018 20:15:01 +0000 (21:15 +0100)
committerVladimír Vondruš <mosra@centrum.cz>
Mon, 29 Jan 2018 22:51:44 +0000 (23:51 +0100)
doxygen/dox2html5.py
doxygen/test/compound_detailed/File.h
doxygen/test/compound_detailed/namespaceFoo.html

index 5407fbd1c0374ad7bcfd42faef702fc300cda495..91c17db469a914805e1c2e355d3451ed4c48311f 100755 (executable)
@@ -1072,8 +1072,10 @@ def parse_func(state: State, element: ET.Element):
         array = p.find('array')
         if array is not None:
             if name is not None:
-                assert param.type.endswith(')')
-                param.type = param.type[:-1] + name.text + ')' + array.text
+                if param.type.endswith(')'):
+                    param.type = param.type[:-1] + name.text + ')' + array.text
+                else:
+                    param.type = param.type + ' ' + name.text + array.text
             else:
                 param.type += array.text
         elif name is not None:
index 655125b32848236b2be5d68462bb17ae9aee730f..3d3d39d7097df32d67482e613d311efe84f132e5 100644 (file)
@@ -99,11 +99,12 @@ namespace Foo {
 @param a        That's a for you
 @param b        Well, a string
 @param things   And an array!
+@param stuff    Another array
 @return It returns!
 
 Ooooh, more text!
 */
-template<class T> int foo(int a, std::string b, char(&things)[5], bool, char(&)[42]);
+template<class T> int foo(int a, std::string b, char(&things)[5], bool, char(&)[42], int stuff[], double[1337]);
 
 /**
 @brief Input and output
index 0b58c1ae0b7866521f8e347049fd9df1c699ec62..7bc6775fc707d1b8af9fa41c6466ef75ca97d9ea 100644 (file)
           <dl class="m-dox">
             <dt>
               <div class="m-dox-template">template&lt;class T&gt;</div>
-              <span class="m-dox-wrap-bumper">auto <a href="#ae88691fe7f08f83578b05daa67e78887" class="m-dox">foo</a>(</span><span class="m-dox-wrap">int a,
+              <span class="m-dox-wrap-bumper">auto <a href="#a438de3b4c677344081baef1ec352f691" class="m-dox">foo</a>(</span><span class="m-dox-wrap">int a,
               std::string b,
               char(&amp;things)[5],
               bool,
-              char(&amp;)[42]) -&gt; int</span>
+              char(&amp;)[42],
+              int stuff[],
+              double[1337]) -&gt; int</span>
             </dt>
             <dd>Function with <em>everything</em></dd>
             <dt>
         </section>
         <section>
           <h2>Function documentation</h2>
-          <section class="m-dox-details" id="ae88691fe7f08f83578b05daa67e78887"><div>
+          <section class="m-dox-details" id="a438de3b4c677344081baef1ec352f691"><div>
             <h3>
               <div class="m-dox-template">
                 template&lt;class T&gt;
               </div>
-              <span class="m-dox-wrap-bumper">int Foo::<wbr /></span><span class="m-dox-wrap"><span class="m-dox-wrap-bumper"><a href="#ae88691fe7f08f83578b05daa67e78887" class="m-dox-self">foo</a>(</span><span class="m-dox-wrap">int a,
+              <span class="m-dox-wrap-bumper">int Foo::<wbr /></span><span class="m-dox-wrap"><span class="m-dox-wrap-bumper"><a href="#a438de3b4c677344081baef1ec352f691" class="m-dox-self">foo</a>(</span><span class="m-dox-wrap">int a,
               std::string b,
               char(&amp;things)[5],
               bool,
-              char(&amp;)[42])</span></span>
+              char(&amp;)[42],
+              int stuff[],
+              double[1337])</span></span>
             </h3>
             <p>Function with <em>everything</em></p>
             <table class="m-table m-fullwidth m-flat">
                   <td>things</td>
                   <td>And an array!</td>
                 </tr>
+                <tr>
+                  <td>stuff</td>
+                  <td>Another array</td>
+                </tr>
               </tbody>
               <tfoot>
                 <tr>