Просмотр исходного кода

tools/ldgen: Parse paths with Unicode characters in archives

Closes https://github.com/espressif/esp-idf/issues/5996
Roland Dobai 5 лет назад
Родитель
Сommit
792087dede
2 измененных файлов с 5 добавлено и 5 удалено
  1. 4 4
      tools/ldgen/generation.py
  2. 1 1
      tools/ldgen/test/data/sections.info

+ 4 - 4
tools/ldgen/generation.py

@@ -21,7 +21,7 @@ import fnmatch
 
 
 from fragments import Sections, Scheme, Mapping, Fragment
 from fragments import Sections, Scheme, Mapping, Fragment
 from pyparsing import Suppress, White, ParseException, Literal, Group, ZeroOrMore
 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
 from ldgen_common import LdGenFailure
 
 
 
 
@@ -580,9 +580,9 @@ class SectionsInfo(dict):
         first_line = sections_info_dump.readline()
         first_line = sections_info_dump.readline()
 
 
         archive_path = (Literal("In archive").suppress() +
         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
         parser = archive_path
 
 
         results = None
         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
 FreeRTOS-openocd.c.obj:     file format elf32-xtensa-le