ECC: change doxygen tag check policy to not allow retval but allow return tag for...
authorjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 16 Jul 2008 10:11:49 +0000 (10:11 +0000)
committerjlin16 <jlin16@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 16 Jul 2008 10:11:49 +0000 (10:11 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1287 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Ecc/c.py

index 016efc1..cc34be5 100644 (file)
@@ -2038,6 +2038,17 @@ def GetDoxygenStrFromComment(Str):
             DoxygenStrList.append('@retval' + RetvalTagList[i])\r
             i += 1\r
     \r
+    ReturnTagList = RetvalTagList[-1].split('@return')\r
+    if len(ReturnTagList) > 1:\r
+        if len(RetvalTagList) > 1:\r
+            DoxygenStrList[-1] = '@retval' + ReturnTagList[0]\r
+        elif len(ParamTagList) > 1:\r
+            DoxygenStrList[-1] = '@param' + ReturnTagList[0]\r
+        i = 1\r
+        while i < len(ReturnTagList):\r
+            DoxygenStrList.append('@return' + ReturnTagList[i])\r
+            i += 1\r
+    \r
     if len(DoxygenStrList) > 0:\r
         DoxygenStrList[-1] = DoxygenStrList[-1].rstrip('--*/')\r
     \r
@@ -2109,16 +2120,18 @@ def CheckFunctionHeaderConsistentWithDoxygenComment(FuncModifier, FuncHeader, Fu
         if Index < ParamNumber:\r
             ErrorMsgList.append('Line %d : Number of doxygen tags in comment less than number of function parameters' % CommentStartLine)\r
             PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'Number of doxygen tags in comment less than number of function parameters ', TableName, CommentId)\r
-        if FuncModifier.find('VOID') != -1 or FuncModifier.find('void') != -1:\r
-            if Index < DoxygenTagNumber - 1:\r
+        if (FuncModifier.find('VOID') != -1 or FuncModifier.find('void') != -1) and FuncModifier.find('*') == -1:\r
+            \r
+            # assume we allow a return description tag for void func. return. that's why 'DoxygenTagNumber - 1' is used instead of 'DoxygenTagNumber'\r
+            if Index < DoxygenTagNumber - 1 or (Index < DoxygenTagNumber and DoxygenStrList[Index].startswith('@retval')):\r
                 ErrorMsgList.append('Line %d : Excessive doxygen tags in comment' % CommentStartLine)\r
                 PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'Excessive doxygen tags in comment ', TableName, CommentId)\r
         else:\r
-            if Index < DoxygenTagNumber and not DoxygenStrList[Index].startswith('@retval'): \r
+            if Index < DoxygenTagNumber and not DoxygenStrList[Index].startswith('@retval') and not DoxygenStrList[Index].startswith('@return')\r
                 ErrorMsgList.append('Line %d : Number of @param doxygen tags in comment does NOT match number of function parameters' % CommentStartLine)\r
                 PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'Number of @param doxygen tags in comment does NOT match number of function parameters ', TableName, CommentId)\r
     else:\r
-        if ParamNumber == 0 and DoxygenTagNumber != 0 and (FuncModifier.find('VOID') != -1 or FuncModifier.find('void') != -1):\r
+        if ParamNumber == 0 and DoxygenTagNumber != 0 and ((FuncModifier.find('VOID') != -1 or FuncModifier.find('void') != -1) and FuncModifier.find('*') == -1):\r
             ErrorMsgList.append('Line %d : Excessive doxygen tags in comment' % CommentStartLine)\r
             PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'Excessive doxygen tags in comment ', TableName, CommentId)\r
         if ParamNumber != 0 and DoxygenTagNumber == 0:\r