From d257a98cb80a90f116072c882753039b10a5e042 Mon Sep 17 00:00:00 2001
From: Erovia <erovia@users.noreply.github.com>
Date: Mon, 14 Oct 2019 18:35:12 +0200
Subject: [PATCH] Fix regex for parsing rules.mk files
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

I don't know why it couldn't put it together before... ¯\_(ツ)_/¯
---
 lib/python/qmk/makefile.py | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/lib/python/qmk/makefile.py b/lib/python/qmk/makefile.py
index ce64431f96..dc498adc8f 100644
--- a/lib/python/qmk/makefile.py
+++ b/lib/python/qmk/makefile.py
@@ -16,20 +16,15 @@ def parse_rules_mk(file_path):
     Returns:
         a dictionary with the file's content
     """
-    # regex to match lines with comment at the end
+    # regex to match lines uncommented lines and get the data
     # group(1) = option's name
     # group(2) = operator (eg.: '=', '+=')
     # group(3) = value(s)
-    commented_regex = re.compile(r"^\s*(\w+)\s*([\:\+\-]?=)\s*(.*?)(?=\s*\#)")
-    # regex to match lines without comment at the end
-    # group(1) = option's name
-    # group(2) = operator (eg.: '=', '+=')
-    # group(3) = value(s)
-    uncommented_regex = re.compile(r"^\s*(\w+)\s*([\:\+\-]?=)\s*(.*?)(?=\s*$)")
+    rules_mk_regex = re.compile(r"^\s*(\w+)\s*([\?\:\+\-]?=)\s*(\S.*?)(?=\s*(\#|$))")
     mk_content = qmk.path.unicode_lines(file_path)
     parsed_file = dict()
     for line in mk_content:
-        found = commented_regex.search(line) if "#" in line else uncommented_regex.search(line)
+        found = rules_mk_regex.search(line)
         if found:
             parsed_file[found.group(1)] = dict(operator = found.group(2), value = found.group(3))
     return parsed_file