+ FileStartFlag = False\r
+ CommentStrList = []\r
+ CommentStr = Result[0].strip()\r
+ CommentStrListTemp = CommentStr.split('\n')\r
+ if (len(CommentStrListTemp) <= 1):\r
+ # For Mac\r
+ CommentStrListTemp = CommentStr.split('\r')\r
+ # Skip the content before the file header \r
+ for CommentLine in CommentStrListTemp:\r
+ if CommentLine.strip().startswith('/** @file'):\r
+ FileStartFlag = True\r
+ if FileStartFlag == True:\r
+ CommentStrList.append(CommentLine)\r
+ \r
+ ID = Result[1]\r
+ Index = 0\r
+ if CommentStrList and CommentStrList[0].strip().startswith('/** @file'):\r
+ NoHeaderCommentStartFlag = False\r
+ else:\r
+ continue\r
+ if CommentStrList and CommentStrList[-1].strip().endswith('**/'):\r
+ NoHeaderCommentEndFlag = False\r
+ else:\r
+ continue\r
+\r
+ for CommentLine in CommentStrList:\r
+ Index = Index + 1\r
+ NextLineIndex = Index\r
+ if CommentLine.startswith('/** @file'):\r
+ continue\r
+ if CommentLine.startswith('**/'):\r
+ break\r
+ # Check whether C File header Comment content start with two spaces.\r
+ if EccGlobalData.gConfig.HeaderCheckCFileCommentStartSpacesNum == '1' or EccGlobalData.gConfig.HeaderCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
+ if CommentLine.startswith('/** @file') == False and CommentLine.startswith('**/') == False and CommentLine.strip() and CommentLine.startswith(' ') == False:\r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, 'File header comment content should start with two spaces at each line', FileTable, ID)\r
+ \r
+ CommentLine = CommentLine.strip()\r
+ if CommentLine.startswith('Copyright'):\r
+ NoCopyrightFlag = False\r
+ if CommentLine.find('All rights reserved') == -1:\r
+ for Copyright in EccGlobalData.gConfig.Copyright:\r
+ if CommentLine.find(Copyright) > -1:\r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, '""All rights reserved"" announcement should be following the ""Copyright"" at the same line', FileTable, ID)\r
+ break\r
+ if CommentLine.endswith('<BR>') == -1:\r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, 'The ""<BR>"" at the end of the Copyright line is required', FileTable, ID)\r
+ if NextLineIndex < len(CommentStrList) and CommentStrList[NextLineIndex].strip().startswith('Copyright') == False and CommentStrList[NextLineIndex].strip():\r
+ NoLicenseFlag = False\r
+ if CommentLine.startswith('@par Revision Reference:'):\r
+ NoRevReferFlag = False\r
+ RefListFlag = False\r
+ for RefLine in CommentStrList[NextLineIndex:]:\r
+ if RefLine.strip() and (NextLineIndex + 1) < len(CommentStrList) and CommentStrList[NextLineIndex+1].strip() and CommentStrList[NextLineIndex+1].strip().startswith('**/') == False:\r
+ RefListFlag = True\r
+ if RefLine.strip() == False or RefLine.strip().startswith('**/'):\r
+ RefListFlag = False\r
+ break\r
+ # Check whether C File header Comment's each reference at list should begin with a bullet character.\r
+ if EccGlobalData.gConfig.HeaderCheckCFileCommentReferenceFormat == '1' or EccGlobalData.gConfig.HeaderCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
+ if RefListFlag == True:\r
+ if RefLine.strip() and RefLine.strip().startswith('**/') == False and RefLine.startswith(' -') == False: \r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, 'Each reference on a separate line should begin with a bullet character ""-"" ', FileTable, ID) \r
+ \r
+ if NoHeaderCommentStartFlag:\r
+ PrintErrorMsg(ERROR_DOXYGEN_CHECK_FILE_HEADER, 'File header comment should begin with ""/** @file""', FileTable, ID)\r
+ return\r
+ if NoHeaderCommentEndFlag:\r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, 'File header comment should end with ""**/""', FileTable, ID)\r
+ return\r
+ if NoCopyrightFlag:\r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, 'File header comment missing the ""Copyright""', FileTable, ID)\r
+ #Check whether C File header Comment have the License immediately after the ""Copyright"" line.\r
+ if EccGlobalData.gConfig.HeaderCheckCFileCommentLicenseFormat == '1' or EccGlobalData.gConfig.HeaderCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
+ if NoLicenseFlag:\r
+ PrintErrorMsg(ERROR_HEADER_CHECK_FILE, 'File header comment should have the License immediately after the ""Copyright"" line', FileTable, ID)\r