Skip to content

Commit e00157c

Browse files
authored
Fix file extraction and null byte handling
1 parent 355ca44 commit e00157c

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

builder/frameworks/_embed_files.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def extract_files(cppdefines, files_type):
3434
result = []
3535
files = env.GetProjectOption("board_build.%s" % files_type, "").splitlines()
3636
if files:
37-
result.extend([str(Path("$PROJECT_DIR") / f.strip()) for f in files if f])
37+
result.extend([str(Path("$PROJECT_DIR") / f.strip()) for f in files if f.strip()])
3838
else:
3939
files_define = "COMPONENT_" + files_type.upper()
4040
for define in cppdefines:
@@ -54,6 +54,7 @@ def extract_files(cppdefines, files_type):
5454
return []
5555

5656
for f in value.split(":"):
57+
f = f.strip()
5758
if not f:
5859
continue
5960
result.append(str(Path("$PROJECT_DIR") / f))
@@ -77,10 +78,14 @@ def prepare_file(source, target, env):
7778
shutil.copy(filepath, filepath + ".piobkp")
7879

7980
with open(filepath, "rb+") as fp:
80-
fp.seek(-1, SEEK_END)
81-
if fp.read(1) != b"\0":
82-
fp.seek(0, SEEK_CUR)
81+
fp.seek(0, SEEK_END)
82+
size = fp.tell()
83+
if size == 0:
8384
fp.write(b"\0")
85+
else:
86+
fp.seek(-1, SEEK_END)
87+
if fp.read(1) != b"\0":
88+
fp.write(b"\0")
8489

8590

8691
def revert_original_file(source, target, env):
@@ -139,7 +144,7 @@ def transform_to_asm(target, source, env):
139144
"-DSOURCE_FILE=$TARGET",
140145
"-DFILE_TYPE=$FILE_TYPE",
141146
"-P",
142-
f'"{str(Path(env.PioPlatform().get_package_dir("framework-espidf") or "") / "tools" / "cmake" / "scripts" / "data_file_embed_asm.cmake")}"',,
147+
f'"{str(Path(env.PioPlatform().get_package_dir("framework-espidf") or "") / "tools" / "cmake" / "scripts" / "data_file_embed_asm.cmake")}"',
143148
]
144149
),
145150
"Generating assembly for $TARGET",

0 commit comments

Comments
 (0)