From b742542b37bc6f3997e5f3d02c0f9705ad6603ef Mon Sep 17 00:00:00 2001 From: Elias Pschernig Date: Mon, 5 Oct 2015 17:36:46 -0400 Subject: [PATCH] [wesnoth_addon_manager] Speedup writing files to disk *a lot* :) --- data/tools/wesnoth/campaignserver_client.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/data/tools/wesnoth/campaignserver_client.py b/data/tools/wesnoth/campaignserver_client.py index 3466d43f73d..d07775d7190 100755 --- a/data/tools/wesnoth/campaignserver_client.py +++ b/data/tools/wesnoth/campaignserver_client.py @@ -180,17 +180,17 @@ class CampaignClient: return data def unescape(self, data): + data2 = bytearray() # 01 is used as escape character - data2 = b"" - escape = False - for c in data: - if escape: - data2 += bytes([c - 1]) - escape = False - elif c == 1: - escape = True - else: - data2 += bytes([c]) + pos = 0 + while True: + i = data.find(b"\x01", pos) + if i < 0: + break + data2 += data[pos:i] + data2 += bytes([data[i + 1] - 1]) + pos = i + 2 + data2 += data[pos:] return data2 def decode_WML(self, data):