forked from platformio/platformio-core
Fix INO to CPP converter when #define is used
This commit is contained in:
@@ -53,6 +53,7 @@ class InoToCPPConverter(object):
|
||||
return self.process(contents)
|
||||
|
||||
def merge(self, nodes):
|
||||
assert nodes
|
||||
lines = []
|
||||
for node in nodes:
|
||||
contents = node.get_text_contents()
|
||||
@@ -65,6 +66,9 @@ class InoToCPPConverter(object):
|
||||
else:
|
||||
lines.extend(_lines)
|
||||
|
||||
if not self._main_ino:
|
||||
self._main_ino = nodes[0].get_path()
|
||||
|
||||
return "\n".join(["#include <Arduino.h>"] + lines) if lines else None
|
||||
|
||||
def process(self, contents):
|
||||
@@ -104,17 +108,20 @@ class InoToCPPConverter(object):
|
||||
|
||||
if line.endswith("\\"):
|
||||
if line.startswith('"'):
|
||||
newlines.append(line[:-1])
|
||||
stropen = True
|
||||
newlines.append(line[:-1])
|
||||
continue
|
||||
elif stropen:
|
||||
newlines[len(newlines) - 1] += line[:-1]
|
||||
continue
|
||||
elif stropen and line.endswith('";'):
|
||||
newlines[len(newlines) - 1] += line
|
||||
stropen = False
|
||||
newlines.append('#line %d "%s"' %
|
||||
(linenum, self._main_ino.replace("\\", "/")))
|
||||
else:
|
||||
newlines.append(line)
|
||||
continue
|
||||
|
||||
newlines.append(line)
|
||||
|
||||
return "\n".join(newlines)
|
||||
|
||||
|
Reference in New Issue
Block a user