浏览代码

Merge pull request #6544 from ThomasWaldmann/fix-progress-archivename-master

escape % chars in archive name, fixes #6500
TW 3 年之前
父节点
当前提交
1e213e93a3
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      src/borg/archive.py

+ 3 - 1
src/borg/archive.py

@@ -670,8 +670,10 @@ Utilization of max. archive size: {csize_max:.0%}
             archive_index = ChunkIndex()
             archive_index = ChunkIndex()
             sync = CacheSynchronizer(archive_index)
             sync = CacheSynchronizer(archive_index)
             add(self.id)
             add(self.id)
+            # we must escape any % char in the archive name, because we use it in a format string, see #6500
+            arch_name_escd = self.name.replace('%', '%%')
             pi = ProgressIndicatorPercent(total=len(self.metadata.items),
             pi = ProgressIndicatorPercent(total=len(self.metadata.items),
-                                          msg='Calculating statistics for archive %s ... %%3d%%%%' % self.name,
+                                          msg='Calculating statistics for archive %s ... %%3.0f%%%%' % arch_name_escd,
                                           msgid='archive.calc_stats')
                                           msgid='archive.calc_stats')
             for id, chunk in zip(self.metadata.items, self.repository.get_many(self.metadata.items)):
             for id, chunk in zip(self.metadata.items, self.repository.get_many(self.metadata.items)):
                 pi.show(increase=1)
                 pi.show(increase=1)