Procházet zdrojové kódy

tools/ldgen: Parse paths with Unicode characters in archives

Closes https://github.com/espressif/esp-idf/issues/5996
Roland Dobai před 5 roky
rodič
revize
792087dede

+ 4 - 4
tools/ldgen/generation.py

@@ -21,7 +21,7 @@ import fnmatch
 
 from fragments import Sections, Scheme, Mapping, Fragment
 from pyparsing import Suppress, White, ParseException, Literal, Group, ZeroOrMore
-from pyparsing import Word, OneOrMore, nums, alphanums, alphas, Optional, LineEnd, printables
+from pyparsing import Word, OneOrMore, nums, alphanums, alphas, Optional, restOfLine
 from ldgen_common import LdGenFailure
 
 
@@ -580,9 +580,9 @@ class SectionsInfo(dict):
         first_line = sections_info_dump.readline()
 
         archive_path = (Literal("In archive").suppress() +
-                        # trim the last character from archive_path, :
-                        Word(printables + " ").setResultsName("archive_path").setParseAction(lambda t: t[0][:-1]) +
-                        LineEnd())
+                        White().suppress() +
+                        # trim the last character (:) from archive_path
+                        restOfLine.setResultsName("archive_path").setParseAction(lambda t: t[0][:-1]))
         parser = archive_path
 
         results = None

+ 1 - 1
tools/ldgen/test/data/sections.info

@@ -1,4 +1,4 @@
-In archive libfreertos.a:
+In archive /home/user/ãóç+ěščřžýáíé/build/esp-idf/freertos/libfreertos.a:
 
 FreeRTOS-openocd.c.obj:     file format elf32-xtensa-le