From 4b73b3ec97afd61193c82ea5c63decd6e7ec4e6d Mon Sep 17 00:00:00 2001
From: Campbell Barton <ideasman42@gmail.com>
Date: Fri, 17 Apr 2020 12:29:02 +1000
Subject: [PATCH] Fix \file detection for c style checker

---
 check_source/check_style_c.py | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/check_source/check_style_c.py b/check_source/check_style_c.py
index 2f562ab..2ad1a0a 100755
--- a/check_source/check_style_c.py
+++ b/check_source/check_style_c.py
@@ -1356,21 +1356,25 @@ def scan_source(fp, code, args, fn):
         elif tok.type in Token.Comment:
             doxyfn = None
             if "\\file" in tok.text:
-                doxyfn = tok.text.split("\\file", 1)[1].strip().split()[0]
+                doxyfn = tok.text.split("\\file", 1)[1]
             elif "@file" in tok.text:
-                doxyfn = tok.text.split("@file", 1)[1].strip().split()[0]
+                doxyfn = tok.text.split("@file", 1)[1]
 
             if doxyfn is not None:
-                doxyfn_base = os.path.basename(doxyfn)
-                if doxyfn_base != filepath_base:
-                    warning(fn, "E151", "doxygen filename mismatch %s != %s" % (doxyfn_base, filepath_base), i, i)
-                doxyfn_split = doxyfn.split("/")
-                if len(doxyfn_split) > 1:
-                    fp_split = filepath_split[-len(doxyfn_split):]
-                    if doxyfn_split != fp_split:
-                        warning(fn, "E151", "doxygen filepath mismatch %s != %s" % (doxyfn, "/".join(fp_split)), i, i)
-                    del fp_split
-                del doxyfn_base, doxyfn_split
+                doxyfn = doxyfn.lstrip(" \t")
+                # Blank file is acceptable in this case just ignore contents.
+                if not doxyfn.startswith("\n"):
+                    doxyfn = doxyfn.split()[0]
+                    doxyfn_base = os.path.basename(doxyfn)
+                    if doxyfn_base != filepath_base:
+                        warning(fn, "E151", "doxygen filename mismatch %s != %s" % (doxyfn_base, filepath_base), i, i)
+                    doxyfn_split = doxyfn.split("/")
+                    if len(doxyfn_split) > 1:
+                        fp_split = filepath_split[-len(doxyfn_split):]
+                        if doxyfn_split != fp_split:
+                            warning(fn, "E151", "doxygen filepath mismatch %s != %s" % (doxyfn, "/".join(fp_split)), i, i)
+                        del fp_split
+                    del doxyfn_base, doxyfn_split
             del doxyfn
 
         # ensure line length
-- 
GitLab