diff mbox

Port Doxygen support script from Perl to Python; add unittests

Message ID 3ecc005d-a99a-8fd0-38fa-8d2128c88574@suse.cz
State New
Headers show

Commit Message

Martin Liška May 31, 2017, 2:06 p.m. UTC
Hello.

After discussion with Richi, he approved to install patches separately
to current perl scripts. I'm attaching these patches and I will send patch
that will remove the legacy Perl scripts. The patch will be subject for
normal review process.

Thanks
Martin

Comments

Martin Liška May 31, 2017, 2:09 p.m. UTC | #1
Hi.

This is patch which removes legacy perl scripts and set default values
for both OUTPUT_DIRECTORY and INPUT_FILTER.

Ready for trunk?
Thanks,
Martin
diff mbox

Patch

From c2b36dc402e6012a9a7a878961853827bf782812 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Fri, 28 Apr 2017 13:52:57 +0200
Subject: [PATCH 3/3] Doxygen: transform ENUM_BITFIELD and comments starting
 with '/**'.

contrib/ChangeLog:

2017-04-28  Martin Liska  <mliska@suse.cz>

	* filter_params.py:
	Transform ENUM_BITFIELD and comments starting with '/**'
---
 contrib/filter_params.py | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/contrib/filter_params.py b/contrib/filter_params.py
index f94d201bbf8..a82a8d5728c 100644
--- a/contrib/filter_params.py
+++ b/contrib/filter_params.py
@@ -34,6 +34,11 @@  def filter_src(text):
     # so that doxygen will parse them.
     #
     # Only comments that begin on the left-most column are converted.
+    #
+    text = re.sub(r'^/\*\* ',
+                  r'/** @verbatim ',
+                  text,
+                  flags=re.MULTILINE)
     text = re.sub(r'^/\* ',
                   r'/** @verbatim ',
                   text,
@@ -58,6 +63,11 @@  def filter_src(text):
                   r'(\1)',
                   text)
 
+    # Replace 'ENUM_BITFIELD(enum_name)' with 'enum enum_name'.
+    text = re.sub('ENUM_BITFIELD\s*\(([^\)]*)\)',
+                  r'enum \1',
+                  text)
+
     return text
 
 class FilteringTests(unittest.TestCase):
@@ -81,6 +91,21 @@  class FilteringTests(unittest.TestCase):
              '   NEXT_LINE\n'
              '   FINAL_LINE.   @endverbatim */\n'))
 
+    def test_comment_example_gengtype(self):
+        self.assert_filters_to(
+            ('/** Allocate and initialize an input buffer state.\n'
+             ' * @param file A readable stream.\n'
+             ' * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.\n'
+             ' * \n'
+             ' * @return the allocated buffer state.\n'
+             ' */'),
+            ('/** @verbatim Allocate and initialize an input buffer state.\n'
+             ' * @param file A readable stream.\n'
+             ' * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.\n'
+             ' * \n'
+             ' * @return the allocated buffer state.\n'
+             '  @endverbatim */'))
+
     def test_oneliner_comment(self):
         self.assert_filters_to(
             '/* Returns the string representing CLASS.  */\n',
@@ -131,6 +156,11 @@  class FilteringTests(unittest.TestCase):
             'char *strcpy PARAMS ((char *dest, char *source));\n',
             'char *strcpy (char *dest, char *source);\n')
 
+    def test_ENUM_BITFIELD(self):
+        self.assert_filters_to(
+            '  ENUM_BITFIELD (sym_intent) intent:2;\n',
+            '  enum sym_intent intent:2;\n')
+
 def act_on_files(argv):
     for filename in argv[1:]:
         with open(filename) as f:
-- 
2.12.2